EBC Exercise 06 Connecting without ssh

From eLinux.org
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder

What do you do if your Bone is booting up, but you can't connect with ssh? Here are two things to try.

Connect with a virtual serial port

Many things must happen for the network to boot up and accept an ssh connection. Long before the network is ready, the Bone opens a virtual serial port that you can connect to.

Connect your bone to the host via the USB cable and wait for it to boot. If you can't ssh from the host, run the following on the host:

host$ ls /dev/tty*
/dev/tty    /dev/tty2   /dev/tty31  /dev/tty43  /dev/tty55  /dev/ttyACM0    /dev/ttyS19  /dev/ttyS30
/dev/tty0   /dev/tty20  /dev/tty32  /dev/tty44  /dev/tty56  /dev/ttyprintk  /dev/ttyS2   /dev/ttyS31
/dev/tty1   /dev/tty21  /dev/tty33  /dev/tty45  /dev/tty57  /dev/ttyS0      /dev/ttyS20  /dev/ttyS4
/dev/tty10  /dev/tty22  /dev/tty34  /dev/tty46  /dev/tty58  /dev/ttyS1      /dev/ttyS21  /dev/ttyS5
/dev/tty11  /dev/tty23  /dev/tty35  /dev/tty47  /dev/tty59  /dev/ttyS10     /dev/ttyS22  /dev/ttyS6
/dev/tty12  /dev/tty24  /dev/tty36  /dev/tty48  /dev/tty6   /dev/ttyS11     /dev/ttyS23  /dev/ttyS7
/dev/tty13  /dev/tty25  /dev/tty37  /dev/tty49  /dev/tty60  /dev/ttyS12     /dev/ttyS24  /dev/ttyS8
/dev/tty14  /dev/tty26  /dev/tty38  /dev/tty5   /dev/tty61  /dev/ttyS13     /dev/ttyS25  /dev/ttyS9
/dev/tty15  /dev/tty27  /dev/tty39  /dev/tty50  /dev/tty62  /dev/ttyS14     /dev/ttyS26
/dev/tty16  /dev/tty28  /dev/tty4   /dev/tty51  /dev/tty63  /dev/ttyS15     /dev/ttyS27
/dev/tty17  /dev/tty29  /dev/tty40  /dev/tty52  /dev/tty7   /dev/ttyS16     /dev/ttyS28
/dev/tty18  /dev/tty3   /dev/tty41  /dev/tty53  /dev/tty8   /dev/ttyS17     /dev/ttyS29
/dev/tty19  /dev/tty30  /dev/tty42  /dev/tty54  /dev/tty9   /dev/ttyS18     /dev/ttyS3

There are a number of tty's out there, but the one we want is /dev/ttyACM0 (highlighted above). You can connect to it via the screen command.

host$ sudo apt update
host$ sudo apt install screen
host$ ls -ls /dev/ttyACM0
0 crw-rw---- 1 root dialout 166, 0 Dec 26 15:37 /dev/ttyACM0
host$ sudo adduser $USER dialout
host$ screen /dev/ttyUSB0 115200
bone login: Debian

You have to be in the group dialout to access /dev/ttyACM0

You may have to hit Enter a couple of times to get the login prompt.

You can now access your Bone, but it's a slower connection (115200 bits per second) When you are done you can exit screen by entering Ctrl-A followed by \. When prompted, hit y.

No Virtual Port

What if you don't see /dev/ttyACM0? See https://elinux.org/EBC_Exercise_21a_Boot_Sequence to learn how to connect a FTDI cable. The FTDI serial port allows you to see what the U-boot boot loader is doing, even before the kernel starts.