- Timestamp:
- 11/16/2022 11:30:12 PM (23 months ago)
- Branches:
- multilib, xry111/multilib
- Children:
- 8d5322e
- Parents:
- a03b7d95 (diff), ebecd08 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- chapter07
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter07/chroot.xml
ra03b7d95 r16a1647 12 12 13 13 <para>Now that all the packages which are required to build the rest of the 14 needed tools are on the system, it is time to enter the chroot environment to15 finish installing the remaining temporary tools. This environment will be in16 use also for installingthe final system. As user <systemitem14 needed tools are on the system, it is time to enter the chroot environment and 15 finish installing the temporary tools. This environment will also be 16 used to install the final system. As user <systemitem 17 17 class="username">root</systemitem>, run the following command to enter the 18 environment that is, at the moment, populated with only thetemporary18 environment that is, at the moment, populated with nothing but temporary 19 19 tools:</para> 20 20 … … 27 27 28 28 <para>The <parameter>-i</parameter> option given to the <command>env</command> 29 command will clear all variables ofthe chroot environment. After that, only29 command will clear all the variables in the chroot environment. After that, only 30 30 the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and 31 31 <envar>PATH</envar> variables are set again. The 32 <parameter>TERM=$TERM</parameter> construct will setthe <envar>TERM</envar>32 <parameter>TERM=$TERM</parameter> construct sets the <envar>TERM</envar> 33 33 variable inside chroot to the same value as outside chroot. This variable is 34 needed forprograms like <command>vim</command> and <command>less</command>35 tooperate properly. If other variables are desired, such as34 needed so programs like <command>vim</command> and <command>less</command> 35 can operate properly. If other variables are desired, such as 36 36 <envar>CFLAGS</envar> or <envar>CXXFLAGS</envar>, this is a good place to set 37 them again.</para>37 them.</para> 38 38 39 39 <para>From this point on, there is no need to use the 40 <envar>LFS</envar> variable any more because all work will be restricted41 to the LFS file system . This is because the Bash shell is toldthat40 <envar>LFS</envar> variable any more because all work will be restricted 41 to the LFS file system; the <command>chroot</command> command tells the Bash shell that 42 42 <filename class="directory">$LFS</filename> is now the root 43 43 (<filename class="directory">/</filename>) directory.</para> … … 45 45 <para>Notice that <filename class="directory">/tools/bin</filename> is not 46 46 in the <envar>PATH</envar>. This means that the cross toolchain will no longer be 47 used in the chroot environment.</para>47 used.</para> 48 48 49 49 <para>Note that the <command>bash</command> prompt will say -
chapter07/cleanup.xml
ra03b7d95 r16a1647 14 14 <title>Cleaning</title> 15 15 16 <para>First, remove the currently installed documentation to prevent them16 <para>First, remove the currently installed documentation files to prevent them 17 17 from ending up in the final system, and to save about 35 MB:</para> 18 18 … … 20 20 21 21 <para>Second, on a modern Linux system, the libtool .la files are only 22 useful for libltdl. No libraries in LFS are expected to beloaded by23 libltdl, and it's known that some .la files can cause BLFS package s24 fail to build. Remove those files now:</para>22 useful for libltdl. No libraries in LFS are loaded by 23 libltdl, and it's known that some .la files can cause BLFS package 24 failures. Remove those files now:</para> 25 25 26 26 <screen><userinput>find /usr/{lib,libexec} -name \*.la -delete</userinput><userinput arch="ml_32"> … … 46 46 backed up for later reuse. In case of fatal failures in the subsequent 47 47 chapters, it often turns out that removing everything and starting over 48 (more carefully) is the best optionto recover. Unfortunately, all the48 (more carefully) is the best way to recover. Unfortunately, all the 49 49 temporary files will be removed, too. To avoid spending extra time to 50 redo something which has been builtsuccessfully, creating a backup of50 redo something which has been done successfully, creating a backup of 51 51 the current LFS system may prove useful. 52 52 </para> … … 62 62 <para> 63 63 The following steps are performed from outside the chroot 64 environment. That means ,you have to leave the chroot environment64 environment. That means you have to leave the chroot environment 65 65 first before continuing. The reason for that is to 66 66 get access to file system locations outside of the chroot 67 environment to store/read the backup archive which should67 environment to store/read the backup archive, which ought 68 68 not be placed within the 69 <filename class="directory">$LFS</filename> hierarchy for 70 safety reasons. 69 <filename class="directory">$LFS</filename> hierarchy. 71 70 </para> 72 71 … … 82 81 <systemitem class="username">root</systemitem> on your host system. 83 82 Take extra care about the commands you're going to run as mistakes 84 here can modify your host system. Be aware that the83 made here can modify your host system. Be aware that the 85 84 environment variable <envar>LFS</envar> 86 85 is set for user <systemitem class="username">lfs</systemitem> by default … … 105 104 <para> 106 105 Make sure you have at least 1 GB free disk space (the source tarballs 107 will be included in the backup archive) on the file system containing108 directory where you create the backup archive.106 will be included in the backup archive) on the file system containing 107 the directory where you create the backup archive. 109 108 </para> 110 109 … … 112 111 Note that the instructions below specify the home directory of the host 113 112 system's <systemitem class="username">root</systemitem> user, which is 114 typically found on the root filesystem. 115 </para> 116 117 <para> 113 typically found on the root file system. 118 114 Replace <envar>$HOME</envar> by a directory of your choice if you 119 115 do not want to have the backup stored in <systemitem … … 153 149 <filename class="directory">$LFS</filename>, they are included in the 154 150 backup archive as well, so they do not need to be downloaded again. After 155 checking that <envar>$LFS</envar> is set properly, 151 checking that <envar>$LFS</envar> is set properly, you can 156 152 restore the backup by executing the following commands: 157 153 </para> … … 171 167 172 168 <para> 173 Again, double check that the environment has been set up properly169 Again, double check that the environment has been set up properly 174 170 and continue building the rest of the system. 175 171 </para> … … 179 175 If you left the chroot environment to create a backup or restart 180 176 building using a restore, remember to check that the virtual 181 file systems are still mounted (<command>findmnt | grep177 file systems are still mounted (<command>findmnt | grep 182 178 $LFS</command>). If they are not mounted, remount them now as 183 179 described in <xref linkend='ch-tools-kernfs'/> and re-enter the chroot -
chapter07/createfiles.xml
ra03b7d95 r16a1647 35 35 </indexterm> 36 36 37 <para>Historically, Linux maintain sa list of the mounted file systems in the37 <para>Historically, Linux maintained a list of the mounted file systems in the 38 38 file <filename>/etc/mtab</filename>. Modern kernels maintain this list 39 39 internally and expose it to the user via the <filename 40 40 class="directory">/proc</filename> filesystem. To satisfy utilities that 41 expect t he presence of<filename>/etc/mtab</filename>, create the following41 expect to find <filename>/etc/mtab</filename>, create the following 42 42 symbolic link:</para> 43 43 … … 160 160 <para>The created groups are not part of any standard—they are groups 161 161 decided on in part by the requirements of the Udev configuration in Chapter 162 9, and in part by common convention employed by a number of existing Linux162 9, and in part by common conventions employed by a number of existing Linux 163 163 distributions. In addition, some test suites rely on specific users or 164 164 groups. The Linux Standard Base (LSB, available at <ulink … … 166 166 besides the group <systemitem class="groupname">root</systemitem> with a 167 167 Group ID (GID) of 0, a group <systemitem class="groupname">bin</systemitem> 168 with a GID of 1 be present. The GID of 5 is widely used for 168 with a GID of 1 be present. The GID of 5 is widely used for the 169 169 <systemitem class="groupname">tty</systemitem> group, and the number 5 is 170 170 also used in <phrase revision="systemd">systemd</phrase> … … 180 180 machine or in the separate namespace). We assign 181 181 <systemitem class="username">nobody</systemitem> and 182 <systemitem class="groupname">nogroup</systemitem> for itto avoid an182 <systemitem class="groupname">nogroup</systemitem> to avoid an 183 183 unnamed ID. But other distros may treat this ID differently, so any 184 184 portable program should not depend on this assignment.</para> -
chapter07/kernfs.xml
ra03b7d95 r16a1647 16 16 17 17 <para>Applications running in user space utilize various file 18 systems exported by the kernel to communicate18 systems created by the kernel to communicate 19 19 with the kernel itself. These file systems are virtual: no disk 20 space is used for them. The content of the file systems resides in20 space is used for them. The content of these file systems resides in 21 21 memory. These file systems must be mounted in the $LFS directory tree 22 22 so the applications can find them in the chroot environment.</para> 23 23 24 <para>Begin by creating directories on which thefile systems will be24 <para>Begin by creating the directories on which these virtual file systems will be 25 25 mounted:</para> 26 26 … … 30 30 <title>Mounting and Populating /dev</title> 31 31 32 <para>During a normal boot of theLFS system, the kernel automatically32 <para>During a normal boot of an LFS system, the kernel automatically 33 33 mounts the <systemitem class="filesystem">devtmpfs</systemitem> 34 file system on the34 file system on the 35 35 <filename class="directory">/dev</filename> directory; the kernel 36 creates device nodes on that virtual file system during the boot process36 creates device nodes on that virtual file system during the boot process, 37 37 or when a device is first detected or accessed. The udev daemon may 38 change the owner or permissionof the device nodes created by the39 kernel, or create new device nodes or symlinksto ease the work of40 distro maintainers orsystem administrators. (See38 change the ownership or permissions of the device nodes created by the 39 kernel, and create new device nodes or symlinks, to ease the work of 40 distro maintainers and system administrators. (See 41 41 <xref linkend='ch-config-udev-device-node-creation'/> for details.) 42 42 If the host kernel supports &devtmpfs;, we can simply mount a 43 43 &devtmpfs; at <filename class='directory'>$LFS/dev</filename> and rely 44 on the kernel to populate it ( the LFS building process does not need45 the additional work onto &devtmpfs; by udev daemon).</para>44 on the kernel to populate it (i.e., the udev daemon will do the 45 necessary work automatically).</para> 46 46 47 <para>But , some host kernels may lack &devtmpfs; support andthese48 host distros maintainthe content of49 <filename class="directory">/dev</filename> with different methods.50 So the only host-agnostic way for populating51 <filename class="directory">$LFS/dev</filename> is52 b ind mounting the host system's47 <para>But some host kernels lack &devtmpfs; support; these 48 host distros use different methods to create the content of 49 <filename class="directory">/dev</filename>. 50 So the only host-agnostic way to populate the 51 <filename class="directory">$LFS/dev</filename> directory is 52 by bind mounting the host system's 53 53 <filename class="directory">/dev</filename> directory. A bind mount is 54 a special type of mount that allows you to create a mirrorof a54 a special type of mount that generates a duplicate copy of a 55 55 directory or mount point at some other location. Use the following 56 command to do this :</para>56 command to do this.</para> 57 57 58 58 <screen><userinput>mount -v --bind /dev $LFS/dev</userinput></screen> … … 63 63 <title>Mounting Virtual Kernel File Systems</title> 64 64 65 <para>Now mount the remaining virtual kernel file systems:</para>65 <para>Now mount the remaining virtual kernel file systems:</para> 66 66 67 67 <screen><userinput>mount -v --bind /dev/pts $LFS/dev/pts
Note:
See TracChangeset
for help on using the changeset viewer.