summaryrefslogtreecommitdiffstats
path: root/meta/classes/bootimg.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* bootimg.bbclass: merge it into image-live.bbclassRobert Yang2016-03-311-305/+0
| | | | | | | | | | They are doing the same things: create live images, merge them into one bbclass makes it easy to understand. (From OE-Core rev: bfd4d95210b3f841aa2e7c5a06ac89667523438d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-live.bbclass: DEPENDS on syslinuxRobert Yang2016-03-311-0/+1
| | | | | | | | | | | The mkisofs requires syslinux/isolinux.bin which is provided by target syslinux, for pcbios, the depends is already there, but for EFI, it isn't, so add the depends. (From OE-Core rev: e9adedd32a7f2015e58efe2f460a99e8d745b4c6) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: only inherit syslinux when pcbiosRobert Yang2016-03-251-2/+7
| | | | | | | | | | syslinux.bbclass should not be seen when use efi. (From OE-Core rev: f994eef0aeae861857756d3cc05c49cca17bd12b) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: fix settings for grub-efi.bbclassRobert Yang2016-03-251-3/+1
| | | | | | | | | | | | | | | | | Fixed: - Found potential conflicted var LABELS ... Set LABELS to "boot install" would build out broken images when build vm + live together, use set_live_vm_vars() to fix the problem. - Use ROOT and LABEL in boot-directdisk.bbclass and image-foo.bbclass, they are not only used by syslinux.bbclass, but also grub-efi.bbclass, add "SYSLINUX_" prefix would mislead users. (From OE-Core rev: d7d1e0193c94abb1cd2daf1c298c8c1788f3616d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: set default value for LABELS variableEd Bartosh2016-03-021-0/+2
| | | | | | | | | | | | | | | With empty LABELS variable build_efi_cfg skips most of its functionality producing warning message: 'LABELS not defined, nothing to do' This causes build failure for efi images. Setting default value for LABELS to 'boot install' should fix this issue. (From OE-Core rev: b8cb64714cb9ca3174f11a245ee1cf5367dd432f) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* syslinux.bbclass: make vm and live can be built togetherRobert Yang2016-03-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * The vm image(hdddirect, vmdk, qcow2, vdi) and live image (hddimg, iso) couldn't be built together because the following vars settings are conflicted: - SYSLINUX_ROOT (/dev/sda2 vs /dev/ram0) - LABELS (boot vs boot install) - INITRD (None vs live install) - SYSLINUX_CFG (see above) Introduce new vars (SYSLINUX_ROOT_VM/_LIVE, the samilar to others) to make them can work together, now we can build all of them together: IMAGE_FSTYPES += "live iso hddimg hdddirect vmdk qcow2 vdi" * Use SYSLINUX_CFG rather than SYSLINUXCFG to keep align with others SYSLINUX vars. * The SYSLINUX_TIMEOUT had been set, but it didn't work since AUTO_SYSLINUXMENU wasn't set, this would cause confusions, so also set AUTO_SYSLINUXMENU. * Move SYSLINUX_PROMPT and SYSLINUX_TIMEOUT to syslinux.bbclass rather than in separate classes since they are the same. * Set SYSLINUX_TIMEOUT to 50 to have a unique timeout for syslinux. [YOCTO #9161] (From OE-Core rev: e38c94d6bf83ed3ca7f046d9503e81b927487bf2) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg/image-vm/image-live: Improve image dependenciesRichard Purdie2016-01-191-1/+1
| | | | | | | | | | | | | | Now that image generation consists of separate tasks, we can improve the dependencies in these classes. We can also incorporate the tasks within do_image_complete instead of do_build so we have a specific task for when the deploy directory is populated with images. This fixes various expectations about do_image_completed and the way I'd tried to use it to fix some sanity test problems. (From OE-Core rev: 9543c4a9ce0ac7d9ced66fa14e48a1aa7401011e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg/image: Enhance bootimg to respect RM_OLD_IMAGERichard Purdie2016-01-191-8/+3
| | | | | | | | | | Currently, iso and hddimg links don't respect RM_OLD_IMAGE. This updates them to use the common symlinks code so that they behave like the rest of the system. (From OE-Core rev: 6a05cb64dfafd531d50454ef7141ff0290d01ca9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* IMAGES_FSTYPES: default to EXT4Juro Bystricky2015-08-161-2/+2
| | | | | | | | | | | | | | | | | The following IMAGES_FSTYPES defaulted to ext3: "vmdk", "vdi", "qcow2", "live", "iso", "hddimg" This patch changes the default for those IMAGES_FSTYPES to ext4 in order to bring the images more in line with other BSPs. Besides improvements in performance and reliability ext4 provides additional functionality as well (option to turn off the journaling, dynamic resizing of VDI volumes etc.). (From OE-Core rev: 2b56d671d2f0ef22786c97e29e1215eb80c94490) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass:iso: determine the -iso-level only if there is a rootfsRicardo Neri2015-08-101-5/+8
| | | | | | | | | | | | | | | It may be possible that some bootable images do not use a rootfs; this may be the case if the bootable image utilize only an initrd for all its needs. If there is not rootfs, the size calculation will fail. Furthermore, given that the iso9660 conformance level is determined using the size of rootfs, it makes sense to not make the calculation if there is not such rootfs. (From OE-Core rev: 57064ac9ccd8a3783789d11feb5a51351cd924bf) Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: remove previous FATIMG before creating a new oneRicardo Neri2015-07-231-0/+6
| | | | | | | | | | | | | | | Since version 3.0.0 of dosfstools, mkdosfs opens the to-be-filesystem file with O_EXCL. Since the filesystem is also opened with O_CREAT, the -C option of mkdosfs can only succeed if FATIMG does not exists. Thus, delete any previous FATIMG file. The file can be safely deleted as we are inside build_fat_img because we want to create an new FATIMG. (From OE-Core rev: a0d4511d358d427e5271420a74c26cc862c5ed74) Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg bbclass: don't hardcode 'bzImage' nameKoen Kooi2015-07-021-2/+4
| | | | | | | | | | In the EFI case there are 2 more architectures besides x86(_64) that may use this class: aarch32, which tends to use 'zImage' and aarch64, which uses 'Image'. Instead of hardcoding those values like the luvOS fork does, use the proper variable. (From OE-Core rev: df96b8895457deeeffc00e849118f2ac6d352e1e) Signed-off-by: Koen Kooi <koen.kooi@linaro.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass:hddimg: check the size of rootfs.img for hddimgRobert Yang2015-07-011-0/+13
| | | | | | | | | | | | | | | | The hddimg uses FAT, so the single file size should be less than 4GB, otherwise errors, check that and error out. Another way might be use ext2/3/4 rather than FAT, but EFI only supports FAT, if we make EFI use FAT, and non-EFI use extX, that would the code very different, which seems not worth. [YOCTO #6449] (From OE-Core rev: a82f62627f79761e1b09b8f54896a9f85a591443) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass:iso: use mkisofs -iso-level 3 for large isoRobert Yang2015-07-011-2/+13
| | | | | | | | | | | | | | | | | | There will be problems when rootfs.img is larger than 4GB: mkisofs: Value too large for defined data type. File /path/to/iso/rootfs.img is too large for current mkisofs settings - ignoring And will get a wrong iso. Check the size of ${ISODIR}/rootfs.img, use mkisofs -iso-level 3 when it exceeds 3.8GB, the specification is 4G - 1 bytes, we need leave a few space for other files. [YOCTO #6449] (From OE-Core rev: 40cdf918dc2507a1270a4d933b2c2f46a514d6e2) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Add explict getVar param for (non) expansionRichard Purdie2015-06-231-1/+1
| | | | | | | | | | | | | | Rather than just use d.getVar(X), use the more explict d.getVar(X, False) since at some point in the future, having the default of expansion would be nice. This is the first step towards that. This patch was mostly made using the command: sed -e 's:\(getVar([^,()]*\)\s*):\1, False):g' -i `grep -ril getVar *` (From OE-Core rev: ab7c1d239b122c8e549e8112c88fd46c9e2b061b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Use deploy artefacts, not STAGING_KERNEL_DIRRichard Purdie2014-12-211-1/+2
| | | | | | | | | bzImage is no longer in STAGING_KERNEL_DIR. Rather than add it back, depend on the kernel deploy task and find it in DEPLOY_DIR_IMAGE. (From OE-Core rev: 75f83fdc5a78bf1b84dbcd6acb9fa3f76b2aac2c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* code cleanup for INITRD variable handingNitin A Kamble2014-08-061-0/+2
| | | | | | | | | | * Remove an unnecessary check * Instead of ignoring, report the errors (From OE-Core rev: 7afc6df6f0d0bbe0c5cb8ec021d430d6d9714941) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* INITRD var: make it a list of filesystem imagesNitin A Kamble2014-08-021-5/+22
| | | | | | | | | | | | | | | | | | The initrd image used by the Linux kernel is list of file system images concatenated together and presented as a single initrd file at boot time. So far the initrd is a single filesystem image. But in cases like to support early microcode loading, the initrd image need to have multiple filesystem images concatenated together. This commit is extending the INITRD variable from a single filesystem image to a list of filesystem images to satisfy the need mentioned above. (From OE-Core rev: b0ac481dda99d8f4be8015964fcb2cb01afce08c) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: Add parameter to specify HDDIMG volume IDRicardo Neri2014-07-101-1/+9
| | | | | | | | | | | | | | | | Users and children of the bootimg class may need to specify at build time the volume ID of the HDDIMG vfat partition. An example of this may be when at runtime the partition is uniquely identified by the volume ID. The HDDIMG_ID is expected to be provided externally. If the variable is not set, mkdosfs will use the default volume-id. (From OE-Core rev: 869a5c07f0ecc21b8cfbd239e901a9a4501ef087) Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Globally replace 'base_contains' calls with 'bb.utils.contains'Otavio Salvador2014-04-251-4/+4
| | | | | | | | | | | The base_contains is kept as a compatibility method and we ought to not use it in OE-Core so we can remove it from base metadata in future. (From OE-Core rev: d83b16dbf0862be387f84228710cb165c6d2b03b) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg/grub-efi.bbclass: allow using a different class for EFI imagesStefan Stanacar2014-03-111-4/+5
| | | | | | | | | | | | Abstract away some names so one can select using EFI_PROVIDER a different class than grub-efi for populating live images, basically allowing the use of a different bootloader than grub-efi. (From OE-Core rev: 14e5de3b8f4d5902d0ac683ff45fb878e88b40ef) Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image*.bbclass, bootimg.bbclass: add image type dependenciesLaurentiu Palcu2014-02-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | The following dependencies were manually added in the image creation code. However, in order to have an image dependency mechanism in place, use a new variable, IMAGE_TYPEDEP, to declare that an image type depends on another being already created. The following dependencies are added by this commit: elf -> cpio.gz live -> ext3 vmdk -> ext3 iso -> ext3 hddimg -> ext3 This commit adds also another new variable: IMAGE_TYPES_MASKED. Currently, masking out certain types from IMAGE_FSTYPES was hardcoded in the image creation code. [YOCTO #5830] (From OE-Core rev: 5e2796aa28e02ae3a076c6593c6533753720b13d) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* boot-directdisk.bbclass: Fix media generation problems with vmdkJason Wessel2013-09-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | The various populate methods need to accept a path as an argument vs using hard expanded variables. In the case of the boot-directdisk class it uses a different path for HDDDIR but it gets eclipsed by the the class definition at the point in time ${HDDDIR} gets expanded. The logical fix is to pass the arguments to the functions as opposed to using globally expanded variables from the class definitions. This patch changes 3 things: 1) syslinux_hddimg_populate takes an argument for the destination 2) syslinux_iso_populate takes an argument for the destination 3) populate is changed to boot_direct_populate because there was a conflict with it overriding the populate in bootimg.bbclass [YOCTO #3994] (From OE-Core rev: 63d164b755b984021f7e3cdba7280918ded6e821) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimage.bbclass, zisofs-tools-native: add ability to compress ISO imagesJason Wessel2013-09-301-3/+21
| | | | | | | | | | | | | | | | | | | The mkzftree is needed to allow ISO images to be compressed with minimal runtime overhead. Below is an example of the savings on a core-image-minimal. Before ls -l: 24117248 core-image-minimal-qemux86-64.iso Using the mkzftree ls -l: 16777216 core-image-minimal-qemux86-64.iso (From OE-Core rev: 808d4371939ec48ed62e0c0b6614b96d61b1f7b8) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimage.bbclass, grub-efi.bbclass: Improve EFI & PCBIOS+EFI ISO supportJason Wessel2013-09-301-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the latest mkisofs it is possible to generate 3 different types of ISO images, which can be used in various scenarios. 1) PCBIOS Only ISO - This option remains unchanged by this commit - Uses syslinux menus - Can be directly copied with dd to a USB device - Can be burned to optical media 2) EFI Only ISO - Uses grub 2 menus - Can be burned to optical media - If you want to use this image on a USB device extra steps must be taken in order to format the USB device with fat32, and copy an EFI loader which will in turn load the iso image 3) PCBIOS / EFI ISO - This is a hybrid image ISO that will work for case 1 or 2 as above with the same restrictions and boot menu types depending on what type of firmware is installed on the hardware or depending on if EFI or "Legacy Boot" is enabled on some UEFI firmwares. The syslinux.bbclass is now always required because that is where the isohybrid dependencies come from as well as the configuration data for the isohybrid. The isohybrid is the secret sauce which allows the ISO to work as optical media or as a disk image on USB or a HDD/SSD. [YOCTO #4100] (From OE-Core rev: a4baf911ab9d306ce5200e7d794ed6a9ccb25f30) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimage.bbclass: Move fat image creation into a functionJason Wessel2013-09-171-52/+58
| | | | | | | | | | | | | | | In order to call the fat image creation multiple times it needs to be in its own function. A future commit will make use of the new function to additionally create EFI image files for use with an ISO. [YOCTO #4100] [YOCTO #1913] (From OE-Core rev: 6d5181dc68766f42416a41f4988e8400d37fd7fa) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* boot-directdisk/bootimg/image-vmdk: remove more nostamps for image generationRobert Yang2013-05-101-1/+0
| | | | | | | | | | | | | | | | | | | We have removed the nostamps for do_rootfs and do_build, so it seems reasonable to remove the stamps for do_bootimg, do_bootdirectdisk and do_vmdkimg. The current problem is that the do_vmdkimg always re-run, but the do_rootfs may not, so the code like below in the do_rootfs function doesn't re-run and cause problems (the symlink exists when the do_vmdkimg creates the symlink again): if d.getVar('IMAGE_LINK_NAME', True): cmds += "\trm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.*" (From OE-Core rev: 45c7dab5d51065c7b24ab5292f8e9d3104eb0626) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: add comment for NOHDDRobert Yang2013-05-091-0/+1
| | | | | | | | | | Add comment for NOHDD which is used for skipping building the HDDIMG if set to 1 (From OE-Core rev: 9843ad9d783f68b97fedfe5b435528538bb26c1c) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Use FAT 32 for images larger than 512MBDarren Hart2012-12-131-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes [YOCTO #2138] Commit 217584211625b1c496fe5b78aa4765ccf605d2b9 dropped the forced use of FAT32 for the hddimg generation as it broke with very small images (< 32MB). Unfortunately, left to its own devices, mkdosfs appears to select FAT16 even for very large images, resulting in 2.2GB images being generated as FAT16: $ ls -lah core-image-lsb-sdk-atom-pc-20121010233936.hddimg -rw-rw-r-- 1 dvhart dvhart 2.2G 2012-10-17 08:00 core-image-lsb-sdk-atom-pc-20121010233936.hddimg $ file !$ file core-image-lsb-sdk-atom-pc-20121010233936.hddimg core-image-lsb-sdk-atom-pc-20121010233936.hddimg: x86 boot sector, code offset 0x58, OEM-ID "SYSLINUX", sectors/cluster 128, root entries 512, Media descriptor 0xf8, sectors/FAT 138, heads 64, sectors 4502496 (volumes > 32 MB) , serial number 0x50761926, label: "boot ", FAT (16 bit) The result was a runtime boot error from SYSLINUX and a failure to boot live images greater than 1GB in size. While strictly speaking it is the cluster count that determines which FAT size is used, that calculation requires more information than we have readily available (such as sectors per cluster). If we let mkdosfs determine sectors per cluster and just set a sane threshold above which FAT32 is used, we get correct bootable images. With this patch the 2.2GB core-image-lsb-sdk uses FAT32 and the 21 MB core-image-minimal uses FAT16, and both boot in qemu successfully: $ ls -lah tmp/deploy/images/core-image-lsb-sdk-atom-pc-20121212220835.hddimg -rw-r--r-- 1 dvhart dvhart 2.2G 2012-12-12 14:18 tmp/deploy/images/core-image-lsb-sdk-atom-pc-20121212220835.hddimg $ file !$ file tmp/deploy/images/core-image-lsb-sdk-atom-pc-20121212220835.hddimg tmp/deploy/images/core-image-lsb-sdk-atom-pc-20121212220835.hddimg: x86 boot sector, code offset 0x58, OEM-ID "SYSLINUX", sectors/cluster 8, Media descriptor 0xf8, heads 64, sectors 4470304 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 4357, reserved3 0x800000, serial number 0x50c902b7, label: "boot " $ ls -lah tmp/deploy/images/core-image-minimal-atom-pc-20121212220600.hddimg -rw-r--r-- 1 dvhart dvhart 21M 2012-12-12 14:06 tmp/deploy/images/core-image-minimal-atom-pc-20121212220600.hddimg $ file !$ file tmp/deploy/images/core-image-minimal-atom-pc-20121212220600.hddimg tmp/deploy/images/core-image-minimal-atom-pc-20121212220600.hddimg: x86 boot sector, code offset 0x58, OEM-ID "SYSLINUX", sectors/cluster 4, root entries 512, sectors 41408 (volumes <=32 MB) , Media descriptor 0xf8, sectors/FAT 41, heads 64, serial number 0x50c8ffec, label: "boot ", FAT (16 bit) I have tested and booted core-image-minimal and core-image-lsb-sdk for atom-pc with qemu-system-i386 using this patch. (From OE-Core rev: de808c552d445502bd99f78bb8159d21149f87c1) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: Steve Sakoman <steve@sakoman.com> Cc: Joshua Immanuel <josh@hipro.co.in> Cc: Przemek Czesnowicz <przemyslawx.czesnowicz@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Remove now unnecessary dummy inherit usageRichard Purdie2012-12-071-2/+2
| | | | | | | | | bitbake now supports empty expansions for inherit usage so we can simplify these statements. (From OE-Core rev: 77cd2ef06bdf701b047c4f8c817b364b8b4b8837) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert tab indentation in python functions into four-spaceRichard Purdie2012-07-191-13/+13
| | | | | | (From OE-Core rev: 604d46c686d06d62d5a07b9c7f4fa170f99307d8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Use STAGING_KERNEL_DIRDarren Hart2012-07-061-1/+1
| | | | | | | | | | | | | | | bootimg.bbclass using STAGING_DIR_HOST/kernel instead of STAGING_KERNEL_DIR, resulting in build failure of live images. | install: cannot stat `/usr/local/dev/yocto/fishriver-test/build/tmp/sysroots/fishriver/kernel/bzImage': No such file or directory Replace it with STAGING_KERNEL_DIR. (From OE-Core rev: 8f16811a8d51982a8b3d70e6087aef4a41926840) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Tested-by: Tom Zanussi <tom.zanussi@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: Tweak iso images to become hybrid imagesDamien Lespiau2012-04-261-0/+2
| | | | | | | | | | | | | This allows iso images to be written to usb keys and booted on systems which have a BIOS which support this. There is no real down side to tweaking the iso images in this way. [YOCTO #1763 partial] (From OE-Core rev: 9a946554e4843841c2ec3cbb2575e80d0ccdc29f) Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Fix QuotingSaul Wold2012-02-281-4/+4
| | | | | | | (From OE-Core rev: 18ad7e003e36510ff0097d71bad0378a77fabbdd) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Use the same OS files for each boot methodDarren Hart2012-02-081-7/+24
| | | | | | | | | | | | | | | | | | | | | | Fixes [YOCTO #1951] The do_bootimg code can generate hybrid efi+pcbios images (syslinux and grub-efi) to boot on platforms with both EFI and legacy BIOS options. The current implementation copies the kernel, initrd, and rootfs twice, unnecessarily bloating the image size. This is an especially egregious bug on -sato images. Update the classes to use a common install of the kernel, initrd, and rootfs to the root of the boot media. Grub-efi, syslinux, and isolinux can all reference this location explicitly with a leading slash. Tested with an EFI+PCBIOS image in both EFI and PCBIOS boot modes on two platforms. No ISO image testing was performed. (From OE-Core rev: 5209016cf4c4c8f649e37dc8857b3fbcfe8dd8c8) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Do not force FAT32 on all images, it violates the FAT specificationDarren Hart2012-02-011-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Fixes [YOCTO #1940] do_bootimg was performing the FAT overhead calculations assuming FAT32 and then forcing the use of FAT32 with "-F 32" to mkdosfs. The FAT specification is clear on cluster count being the determining factor for FAT size (even if the fs string is set to FAT32, go figure). Syslinux follows this spec, and rightly so, resulting in a failure on core-image-minimal: syslinux: zero FAT sectors (FAT12/16) Drop the "-F 32" from mkdosfs to allow it to select the appropriate FAT size based on cluster count. Leave the FAT overhead calculation in FAT32. This will result in a little extra padding for really small images, but not enough extra to justify recalculating for FAT12 and FAT16. Tested with a core-image-minimal build for atom-pc. do_bootimg completed successfully, and the resulting image was FAT16. (From OE-Core rev: 634137704dd1a205e377a1131ef708f1c981f6b2) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Fix a math thinko in the block count calculationDarren Hart2012-01-251-1/+1
| | | | | | | | | | | | | | | Fixes [YOCTO #1852] ... again. The conversion from sectors to blocks was multiplying by 2 instead of dividing by 2. Blocks are 1024 bytes, sectors are 512 bytes. The result was images being much larger than intended. Reported-by: Tom Zanussi <tom.zanussi@intel.com> (From OE-Core rev: b35384fa3ca96b31c63d764322215abced2066e4) Signed-off-by: Darren Hart <dvhart@linux.intel.com> CC: Joshua Lock <josh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Account for FAT filesystem overhead in image sizeDarren Hart2012-01-171-9/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | Fixes [YOCTO #1852] The bootimg class wasn't accounting for non-trivial amount of space required by the directory entries and FATs for the FAT filesystem. This patch attempts to make an accurate prediction of FAT overhead and adjusts the image size accordingly. It assumes no more than 16 directory entries per directory (which fit in a single sector). It also assumes 8.3 filenames. With the ceiling functions rounding up to full sectors and tracks, these assumptions seem reasonable. In order to ensure the calculations are accurate, this patch forces the FAT size to 32, rather than allowing mkdosfs to automatically select 12, 16, or 32 depending on the image being built. Tested by setting BOOTIMG_EXTRA_SPACE=0 and building core-image-minimal and core-image-sato for fri2-noemgd from meta-intel. (From OE-Core rev: 68aa18609c10a3ae2f738930c933fa2a95ce8959) Signed-off-by: Darren Hart <dvhart@linux.intel.com> CC: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Use mcopy to construct the hddimgDarren Hart2011-12-161-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The initial directory support (-d) added to mkdosfs has proven to be incomplete and non-compliant with FAT. Rather than continue to maintain this feature and work around the various issues, we can use mcopy to construct the image. bootimg.bbclass already depends on mtools-native (although it may not have needed to previously). No new dependencies are introduced. The image created passes dosfsck cleanly. Remove the call to dosfsck. mcopy reported an error with the image we were creating: Total number of sectors (107574) not a multiple of sectors per track (32)! Add some logic to ensure the total sector count is an integral number of sectors per track, including forcing the logical sector size to 512 in the mkdosfs command. The du -bks arguments are contradictory, -b is equivalent to "--apparent-size --block-size=1" and -k is --block-size=1K. If reordered, -kbs will report the disk usage in bytes insteadk of 1k blocks. Eliminate the ambiguity by using: du --apparent-size -ks (From OE-Core rev: 92d2ea1a306354c6565a1b05b51b5719e481840f) Signed-off-by: Darren Hart <dvhart@linux.intel.com> CC: Nitin A. Kamble <nitin.a.kamble@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Use dosfsck to clean up the generated live imageDarren Hart2011-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The generated filesystem has some errors that dosfsck is able to repair: dosfsck 2.11, 12 Mar 2005, FAT32, LFN Checking file /ldlinux.sys (LDLINUX.SYS) Checking file /initrd (INITRD) Checking file /syslinux.cfg (SYSLINUX.CFG) Checking file /EFI (EFI) Checking file /vmlinuz (VMLINUZ) Checking file /rootfs.img (ROOTFS.IMG) /vmlinuz File size is 4144896 bytes, cluster chain length is > 4145152 bytes. Truncating file to 4144896 bytes. Checking file /EFI/.. (..) Checking file /EFI/BOOT (BOOT) Checking file /EFI/. (.) /EFI/.. Start (16022) does not point to .. (0) /EFI/. Start (0) does not point to parent (16022) Checking file /EFI/BOOT/.. (..) Checking file /EFI/BOOT/. (.) Checking file /EFI/BOOT/initrd (INITRD) Checking file /EFI/BOOT/grub.cfg (GRUB.CFG) Checking file /EFI/BOOT/bootia32.efi (BOOTIA32.EFI) Checking file /EFI/BOOT/vmlinuz (VMLINUZ) Checking file /EFI/BOOT/rootfs.img (ROOTFS.IMG) /EFI/BOOT/.. Start (16021) does not point to .. (16022) /EFI/BOOT/. Start (0) does not point to parent (16021) /EFI/BOOT/vmlinuz File size is 4144896 bytes, cluster chain length is > 4145152 bytes. Truncating file to 4144896 bytes. Performing changes. /build/poky/fri2/tmp/deploy/images/core-image-minimal-fri2-noemgd-20111216000605.hddimg: 12 files, 26635/26828 clusters Add a dosfsck command following the mkdosfs command to correct these. (From OE-Core rev: 5d2554ec5f1d3b15e02b1d76cc9bd2d4861969f8) Signed-off-by: Darren Hart <dvhart@linux.intel.com> CC: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Allow for EFI-only boot imagesDarren Hart2011-11-301-9/+40
| | | | | | | | | | | | | | Condition building PCBIOS legacy images on MACHINE_FEATURES containing "pcbios" or not containing "efi". This ensures existing BSPs will continue to get the old PCBIOS legacy-only images. New BSPs can add "efi", "pcbios", or both. The images created likewise support one or the other or both. EFI-only ISO images are untested. (From OE-Core rev: be3fc8c07e84c654f55c5d09934dfbdc7ff7e2b6) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Add grub-efi supportDarren Hart2011-11-301-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a new grub-efi.bbclass and integrate it into bootimg alongside the syslinux support. This new class uses the output from the grub-efi-native recipe. Thanks goes to Josef Ahmad <josef.ahmad@intel.com> for the original build_grub_cfg() routine. The EFI features are only added to the image if MACHINE_FEATURES contains "efi". The resulting images are therefor either legacy boot only (like they were originally) or legacy boot and EFI boot. A new "dummy.bbclass" was added to allow for the conditional include of grub-efi. This makes it so if efi support is not to be built in, we don't spend time building grub-efi-native just because the include adds the dependency. There is a bug in the mkdosfs tool from the dosfstools package which causes it to crash when the directory passed with the -d parameter contains sub-directories. An /EFI/BOOT directory is required for a proper EFI installation. Until it is fixed, we install to the top level directory for the hddimg. (From OE-Core rev: be95f54495bf9e03062f86b929c66cab6e385a03) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Josef Ahmad <josef.ahmad@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Pull syslinux specific bits into syslinux.bbclassDarren Hart2011-11-301-55/+16
| | | | | | | | | | | | Working towards a more generic bootimg.bbclass, pull out all syslinux specific bits and let syslinux.bbclass manage them directly. This introduces no functional changes to the images constructed and the behavior remains unchanged. (From OE-Core rev: 1915293688d348a765aa0bcdf01168c9fecd9842) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Refactor build_hddimg and build_iso routinesDarren Hart2011-11-301-42/+43
| | | | | | | | | | | Separate the construction of the ISO image from that of the hddimg. This is part of the groundwork for creating a much more flexible live image builder. (From OE-Core rev: 2da25c7c6649757350782a939bcc7553c5c86570) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg: Create a valid boot sector for the iso imageDamien Lespiau2011-11-181-0/+2
| | | | | | | | | | | | | It's possible to create an "hybrid" iso image that you can both burn to a CD-Rom and dd to a USB key. isohybrid will create a valid boot sector for the USB key case. [YOCTO #1763] (From OE-Core rev: 321a7dc9d934f31aae27828ff8c56d6c69ecc665) Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: add support to disable HDD image buildingOtavio Salvador2011-10-241-21/+23
| | | | | | | | | If an image sets NOHDD = "1" the HDD image won't be build. (From OE-Core rev: 23c5a83e877efe6d86618898dd181bb75f44aa71) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: fix comment typoOtavio Salvador2011-10-041-1/+1
| | | | | | | (From OE-Core rev: 780685bbaf6d6f74aed77c412686592d6b9cf8e5) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: machine specific sysroots implementationDongxiao Xu2011-01-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes the sysroots path to be machine specific. Changes includes: 1) STAGING_DIR_TARGET and STRAGING_DIR_HOST points to machine specific paths. 2) task stamp files. Adding ${MACHINE} info into stamp files for do_populate_sysroots and do_package tasks. Add a BB_STAMPTASK_BLACKLIST to keep native, nativesdk, crosssdk, and cross-canadian stamp unchanged. 3) siteconfig path. Separate the site config path for different machines to avoid one machine adopting the cache file of another machine. 4) sstate. Add machine name to sstate manifest file. Change relocation code for sstate paths since sysroot is machine. Keep native, nativesdk, crosssdk, and cross-canadian unchanged. 5) toolchain scripts. Change the environment path to point to machine specific sysroots in toolchain scripts bbclass. 6) Relocate la files when populating to a different machine of the same architecture. 7) Exclude STAGING_DIR_TARGET and STAGING_DIR_HOST parameter from sstate siginfo since they contain ${MACHINE} information. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
* bootimg.bbclass: Fix dependency nameRichard Purdie2010-03-251-1/+1
| | | | Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* bootimg/boot-directdisk.bbclass: Update afer syslinux changes, fix mbr.bin ↵Richard Purdie2010-03-251-4/+2
| | | | | | location and fix dependencies Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>