TK1 Serial Port Output and unable to boot from SD Card

I have a TK1 devkit, and I was trying to get Android running on it as specified here

I managed to get the bootloader flashed, but whenever I boot from the SD Card all I see is random noise on the screen.

I tried reading UART logs, but I can’t seem to get any output from the serial port. I’m using a USB adapter on my mac and the command:

$ screen -U /dev/tty.PL2303-00002014 115200 8N1

It opens up the screen, but I get no output.

Does anyone know how to help with either of these issues?

Very very likely the serial UART is just set to the wrong speed. Your screen program is saying 115200 for speed. In L4T, the command line is where serial console is set up and speed set (setting it up later would mean serial console might not work till later).

Use “cat /proc/cmdline | egrep tty” (I use egrep here to color highlight what I want from a long string) and see which tty serial device is set up…do this once under non-SD card when it works, and compare to once under the SD card when it does not work. tty1 is the regular non-serial console from the keyboard directly on your Jetson. ttyS0 is the serial console you are interested in. I would bet ttyS0 is either missing or not set to 115200n8. In this case you have to add kernel command line option “console=ttyS0,115200n8”.

Are you using the serial adapter directly connected to the board? If so it won’t work. You need a null modem cable or adapter between the usb serial and jetson.

Here is what I use.


I’m using a female to female DB9 cable, which is then connected to a USB adapter, which is then connected to the mac. I’m trying out linuxdev’s solution for now. Waiting for it to be flashed back to L4T

Running “cat /proc/cmdline | egrep tty” shows that console=ttys0,115200n8 which seem to be the same settings I’m using on my end.

Using setserial, I get the following for ttyS0:

/dev/ttyS0, UART: undefined, Port: 0x0000, IRQ: 122

I hadn’t thought of the null modem issue spiteful mentioned. There are some serial adapters which “adjust” for non-null-modem cables, but I too am using a null modem DB9. This would also look like an invalid serial port setting.

Checking with a multimeter, I do appear to have a null modem cable. At least, the pin configuration seems to match the ones I found on Google Images.

Am I missing something else, another intermediary adapter perhaps, or should this be enough?

Pins 2 and 3 are reversed on each end of your cable?

One issue that crops up with USB adapters is that on the USB end they may not initialize until the Jetson was powered up once…and only then does it work to attach to the /dev/ttyUSB1 (or whichever ttyUSB# it uses). The Jetson itself is pretty well set from the start for 115200 8n1, so try minicom or gtkterm from your linux machine before using screen. Use tail -f on the appropriate log file while plugging in any USB serial adapter to be sure which USB device it is (since it can change). I think on Ubuntu /var/log/kern.log, on fedora and some others /var/log/system.log.

@spiteful Yep. Multimeter says so.

@linuxdev I’ll give that a try

I’m getting a blank display in gtkterm as well on a Ubuntu host machine.

You mentioned above using a Mac. I’m not particularly Mac savvy, but it is a lot like a *NIX system. Is there a log you can watch while removing and inserting the USB connector on your serial-to-USB cable? It seems that this should be working, as serial console on Jetson is fairly standard and works well even from the boot loader stage. I’m thinking there is some setting under Mac which needs to be added.

EDIT: I forgot to mention, run gtkterm as root or sudo (or minicom or any serial app).

I have Windows 8, Ubuntu 12.04 and OS X 10.9 machines on hand. I’ve tried with screen and gtkterm on both my mac and Ubuntu machine, and I’m still getting no output whatsoever from the serial port. On both machines, I do get a new device under /dev/tty* when I plug in the USB adapter which is connected to the K1

From the host side this would be the exact tty needed. Being USB it should be /dev/ttyUSB*. If you start with the Jetson powered up and connected to this via the DB9 serial port, and then disconnect and reconnect the USB, then the ttyUSB* it gives you would be used. Probably requires user root or sudo from the host side.

Tried just that. It shows up as /dev/ttyUSB0. I’ve tried running it before and after powering up the K1, reconnecting as necessary

Each reconnect could change to a new ttyUSB#. I would think that even a wrong baud rate would show as something scrambled. I’m wondering if maybe your serial USB adapter is not supported…USB hot plug would still work but serial would be blank. The most common chip for serial USB (and very well supported) are the FTDI chips. Do you have reason to know this device works? What model is it?