Installing compiled images onto Beaglebone Black SD card
10 Oct 2013
What’s the point?
So I managed to compile an image for the Beaglebone Black. The documentation is not bad, but it took some time to wait for some bugs to get updated in the git
. This was thanks to VirtualBox and Ubuntu, as compiling on OS X was too painful. Compiling pretty much followed the basis instructions at the main website. And I could see the image files available (hint: look in the subfolder work
and find the deploy
subfolder.
But how to get this stuff onto the Beaglebone Black, and running?
Creating a bootable SD card for Beaglebone Black
Actually, someone before me has been considerate and shared his experience (locally) compiling and installing Angstrom for Beaglebone Black. This is pretty much a copy of what he does.
Because of trouble getting a USB cardreader to show up un VirtualBox, and the incompatibility of the mkcard.txt
script with OS X, I decided to use the BBB itself to write the SD card. This is based on the standard firmware from the circuitco website. So that is the set of executables that I had available. I booted the BBB with a nonbooting card (so that it will boot from the eMMC). The SD card then is located at /mnt/sda
. The beaglebone is also on the network via the LAN port.
Then:
#!bash
root@beaglebone:~# wget http://www.angstrom-distribution.org/demo/beaglebone/mkcard.txt
mkcard.txt mkcard.sh
chmod +x mkcard.sh
./mkcard.sh /dev/sda
cd /mnt
mkdir Angstrom
mkdir boot
mount -t vfat /dev/disk/by-label/boot boot
mount /dev/disk/by-label/Angstrom Angstrom/
df -h
This results in the following confirmation that we have stuff mounted right:
#!bash
Filesystem Size Used Avail Use% Mounted on
rootfs 1.7G 1.1G 515M 69% /
/dev/root 1.7G 1.1G 515M 69% /
devtmpfs 250M 0 250M 0% /dev
tmpfs 250M 4.0K 250M 1% /dev/shm
tmpfs 250M 252K 250M 1% /run
tmpfs 250M 0 250M 0% /sys/fs/cgroup
tmpfs 250M 4.0K 250M 1% /tmp
/dev/mmcblk0p1 70M 55M 16M 79% /media/BEAGLEBONE
/dev/sda1 70M 512 70M 1% /mnt/boot
/dev/sda2 1.8G 35M 1.7G 3% /mnt/Angstrom
Ready for installing the images!
Installing the images
Simply followed the stuff from here:
#!bash
cd
mkdir installs
cd installs
scp -r pragtich@10.0.0.102user@host:~/compiled-image-deploy-folder .
cd compiled-image-deploy-folder
cp u-boot-beaglebone-2013.04-r0.img /mnt/boot/uImage
cp MLO-beaglebone-2013.04 /mnt/boot/MLO
tar -xmv -C /mnt/Angstrom/ -f Angstrom-systemd-image-eglibc-ipk-v2012.12-beaglebone.rootfs.tar.gz
umount /mnt/boot
umount /mnt/Angstrom
Then reboot and…
Test!
#!bash
root@beaglebone:~# uname -a
Linux beaglebone 3.8.13 #1 SMP Sun Oct 13 15:59:25 CEST 2013 armv7l GNU/Linux
root@beaglebone:~# ps aux
ps: invalid option -- 'a'
BusyBox v1.20.2 (2013-09-14 09:40:16 CEST) multi-call binary.
Usage: ps
So the smaller ps
delivered by BusyBox
is now active, not the richer GNU version in the default install. Running ps
also shows much less processes:
#!bash
root@beaglebone:~# ps PID USER VSZ STAT COMMAND
1 root 4680 S {systemd} /sbin/init
2 root 0 SW [kthreadd]
3 root 0 SW [ksoftirqd/0]
4 root 0 SW [kworker/0:0]
5 root 0 SW< [kworker/0:0H]
6 root 0 SW [kworker/u:0]
7 root 0 SW< [kworker/u:0H]
8 root 0 SW [migration/0]
9 root 0 SW [rcu_bh]
10 root 0 SW [rcu_sched]
11 root 0 SW [watchdog/0]
12 root 0 SW< [khelper]
13 root 0 SW [kdevtmpfs]
14 root 0 SW< [netns]
15 root 0 SW [kworker/0:1]
16 root 0 SW [bdi-default]
17 root 0 SW< [kintegrityd]
18 root 0 SW< [kblockd]
19 root 0 SW [khubd]
20 root 0 SW [irq/86-44e0b000]
21 root 0 SW [kworker/u:1]
24 root 0 SW [irq/23-tps65217]
27 root 0 SW [irq/46-4819c000]
36 root 0 SW< [rpciod]
38 root 0 SW [khungtaskd]
39 root 0 SW [kswapd0]
40 root 0 SW [fsnotify_mark]
41 root 0 SW< [nfsiod]
42 root 0 SW< [crypto]
45 root 0 SW< [pencrypt]
46 root 0 SW< [pdecrypt]
53 root 0 SW< [OMAP UART0]
57 root 0 SW< [kpsmoused]
58 root 0 SW [irq/150-mmc0]
70 root 0 SW [kworker/u:2]
71 root 0 DW [mmcqd/0]
74 root 0 SW [mmcqd/1]
75 root 0 SW [mmcqd/1boot0]
76 root 0 SW [mmcqd/1boot1]
77 root 0 SW< [deferwq]
80 root 0 SW< [kworker/0:1H]
81 root 0 SW [jbd2/mmcblk0p2-]
82 root 0 SW< [ext4-dio-unwrit]
89 root 36536 S /lib/systemd/systemd-journald
91 root 3428 S /lib/systemd/systemd-udevd
94 root 0 SW [kworker/0:2]
117 root 0 SW [ext4lazyinit]
204 root 0 SW [flush-179:0]
304 root 2976 S /lib/systemd/systemd-logind
305 root 2152 S /sbin/klogd -n
306 root 2216 S /sbin/syslogd -n -C64
308 root 5392 S /usr/sbin/connmand -n
309 avahi 3168 S avahi-daemon: running [beaglebone.local]
311 root 1844 S /sbin/agetty -s ttyO0 115200
312 root 1844 S /sbin/agetty --noclear tty1 38400 linux
317 avahi 3052 S avahi-daemon: chroot helper
323 root 4644 S /usr/sbin/wpa_supplicant -u
327 root 2956 S /usr/sbin/dropbear -i -r /etc/dropbear/dropbear_rsa_host_key -p 22
328 root 2332 S -sh
331 root 2332 R ps
root@beaglebone:~# ps
Done!