This guide details the process of building a systemd image from the Angstrom source on a ubuntu or debian host.
For the steps below I have used Debian 6.0.4 via a net install
Install Debian 6.0.4 net install choosing only Standard system utilites
From root command prompt run
sudo apt-get install openssh-server
This will allow us to access the machine remotely via ssh
Following instructions on http://wiki.openembedded.org/index.php/OEandYourDistro#Debian
Install the mandatory packages as root
sudo apt-get install sed wget cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath dosfstools kpartx
Logout as root and return to regular user
Following instructions on http://www.angstrom-distribution.org/demo/beaglebone/ in the section down the bottom on “how to reproduce”
Run the following commands
git clone git://git.angstrom-distribution.org/setup-scripts
EDIT: I had trouble with this line since I posted this so I have since been using “git clone https://github.com/Angstrom-distribution/setup-scripts.git”
cd setup-scripts
./oebb.sh config beaglebone/
MACHINE=beaglebone ./oebb.sh bitbake systemd-image
When the build completes the files of interest will be stored in.
cd ~/setup-scripts/build/tmp-angstrom_2010_x-eglibc/deploy/images/beaglebone/
Insert the BeagleBone SD Card into the debian host.
Run dmesg
you should see the last few lines look like this
[28915.028000] mmc0: new SDHC card at address 1234
[28915.675869] mmcblk0: mmc0:1234 SA04G 3.63 GiB
[28915.675912] mmcblk0: p1 p2
The above notes show that we have an SD card mounted at /dev/mmc/blk0
We now want to format the SD card using the script file here http://www.angstrom-distribution.org/demo/beaglebone/mkcard.txt
First get the script on the debian host
wget http://www.angstrom-distribution.org/demo/beaglebone/mkcard.txt
Rename the file
mv mkcard.txt mkcard.sh
Login as root
su
Make the file executable
chmod +x mkcard.sh
Run the script to format the SD card
./mkcard.sh /dev/mmcblk0
If this is runs nicely then write the Angstrom image to the BeagleBone SD card using
Create a place to mount the new file systems
cd /mnt/
mkdir boot
mkdir Angstrom
Mount the File systems
mount -t vfat /dev/mmcblk0p1 /mnt/boot/
mount /dev/mmcblk0p2 /mnt/Angstrom/
Now using df -h we can see the file systems are mounted and empty
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 226G 9.3G 205G 5% /
tmpfs 1013M 0 1013M 0% /lib/init/rw
udev 1009M 212K 1009M 1% /dev
tmpfs 1013M 0 1013M 0% /dev/shm
/dev/mmcblk0p1 70M 512 70M 1% /mnt/boot
/dev/mmcblk0p2 3.6G 72M 3.3G 3% /mnt/Angstrom
Change directory back to the location of our build
cd /home/craig/setup-scripts/build/tmp-angstrom_2010_x-eglibc/deploy/images/beaglebone/
Copy the boot files to the first partition
cp u-boot.img /mnt/boot/
cp MLO /mnt/boot/
cp uImage-3.2-r5b+gitr09e9651bcf2ee8d86685f2a8075bc6557b1d3b91-beaglebone-20120311054152.bin /mnt/boot
Rename the uImage to just uImage
mv /mnt/boot/uImage-3.2-r5b+gitr09e9651bcf2ee8d86685f2a8075bc6557b1d3b91-beaglebone-20120311054152.bin /mnt/boot/uImage
Copy the root filesystem from the tarball we created earlier to the second partition
tar -xjv -C /mnt/Angstrom/ -f Angstrom-systemd-image-eglibc-ipk-v2012.03-core-beaglebone.rootfs.tar.bz2
Unmount the SD card
umount /mnt/boot
umount /mnt/Angstrom
Your SD card is now ready for booting.
Remove the SD card from the Debian host
Remove all cables from BeagleBone
Insert SD card into BeagleBone
Plug in Ethernet cable to BeagleBone
Plug in power adapter.
The LEDs on the BeagleBone should flash as the device is booting.
Once it has booted it should show up in your routers DHCP Client list with the hostname “beaglebone”
You should now have access to the BeagleBone via an SSH client.
Using the username “root” password “root”
To change the root password use the passwd command.
Now you have a systemd image running on your BeagleBone
Your post is really useful. I followed your instructions and successfully booted beaglebone. Thank you.
Is there a way to get a later version of Linux using your instructions?
Right now my version is:
Linux beaglebone 3.2.11+ #1 Mon Mar 26 01:12:33 CDT 2012 armv7l GNU/Linux
The instruction : git clone git://git.angstrom-distribution.org/setup-scripts
gave me the above version.
I would like to get 3.2.25
To create u-boot.img & MLO you need to execute following:
MACHINE=beaglebone ./oebb.sh bitbake u-boot
To create angstrom tarball you need to execute following:
MACHINE=beaglebone ./oebb.sh bitbake console-image
Very useful, but I have a question. If you want to change the config of your kernel filesystem to add a SPI driver (f.e.), How can I change the config file and recompile the kernel system files?
Hi Ramon, Do you have succeeded change the config file and recompile the kernel system files?
Thanks!
I’m trying to follow this and get the following error when I run “MACHINE=beaglebone ./oebb.sh bitbake systemd-image”… any idea how to fix it?…
| ERROR: Function failed: Fetcher failure for URL: ‘ftp://ftp.debian.org/debian/pool/main/n/netbase/netbase_4.47.tar.gz’. Checksum mismatch!
| File: ‘/home/jayk/ang/setup-scripts/sources/downloads/netbase_4.47.tar.gz’ has md5 checksum ecde675df5188038b3d5f6aae04e65aa when fcd87a62f177592724a8066e3774ae97 was expected
| File: ‘/home/jayk/ang/setup-scripts/sources/downloads/netbase_4.47.tar.gz’ has sha256 checksum 94951e3c9bcd0df25d8a9898b1b6768c78aa8e1a71e5d51547ea74c3f3be37c7 when a7e6525c9a09b00eff3395d09739b3c70a18bff8d13f7daa21fdf81989387726 was expected
NOTE: package netbase-4.47-r2: task do_fetch: Failed
ERROR: Task 1373 (/home/jayk/ang/setup-scripts/sources/openembedded-core/meta/recipes-core/netbase/netbase_4.47.bb, do_fetch) failed with exit code ’1′
Waiting for 1 running tasks to finish:
0: avahi-0.6.31-r2.0 do_package_write_ipk (pid 28723)
NOTE: package avahi-0.6.31-r2.0: task do_package_write_ipk: Succeeded
NOTE: Tasks Summary: Attempted 3026 tasks of which 3021 didn’t need to be rerun and 1 failed.
Summary: 1 task failed:
/home/jayk/ang/setup-scripts/sources/openembedded-core/meta/recipes-core/netbase/netbase_4.47.bb, do_fetch
Summary: There were 4 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
If you get an error when doing the mkcard.sh about “apparently in use by the system; will not make a filesystem here”.
Edit the script and just before the line:
# now make partitions.
Add this:
# Fix for that mdsetup issue
# URL: http://trac.mondorescue.org/ticket/327
echo DMSETUP FIX
/sbin/dmsetup status
sleep 2
/sbin/dmsetup remove_all
sleep 2
/sbin/dmsetup status
sleep 2
Hello, and thank you for this helpful article.
All is fine until I run bitbake, I get the following error…
ERROR: OE-core’s config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Failed to create a file with a long name in TMPDIR. Please use a filesystem that does not unreasonably limit filename length.
Failed to create a file with a long name in SSTATE_DIR. Please use a filesystem that does not unreasonably limit filename length.
ERROR: Execution of event handler ‘check_sanity_eventhandler’ failed
any ideas?
Thank you in advance
Technosham,
I am in the same boat you are. Unfortunately, we are using eCryptfs, which limits filename length. I’m not sure what the next move is? Re-partition? Modify sanity.conf to ignore the issue?
If you have learned a solution, please share it.
Hi,
your post is really helpful, but I have one question.
Is this installation only for ethernet connection? I need WiFi access to my Beagleboard…
I have a liquidware kit which includes a Belkin USB wirelss adapter. The adapter was supposed to be fully compatible with the beagleboard but unfortunatelly it doesn’t seem to be, so I have to customize it.
Any help would be appreciated!
Thanks,
Marina
I followed the mentioned steps, but got the following error.
————————————————————————————————————————————————–
NOTE: package glib-2.0-1_2.30.3-r1: task do_compile: Failed
ERROR: Task 638 (/home/kaushik/workspace/setup-scripts/sources/openembedded-core/meta/recipes-core/glib-2.0/glib-2.0_2.30.3.bb, do_compile) failed with exit code ’1′
Waiting for 1 running tasks to finish:
0: libpam-1.1.5-r4 do_compile (pid 15814)
NOTE: package libpam-1.1.5-r4: task do_compile: Succeeded
NOTE: Tasks Summary: Attempted 1043 tasks of which 925 didn’t need to be rerun and 1 failed.
Summary: 1 task failed:
/home/kaushik/workspace/setup-scripts/sources/openembedded-core/meta/recipes-core/glib-2.0/glib-2.0_2.30.3.bb, do_compile
Summary: There were 4 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
—————————————————————————————————————————————————–
Can anyone suggest why is this error coming during build and how can it be resolved? I saw someone else has also posted similar problem.
Hi,
this blog had make my Beaglebone fly !
Thanks a lot for the informations!
One question:
Here:
http://downloads.angstrom-distribution.org/demo/beaglebone/
one can find the newest builds of the demo image, which is shipped with the Beaglbone’s SD-card.
This demo images is currently based on Linux kernel 3.2.*28*
But regardless what I am doing (for example following the instructions on the bottom of the page linked above…) my copy of the Angstrom distribution only builds
Linux kernel 3.2.*23*…. five kernels ‘behind’…
How can I get the same base as from what the demo images are build?
Thank you very much for any help in advance!
Best regards,
mcc
Does this work exactly for the beaglebone black?
If not, what changes are needed?
Thanks,
Sylvio