- Timestamp:
- 12/20/2004 06:08:34 PM (19 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.1, 6.1.1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- 1d317bb
- Parents:
- 24244831
- Location:
- chapter08
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter08/fstab.xml
r24244831 re0a04e8 9 9 10 10 <indexterm zone="ch-bootable-fstab"><primary sortas="e-/etc/fstab">/etc/fstab</primary></indexterm> 11 12 <para>The <filename>/etc/fstab</filename> file is used by some programs to13 determine where file systems are to be mounted by default, which14 must be checked and in which order. Create a new file systems table like15 this:</para>16 11 17 12 <screen><userinput>cat > /etc/fstab << "EOF" … … 29 24 EOF</userinput></screen> 30 25 31 <para>Of course, replace <replaceable>[xxx]</replaceable>, <replaceable>[yyy]</replaceable>32 and <replaceable>[fff]</replaceable> with the values appropriate for your system --33 for example <filename class="partition">hda2</filename>, <filename class="partition">hda5</filename> and34 <systemitem class="filesystem">reiserfs</systemitem>. For all the details on the six fields in this35 table, see <command>man 5 fstab</command>.</para>36 37 <para>When using a reiserfs partition, the <parameter>1 1</parameter> at the38 end of the line should be replaced with <parameter>0 0</parameter>, as such a39 partition does not need to be dumped or checked</para>40 41 <para>The <filename class="directory">/dev/shm</filename> mount point for42 <systemitem class="filesystem">tmpfs</systemitem> is included to43 allow enabling POSIX shared memory. Your kernel must have the required support44 built into it for this to work -- more about this in the next section. Please45 note that currently very little software actually uses POSIX shared memory.46 Therefore you can consider the <filename class="directory">/dev/shm</filename> mount point47 optional. For more information, see48 <filename>Documentation/filesystems/tmpfs.txt</filename> in the kernel source49 tree.</para>50 51 <para>There are other lines which you may consider adding to your52 <filename>fstab</filename> file. One example is a line to use if you intend to53 use USB devices:</para>54 55 <screen> usbfs /proc/bus/usb usbfs devgid=14,devmode=0660 0 0 </screen>56 57 <para>This option will of course only work if you have the58 "Support for Host-side USB" and "USB device filesystem"59 compiled into your kernel (not as a module).</para>60 61 26 </sect1> -
chapter08/grub.xml
r24244831 re0a04e8 12 12 <secondary>configuring</secondary></indexterm> 13 13 14 <para>Your shiny new LFS system is almost complete. One of the last things to 15 do is ensure you can boot it. The instructions below apply only to computers of 16 IA-32 architecture, meaning mainstream PCs. Information on <quote>boot 17 loading</quote> for other architectures should be available in the usual 18 resource-specific locations for those architectures.</para> 19 20 <para>Boot loading can be a complex area. First, a few cautionary words. You 21 really should be familiar with your current boot loader and any other 22 operating systems present on your hard drive(s) that you might wish to keep 23 bootable. Please make sure that you have an emergency boot disk ready, so that 24 you can rescue your computer if, by any chance, your computer becomes unusable 25 (un-bootable).</para> 26 27 <para>Earlier, we compiled and installed the Grub boot loader software in 28 preparation for this step. The procedure involves writing some special Grub 29 files to specific locations on the hard drive. Before we get to that, we 30 highly recommend that you create a Grub boot floppy diskette just in case. 14 <para>We highly recommend that you create a Grub boot floppy diskette just in case. 31 15 Insert a blank floppy diskette and run the following commands:</para> 32 16 … … 39 23 <screen><userinput>grub</userinput></screen> 40 24 41 <para>Grub uses its own naming structure for drives and partitions, in the form42 of (hdn,m), where <emphasis>n</emphasis> is the hard drive number, and43 <emphasis>m</emphasis> the partition number, both starting from zero. This44 means, for instance, that partition <filename class="partition">hda1</filename> is (hd0,0) to45 Grub, and <filename class="partition">hdb2</filename> is (hd1,1). In contrast to Linux, Grub46 doesn't consider CD-ROM drives to be hard drives, so if you have a CD on47 <filename class="partition">hdb</filename>, for example, and a second hard drive on48 <filename class="partition">hdc</filename>, that second hard drive would still be (hd1).</para>49 50 <para>Using the above information, determine the appropriate designator for51 your root partition (or boot partition, if you use a separate one). For the52 following example, we'll assume your root (or separate boot) partition is53 <filename class="partition">hda4</filename>.</para>54 55 25 <para>First, tell Grub where to search for its <filename>stage{1,2}</filename> 56 26 files -- you can use the Tab key everywhere to make Grub show the alternatives:</para> 57 27 58 28 <screen><userinput>root (hd0,3)</userinput></screen> 59 60 61 <warning><para>The following command will overwrite your current boot loader.62 Don't run the command if this is not what you want. For example, you may be63 using a third party boot manager to manage your MBR (Master Boot Record). In64 this scenario, it would probably make more sense to install Grub into the65 <quote>boot sector</quote> of the LFS partition, in which case this next command66 would become: <userinput>setup (hd0,3)</userinput>.</para></warning>67 68 29 69 30 <para>Tell Grub to install itself into the MBR (Master Boot Record) of … … 117 78 EOF</userinput></screen> 118 79 119 <para>If <command>info grub</command> doesn't tell you all you want to120 know, you can find more information regarding Grub on its website, located at:121 <ulink url="http://www.gnu.org/software/grub/"/>.</para>122 123 80 <para>The FHS stipulates that Grub's menu.lst file should be symlinked to 124 81 /etc/grub/menu.lst. To satisfy this requirement, issue the following -
chapter08/introduction.xml
r24244831 re0a04e8 8 8 <?dbhtml filename="introduction.html"?> 9 9 10 <para>This chapter will make LFS bootable. This chapter deals with creating a 11 <filename>fstab</filename> file, building a 12 kernel for the new LFS system and installing the Grub bootloader 13 so that the LFS system can be selected for booting at startup.</para> 10 <para>See testing</para> 14 11 15 12 </sect1> -
chapter08/kernel.xml
r24244831 re0a04e8 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Linux package contains the kernel and the header files.</para>14 13 15 14 <segmentedlist> … … 20 19 </segmentedlist> 21 20 22 <segmentedlist>23 <segtitle>Linux installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils, Findutils,25 GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed</seg></seglistitem>26 </segmentedlist>27 21 </sect2> 28 22 … … 30 24 <title>Installation of the kernel</title> 31 25 32 <para>Building the kernel involves a few steps: configuration, compilation, and33 installation. If you don't like the way this book configures the kernel, view34 the <filename>README</filename> file in the kernel source tree for alternative35 methods.</para>36 37 26 <para>Prepare for compilation by running the following command:</para> 38 27 39 28 <screen><userinput>make mrproper</userinput></screen> 40 41 <para>This ensures that the kernel tree is absolutely clean. The kernel team42 recommends that this command be issued prior to <emphasis>each</emphasis>43 kernel compilation. You shouldn't rely on the source tree being clean after44 un-tarring.</para>45 29 46 30 <para>Also, ensure that the kernel does not attempt to pass hotplugging events … … 55 39 <replaceable>[unpacked sources dir]</replaceable>/linux-&linux-version;/drivers/char/defkeymap.c</userinput></screen> 56 40 57 <para>For example, if you have a Dutch keyboard, you would use58 <filename>/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz</filename>.</para>59 60 41 <para>Configure the kernel via a menu-driven interface:</para> 61 42 62 43 <screen><userinput>make menuconfig</userinput></screen> 63 64 <para><command>make oldconfig</command> may be more appropriate in some65 situations. See the <filename>README</filename> file for more66 information.</para>67 68 <para>If you wish, you may skip kernel configuration by simply copying the69 kernel config file, <filename>.config</filename>, from your host system70 (assuming it is available) to the unpacked <filename class="directory">linux-&linux-version;</filename>71 directory. However, we72 don't recommend this option. You're much better off exploring all the73 configuration menus and creating your own kernel configuration from74 scratch.</para>75 76 <para>For POSIX shared memory support, ensure that the kernel config option77 <quote>Virtual memory file system support</quote> is enabled. It resides within78 the <quote>File systems</quote> menu and is normally enabled by default.</para>79 80 <para>LFS bootscripts make the assumption that you either compile81 both <quote>Support for Host-side USB</quote> and82 <quote>USB device filesystem</quote> directly into the kernel, or don't compile them at83 all. Bootscripts will not work properly if it is a module (<filename>usbcore.ko</filename>).</para>84 85 <note><para>NPTL requires the kernel to be compiled with GCC 3.x, in this case86 &gcc-version;. Compiling with 2.95.x is known to cause failures in the glibc87 testsuite, so do <emphasis>not</emphasis> compile the kernel with gcc 2.95.x88 unless you know what you're getting yourself into.</para></note>89 44 90 45 <para>Compile the kernel image and modules:</para> … … 92 47 <screen><userinput>make</userinput></screen> 93 48 94 <para>If you intend to use kernel modules, you may need an95 <filename>/etc/modprobe.conf</filename> file. Information pertaining96 to modules and to kernel configuration in general may be found in the97 kernel documentation, which is found in the98 <filename class="directory">linux-&linux-version;/Documentation</filename> directory.99 The modprobe.conf man page100 <!-- removed for review from tldp.org101 and the kernel HOWTO at102 <ulink url="http://www.tldp.org/HOWTO/Kernel-HOWTO.html"/> -->103 may also be of interest to you.</para>104 105 <para>Be very suspicious while reading other documentation, because it106 usually applies to 2.4.x kernels only. As far as the editors know, kernel107 configuration issues specific to Hotplug and Udev108 are documented nowhere. The problem is that Udev will create a device node109 only if Hotplug or a user-written script inserts the corresponding module110 into the kernel, and not all modules are detectable by Hotplug. Note111 that statements like112 <screen>alias char-major-XXX some-module</screen>113 in <filename>/etc/modprobe.conf</filename> file don't work with114 Udev, and other aliases are often unnecessary with Hotplug.</para>115 116 <para>Because of all those compilcations with Hotplug, Udev and modules, we117 strongly recommend you to start with a completely non-modular kernel118 configuration, especially if this is the first time you use Udev.</para>119 120 49 <para>Install the modules, if your kernel configuration uses them:</para> 121 50 122 51 <screen><userinput>make modules_install</userinput></screen> 123 124 <para>If you have a lot of modules and very little space, you may want to125 consider stripping and compressing the modules. For most people such compression126 isn't worth the trouble, but if you're really pressed for space, then have a look at127 <ulink url="http://www.linux-mips.org/archives/linux-mips/2002-04/msg00031.html"/>.</para>128 129 <para>Kernel compilation has finished but more steps are required to complete130 the installation. Some files need to be copied to the <filename class="directory">/boot</filename>131 directory.</para>132 52 133 53 <para>The path to the kernel image may vary depending on the platform you're … … 136 56 <screen><userinput>cp arch/i386/boot/bzImage /boot/lfskernel-&linux-version;</userinput></screen> 137 57 138 <para><filename>System.map</filename> is a symbol file for the kernel. It maps139 the function entry points of every function in the kernel API (Application Programming Interface), as well as the140 addresses of the kernel data structures for the running kernel. Issue the141 following command to install the map file:</para>142 143 58 <screen><userinput>cp System.map /boot/System.map-&linux-version;</userinput></screen> 144 59 145 <para><filename>.config</filename> is the kernel configuration file that was146 produced by the <command>make menuconfig</command> step above. It contains all147 the config selections for the kernel that was just compiled. It's a good idea148 to keep this file for future reference:</para>149 150 60 <screen><userinput>cp .config /boot/config-&linux-version;</userinput></screen> 151 152 <para>It is important to note that the files in the kernel source directory are153 not owned by <emphasis>root</emphasis>. Whenever you unpack a package as user154 <emphasis>root</emphasis> (like we did here inside chroot), the files end up155 having the user and group IDs of whatever they were on the packager's computer.156 This is usually not a problem for any other package you install because you157 remove the source tree after the installation. But the Linux source tree is158 often kept around for a long time, so there's a chance that whatever user ID159 the packager used will be assigned to somebody on your machine and then that160 person would have write access to the kernel source.</para>161 61 162 62 <para>If you are going to keep the kernel source tree around, you may want to … … 170 70 <sect2 id="contents-kernel" role="content"><title>Contents of Linux</title> 171 71 172 <segmentedlist> 173 <segtitle>Installed files</segtitle> 174 <seglistitem><seg>the kernel, the kernel headers, 175 and the System.map</seg></seglistitem> 176 </segmentedlist> 177 178 <variablelist><title>Short descriptions</title> 179 180 <varlistentry id="kernel"> 181 <term>The <emphasis>kernel</emphasis></term> 182 <listitem> 183 <indexterm zone="ch-bootable-kernel kernel"><primary sortas="b-kernel">kernel</primary></indexterm> 184 <para>is the engine of your Linux system. 185 When switching on your box, the kernel is the first part of your operating 186 system that gets loaded. It detects and initializes all the components of your 187 computer's hardware, then makes these components available as a tree of files 188 to the software, and turns a single CPU into a multi-tasking machine capable 189 of running scores of programs seemingly at the same time.</para> 190 </listitem> 191 </varlistentry> 192 193 <varlistentry id="kernel-headers"> 194 <term>The <emphasis>kernel headers</emphasis></term> 195 <listitem> 196 <indexterm zone="ch-bootable-kernel kernel-headers"><primary sortas="e-kernel-headers">kernel headers</primary></indexterm> 197 <para>define the interface to the 198 services that the kernel provides. The headers in your system's 199 <filename class="directory">include</filename> directory should <emphasis>always</emphasis> be 200 the ones against which Glibc was compiled and should therefore 201 <emphasis>not</emphasis> be replaced when upgrading the kernel.</para> 202 </listitem> 203 </varlistentry> 204 205 <varlistentry id="System.map"> 206 <term><filename>System.map</filename></term> 207 <listitem> 208 <indexterm zone="ch-bootable-kernel System.map"><primary sortas="e-/boot/System.map">/boot/System.map</primary></indexterm> 209 <para>is a list of addresses and symbols. It maps the entry points and addresses 210 of all the functions and data structures in the kernel.</para> 211 </listitem> 212 </varlistentry> 213 </variablelist> 72 <para>See testing</para> 214 73 215 74 </sect2>
Note:
See TracChangeset
for help on using the changeset viewer.