Support #618
Updated by Daniel Curtis over 9 years ago
{{>toc}}
This is a guide for creating a Yocto linux image on Ubuntu 12.04.
h2. Prepare the Environment
* Make sure the system is up to date:
<pre>
sudo apt-get update && sudo apt-get upgade
</pre>
* Install a few prerequisite packages:
<pre>
sudo apt-get install apt-get install gawk wget git bitbake diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
</pre>
h2. Prepare the Source Code
* Create a directory for the source code:
<pre>
mkdir ~/git && cd ~/git
</pre>
* Get the latest Yocto version:
<pre>
git clone -b dizzy git://git.yoctoproject.org/poky.git
cd poky
</pre>
h3. Configure Intel BSP
* Get the latest Intel Board Support Packages into the Yocto directory:
<pre>
git clone git://git.yoctoproject.org/meta-intel -b dizzy
</pre>
* Source the @oe-init-build-env@ script:
<pre>
source oe-init-build-env
</pre>
* Edit @build/conf/local.conf@
<pre>
nano ~/git/poky/build/conf/local.conf
</pre>
#* And modify the config to match the *genericx86* machine:
<pre>
MACHINE ?= "genericx86"
</pre>
* Add the meta-intel layer to the bblayers.conf file:
<pre>
nano ~/git/pky/build/conf/bblayers.conf
</pre>
#* And modify the BBLAYERS definition:
<pre>
BBLAYERS ?= " \
/home/user/git/poky/meta \
/home/user/git/poky/meta-yocto \
/home/user/git/poky/meta-yocto-bsp \
/home/user/git/poky/meta-intel \
"
</pre>
h2. Build the Yocto Image
* Run bitbake to build core-image-minimal:
<pre>
bitbake core-image-minimal
</pre>
h3. Deploy the Yocto Image
The original files in the +Yocto image provided by Intel+ are:
* boot/grub/grub.cfg
* bzImage
* core-image-minimal-initramfs-clanton.cpio.gz
* grub.efi
* image-full-galileo-clanton.ext3
After the bitbake build process there will be lots of files in the @~/git/poky/build/tmp/deploy/images/genericx86@ including the files needed to copy over to the microSD Card, however there are many files that are unnecessary.
* Mount the microSD card:
<pre>
sudo mkdir /media/microsd
sudo mount /dev/mmcblk0p1 /media/microsd
</pre>
* Copy the required files to the microSD card:
<pre>
sudo cp ~/git/poky/build/tmp/deploy/images/genericx86/bzImage /media/microsd/bzImage
sudo cp ~/git/poky/build/tmp/deploy/images/genericx86/core-image-minimal-initramfs-genericx86.cpio.gz /media/microsd/core-image-minimal-initramfs-genericx86.cpio.gz
sudo cp ~/git/poky/build/tmp/deploy/images/genericx86/bootia32.efi /media/microsd/bootia32.efi
sudo cp ~/git/poky/build/tmp/deploy/images/genericx86/core-image-minimal-genericx86.ext3 /media/microsd/core-image-minimal-genericx86.ext3
</pre>
* Now create a grub configuration file:
<pre>
sudo mkdir -p /media/microsd/boot/grub
sudo nano /media/microsd/boot/grub/grub.conf
</pre>
#* And add the following:
<pre>
default 1
timeout 1
color white/blue white/cyan
title Clanton SVP kernel-SPI initrd-SPI IMR-On IO-APIC/HPET NoEMU
kernel --spi root=/dev/ram0 console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw
initrd --spi
title Clanton SVP kernel-MassStorage initrd-MassStorage image-full IMR-On IO-APIC/HPET NoEMU debug
root (hd0,0)
kernel /bzImage root=/dev/ram0 console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw LABEL=boot debugshell=5 rootimage=core-image-minimal-genericx86.ext3
initrd /core-image-minimal-initramfs-genericx86.cpio.gz
</pre>
* Sync and unmount the microSD card:
<pre>
sudo sync
sudo umount /media/microsd
</pre>
h2. Resources
* http://www.yoctoproject.org/docs/1.7.1/mega-manual/mega-manual.html
* http://www.yoctoproject.org/docs/1.7.1/bsp-guide/bsp-guide.html
* http://www.yoctoproject.org/docs/1.7.1/bitbake-user-manual/bitbake-user-manual.html
* http://wiki.ros.org/IntelGalileo/HydroGalileoInitialInstall
* http://www.malinov.com/Home/sergey-s-blog/intelgalileo-buildinglinuximage
* https://www.yoctoproject.org/downloads