I received a Beaglebone as a birthday gift. It is a powerful little board that contains Texas Instrument’s Sitara ARM Cortex-A8 microprocessor. According to the BeagleBone website, “The BeagleBone is the low-cost, high-expansion hardware-hacker focused BeagleBoard.” You can find out more about it here: http://beagleboard.org/bone. The following are some notes I took while getting acquainted with the BeagleBone.
(Please note that you are probably better off using the official instructions at the BeagleBone Getting Started page. The steps below worked on my hardware and operating system (Ubuntu 10.04). Also, I installed the BeagleBoard Linux SDK before messing around with the BeagleBone. The FTDI driver just worked, I did not have to mess with it–so your mileage may vary if you follow the instructions below verbatim. Finally, be very careful when using dd not to overwrite the wrong drive!)
Making a backup of the provided microSD card
1. Make a directory for our BeagleBone images.
o@ubuntu:$ cd beaglebone_backup
2. Connect the sd card to the host computer and find it’s mount point. I like to use dmesg.
[291266.566727] sd 68:0:0:0: Attached scsi generic sg3 type 0
[291266.575483] sd 68:0:0:0: [sdc] 7626752 512-byte logical blocks: (3.90 GB/3.63 GiB)
[291266.577006] sd 68:0:0:0: [sdc] Write Protect is off
[291266.577017] sd 68:0:0:0: [sdc] Mode Sense: 0b 00 00 08
[291266.577024] sd 68:0:0:0: [sdc] Assuming drive cache: write through
[291266.579100] sd 68:0:0:0: [sdc] Assuming drive cache: write through
[291266.579114] sdc: sdc1 sdc2
[291266.584546] sd 68:0:0:0: [sdc] Assuming drive cache: write through
[291266.584559] sd 68:0:0:0: [sdc] Attached SCSI removable disk
3. In my system the sd card mounted on /dev/sdc. One partition is mounted on /dev/sdc1 and the other on /dev/sdc2. We unmount these two partitions so our backup image is not accidentally corrupted.
4. Next we proceed to copy the image from the sd card to a compressed file named beaglebone_default.img.gz. (I use a block size of 8M because that is what worked best for me.)
465+1 records in
465+1 records out
3904897024 bytes (3.9 GB) copied, 284.111 s, 13.7 MB/s
( ** Note: Here is how to restore the backup image to an sd card–takes a while!**)
0+113329 records in
0+113329 records out
3904897024 bytes (3.9 GB) copied, 723.991 s, 5.4 MB/s
Updating to the newest demo image
1. Download the newest image from http://www.angstrom-distribution.org/demo/beaglebone/
2. Copy image to sd card–it takes a while.
0+113329 records in
0+113329 records out
3904897024 bytes (3.9 GB) copied, 723.991 s, 5.4 MB/s
Booting the BeagleBone, getting a serial console, and more
1. Connect the BeagleBone to a router using Ethernet.
2. Connect the BeagleBone using the provided cable to a host machine. Give it a minute to boot.
3. Find out what /dev/ttyUSB* the BeagleBone is connected to.
ttyUSB1
4. Ok, now I know it is connected to /dev/ttyUSB1, so use screen or minicom to establish a serial console. With screen you will get a blank screen with a blinking cursor, from there just press enter to see the Angstrom login. (login in as root with no password)
The Angstrom Distribution beaglebone ttyO0
Angstrom v2012.01-core - Kernel 3.1.0+
beaglebone login: root
Last login: Wed Jan 11 08:49:23 GMT 2012 from ::ffff:192.168.1.5 on pts/0
root@beaglebone:~#
5. Once we have a serial console, we can find our IP address and make note of it so that we can connect via SSH later on.
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::425f:c2ff:fe76:770a/64 Scope:Link
6. We can also ping Google to see if our internet connection is good.
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::425f:c2ff:fe76:770a/64 Scope:Link
PING google.com (74.125.227.114) 56(84) bytes of data.
64 bytes from dfw06s16-in-f18.1e100.net (74.125.227.114): icmp_req=1 ttl=54 time=49.9 ms
64 bytes from dfw06s16-in-f18.1e100.net (74.125.227.114): icmp_req=2 ttl=54 time=55.8 ms
64 bytes from dfw06s16-in-f18.1e100.net (74.125.227.114): icmp_req=3 ttl=54 time=34.6 ms
64 bytes from dfw06s16-in-f18.1e100.net (74.125.227.114): icmp_req=4 ttl=54 time=36.4 ms
64 bytes from dfw06s16-in-f18.1e100.net (74.125.227.114): icmp_req=5 ttl=54 time=25.8 ms
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 25.873/40.556/55.828/10.862 ms
7. How about we add a root password and a normal user account.
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@beaglebone:$ adduser octavio
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
8. You can upgrade the Angstrom distro using opkg but this might not be a very good idea.
Please read the Angstrom manual and note this warning: IT IS VITAL THAT YOU MAKE A BACKUP BEFORE UPGRADING! Rendering your device unbootable/unstable and loss of data is entirely your risk.
root@beaglebone:$ opkg upgrade 2>&1 | tee /var/log/opkgupgrade.log
9. Python is installed in the default demo image, but let’s see if pyserial is available to install from opkg. If it is let’s install it.
python-pyserial - 2.4-ml3 - python-pyserial version 2.4-ml3
python-pyserial-dbg - 2.4-ml3 - python-pyserial version 2.4-ml3 - Debugging files
python-pyserial-dev - 2.4-ml3 - python-pyserial version 2.4-ml3 - Development files
root@beaglebone:$ opkg install python-pyserial
Installing python-pyserial (2.4-ml3) to root...
Downloading http://feeds.angstrom-distribution.org/feeds/core/ipk/eglibc/armv7a/python/python-pyserial_2.4-ml3_armv7a.ipk.
Configuring python-pyserial.
Getting an ssh shell
1. Find the IP address of the BeagleBone by connecting to it using the serial console or by finding it in the client list of your router. Open a terminal and connect to the BeagleBone as root using ssh:
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is ea:36:22:a6:66:dd:e6:4c:2b:52:74:d1:d5:af:4a:57.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.
root@192.168.1.10's password:
root@beaglebone:~#




