Bering-uClibc 6.x - Developer Guide - Building an Image
Building an Image | ||
---|---|---|
Prev | Bering-uClibc 6.x - Developer Guide | Next |
Contents
Boot Disk Media
Most users of Bering-uClibc 6.x are expected to boot from some sort of flash drive, most likely:
- A Compact Flash (CF) card which is installed:
- Directly onto the main board (as with the the PC Engines ALIX boards)
- Into an IDE-to-CF adaptor
- Into a USB-to-CF adaptor
- A USB flash drive
For all of these a disk image which boots using SYSLINUX is required.
A CD-ROM image which boots using ISOLINUX is also required as an alternative. (A .iso image is particularly useful for testing Bering-uClibc 6.x with a Virtual Machine.)
In theory, PXE boot using PXELINUX is an option for LEAF though this is not currently supported by Bering-uClibc 6.x. While PXE can easily deliver the kernel image and the initrd image, delivering the .lrp files is more problematic and saving changes is more complex still. Other Linux distributions solve this problem by delivering files using TFTP or using NFS - see for example http://minimyth.org/ - but adding the necessary support would require additional modules in initrd.lrp and would require modifications to /init.
buildimage.pl
For Bering-uClibc 6.x there is a script - buildimage.pl
- which is heavily based on buildpacket.pl
and which is controlled by a similar style of configuration file.
Different variants of disk image files are supported:
- Different kernel architecture optimizations (e.g. i486, i686, geode)
- Different boot loader variants (e.g. isolinux, pxelinux, syslinux)
- Different variants for other reasons (e.g. vga for standard VGA consoles, ser for RS-232 serial consoles)
buildimage.pl
use a single buildimage.cfg file (locate in conf/image/templates) which specifies how the results of the build process are combined with configuration file templates to construct the final disk image contents.
The buildimage.cfg file typically specifies that the image is constructed by copying files as shown below:
buildtool package *.lrp Copied to / *.lwp Copied to / initrd.lrp Copied to /initrd.lrp staging boot linux-$KARCH Copied to /isolinux/linux or /syslinux/linux on all images lib modules 4.x.x-$KARCH * Built into /modules.sqfs, excluding the build and source sub-directories conf image common leaf.cfg Copied to / edited to replace LRP,PKGPATH,LOG_SIZE and TMP_SIZE place holders readme Copied to / edited to replace VERSION and DATE place holders configdb.$variant Copied to /configdb isolinux isolinx.cfg Copied to /isolinux/ on ISOLINUX images, edited to replace LRPCFG and KERNEL place holders isolinux.dpy Copied to /isolinux/ on ISOLINUX images, edited to replace VERSION and DATE place holders syslinux syslinux.cfg Copied to /syslinux/ on SYSLINUX images, edited to replace LRPCFG and KERNEL place holders syslinux.dpy Copied to /syslinux/ on SYSLINUX images, edited to replace VERSION and DATE place holders
TODO Add more info about buildimage.pl.
The result of running buildimage.pl is a single file located in image directory
- For an ISOLINUX image this is a .iso file which is typically burned to CD-R/RW media
- For a SYSLINUX image this a .tar.gz file which must be copied to a suitably prepared flash drive
- For a PXELINUX image this a .tar.gz file which must be copied to a TFTP server
Flash Drive Preparation for SYSLINUX
Flash drive media used for booting Bering-uClibc 6.x should be configured to meet the following criteria:
- A single disk partition which is specified to be Bootable and with a file system type which matches the installed file system
- File system hex code "b" which fdisk lists as "W95 FAT32" is recommended
- QUESTION When is "c" which fdisk lists as "W95 FAT32 LBA" required / desirable?
- A file system on that disk partition which is compatible with the Linux vfat driver
- FAT32 is recommended
- A SYSLINUX install on that disk partition (which creates /ldlinux.sys and installs the MBR)
The contents of the generated .tar.gz file can then be copied onto the flash drive.
Flash Drive Preparation for GRUB
Flash drive media used for booting Bering-uClibc 6.x should be configured to meet the following criteria:
- A first disk partition of 150 KB which is specified to be Bootable and with a file system type which matches the installed file system. This partition is used to hold the grub boot code only.
- File system hex code "b" which fdisk lists as "W95 FAT32" is recommended
- Multiple disk partitions of 30MB with a file system type which match the supported file systems. Each of these partitions can hold a dedicated copy of the LEAF software and the grub boot loader can be used select the system to load.
- File system hex code "b" which fdisk lists as "W95 FAT32" is recommended
The procedure for all this will need to be detailed in the Bering-uClibc 6.x - User Guide
Prev | Up | Next |