Talking to a BeagleBone Black from Linux
Just a couple of tips for communicating with your BeagleBone Black once you have it flashed with the latest Angstrom:
Configure the USB network
The Beaglebone Black running Angstrom has a wonderful feature: when it's connected to your desktop via the mini USB cable, you can not only mount it like a disk, but you can also set up networking to it.
If the desktop is running Linux, you should have all the drivers you need.
But you might need a couple of udev rules to make the network device
show up. I ran the
mkudevrule.sh
from the official Getting Started page, which creates four rules
and then runs sudo udevadm control --reload-rules
to enable them
without needing to reboot your Linux machine.
Now you're ready to boot the BeagleBone Black running Angstrom.
Ideally you'll want it connected to your desktop machine by
the mini USB cable, but also plugged in to a separate power supply.
Your Linux machine should see it as a new network device, probably
eth1: run ifconfig -a
to see it.
The Beagle is already configured as 192.168.7.2. So you can talk to it by configuring your desktop machine to be .1 on the same network:
ifconfig eth1 192.168.7.1
So now you can ssh from your desktop machine to the BBB, or point your browser at the BBB's built in web pages.
Make your Linux machine a router for the Beaglebone
If you want the Beaglebone Black to have access to the net, there are two more things you need to do.
First, on the BBB itself, run these two lines:
/sbin/route add default gw 192.168.7.1 echo "nameserver 8.8.8.8" >> /etc/resolv.confYou'll probably want to add these lines to the end of /usr/bin/g-ether-load.sh on the BBB, so they'll be run automatically every time you boot.
Then, back on your Linux host, do this:
sudo iptables -A POSTROUTING -t nat -j MASQUERADE echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
Now you should be able to ping, ssh or otherwise use the BBB to get anywhere on the net.
Once your network is running, you might want to run
/usr/bin/ntpdate -b -s -u pool.ntp.org
to set the time, since the BBB doesn't have a real-time clock (RTC).
Serial monitor
If you're serious about playing with hardware, you'll probably want a serial cable, for those times when something goes wrong and your board isn't talking properly over USB.
I use the Adafruit console cable -- it's meant for Raspberry Pi but it works fine with the BeagleBone, since they both use the same 3.3v logic levels. It plugs in to the pins right next to the "P9" header, on the power-supply-plug side of the board. The header has six pins: plug the black wire (ground) into pin 1, the one closest to the power plug and ethernet jack. Plug the green wire (RXD) into pin 4, and the white wire (TXD) into 5, the next-to-last pin.
Do not plug in the red power wire -- leave it hanging. It's 5 volts and might damage the BBB if you plug it in to the wrong place.
In case my photo isn't clear enough (click for a larger image), Here's a diagram made by a helpful person on #beagle: BeagleBone Black serial connections.
Once the cable is connected, now what? Easy:
screen /dev/ttyUSB0 115200That requires read-write privileges on the serial device /dev/ttyUSB0; if you get a Permission Denied type error, it probably means you need to add yourself to group dialout. (Changing groups requires logging out and logging back in, so if you're impatient, just run screen as root.)
I used the serial monitor while flashing my new Angstrom image
(which is how I found out about how it spends most of that hour
updating Gnome desktop stuff). On the Raspberry Pi, I was dependent
on the serial cable for all sorts of things while I worked on hardware
projects; on the BeagleBone, I suspect I may use the USB networking
feature a lot more. Still, the serial cable will be handy to have when
things go wrong, or if I use a different Linux distro (like Debian) that
doesn't enable the USB networking feature.
[ 19:41 Jul 16, 2013 More hardware | permalink to this entry | ]