summaryrefslogtreecommitdiff
path: root/README
blob: 192fbcac68ae16c312fa3c4b60e2eef59db83a3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
This ReadMe explains the additions and non-standard modifications this live-build tree has.

Author: Andreas Loibl <andreas@andreas-loibl.de>
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".