From abdc52c7c08ed0477b65d42f3d296a674943059a Mon Sep 17 00:00:00 2001 From: Andreas Loibl Date: Fri, 2 Mar 2012 19:24:32 +0100 Subject: added README --- README | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..192fbca --- /dev/null +++ b/README @@ -0,0 +1,144 @@ +This ReadMe explains the additions and non-standard modifications this live-build tree has. + +Author: Andreas Loibl +http://kanotix.acritox.com + +live-build: KANOTIX +=================== +The purpose of this live-build tree is to build "KANOTIX" (http://kanotix.com) live-images. +Full Example: + lb config -a amd64 -p kanotix-master --bootloader grub2 --gfxoverlays true + lb build + isohybrid-bg2 kanotix32.iso + ./mkefipart-hfsplus + ./isohybrid-acritox kanotix32.iso +will create a 64bit multi-hybrid-ISO with GRUB2 and embedded gfxoverlays. + +Compat +====== +Compatibility functions to be able to build this tree with live-build version 2 and 3. +live-build 3 introduced various changes, e.g. some live-config parameters +have been renamed or removed, also the directory-structure of config/ has changed. +These compatibility functions allow to use the old format even if you use live-build 3. +If you do not want to use this compatibility feature just remove the following files: + auto/compat auto/functions/compat + +Sorting the files on the ISO +============================ +You can create a sortfile for genisoimage where you can specify the order in which +the files will be put in the ISO9660-filesystem: + config/binary_iso/isoimage.sort +See the option "-sort" in the manual of genisoimage for details on the sortfile-format. + +Debpool +======= +All packages listed in + config/chroot_debpool/packages +will be downloaded and a repository will be created on the ISO: + binary/debian/ +This repository will be signed using the keys defined in + config/chroot_debpool/live-media-keyring.pub + config/chroot_debpool/live-media-keyring.sec +If you did not create these key-files they will be autogenerated. +If you want to keep the autogenerated key-files just + touch /config/chroot_debpool/keep +then you will find the generated keys in + debpool/ +The debpool-feature is implemented using a function-hack and a chroot-hook: + auto/functions/debpool-hook + config/chroot_local-hooks/XX_debpool + +Gfxoverlays +=========== +Gfxoverlays are a way to embedd binary-graphics-drivers (nvidia, fglrx) into the ISO. +It uses the Kanotix-scripts to download and build the drivers in the chroot and create +an aufs overlay of each built driver that will be put onto the ISO. The live-boot-initrd +will then load one of these overlays on top of the rootfs. +Each version of the drivers defined in config/gfxoverlays/versions will be built by + config/binary_local-hooks/gfxoverlays +using build_gfxoverlay.sh if you enable if with + lb config --gfxoverlays true +and they will be stored in + cache/gfxoverlays + +Isohybrid with GRUB2 and isohybrid-acritox +========================================== +There are various hooks in this config tree that intend to prepare and configure the +image to become a multi-hybrid-ISO (if you are using GRUB2 as bootloader): + + 1. Multiple config-files for GRUB2, not only one grub.cfg: + all of the following files will be copied to binary/boot/grub: + config/binary_grub/grub*.cfg + + 2. Kanotix-GRUB2-theme will be copied to the ISO: + binary/boot/grub/ + + 3. A GRUB2 x86 image will be built in the chroot and placed on the ISO - there it + will be used by isohybrid-bg2 to make the MBR of the Hybrid-ISO boot into GRUB2. + config/binary_local-hooks/isohybrid-acritox + it will be stored in + binary/boot.isohybrid + + 4. EFI for x64: + - an image with GRUB2 will be built (including modules) + - an EFI-Shell will be downloaded + config/binary_local-hooks/grub2-efi + they will be stored in + binary/efi/boot/ + + 5. FAT-filesystem that contains GRUB2EFI and will be used as a fake-partition + in the MBR-partition-table by isohybrid-acritox + config/binary_local-hooks/mkefipart-fat + it will be stored in + binary/boot.efi.img + + 6. HFS+-filesystem that contains GRUB2EFI and will be used as a fake-partition + in the Apple-Partition-Map by isohybrid-acritox + mkefipart-hfsplus + + 7. An empty space for the fake-ISO9660-partition that will be filled and added + to the MBR-partition-table by isohybrid-acritox + config/binary_local-hooks/mkembeddediso + it will be stored in: + binary/boot.iso.img + +Numbering of kernels on the binary +================================== +This config tree has a hack included that mimics the kernel-numbering of +lb_binary_syslinux for lb_binary_grub2, meaning that if you use GRUB2 as bootloader +the kernels will be named vmlinuz/initrd.img, vmlinuz2/initrd2.img, ... instead of their +full kernel versions (vmlinuz-3.x.y-z, ...) +This is done by some function-overloading in auto/functions/livebuild-hacks + +Build using tmpfs +================= +use "lb config --tmpfs true" to enable. + +you may specify mount-options with --tmpfs-options, e.g. + + lb config --tmpfs-options "size=6G" + +to set the maximum size of the ramdisk to 6GB. + +"lb build" will then mount a tmpfs into the "tmpfs" directory and the build process +will take place there. + +after the build the result and the cache will reside on the tmpfs, so if you +want to keep them you should move or copy them to somewhere else. +everything inside the "tmpfs" directory will be lost when umounting it, so if +you want to save the cache for later builds you have to move (or copy) it: + + mv tmpfs/cache . + +live-build will not umount the "tmpfs" unless you run "lb clean --tmpfs" +or "lb clean --all", so if you are going to do multiple builds without +umounting the "tmpfs" you do not need to backup the cache, it will stay there +and will be used for the next build. + +Including Kanotix-scripts +========================= +All urls listed in + scripts.urls +will be fetched to config/chroot_local-includes/usr/local/bin/ when "lb config" +is called. They will be removed on "lb clean". + -- cgit v1.0