1 | <sect1 id="ch-scatter-how">
|
---|
2 | <title>How things are going to be done</title>
|
---|
3 | <?dbhtml filename="how.html" dir="chapter01"?>
|
---|
4 |
|
---|
5 | <para>You are going to build your LFS system by using a previously installed
|
---|
6 | Linux distribution (such as Debian, Mandrake, Red Hat, or SuSE). This existing
|
---|
7 | Linux system (the host) will be used as a starting point, because you will need
|
---|
8 | programs like a compiler, linker and shell to build the new system. Normally
|
---|
9 | all the required tools are available if you selected <quote>development</quote>
|
---|
10 | as one of the options when you installed your distribution.</para>
|
---|
11 |
|
---|
12 | <para>In <xref linkend="chapter-making-space"/> you will first create a new
|
---|
13 | partition and file system, the place where your new LFS system will be compiled
|
---|
14 | and installed. Then in <xref linkend="chapter-getting-materials"/> you download
|
---|
15 | all the packages and patches needed to build an LFS system, and store them on
|
---|
16 | the new file system. In <xref linkend="chapter-preparation"/> you set up a good
|
---|
17 | environment to work in.</para>
|
---|
18 |
|
---|
19 | <para><xref linkend="chapter-temporary-tools"/> then discusses the installation
|
---|
20 | of a number of packages that form the basic development suite used to build the
|
---|
21 | actual system in <xref linkend="chapter-building-system"/>.</para>
|
---|
22 |
|
---|
23 | <para>The first thing to be done in <xref linkend="chapter-temporary-tools"/>
|
---|
24 | is build a first pass of the <emphasis>toolchain</emphasis>, consisting of
|
---|
25 | Binutils and GCC. The programs from these packages will be linked statically in
|
---|
26 | order for them to be usable independently of the host system (thus making it
|
---|
27 | in theory possible to skip the second passes). The second thing to do is build
|
---|
28 | Glibc, the C library. Glibc will be compiled by the just-built toolchain
|
---|
29 | programs. The third thing to do is build a second pass of the toolchain, this
|
---|
30 | time linking it dynamically against the newly built Glibc. The remaining <xref
|
---|
31 | linkend="chapter-temporary-tools"/> packages are all built using this second
|
---|
32 | pass toolchain and are dynamically linked against the new host-independent
|
---|
33 | Glibc. When this is done, the LFS installation process will no longer depend on
|
---|
34 | the host distribution, with the exception of the running kernel.</para>
|
---|
35 |
|
---|
36 | <para>You may be thinking that <quote>this seems like a lot of work, just to
|
---|
37 | get away from my host distribution</quote>. Well, a full technical explanation
|
---|
38 | is provided at the start of <xref linkend="chapter-temporary-tools"/>,
|
---|
39 | including some notes on the differences between statically and dynamically
|
---|
40 | linked programs.</para>
|
---|
41 |
|
---|
42 | <para>In <xref linkend="chapter-building-system"/> your real LFS system will be
|
---|
43 | built. The <command>chroot</command> (change root) program is used to enter a
|
---|
44 | virtual environment and start a new shell whose root directory will be set to
|
---|
45 | the LFS partition. This is very similar to rebooting and instructing the kernel
|
---|
46 | to mount the LFS partition as the root partition. The reason that you don't
|
---|
47 | actually reboot, but instead chroot, is that creating a bootable system
|
---|
48 | requires additional work which isn't necessary just yet. But the major
|
---|
49 | advantage is that chrooting allows you to continue using the host while LFS is
|
---|
50 | being built. While waiting for package compilation to complete, you can simply
|
---|
51 | switch to a different VC (Virtual Console) or X desktop and continue using the
|
---|
52 | computer as you normally would.</para>
|
---|
53 |
|
---|
54 | <para>To finish the installation, the bootscripts are set up in
|
---|
55 | <xref linkend="chapter-bootscripts"/>, the kernel and bootloader are set up in
|
---|
56 | <xref linkend="chapter-mixture"/>, and <xref linkend="chapter-finalizing"/>
|
---|
57 | contains some pointers to help you after you finish the book. Then, finally,
|
---|
58 | you're ready to reboot your computer into your new LFS system.</para>
|
---|
59 |
|
---|
60 | <para>This is the process in a nutshell. Detailed information on all the steps
|
---|
61 | taken is given in the chapters and sections as you progress through them. If
|
---|
62 | something isn't completely clear now, don't worry, everything will fall into
|
---|
63 | place soon.</para>
|
---|
64 |
|
---|
65 | </sect1>
|
---|