From 65167a872d64ca49f180239e32e546dcfd0868af Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Tue, 14 Apr 2015 14:31:01 -0700 Subject: [PATCH] yocto-project-qs: Added MinnowBoard MAX example to "Super User" (From yocto-docs rev: b7ef42f44757a81ca1084351e2866c8f0894083c) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../yocto-project-qs/yocto-project-qs.xml | 421 +++++++++++++----- 1 file changed, 321 insertions(+), 100 deletions(-) diff --git a/documentation/yocto-project-qs/yocto-project-qs.xml b/documentation/yocto-project-qs/yocto-project-qs.xml index e259a1eb24..9ab638a3d9 100644 --- a/documentation/yocto-project-qs/yocto-project-qs.xml +++ b/documentation/yocto-project-qs/yocto-project-qs.xml @@ -871,131 +871,352 @@ - This section - - - Kudos and thanks to Robert P. J. Day of - CrashCourse for providing the basis - for this "expert" section with information from one of his - wiki - pages. - - - gives you a minimal description of how to use the Yocto Project to build - images for Beaglebone hardware starting from scratch. - The steps were performed on a 64-bit Ubuntu 12.04 system that - has four cores. + This section provides minimal instruction for using the Yocto Project + to build an image for Beaglebone hardware and for building and + booting an image for the third-party + MinnowBoard MAX. + + The steps used in this section were performed on a 64-bit + Ubuntu 14.10 system that has four cores. + -
- Getting the Yocto Project +
+ Building Beaglebone from Scratch - Set up your - Source Directory - by using Git to clone the poky - repository and then check out the release branch: - + This section + + + Kudos and thanks to Robert P. J. Day of + CrashCourse + for providing the basis for this "expert" section with + information from one of his + wiki + pages. + + + gives you a minimal description of how to use the Yocto Project to + build images for Beaglebone hardware starting from scratch. + + +
+ Getting the Yocto Project + + + Set up your + Source Directory + by using Git to clone the poky + repository and then check out the release branch: + $ cd ~ $ git clone git://git.yoctoproject.org/poky $ cd poky $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME; - - -
+ + +
-
- Setting Up Your Host +
+ Setting Up Your Host - - You need some packages for everything to work. - Rather than duplicate them here, look at the - "The Packages" - section earlier in this quick start. - -
+ + You need some packages for everything to work. + Rather than duplicate them here, look at the + "The Packages" + section earlier in this quick start. + +
-
- Initializing the Build Environment +
+ Initializing the Build Environment - - From the root directory of your - Source Directory, - initialize your environment and provide a meaningful - Build Directory - name: - + + From the root directory of your + Source Directory, + initialize your environment and provide a meaningful + Build Directory + name: + $ source &OE_INIT_FILE; mybuilds - - At this point, the mybuilds directory has - been created for you and it is now your current working directory. - If you do not provide your own directory name, - it defaults to build, - which is inside the Source Directory. - -
+ + At this point, the mybuilds directory has + been created for you and it is now your current working directory. + If you do not provide your own directory name, + it defaults to build, + which is inside the Source Directory. + +
-
- Configuring the local.conf File +
+ Configuring the local.conf File - - Initializing the build environment creates a - conf/local.conf configuration file - in the Build Directory. - You need to manually edit this file to specify the machine you - are building: - + + Initializing the build environment creates a + conf/local.conf configuration file + in the Build Directory. + You need to manually edit this file to specify the machine you + are building: + MACHINE ?= "beaglebone" - - + + - - A good deal that goes into a Yocto Project build is simply - downloading all of the source tarballs. - Steps exist that can help you be more efficient with gathering - source files. - For example, you can set up local mirrors that hold your - source tarballs or you can pre-fetch all your source without - initiating a build until later. - For more information, see the - "Working with Source Files" - section in the Yocto Project Development Manual. - + + A good deal that goes into a Yocto Project build is simply + downloading all of the source tarballs. + Steps exist that can help you be more efficient with gathering + source files. + For example, you can set up local mirrors that hold your + source tarballs or you can pre-fetch all your source without + initiating a build until later. + For more information, see the + "Working with Source Files" + section in the Yocto Project Development Manual. + +
+ +
+ Building the Image + + + At this point, you need to select an image to build for the + Beaglebone hardware. + If this is your first build using the Yocto Project, you should + try the smallest and simplest image: + + $ bitbake core-image-minimal + + Now you just wait for the build to finish. + + + + You might encounter various warning messages during the + build. + For example, if a source file fetch initially fails, + the OpenEmbedded build system notes that and attempts to + find the files using mirrors. + Another example could be values requested for but not + found in the final kernel .config + file. + For information on configuration warnings, see the + "Generating Configuration Files" + section in the Yocto Project Linux Kernel Development Manual. + + + + By default, BitBake aborts when it encounters an error during + the build. + If you want to make sure the build continues even when BitBake + encounters an error, use this variation: + + $ bitbake -k core-image-minimal + + + + + Once you have your image, you can take steps to load and boot + it on the target hardware. + + + + You can learn about BitBake in general by reading the + BitBake User Manual. + +
-
- Building the Image +
+ Building and Booting MinnowBoard MAX - At this point, you need to select an image to build for the - Beaglebone hardware. - If this is your first build using the Yocto Project, you should try - the smallest and simplest image: - + As of the Yocto Project 1.6 release, the MinnowBoard MAX is + supported by the Yocto Project and the + meta-intel + intel-corei7-64 and + intel-core2-32 Board Support Packages (BSPs). + + The MinnowBoard MAX ships with 64-bit firmware. + If you want to use the board in 32-bit mode, you must + download the + 32-bit firmware. + + + +
+ Getting the Yocto Project and <filename>meta-intel</filename> + + + Set up your + Source Directory + and the meta-intel layer + by using Git to clone the poky + and meta-intel repositories. + These commands use the "&DISTRO_NAME;" branch: + + $ cd ~ + $ mkdir source + $ cd source + $ git clone -b &DISTRO_NAME; git://git.yoctoproject.org/poky + $ cd poky + $ git clone -b &DISTRO_NAME; git://git.yoctoproject.org/meta-intel + + +
+ +
+ Setting Up Your Host + + + You need some packages for everything to work. + Rather than duplicate them here, look at the + "The Packages" + section earlier in this quick start. + +
+ +
+ Initializing the Build Environment + + + From the root directory of your + Source Directory, + initialize your environment by running the build environment + initialization script: + + $ source &OE_INIT_FILE; + + At this point, the build directory has + been created for you and it is now your current working + directory. + +
+ +
+ Configure the Build + + + To configure the build, you edit the + bblayers.conf and + local.conf files, both of which are + located in the build/conf directory. + + + + Here is a quick way to make the edits. + The first command adds the meta-intel + branch, which contains the intel-core* + BSPs to the build. + The second command selects the BSP by setting the + MACHINE + variable. + + $ echo 'BBLAYERS += "~/source/poky/meta-intel"' >> conf/bblayers.conf + $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf + + Notes + + If you want a 64-bit build, use the following: + + $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf + + + + + If you want 32-bit images, use the following: + + $ echo 'MACHINE = "intel-core2-32"' >> conf/local.conf + + + + +
+ +
+ Build the Image + + + Use this command to build the minimal image for + MinnowBoard MAX: + $ bitbake core-image-minimal - - Now you just wait for the build to finish. - + + Once the build completes, the resulting basic console image + is located in the Build Directory here: + + tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg + + +
- - By default, BitBake aborts when it encounters an error during - the build. - If you want to make sure the build continues even when BitBake - encounters an error, use this variation: - - $ bitbake -k core-image-minimal - - +
+ Write the Image - - Once you have your image, you can take steps to load and boot it on - the target hardware. - + + You can write the image to a USB key, SATA drive, or SD card + by using the mkefidisk.sh script, + which is included in the poky + repository at scripts/contrib/mkefidisk.sh: + + $ sudo $HOME/source/poky/scripts/contrib/mkefidisk.sh HOST_DEVICE \ + tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg TARGET_DEVICE + + In the previous command, HOST_DEVICE + is the device node on the build system (e.g. + /dev/sdc or + /dev/mmcblk0). + TARGET_DEVICE is the name of the + device as the MinnowBoard MAX sees it (e.g. + /dev/sda or + /dev/mmcblk0). + +
- - You can learn about BitBake in general by reading the - BitBake User Manual. - +
+ Boot the Image + + + With the boot device provisioned, you can insert the media into + the MinnowBoard MAX and boot the hardware. + The board should automatically detect the media and boot to + the bootloader and subsequently the operating system. + + + + If the board does not boot automatically, you can boot it + manually from the EFI shell as follows: + + Shell> connect -r + Shell> map -r + Shell> fs0: + Shell> bootx64 + + + For a 32-bit image use the following: + + Shell> bootia32 + + + +
+ +
+ Next Steps + + + Now that you can build a basic image, you could experiment + by building some other example images: + + $ bitbake core-image-sato + $ bitbake core-image-sato-sdk + + Another possibility is to experiment creating your own image + recipes that add packages to suit your needs. + For information on how to create recipes, see the + "Writing a New Recipe" + section in the Yocto Project Development Manual. + +