This repository has been archived by the owner on Oct 31, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
150 lines (128 loc) · 5.98 KB
/
README
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
145
146
147
148
149
┌──────────────┐
│ SaLT scripts │
└──────────────┘
I/ What are “SaLT” and “SaLT scripts”?
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
→ SaLT stands for Salix Live Tools. With these tool set, you can create an initrd for booting
live media. SaLT bundle a basic tree structure for booting but it aims at creating an initrd
and so is not a complete solution for creating a Live CD.
→ SaLT scripts are a collection of scripts that deal with SaLT, can build live modules and that
can create a ready-to-burn Live ISO.
Both these tools are free (GPL v3+) and maintained by the same team:
▸ JRD <[email protected]>
▸ Shador <[email protected]>
▸ Akuna <[email protected]>
II/ Minimum requirements
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
Some software must be installed in the host system. I will list them as named in Slackware/Salix.
Required:
- spkg or pkgtools
- coreutils, sed, grep, tar, gzip, bzip2, xz, findutils
- glibc, sysfsutils, gcc, glib2, automake, autoconf, make
- wget
- fuse, util-linux-ng
- squashfs-tools
- grub2
- perl
- imagemagick
- cdrtools
Optional:
- fake-uname (could be usefull if your running kernel is different that the one you bundle)
- xcf2png (if you provide a background image in XCF format)
Some software need to be available as packages for the target Live system. These are:
- kernelsource (exploded in a directory, linked from /usr/src/ ; or installed)
- kernelive
- curlftpfs, sshfs(-fuse)
III/ Create an ISO
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
For creating an ISO, you only need few things actually.
You will need a kernelive package, a list of packages (organized by live modules),
some custom packages (like an installer, the persistence wizard, …), the standard
kernel packages (image, headers, …), a list of liveenv modules, and a PNG image for
the bootloader background.
1/ kernelive
------------
Kernelive is a side project available here:
https://salix.svn.sourceforge.net/svnroot/salix/kernelive/trunk
◆ Get the kernelsource of the kernel you want to build.
◆ Use a tiny script fake-uname (available on this site as a package) to fake the kernel
version in use.
◆ Create a config-KVER.live for the corresponding KVER kernel version.
You could have a look to the patch file to know the diff from slackware kernel in order to
apply to yours.
◆ use the kernelive SLKBUILD file with slkbuild.
2/ packages
-----------
You must now decide which packages you want to include in your ISO.
You must also arganize your packages in collections (modules).
Be carefull to put any package that depends directly on the kernel version in a separate
module, together with the kernelive package.
The last module will contains a special package, named liveenv, which deals with configuring
a live system.
◆ Create a file packages-foobar for each foobar module. This file will list each package on
one line.
◆ Create a file MODULES_INFO with the referenced modules:
┊ module=kernel,packages-kernel
┊ module=base,packages-base
┊ module=live,packages-live
You must now define which liveenv module you want to provide.
You can list them in liveenv/modules directory. At least all 0? modules should be considered.
◆ Create a file MODULES.liveenv with the referenced liveenv modules:
┊ etc
┊ root-password
┊ hostname
◆ Copy the standard kernel packages in std-kernel directory:
- kernel-huge
- kernel-modules
- kernel-firmware
- kernel-headers
◆ Copy your special packages in local directory:
- kernelive
- salix-live-installer
- persistence-wizard
Get all remaining packages by issueing:
$ ./getpkgs.sh ARCH VERSION
where ARCH could be 32 or 64 and VERSION is the Slackware version.
3/ configuration
----------------
You need to indicate some configuration before continuing.
This is done in a file named “config”. Example:
┊ # vim: set syn=sh:
┊ if [ -z "$DISTRO" ]; then
┊ DISTRO=salix
┊ VER=xfce-13.37-32
┊ RLZ=test
┊ # empty for a final release for example
┊ #RLZ=
┊ #
┊ BGIMAGE_NAME=salix.xcf
┊ # don't change this unless you sure that the newer version works the same
┊ FUFSVER=0.4.2
┊ FUFSURL=http://funionfs.apiou.org/file/funionfs-$FUFSVER.tar.gz
┊ # this is atuo-generated for convenience but you can provide another filename
┊ ISO_NAME=${DISTRO}live-$VER${RLZ:+-$RLZ}.iso
┊ # the package containing the live kernel. Normally you won't need to change this
┊ KERNELPKGNAME=kernelive
┊ # unless you have a very good reason, use xz
┊ COMP=xz # could be xz, lzm, lzo, gz.
┊
┊ export DISTRO
┊ export VER
┊ export RLZ
┊ export BGIMAGE_NAME
┊ export FUFSVER
┊ export FUFSURL
┊ export ISO_NAME
┊ export KERNELPKGNAME
┊ export COMP
┊ fi
You will also need a background image for the bootloader (the one you specified in the
config file).
The image could be in any format, but will be converted to PNG 640×480, 8bits RGB Color.
If you decide to have a Gimp XCF source file, you will also need the xcf2png tool installed.
◆ After that, you just need to run:
# ./build-iso.sh
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ Akuna <[email protected]>
▸ JRD <[email protected]>
▸ Shador <[email protected]>