The Ångström distribution is a Linux distribution for many embedded devices, the Beaglebone included. Here I am going to document the steps that I took in order to build a full distribution of Angstrom (easier to write without the unusual letters). I am working from the steps described at this site: http://www.angstrom-distribution.org/ but here I will document any difficulties and the times involved.
Step 1 – Download the setup scripts (<1 minute):
I am working from a directory called beaglebone that I created on a desktop Ubuntu installation. The directory is /home/molloyd/beaglebone/
1 |
git clone git://github.com/Angstrom-distribution/setup-scripts.git |
Ensure that you have git installed – If not then type “sudo apt-get install git” A very short step ( <1 minute). This created a directory on my system called setup-scripts
Step 2 – Configure for the beaglebone ( <10 minutes):
1 |
cd setup-scripts |
1 |
MACHINE=beaglebone ./oebb.sh config beaglebone |
This builds the profile for the beaglebone.
The first time I ran this it came up with an error on using bash rather than sh. I checked the oebb.sh script and it was configured for bash (this may have happened automatically) so, I tried it again and it worked the second time. This step took about 10 minutes.
Step 3 – Check for updates (<1 minute):
1 |
MACHINE=beaglebone ./oebb.sh update |
No changes were made.
Step 3 – The long one! Build time… (6+ hours)
This is where you will find out if your desktop Linux distribution has any missing tools. The obvious tools that will be missing are bitbake, but I had a few more too. I installed these by:
1 2 3 |
sudo apt-get install bitbake sudo apt-get install diffstat sudo apt-get install chrpath |
And so on as required – Others required include: cvs, build-essential, coreutils, texinfo, sed, gawk, make, unzip, gcc, g++, subversion, xmlto, docbook, etc.
1 |
sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm |
See: http://www.openembedded.org/wiki/Getting_started for more information
Warning – before you continue make sure you have plenty of space. The build will require about 12GB of space and maybe even more during build. Leave about 20GB of space.
At this point you can choose a particular “recipe” for the type of build that you require. You can have a look at the sources directory (/home/molloyd/beaglebone/setup-scripts/sources/meta-angstrom/) and you can apply specific patches if required.
So, once you are ready, in the directory home/molloyd/beaglebone/setup-scripts/, for a more sophisticated and complete build you could use:
1 2 |
. ~/.oe/environment-angstromv2012.12 bitbake cloud9-image |
If necessary you could clean it up using:
1 |
bitbake -c clean cloud9-image |
In this example I am going to use a very compact kernel image:
1 2 |
. ~/.oe/environment-angstromv2012.12 bitbake systemd-image |
Here are the other recipes that are available (The (***) one is the recipe that I am baking):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
molloyd@molloyd-VirtualBox:~/beaglebone/setup-scripts$ find .|grep image.bb ./sources/meta-kde/recipes-images/angstrom-kde-desktop-image.bb ./sources/meta-kde/recipes-images/plasma-active-image.bb ./sources/meta-kde/recipes-images/angstrom-kde-active-image.bb ./sources/meta-kde/recipes-images/plasma-desktop-image.bb ./sources/meta-kde/recipes-packagegroups/packagegroup-kde-image.bb ./sources/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb ./sources/meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb ./sources/meta-ettus/recipes/images/systemd-openssh-image.bb ./sources/meta-ettus/recipes/images/console-openbts-devel-image.bb ./sources/meta-ettus/recipes/images/hw-test-image.bb ./sources/meta-ettus/recipes/images/gnome-qt-image.bb ./sources/meta-ettus/recipes/images/console-gnuradio-image.bb ./sources/meta-ettus/recipes/images/gnome-gnuradio-image.bb ./sources/meta-ettus/recipes/images/console-base-image.bb ./sources/meta-ettus/recipes/images/console-e1xx-devel-image.bb ./sources/meta-ettus/recipes/images/xfce-gnuradio-image.bb ./sources/meta-xilinx/recipes-core/images/initramfs-image.bb ./sources/meta-opie/recipes-opie/images/opie-kdepim-image.bb ./sources/meta-opie/recipes-opie/images/opie-xqtlauncher-image.bb ./sources/meta-opie/recipes-opie/images/opie-image.bb ./sources/meta-nslu2/recipes-bsp/slugimage/slugimage.bb ./sources/meta-smartphone/meta-samsung/recipes-bsp/images/chroot-image.bb ./sources/meta-smartphone/meta-aurora/recipes-aurora/images/aurora-image.bb ./sources/meta-smartphone/meta-shr/recipes-shr/images/shr-image.bb ./sources/meta-smartphone/meta-shr/recipes-shr/images/shr-lite-image.bb ./sources/meta-smartphone/meta-fso/recipes-freesmartphone/images/fso2-console-image.bb ./sources/meta-raspberrypi/recipes-core/images/rpi-hwup-image.bb ./sources/meta-raspberrypi/recipes-core/images/rpi-basic-image.bb ./sources/meta-ti/recipes-misc/images/ti-hw-bringup-image.bb ./sources/meta-ti/recipes-misc/images/cloud9-gfx-image.bb ./sources/meta-ti/recipes-misc/images/cloud9-image.bb ./sources/meta-ti/recipes-misc/images/cloud9-gnome-image.bb ./sources/meta-angstrom/recipes-images/angstrom/systemd-image.bb (***) ./sources/meta-angstrom/recipes-images/angstrom/console-image.bb ./sources/meta-angstrom/recipes-images/angstrom/hardware-bringup-image.bb ./sources/meta-angstrom/recipes-images/angstrom/xfce-nm-image.bb ./sources/meta-angstrom/recipes-images/angstrom/systemd-gnome-image.bb ./sources/meta-angstrom/recipes-images/angstrom/console-base-image.bb ./sources/meta-angstrom/recipes-images/angstrom/efl-nodm-image.bb ./sources/openembedded-core/meta/recipes-core/images/build-appliance-image.bb ./sources/openembedded-core/meta/recipes-qt/images/qt4e-demo-image.bb ./sources/openembedded-core/meta-hob/recipes-core/images/hob-image.bb molloyd@molloyd-VirtualBox:~/beaglebone/setup-scripts$ |
Once it is built will be left with a fairly unsatisfying prompt; however, there are no major errors and in my case the build is found in the /build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
molloyd@molloyd-VirtualBox:~/beaglebone/setup-scripts/build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone$ ls -al total 323144 drwxrwxr-x 2 molloyd molloyd 4096 Apr 22 23:38 . drwxrwxr-x 3 molloyd molloyd 4096 Apr 21 16:05 .. -rw-r--r-- 1 molloyd molloyd 17194390 Apr 22 23:38 Angstrom-systemd-image-eglibc-ipk-v2012.12-beaglebone.rootfs.tar.gz -rw-r--r-- 1 molloyd molloyd 12098124 Apr 22 23:38 Angstrom-systemd-image-eglibc-ipk-v2012.12-beaglebone.rootfs.tar.xz -rwxrwxr-x 1 molloyd molloyd 1535 Mar 25 2011 mkcard.sh lrwxrwxrwx 1 molloyd molloyd 22 Apr 21 21:12 MLO -> MLO-beaglebone-2013.04 lrwxrwxrwx 1 molloyd molloyd 22 Apr 21 21:12 MLO-beaglebone -> MLO-beaglebone-2013.04 -rwxr-xr-x 1 molloyd molloyd 99904 Apr 21 21:12 MLO-beaglebone-2013.04 -rw-rw-r-- 1 molloyd molloyd 40088861 Apr 21 16:05 modules-3.8.8-r23a-beaglebone.tgz -rw-rw-r-- 1 molloyd molloyd 294 Apr 22 23:37 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt lrwxrwxrwx 1 molloyd molloyd 67 Apr 22 23:38 systemd-image-beaglebone.tar.gz -> Angstrom-systemd-image-eglibc-ipk-v2012.12-beaglebone.rootfs.tar.gz lrwxrwxrwx 1 molloyd molloyd 67 Apr 22 23:38 systemd-image-beaglebone.tar.xz -> Angstrom-systemd-image-eglibc-ipk-v2012.12-beaglebone.rootfs.tar.xz -rwxr-xr-x 1 molloyd molloyd 378900 Apr 21 21:12 u-boot-beaglebone-2013.04-r0.img lrwxrwxrwx 1 molloyd molloyd 32 Apr 21 21:12 u-boot-beaglebone.img -> u-boot-beaglebone-2013.04-r0.img lrwxrwxrwx 1 molloyd molloyd 32 Apr 21 21:12 u-boot.img -> u-boot-beaglebone-2013.04-r0.img lrwxrwxrwx 1 molloyd molloyd 47 Apr 21 16:05 uImage -> uImage-3.8.8-r23a-beaglebone-20130421150440.bin -rw-r--r-- 1 molloyd molloyd 4217328 Apr 21 16:05 uImage-3.8.8-r23a-beaglebone-20130421150440.bin lrwxrwxrwx 1 molloyd molloyd 47 Apr 21 16:05 uImage-beaglebone.bin -> uImage-3.8.8-r23a-beaglebone-20130421150440.bin molloyd@molloyd-VirtualBox:~/beaglebone/setup-scripts/build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone$ |
You now have a .gz and a .xz version of each build.
Step 4 – Write the image to the SD Card… (10-20 mins)
Now to write the image to the SD Card. Place the SD card (I’m using a 4GB SD Card) in your desktop machine and go to the directory: setup-scripts/build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone/ or the equivalent for your build. Instructions for this are listed at: http://downloads.angstrom-distribution.org/demo/beaglebone/
Check where you have mounted your SD card:
1 2 3 4 5 6 |
molloyd@molloyd-VirtualBox:~/beaglebone/setup-scripts/build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone$ mount /dev/sda1 on / type ext4 (rw,errors=remount-ro) ... /dev/sde1 on /media/boot type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks) /dev/sde2 on /media/rootfs type ext4 (rw,nosuid,nodev,uhelper=udisks) molloyd@molloyd-VirtualBox:~/beaglebone/setup-scripts/build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone$ |
You can see here that my SD card is mounted under /dev/sde
Now to prepare the disk and to write the image:
1 2 3 4 |
wget http://<a href="http://downloads.angstrom-distribution.org/demo/beaglebone/mkcard.txt">downloads.angstrom-distribution.org/demo/beaglebone/mkcard.txt</a> mv mkcard.txt mkcard.sh sudo chmod ugo+x mkcard.sh sudo ./mkcard.sh /dev/sde |
Be very careful that this is the SD card device. The last call will give an output like (shortened):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Disk /dev/sde: 474 cylinders, 255 heads, 63 sectors/track ... Device Boot Start End #cyls #blocks Id System /dev/sde1 * 0+ 8 9- 72261 c W95 FAT32 (LBA) /dev/sde2 9 473 465 3735112+ 83 Linux /dev/sde3 0 - 0 0 0 Empty /dev/sde4 0 - 0 0 0 Empty Successfully wrote the new partition table ... Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done |
Next we have to mount the SD card:
1 2 3 4 5 |
cd /mnt sudo mkdir boot sudo mkdir Angstrom sudo mount -t vfat /dev/sde1 /mnt/boot sudo mount /dev/sde2 /mnt/Angstrom |
Now check that everything has mounted correctly:
1 2 3 4 5 6 7 8 9 10 |
molloyd@molloyd-VirtualBox:/mnt$ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 101229264 36766180 59395556 39% / udev 8274232 1036 8273196 1% /dev tmpfs 3312600 816 3311784 1% /run none 5120 0 5120 0% /run/lock none 8281496 76 8281420 1% /run/shm /dev/sde1 71133 1 71133 1% /mnt/boot /dev/sde2 3676352 72892 3416708 3% /mnt/Angstrom molloyd@molloyd-VirtualBox:/mnt$ |
Now to copy the image files to the SD Card:
1 2 3 4 5 |
cd ~/beaglebone/setup-scripts/build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone sudo cp u-boot.img /mnt/boot/ sudo cp MLO /mnt/boot/ sudo cp uImage.bin /mnt/boot/ sudo mv /mnt/boot/uImage.bin /mnt/boot/uImage |
u-boot, MLO and uImage are symbolic links and should be renamed if necessary – the /mnt/boot/ should look like this:
1 2 3 4 5 6 7 8 9 |
molloyd@molloyd-VirtualBox:/$ cd /mnt/boot/ molloyd@molloyd-VirtualBox:/mnt/boot$ ls -al total 4592 drwxr-xr-x 2 root root 512 Apr 22 22:24 . drwxr-xr-x 4 root root 4096 Apr 22 22:01 .. -rwxr-xr-x 1 root root 99904 Apr 22 22:19 MLO -rwxr-xr-x 1 root root 378900 Apr 22 22:18 u-boot.img -rwxr-xr-x 1 root root 4217328 Apr 22 22:20 uImage molloyd@molloyd-VirtualBox:/mnt/boot$ |
Finally, the file system needs to be copied:
1 |
sudo tar -xzf Angstrom-systemd-image-eglibc-ipk-v2012.12-beaglebone.rootfs.tar.gz -C /mnt/Angstrom |
This will take a little while! (2-3 minutes)…
1 2 |
sudo umount /dev/sde1 sudo umount /dev/sde2 |
Remove the SD Card and boot your Beaglebone… (fingers crossed!). The user LEDs on the board should flash as the beaglebone boots.
Scan your network to see if it shows up! (this is my range
1 |
nmap -T4 -F 192.168.1.100-255 |
Which will give the output:
1 2 3 4 5 6 7 8 9 |
molloyd@molloyd-VirtualBox:/$ nmap -T4 -F 192.168.1.100-255 ... Nmap scan report for 192.168.1.112 Host is up (0.0031s latency). Not shown: 99 closed ports PORT STATE SERVICE 22/tcp open ssh ... Nmap done: 156 IP addresses (5 hosts up) scanned in 2.15 seconds |
You can now ssh into the Beaglebone (username root/password root):
1 2 3 4 5 6 7 |
molloyd@molloyd-VirtualBox:/$ ssh 192.168.1.112 -l root The authenticity of host '192.168.1.112 (192.168.1.112)' can't be established. RSA key fingerprint is 9e:b1:51:ff:ab:cb:4a:3f:50:62:3c:32:88:ce:95:30. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.112' (RSA) to the list of known hosts. root@192.168.1.112's password: root@beaglebone:~# |
All is in order and you can check the current version using uname…
1 2 3 |
root@beaglebone:~# uname -a Linux beaglebone 3.8.8 #1 SMP Sun Apr 21 01:21:08 IST 2013 armv7l GNU/Linux root@beaglebone:~# |
Hello Derek,
on the first step I get this erorr
joerg@joerg-VirtualBox:~/beaglebone$ git clone git://github.com/Anstrom-distribution/setup-scripts.git
Cloning into ‘setup-scripts’…
fatal: remote error:
Repository not found.
Hi Joerg,
That should be a small a and the spelling is angstrom,
github.com/angstrom-distribution/setup-scripts.git
Derek.
git clone git://github.com/Anstrom-distribution/setup-scripts.git
there is the “g” missing 😉
git clone git://github.com/Angstrom-distribution/setup-scripts.git
Hi Derek, I had a problem with bitbake, is there some extra steeps to be done before for bitbake?
Hi Derek, can I suggest adding a note to “git checkout” the branch that is desired after cloning the setup-scripts. I was happily baking when I realised it was baking kernel 3.2.x whereas I was expecting 3.8.x which was when the penny dropped. Also, I found I required a capital A for Angstrom when I did the git clone – sounds like you may have had a capital A when you first wrote this but later changed it to a lower case a. Cheers Martin
Thanks Martin, That is very useful – I will add that to the description. Derek.
Dr. Derek,
If I desire to start with a recipe that is “close” to what I want, but desire further customizations — mainly deleting stuff I do not need — is it recommended to edit the local copy of the recipe trees, or is there some other way? Those recipes seem to go down a number of layers…
Thanks,
Don
Couple of things:
First, there’s a nice GUI to select the image to be built, including editing the image and building specific packages in:
./sources/openembedded-core/scripts/hob
Build time can be reduced dramatically, by using more threads. There are two variables: one that defines how many bitbake recipes are running in parallel, and another that defines how many parallel threads are running at the same time. The variables by default are 2 and 2. If you have the CPU power, you can increase it to , say 8 and 8. I don’t know how much time it saved but it seemed faster.
The variables are defined in conf/local.conf. They can also be edited using the GUI above.
On a fresh Ubuntu install, gawk wasn’t present on my system, therefore step 2 required to apt gawk before attempting to build the profile 😉 . Thanks a lot for your awesome work !
Had the same problem
env: gawk: No such file or directory
Had to install gawk
Hi Derek,
First of all thanks for such a wonderful website. It is avery good starting point for the beginners to start with. I just want to ask you that i am having DM3730 based Devkit 8500D which is said to have a similar architecture like the beaglebone. But during installation of ubuntu 10.04 on it i am finding problems. You mentioned in your 2nd video on beaglebone that you are using ubuntu on the board not the usual angstrom version. So could you help me out on this.
Hi Derek,
Thanks for a really useful tutorial and great effort.
In an attempt not to re-invent the wheel, I’ve gone through the description above to bake an image. All went well up to the final part of Step 3 – the actual bitbake operation. I get the following error in response to the bitbake command:
ahmed@gilgamish:~/bbb/setup-scripts$ bitbake systemd-image
Pseudo is not present but is required, building this first before the main build
ERROR: Unable to parse /home/ahmed/bbb/setup-scripts/sources/meta-linaro/conf/layer.conf: [Errno 2] No such file or directory: ‘/home/ahmed/bbb/setup-scripts/sources/meta-linaro/conf/layer.conf’
Having checked the directory structure, conf/layer.conf is indeed missing. Checking further, this is what was revealed:
ahmed@gilgamish:~/bbb/setup-scripts/sources/meta-linaro$ ls
meta-aarch64 meta-linaro meta-linaro-toolchain README
ahmed@gilgamish:~/bbb/setup-scripts/sources/meta-linaro$ ls meta-linaro
conf recipes-core recipes-extra recipes-linaro
ahmed@gilgamish:~/bbb/setup-scripts/sources/meta-linaro$ cd meta-linaro/conf
ahmed@gilgamish:~/bbb/setup-scripts/sources/meta-linaro/meta-linaro/conf$ ls
layer.conf machine
So as you can see above, there is a further level that contains the actual machine directory and layer.conf file.
Any ideas how to fix this? I am looking further and will write again with feedback, but if you’ve come across it and have fixed it, then I’m sure all your readers, myself included, would be interested and thankful !
All the best,
Ahmed.
1st I want to say that this guide has been very useful
As an inexperienced Linux person – somethings are taken as givens to be known.
I found this guide to be much better than most. Although there a lot of items that
are not very obvious as to what’s going on for a Linux beginner like me.
However:
1st I had problems with the kpartx not working because the SD card was mounted. – Device or resource busy.
I also had problem with dmsetup – #now make partitions area
It was stealing the resource causing
No such device or address
followed by No such file or directory.
Solutions:
1st one:
added line: umount ${DRIVE}
before the kpartx code
this cured the device or resource
2nd one:
found someone else who had the same issue
from: http://cwraig.id.au/?p=507
put this code before the # now make partitions section of code
# 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
Also found another post where someone did this manually and then re-ran with the kpartx section commented out – seemed to be a kludge to me and I wouldn’t be likely to remember all that next time I had to do all this.
Now I can continue with the rest of the guide…
So I hope someone else finds this info useful – MP.
And if i Want to Copy this new Image to the eMMC i format the mmcblk1p1 and untar my myImage.tar.gz righ?
Undescribable would suffice more than thankyou!!!
I have problem here.
~/src/setup-scripts# git version
git version 1.8.3
~/src/setup-scripts# pwd
/home/root/src/setup-scripts
~/src/setup-scripts# MACHINE=beaglebone ./oebb.sh config beaglebone
No manual entry for git-log
Your installed version of git is too old, it lacks –no-abbrev. Please install 1.7.6 or newer
~/src/setup-scripts#
Derek,
Great video! I have a question regarding making an image from the BBB itself. If I have a BBB that has all the necessary files that I need and I have programs that I’ve built loaded. How would I go about making an image based on the contents of my existing BBB so that I could copy that to SD card and use as my base image for multiple other units?
Many a thanks for this nice write up. I am building Angstrom for my BBB and this post comes handy.
How can I build a kernel which is exactly the same as the default kernel in the BeagleBone Black? In other words, when there’s no SD card plugged in and it’s booted.
I need node.js and RNDIS (g_ether or g_multi) installed.
PS: Your website is excellent! Teaching others is an art and you’ve mastered it. This is the expedited path to learning embedded. Thanks
Please don’t bother answering last question by me. I’ve found the bitbake recipe. It’s the cloud9-image.bb. Thx anyway.
This was really helpful..!! I was able to bake a cloud9-image and run it on beaglebone black using SD card. However, I am clueless as how to write this image to eMMC on the beaglebone black or how to make a eMMC flasher image from this!
Following the instructions above baking cloud9-image or systemd-image unfortunately leads on my Ubuntu system to the following result:
| ERROR: ld.so: object ‘libpseudo.so’ from LD_PRELOAD cannot be preloaded: ignored.
| update-alternatives: Linking /home/klaus/Angstrom/setup-scripts/build/tmp-angstrom_v2013_06-eglibc/work/beaglebone-angstrom-linux-gnueabi/systemd-image/1.0-r0/rootfs//sbin/getty to /sbin/agetty
| Started /home/klaus/Angstrom/setup-scripts/build/tmp-angstrom_v2013_06-eglibc/sysroots/x86_64-linux/usr/bin/systemctl –root=/home/klaus/Angstrom/setup-scripts/build/tmp-angstrom_v2013_06-eglibc/work/beaglebone-angstrom-linux-gnueabi/systemd-image/1.0-r0/rootfs enable connman.service
| Try to find location of connman.service…
| Found connman.service in /lib/systemd/system/connman.service
| WantedBy=multi-user.target found in connman.service
|
| ERROR: Function failed: do_rootfs (see /home/klaus/Angstrom/setup-scripts/build/tmp-angstrom_v2013_06-eglibc/work/beaglebone-angstrom-linux-gnueabi/systemd-image/1.0-r0/temp/log.do_rootfs.775 for further information)
ERROR: Task 7 (/home/klaus/Angstrom/setup-scripts/sources/meta-angstrom/recipes-images/angstrom/systemd-image.bb, do_rootfs) failed with exit code ‘1’
NOTE: Tasks Summary: Attempted 3207 tasks of which 3206 didn’t need to be rerun and 1 failed.
No currently running tasks (3206 of 3210)
Seems ‘logpseudo.so’ seems to be the root-cause, but I have no idea, what shared object this is. Has anybody an idea how to “repair”?
There seems to be a problem with do_rootfs when building on Ubuntu. Even I am getting the following error
systemd-image.bb, do_rootfs) failed with exit code ‘1’
The reson for error is
Ubuntu requires /bin/sh to point to /bin/bash rather than /bin/dash. Run the command below and select “No” from the menu.
sudo dpkg-reconfigure dash
Look at the following link for more details
http://www.omappedia.com/wiki/OMAP_Angstrom
Starte the whole process from scratch after the above change and it builds fine.
Sid
I found that on the latest downloads bitbake fails to run properly. If you encounter this problem try this:
make a directory called “.oe” in your home directory
mkdir ~/.oe
Copy the Angstrom environment script to that directory
cd
cp environment-angstromv**** ~/.oe
where **** is the version number
now re run the setup script
. ~/.oe/environment-angstromv****
I created the directory, running environment-angstrom*** from there. But as it contains only the setting of environment variables, the effect is the same as calling it from it’s original location. bitbake still fails with the same error.
When you say “beaglebone” in the machine configuration does this cover both the beaglebone white and the beaglebone black?
Somehow I solved the issue. Some time ago I have installed the environment for Android. I don’t know exactly what caused the problem but after reinstalling my Ubuntu and directly following the steps of Derek, everything worked fine. I guess it has something to do with the libpseudo.so that was mentioned in the first error message – no idea, what it is. Nevertheless, thanks for trying to help.
Hi, I have followed the same steps and could able to compile the systemd-image and booted the board.
but this doesnt have the source code. let me know how to get the source code.. so that i can modify few drivers.. etc..
thanks,
Arjun
Hello Derek,
Your videos are simple and easy to follow. Below are few questions of mine,
1). I want to use the OE core with the Linaro tool-chain to build an angstrom distribution for the beaglebone black, What steps should I follow?, which means I do not want to use the meta-openembedded/meta.
2). How to set up an Eclipse C/C++ development and debug environment for the beaglebone black since we use the FTDI 3.3V USB-TTL serial debug cable which is not unlike the earlier white beaglebone!!!
3). After compiling the code , how to download it to the beaglebone black, Is it the same way as we do for the old beaglebone with the RSE and the ssh way???
Regards,
Gibson
Hello Sir,
I am very new to this.
In which step are we downloading the armstrong source code? I could see that we are building the code but where is the source code.
What I want to do is
1. Download the armstrong source code into my git hub or local pc. .
2. Do some changes in it.
3. Build it.
4. Flash and then test it.
Please help.
sir,
error notifying this occurs when I run.does it have to do anything with python? please suggest me something
bitbake cloud9-image
ERROR: Error parsing configuration files
Traceback (most recent call last):
File “/home/harshul/Documents/beaglebone/setup-scripts/sources/bitbake/lib/bb/cookerdata.py”, line 227, in CookerDataBuilder.parseBaseConfiguration():
try:
> self.parseConfigurationFiles(self.prefiles, self.postfiles)
except SyntaxError:
File “/home/harshul/Documents/beaglebone/setup-scripts/sources/bitbake/lib/bb/cookerdata.py”, line 289, in CookerDataBuilder.parseConfigurationFiles(prefiles=[], postfiles=[]):
if data.getVar(“BB_WORKERCONTEXT”, False) is None:
> bb.fetch.fetcher_init(data)
bb.codeparser.parser_cache_init(data)
File “/home/harshul/Documents/beaglebone/setup-scripts/sources/bitbake/lib/bb/fetch2/__init__.py”, line 472, in fetcher_init(d=):
pass
> revs.clear()
else:
File “/home/harshul/Documents/beaglebone/setup-scripts/sources/bitbake/lib/bb/persist_data.py”, line 147, in SQLTable.clear():
def clear(self):
> self._execute(“DELETE FROM %s;” % self.table)
File “/home/harshul/Documents/beaglebone/setup-scripts/sources/bitbake/lib/bb/persist_data.py”, line 66, in SQLTable._execute(*query=(‘DELETE FROM BB_URI_HEADREVS;’,)):
try:
> return self.cursor.execute(*query)
except sqlite3.OperationalError as exc:
OperationalError: attempt to write a readonly database
Hi Derek,
I cant find any path of /build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone. under setup-scripts.
Where i only get abi_version cache log saved_tmpdir.
Please help.Thanks!
Hi Derek,
Great Post! I’m trying to run bitbake but I keep getting the following error:
Traceback (most recent call last):
File “/usr/bin/bitbake”, line 234, in
ret = main()
File “/usr/bin/bitbake”, line 197, in main
server = ProcessServer(server_channel, event_queue, configuration)
File “/usr/lib/pymodules/python2.7/bb/server/process.py”, line 78, in __init__
self.cooker = BBCooker(configuration, self.register_idle_function)
File “/usr/lib/pymodules/python2.7/bb/cooker.py”, line 76, in __init__
self.parseConfigurationFiles(self.configuration.file)
File “/usr/lib/pymodules/python2.7/bb/cooker.py”, line 510, in parseConfigurationFiles
data = _parse(os.path.join(“conf”, “bitbake.conf”), data)
TypeError: getVar() takes exactly 3 arguments (2 given)
ERROR: Error evaluating ‘${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable${@bb.utils.contains(“TUNE_FEATURES”, “thumb”, “:thumb”, “”, d)}${@bb.utils.contains(“TUNE_FEATURES”, “no-thumb-interwork”, “:thumb-interwork”, “”, d)}’
Traceback (most recent call last):
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 116, in expandWithRefs
s = __expand_var_regexp__.sub(varparse.var_sub, s)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 60, in var_sub
var = self.d.getVar(key, 1)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 260, in getVar
return self.expand(value, var)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 132, in expand
return self.expandWithRefs(s, varname).value
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 117, in expandWithRefs
s = __expand_python_regexp__.sub(varparse.python_sub, s)
TypeError: getVar() takes exactly 3 arguments (2 given)
ERROR: Error evaluating ‘${@bb.parse.BBHandler.vars_from_file(d.getVar(‘FILE’),d)[0] or ‘defaultpkgname’}’
Traceback (most recent call last):
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 117, in expandWithRefs
s = __expand_python_regexp__.sub(varparse.python_sub, s)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 76, in python_sub
value = utils.better_eval(codeobj, DataContext(self.d))
File “/usr/lib/pymodules/python2.7/bb/utils.py”, line 387, in better_eval
return eval(source, _context, locals)
File “PN”, line 1, in
TypeError: getVar() takes exactly 3 arguments (2 given)
I’ve been trying different things, but nothing seems to work. I’m not sure if it is because there’s something wrong in the environment-angstrom file I get when running the oebb.sh, in your post it says environment-angstromv2012.12 where I have environment-angstromv2013.12. Could that make any sort of difference?
Thanks in advance, I’ve been at this for quite a few days now without success.
Mr. jorge
Try these steps
ln -s /bin/bash /bin/h
MACHINE=beaglebone ./oebb.sh config
MACHINE=beaglebone ./oebb.sh update
MACHINE=beaglebone./oebb.sh bitbake console-image
ln -s /bin/bash /bin/sh
Hi Derek,
Thank u for the post .After typing the bitbake systemd-image ,I am getting fallowing error pls reply how to solve this
raceback (most recent call last):
File “/usr/bin/bitbake”, line 234, in
ret = main()
File “/usr/bin/bitbake”, line 197, in main
server = ProcessServer(server_channel, event_queue, configuration)
File “/usr/lib/pymodules/python2.7/bb/server/process.py”, line 78, in __init__
self.cooker = BBCooker(configuration, self.register_idle_function)
File “/usr/lib/pymodules/python2.7/bb/cooker.py”, line 76, in __init__
self.parseConfigurationFiles(self.configuration.file)
File “/usr/lib/pymodules/python2.7/bb/cooker.py”, line 510, in parseConfigurationFiles
data = _parse(os.path.join(“conf”, “bitbake.conf”), data)
TypeError: getVar() takes exactly 3 arguments (2 given)
ERROR: Error evaluating ‘${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable${@bb.utils.contains(“TUNE_FEATURES”, “thumb”, “:thumb”, “”, d)}${@bb.utils.contains(“TUNE_FEATURES”, “no-thumb-interwork”, “:thumb-interwork”, “”, d)}’
Traceback (most recent call last):
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 116, in expandWithRefs
s = __expand_var_regexp__.sub(varparse.var_sub, s)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 60, in var_sub
var = self.d.getVar(key, 1)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 260, in getVar
return self.expand(value, var)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 132, in expand
return self.expandWithRefs(s, varname).value
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 117, in expandWithRefs
s = __expand_python_regexp__.sub(varparse.python_sub, s)
TypeError: getVar() takes exactly 3 arguments (2 given)
ERROR: Error evaluating ‘${@bb.parse.BBHandler.vars_from_file(d.getVar(‘FILE’),d)[0] or ‘defaultpkgname’}’
Traceback (most recent call last):
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 117, in expandWithRefs
s = __expand_python_regexp__.sub(varparse.python_sub, s)
File “/usr/lib/pymodules/python2.7/bb/data_smart.py”, line 76, in python_sub
value = utils.better_eval(codeobj, DataContext(self.d))
File “/usr/lib/pymodules/python2.7/bb/utils.py”, line 387, in better_eval
return eval(source, _context, locals)
File “PN”, line 1, in
TypeError: getVar() takes exactly 3 arguments (2 given)
I just wanted to thank you for your tutorial.
I have tried several tutorials and something seems to go wrong.
I ran into a couple problems.
First, the script was pointing to DASH instead of BASH.
Second, I had to search the comments and add the fix from AFJay post (Thanks for that).
I am up to the baking part. I will leave in the oven over night. Hopefully it doesn’t get burnt.
Regards,