Difference between revisions of "Poky manual"
From ElphelWiki
(→Setup) |
|||
Line 31: | Line 31: | ||
==<font color="blue">Setup</font>== | ==<font color="blue">Setup</font>== | ||
− | Copy the following lines to <b>some_script.sh</b>, modify and run: | + | * Step 1: Copy the following lines to <b>some_script.sh</b>, modify and run: |
<font size='2'> | <font size='2'> | ||
'''#Part 1''' | '''#Part 1''' | ||
Line 69: | Line 69: | ||
# <font color='red'>Elphel's MIRROR website, '''\n''' is important</font> | # <font color='red'>Elphel's MIRROR website, '''\n''' is important</font> | ||
echo "MIRRORS =+ \"http://.*/.* http://mirror.elphel.com/elphel393_mirror/ \n \"" >> $LOCAL_CONF | echo "MIRRORS =+ \"http://.*/.* http://mirror.elphel.com/elphel393_mirror/ \n \"" >> $LOCAL_CONF | ||
+ | |||
+ | * Step 2: re-init environment | ||
+ | cd poky | ||
+ | . ./oe-init-build-env | ||
+ | |||
+ | * Step 3: build bootable image (3 targets) | ||
+ | bitbake u-boot-ezynq <font style='color:rgba(200,200,200,1)'>linux-xlnx core-image-elphel393</font> | ||
+ | </font> | ||
+ | |||
+ | ==<font color="blue">Build bootloader</font>== | ||
+ | <font size='2'> | ||
+ | bitbake u-boot-ezynq | ||
+ | or | ||
+ | bitbake u-boot | ||
+ | or | ||
+ | bitbake virtual/bootloader | ||
+ | </font> | ||
+ | ====Output==== | ||
+ | * poky/build/tmp/deploy/images/'''boot.bin''' | ||
+ | * poky/build/tmp/deploy/images/'''u-boot-dtb.img''' | ||
+ | |||
+ | ====Notes==== | ||
+ | * Since Poky 1.5.1 switched from u-boot-xlnx to u-boot - some of the u-boot-xlnx reached the upstream | ||
+ | * Since Poky 1.5.1 u-boot switched from autoconf to Kconfig and currently (as of 2016/01/22) is still migrating - keeping both build methods working in parallel. |
Revision as of 14:27, 22 January 2016
Contents
Description
- Building embedded Linux image for Zynq ARMv7 platform - Elphel 10393 board
About
- Yocto Poky revision = 2.0
- Host OS = Kubuntu 14.04.3 LTS x64
Required packages
- Found in Yocto Project mega-manual
Output files
Found in the poky's deploy directory: poky/build/tmp/deploy/images/
These names are listed as they appear in the u-boot configuration header file - actual output files have different names:
- boot.bin+(u-boot-dtb.img) - u-boot as the first stage bootloader = Secondary Program Loader that boots u-boot-dtb.img
- devicetree.dtb - device tree with described interfaces, zynq registers, interrupts and drivers
- uImage - kernel, drivers
- uramdisk.image.gz - applications
Copy them on the micro SD card (FAT partition) > run boot once in the u-boot command line.
Boot options
- Auto unpacking the root file system image to RAM when booting:
- Check u-boot default environment variables when building the bootloader.
- Keep uramdisk.image.gz along with all the other files on the FAT partition of (micro)SD card.
- Root file system on EXT2(EXT3,etc.) partition of (micro)SD card.
Setup
- Step 1: Copy the following lines to some_script.sh, modify and run:
#Part 1 git clone -b jethro git://git.yoctoproject.org/poky.git poky cd poky; git checkout 83b72d8d1fdab2f7727083df59c00d9fa2324169 git clone -b jethro https://github.com/Elphel/meta-ezynq.git meta-ezynq cd meta-ezynq; git checkout dd185f86155c3f9623e058d84f2fb3ddfae0b22c; cd .. git clone -b jethro https://github.com/Elphel/meta-elphel393.git meta-elphel393 cd meta-elphel393; git checkout f6c78d1d837b83b3d51e1ac962dff435c38f8f0c; cd .. git clone -b master https://github.com/Xilinx/meta-xilinx.git meta-xilinx cd meta-xilinx; git checkout 989a6a12010247aebf137d8ad3f6a042da42640a; cd .. #Part 2 : init environment and auto-fill Yocto's conf-files CURRENT_PATH=$(dirname $(readlink -f "$0")) . ./oe-init-build-env BBLAYERS_CONF="conf/bblayers.conf" echo "BBLAYERS = \" \\" >> $BBLAYERS_CONF echo " $CURRENT_PATH/meta \\" >> $BBLAYERS_CONF echo " $CURRENT_PATH/meta-yocto \\" >> $BBLAYERS_CONF echo " $CURRENT_PATH/meta-yocto-bsp \\" >> $BBLAYERS_CONF echo " $CURRENT_PATH/meta-ezynq \\" >> $BBLAYERS_CONF echo " $CURRENT_PATH/meta-elphel393 \\" >> $BBLAYERS_CONF echo " $CURRENT_PATH/meta-xilinx \\" >> $BBLAYERS_CONF echo " \"" >> $BBLAYERS_CONF LOCAL_CONF="conf/local.conf" # change the MACHINE echo "MACHINE ?= \"elphel393\"" >> $LOCAL_CONF # Elphel's MIRROR website, \n is important echo "MIRRORS =+ \"http://.*/.* http://mirror.elphel.com/elphel393_mirror/ \n \"" >> $LOCAL_CONF
- Step 2: re-init environment
cd poky . ./oe-init-build-env
- Step 3: build bootable image (3 targets)
bitbake u-boot-ezynq linux-xlnx core-image-elphel393
Build bootloader
bitbake u-boot-ezynq or bitbake u-boot or bitbake virtual/bootloader
Output
- poky/build/tmp/deploy/images/boot.bin
- poky/build/tmp/deploy/images/u-boot-dtb.img
Notes
- Since Poky 1.5.1 switched from u-boot-xlnx to u-boot - some of the u-boot-xlnx reached the upstream
- Since Poky 1.5.1 u-boot switched from autoconf to Kconfig and currently (as of 2016/01/22) is still migrating - keeping both build methods working in parallel.