Thank you, very useful.
Helpful and very nice enclosure!
Its very Helpful…..thank you so much…….
Hi, nice information
Also like that box where did u get one?
Regards
http://builttospecstore.storenvy.com/products/225603-beagle-bone-enclosure
Hi, I just got it working! I am trying to make a LED working in P8_3 ! but no success at all so far! and what is funny is when i wire the LED in P8_3 and GND ! when I run the programa it shut off the board! am I wiring up something wrong? do I need a resistor?
I have not yet played with the GPIO’s because my BeagleBone’s PHY was faulty and I had to return it. I should be getting a replacement any day now. If I were you I would checkout the BeagleBone System Reference and see how they hooked up the user leds on the board.
I did ‘upgrade’ the linux installation on the SD card that was shipped with the beaglebone with these commands:
opkg updateopkg upgradeThat ‘broke’ the ethernet connection: The board itself and any router connected to the board via a cable would not recognize the connection.
Both, the other shipped SD card (the one labeled TI SDK) and a newly created card using the latest disk image are working fine, which suggests that the update / upgrade installed some buggy ethernet related package?
Cheers
Martin
There is always that risk when upgrading to the newest Angstrom. () I was bitten a couple times trying to upgrade my Chumby Hacker board but the two times I’ve upgraded the BeagleBone everything went smooth. Thanks for the update, I’ll make a note above warning readers to proceed with caution.
Is it possible to get network connectivity simply via the host and only the USB serial emulator? Also I am having some difficulty using the #screen for whatever reason. Minicom seems to really work. Screen usually leaves me at a blank screen..even after hitting every button. Outstanding work on this guide. Precisely what I was looking for, your research and this guide have been essential. Thanks!
V/R
P.S. Have any guides for booting the image..or at least seeing a gui from BB?
[...] http://borderhack.com/?p=1062 [...]
[...] First steps with the beaglebone Configuring Anström Linux ← New PCBs for our RGBA driver just arrived [...]
Hello,
Today I bought a beaglebone and have just started playing with it. However I could not even update it. At first I was getting errors like:
opkg_download: Failed to download
Then, I checked for the net and found that someone has solved his problem by manually changing the DNS server by editing the /etc/resolv.conf file. Then I changed my DNS server to 8.8.8.8 and 208.67.222.222. But none of them worked. I am still getting tons of these errors:
Downloading http://feeds.angstrom-distribution.org/feeds/core/ipk/eglibc/armv7a/base/Packages.gz. wget: bad address ‘feeds.angstrom-distribution.org’
I do not know if I have any problem with my ethernet connection:
root@beaglebone:~# ifconfig eth0 Link encap:Ethernet HWaddr D4:94:A1:91:36:5F inet addr:169.254.205.214 Bcast:169.254.255.255 Mask:255.255.0.0 inet6 addr: fe80::d694:a1ff:fe91:365f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1372 errors:0 dropped:0 overruns:0 frame:0 TX packets:1314 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:178008 (173.8 KiB) TX bytes:1393690 (1.3 MiB) Interrupt:40
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:564 errors:0 dropped:0 overruns:0 frame:0 TX packets:564 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:47904 (46.7 KiB) TX bytes:47904 (46.7 KiB)
I tried to ping google:
root@beaglebone:~# ping -c 5 google.com ping: unknown host google.com
Which steps should I follow to update my system? I think my problem is related to my ethernet connection. But I do not know how to check it. I am sorry if my question is quite a newbie question. But I really checked for net and tried most of the solutions that worked for others. However I could not solve my problem.
Thank you for your help,
Regards
Great guide! This is the first guide that told me to connect to the router, which was lost on me previously. Also the first guide to show how to find the IP address through the serial terminal.
[...] http://borderhack.com/?p=1062 [...]
[...] A good review of recommended first steps can be found at the borderhack blog. [...]
For those who are interested, the latest copies of Angstrom are in xz archive formats which requires:
# xz -dkc Angstrom-Cloud9-IDE-eglibc-ipk-v2011.10-core-beaglebone-r0.img.xz > /dev/sdX
All I did was change his [zcat Cloud9-IDE-eglibc-ipk-v2011.12-core-beaglebone-2011.12.26.img.gz | sudo dd of=/dev/sdc bs=8M]
to [xz -dkc Angstrom-Cloud9-IDE-eglibc-ipk-v2011.10-core-beaglebone-r0.img.xz | sudo dd of=/dev/sdc bs=8M] without the brackets, of course, and it worked.
For more about this visit: http://downloads.angstrom-distribution.org/demo/beaglebone/
Thanks for these instructions, they are VERY useful for trying to setup via a linux terminal.
Also forgot to add that with the latest update of Angstrom Beaglebone, the Opkg update repository is cutsom built for the Beaglebone, so the problem of corrupted Beaglebone installations after an update should go away. You can see the feed are coming from: http://feeds.angstrom-distribution.org/feeds/v2012.05/ipk/eglibc/armv7a/machine/beaglebone/
Unfortunately, I have to start all over again because something got corrupted and now Angstrom takes FOREVER to do anything.
I must be doing something right. (Reading this note was step 1).
I plugged in an ethernet cable to the BB and a router on my LAN. From reading this note, it seemed
that the BB would ask for an IP address on boot, which it did. Looking in the /var/log/messages file
of my host system, I found the IP address that my DHCP server had assigned.
Then, from a terminal session on my host F17 system, I did:
ssh 192.168.49.69
and ta-ta, I logged into the BB !!
I then did:
opkg upgrade
but nothing happened. Then I read more in your note and did:
opkg update
opkg upgrade 2>&1 | tee /var/log/upgrade00.log
It rolled along for over an hour, printing out diagnostic information as it went.
Every once in awhile, it would pause for several minutes, but then would resume.
At the end, it complained about not enough room to write and then quit.
Looking at the output of the ‘df’ command showed that there was quite a bit of space.
So, I just repeated the steps:
opkg update
opkg upgrade 2>&1 | tee upgrade01.log
At what looked like a normal end, I did:
uname -a
and it outputted a build date of Thu Jun 14 23:26:20 CEST, so I thought to reboot
Now the output of ‘uname -a’ is:
Linux beaglebone 3.2.30 #1 Wed Oct 17 09:39:19 CEST 2012 armv7l GNU/Linux
Looks good – thanks much to everyone.
opkg upgrade is buggy. It broke some /etc config files for me and I’ve heard others have had problems.
How do we upgrade packages with opkg without uinstalling like ssh for iternet facing security updates?
Your tutorial is do well written.. Bravo!
I can’t help but ask about something I am banging my head against the wall about. I am failing at installing Android on the Beaglebone but my only reason to try is simply to play a video file via the LCD7 cape. Have you been able to play a video file on your board with Angstrom?
Thanks!