Changes in / [f4facc4:10d7c7a8]


Ignore:
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • chapter04/addinguser.xml

    rf4facc4 r10d7c7a8  
    8181  <systemitem class="username">lfs</systemitem> the directory owner:</para>
    8282
    83 <screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}</userinput></screen>
     83<screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
     84case $(uname -m) in
     85  x86_64) chown -v lfs $LFS/lib64 ;;
     86esac</userinput></screen>
    8487
    8588  <note><para>In some host systems, the following command does not complete
  • chapter04/creatingminlayout.xml

    rf4facc4 r10d7c7a8  
    2525for i in bin lib sbin; do
    2626  ln -sv usr/$i $LFS/$i
    27 done</userinput></screen>
     27done
     28
     29case $(uname -m) in
     30  x86_64) mkdir -pv $LFS/lib64 ;;
     31esac</userinput></screen>
    2832
    2933  <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled
  • chapter05/gcc-pass1.xml

    rf4facc4 r10d7c7a8  
    6363mv -v mpc-&mpc-version; mpc</userinput></screen>
    6464
    65     <para>On ARM64 hosts, set the default directory name for
     65    <para>On x86_64 hosts, set the default directory name for
    6666    64-bit libraries to <quote>lib</quote>:</para>
    6767
    68 <screen><userinput remap="pre">sed -e '/lp64=/s/lib64/lib/' \
    69     -i.orig gcc/config/aarch64/t-aarch64-linux</userinput></screen>
     68<screen><userinput remap="pre">case $(uname -m) in
     69  x86_64)
     70    sed -e '/m64=/s/lib64/lib/' \
     71        -i.orig gcc/config/i386/t-linux64
     72 ;;
     73esac</userinput></screen>
    7074
    7175    <para>The GCC documentation recommends building GCC
     
    157161        <term><parameter>--disable-multilib</parameter></term>
    158162        <listitem>
    159           <para>On ARM64, LFS does not support a multilib configuration.</para>
     163          <para>On x86_64, LFS does not support a multilib configuration.
     164          This switch is harmless for x86.</para>
    160165        </listitem>
    161166      </varlistentry>
  • chapter05/glibc.xml

    rf4facc4 r10d7c7a8  
    4343  <sect2 role="installation">
    4444    <title>Installation of Glibc</title>
     45
     46    <para>First, create a symbolic link for LSB compliance. Additionally,
     47    for x86_64, create a compatibility symbolic link required for proper
     48    operation of the dynamic library loader:</para>
     49
     50<screen><userinput remap="pre">case $(uname -m) in
     51    i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
     52    ;;
     53    x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
     54            ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
     55    ;;
     56esac</userinput></screen>
     57
     58    <note>
     59      <para>
     60        The above command is correct.  The <command>ln</command> command has
     61        a few syntactic versions, so be sure to check
     62        <command>info coreutils ln</command> and <filename>ln(1)</filename>
     63        before reporting what you may think is an error.
     64      </para>
     65    </note>
    4566
    4667    <para>Some of the Glibc programs use the non-FHS compliant
     
    181202      and the output of the last command will be of the form:</para>
    182203
    183 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux-aarch64.so.1]</computeroutput></screen>
    184 
    185       <para>Note that for big-endian machines, the interpreter name will be
    186           <filename>/lib/ld-linux-aarch64_be.so.1</filename>.</para>
     204<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
     205
     206      <para>Note that for 32-bit machines, the interpreter name will be
     207      <filename>/lib/ld-linux.so.2</filename>.</para>
    187208
    188209      <para>If the output is not shown as above or there was no output at all,
  • chapter06/gcc-pass2.xml

    rf4facc4 r10d7c7a8  
    5959mv -v mpc-&mpc-version; mpc</userinput></screen>
    6060
    61     <para>On ARM64 hosts, set the default directory name for
    62     64-bit libraries to <quote>lib</quote>:</para>
     61    <para>If building on x86_64, change the default directory name for 64-bit
     62    libraries to <quote>lib</quote>:</para>
    6363
    64 <screen><userinput remap="pre">sed -e '/lp64=/s/lib64/lib/' \
    65     -i.orig gcc/config/aarch64/t-aarch64-linux</userinput></screen>
     64<screen><userinput remap="pre">case $(uname -m) in
     65  x86_64)
     66    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
     67  ;;
     68esac</userinput></screen>
    6669
    6770    <para>Override the building rule of libgcc and libstdc++ headers, to
  • chapter07/changingowner.xml

    rf4facc4 r10d7c7a8  
    3434  command:</para>
    3535
    36 <screen><userinput>chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}</userinput></screen>
     36<screen><userinput>chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
     37case $(uname -m) in
     38  x86_64) chown -R root:root $LFS/lib64 ;;
     39esac</userinput></screen>
    3740
    3841</sect1>
  • chapter08/binutils.xml

    rf4facc4 r10d7c7a8  
    139139          ultimately be located) is set to <filename
    140140          class="directory">$(exec_prefix)/$(target_alias)</filename>. For
    141           example, ARM64 machines would expand that to <filename
    142           class="directory">/usr/aarch64-unknown-linux-gnu</filename>. Because this is
     141          example, x86_64 machines would expand that to <filename
     142          class="directory">/usr/x86_64-pc-linux-gnu</filename>. Because this is
    143143          a custom system, this target-specific directory in <filename
    144144          class="directory">/usr</filename> is not required. <filename
     
    160160
    161161<screen><userinput remap="test">make -k check</userinput></screen>
    162 
    163     <para>
    164       Some gprofng tests depend on hardware and may fail on AArch64.
    165       <!-- Happens for me with -j24, not sure if it's aarch64-only -->
    166       Some GAS tests may fail if the test is run parallelly due to a race
    167       condition.
    168     </para>
    169162
    170163    <para>Twelve tests fail in the <command>gold</command> testsuite when the
  • chapter08/expect.xml

    rf4facc4 r10d7c7a8  
    4848  <sect2 role="installation">
    4949    <title>Installation of Expect</title>
    50 
    51     <para>Update two config scripts to allow building this package for
    52     AArch64:</para>
    53 
    54 <screen><userinput remap="pre">tar -C tclconfig -xf ../autoconf-&autoconf-version;.tar.xz --strip-components=2 \
    55     autoconf-&autoconf-version;/build-aux/config.{guess,sub}</userinput></screen>
    5650
    5751    <para>Prepare Expect for compilation:</para>
  • chapter08/findutils.xml

    rf4facc4 r10d7c7a8  
    4646    <para>Prepare Findutils for compilation:</para>
    4747
    48 <screen><userinput remap="configure">./configure --prefix=/usr --localstatedir=/var/lib/locate</userinput></screen>
     48<screen><userinput remap="configure">case $(uname -m) in
     49    i?86)   TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
     50    x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
     51esac</userinput></screen>
    4952
    5053    <variablelist>
    5154      <title>The meaning of the configure options:</title>
     55
     56      <varlistentry>
     57        <term><command>TIME_32_BIT_OK=yes</command></term>
     58        <listitem>
     59          <para>This setting is needed for building on a 32 bit system.</para>
     60        </listitem>
     61      </varlistentry>
    5262
    5363      <varlistentry>
  • chapter08/gcc.xml

    rf4facc4 r10d7c7a8  
    5555    <screen><userinput remap="pre">patch -Np1 -i ../&gcc-upstream-fixes-patch;</userinput></screen>
    5656-->
    57     <para>On ARM64 hosts, set the default directory name for
    58     64-bit libraries to <quote>lib</quote>:</para>
    59 
    60 <screen><userinput remap="pre">sed -e '/lp64=/s/lib64/lib/' \
    61     -i.orig gcc/config/aarch64/t-aarch64-linux</userinput></screen>
     57    <para>If building on x86_64, change the default directory name for 64-bit
     58    libraries to <quote>lib</quote>:</para>
     59
     60<screen><userinput remap="pre">case $(uname -m) in
     61  x86_64)
     62    sed -e '/m64=/s/lib64/lib/' \
     63        -i.orig gcc/config/i386/t-linux64
     64  ;;
     65esac</userinput></screen>
    6266
    6367    <para>The GCC documentation recommends building GCC in a dedicated build directory:</para>
     
    165169    is not well written.</para>
    166170
    167     <!-- Already known via gcc-testresults@gcc.gnu.org -->
    168     <para>On ARM64,
    169     four g++ tests related to <filename>Waddress-5.C</filename>,
    170     twelve g++ tests related to <filename>attrs-10.C</filename>,
    171     four g++ tests related to <filename>declare-simd-8.C</filename>,
    172     one gcc tests related to <filename>ssa-dom-thread-7.c</filename>,
    173     one gcc tests related to <filename>fcsel_1.c</filename>,
    174     one gcc tests related to <filename>mgeneral-regs_3.c</filename>, and
    175     four gcc tests related to <filename>vqdmlalh_laneq*.c</filename>
    176     are known to fail.</para>
    177 
    178     <!-- Need further investigation -->
    179     <para>Many gcc and g++ tests related to hwasan are known to fail.</para>
    180 
    181171    <para>A few unexpected failures cannot always be avoided. The GCC developers
    182172    are usually aware of these issues, but have not resolved them yet.
     
    234224  platform-specific differences in the dynamic linker name):</para>
    235225
    236 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux-aarch64.so.1]</computeroutput></screen>
     226<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
    237227
    238228  <para>Now make sure that we're setup to use the correct start files:</para>
     
    242232  <para>The output of the last command should be:</para>
    243233
    244 <screen><computeroutput>/usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/Scrt1.o succeeded
    245 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded
    246 /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen>
     234<screen><computeroutput>/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/Scrt1.o succeeded
     235/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crti.o succeeded
     236/usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/../../../../lib/crtn.o succeeded</computeroutput></screen>
    247237
    248238  <para>Depending on your machine architecture, the above may differ slightly.
     
    261251
    262252<screen><computeroutput>#include &lt;...&gt; search starts here:
    263  /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/include
     253 /usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include
    264254 /usr/local/include
    265  /usr/lib/gcc/aarch64-unknown-linux-gnu/&gcc-version;/include-fixed
     255 /usr/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include-fixed
    266256 /usr/include</computeroutput></screen>
    267257
     
    276266  be ignored, but otherwise the output of the last command should be:</para>
    277267
    278 <screen><computeroutput>SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib64")
     268<screen><computeroutput>SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
    279269SEARCH_DIR("/usr/local/lib64")
    280270SEARCH_DIR("/lib64")
    281271SEARCH_DIR("/usr/lib64")
    282 SEARCH_DIR("/usr/aarch64-unknown-linux-gnu/lib")
     272SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
    283273SEARCH_DIR("/usr/local/lib")
    284274SEARCH_DIR("/lib")
     
    312302  platform-specific differences in dynamic linker name):</para>
    313303
    314 <screen><computeroutput>found ld-linux-aarch64.so.1 at /usr/lib/ld-linux-aarch64.so.1</computeroutput></screen>
     304<screen><computeroutput>found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2</computeroutput></screen>
    315305
    316306  <para>If the output does not appear as shown above or is not received
  • chapter08/glibc.xml

    rf4facc4 r10d7c7a8  
    448448
    449449    <para>By default, the dynamic loader (<filename
    450     class="libraryfile">/lib/ld-linux-aarch64.so.1</filename>) searches through
     450    class="libraryfile">/lib/ld-linux.so.2</filename>) searches through
    451451    <filename class="directory">/usr/lib</filename> for dynamic libraries
    452452    that are needed by programs as they are run. However, if there are
     
    496496        <seg>gencat, getconf, getent, iconv, iconvconfig, ldconfig,
    497497        ldd, lddlibc4,
    498         ld.so (symlink to ld-linux-aarch64[_be].so.1),
     498        ld.so (symlink to ld-linux-x86-64.so.2 or ld-linux.so.2),
    499499        locale, localedef, makedb, mtrace, nscd,
    500500        pcprofiledump, pldd, sln, sotruss, sprof, tzselect, xtrace,
    501501        zdump, and zic</seg>
    502         <seg>ld-linux-aarch64[_be].so.1,
     502        <seg>ld-linux-x86-64.so.2, ld-linux.so.2,
    503503        libBrokenLocale.{a,so}, libanl.{a,so},
    504504        libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so,
  • chapter08/gmp.xml

    rf4facc4 r10d7c7a8  
    4141  <sect2 role="installation">
    4242    <title>Installation of GMP</title>
     43
     44    <note>
     45      <para>If you are building for 32-bit x86, but you have a CPU which is
     46      capable of running 64-bit code <emphasis>and</emphasis> you have specified
     47      <envar>CFLAGS</envar> in the environment, the configure script will
     48      attempt to configure for 64-bits and fail.
     49      Avoid this by invoking the configure command below with
     50<screen role="nodump"><userinput><parameter>ABI=32</parameter> ./configure ...</userinput></screen></para>
     51    </note>
    4352
    4453    <note>
     
    98107    applications using the gmp libraries with the message "Illegal
    99108    instruction".  In this case, gmp should be reconfigured with the option
    100     --build=aarch64-unknown-linux-gnu and rebuilt.</para></caution>
     109    --build=x86_64-pc-linux-gnu and rebuilt.</para></caution>
    101110
    102111    <para>Ensure that all 197 tests in the test suite passed.
  • chapter08/grub.xml

    rf4facc4 r10d7c7a8  
    4343    <note>
    4444      <para>
    45         On ARM64 systems, the following instruction builds GRUB for UEFI.
    46         But the built GRUB lacks some features because a few optional
    47         dependencies of GRUB for UEFI is beyond the scope of LFS and not
    48         installed yet.
    49       </para>
    50       <para>
    51         If your system firmware does not support UEFI, you need to skip the
    52         content of this page and try to figure out how to boot your system.
    53       </para>
    54       <para>
    55         If your system firmware supports UEFI and you want a fully
    56         functional GRUB, you can skip the content of this page,
     45        If your system has UEFI support and you wish to boot LFS with UEFI,
     46        you can skip this package in LFS,
    5747        and install GRUB with UEFI support (and its dependencies) following
    5848        <ulink url="&blfs-book;postlfs/grub-efi.html">the BLFS page</ulink>
    59         (with <parameter>--target=x86_64</parameter> removed) at the end of
    60         this chapter.
     49        at the end of this chapter.
    6150      </para>
    6251    </note>
  • chapter08/kbd.xml

    rf4facc4 r10d7c7a8  
    4545    across the keymaps in the Kbd package. The following patch fixes this
    4646    issue for i386 keymaps:</para>
    47 
    48     <note>
    49       <para>
    50         Don't skip the patch just because it mentions "i386".  The keymaps
    51         for the keyboards most common on the market (qwerty or dvorak) are
    52         in "i386" catagory.
    53       </para>
    54     </note>
    5547
    5648<screen><userinput remap="pre">patch -Np1 -i ../&kbd-backspace-patch;</userinput></screen>
  • chapter08/libcap.xml

    rf4facc4 r10d7c7a8  
    6060          <para>This parameter sets the library directory to
    6161          <filename>/usr/lib</filename> rather than
    62           <filename>/usr/lib64</filename> on ARM64.</para>
     62          <filename>/usr/lib64</filename> on x86_64. It has no effect on
     63          x86.</para>
    6364        </listitem>
    6465      </varlistentry>
  • chapter08/libffi.xml

    rf4facc4 r10d7c7a8  
    7272          system, use the less capable system as a parameter. For details
    7373          about alternative system types, see <ulink
    74           url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/AArch64-Options.html'>
    75           the AArch64 options in the GCC manual</ulink>.</para>
     74          url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
     75          the x86 options in the GCC manual</ulink>.</para>
    7676        </listitem>
    7777      </varlistentry>
  • chapter08/stripping.xml

    rf4facc4 r10d7c7a8  
    4747  rationale to use the <command>install</command> command here.</para>
    4848
    49   <note><para>The ELF loader's name is ld-linux-aarch64.so.1 on
    50   little-endian systems and ld-linux-aarch64_be.so.1 on big-endian systems.
    51   The construct below selects the
     49  <note><para>The ELF loader's name is ld-linux-x86-64.so.2 on 64-bit systems
     50  and ld-linux.so.2 on 32-bit systems.  The construct below selects the
    5251  correct name for the current architecture, excluding anything ending
    5352  with <quote>g</quote>, in case the commands below have already been
  • chapter08/util-linux.xml

    rf4facc4 r10d7c7a8  
    127127        eject, fallocate, fdisk, fincore, findfs, findmnt, flock, fsck,
    128128        fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock,
    129         ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last, lastb (link to
     129        i386, ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last, lastb (link to
    130130        last), ldattach, linux32, linux64, logger, look, losetup, lsblk, lscpu,
    131131        lsipc, lsirq, lslocks, lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
     
    135135        swapoff (link to swapon), swapon, switch_root, taskset, uclampset, ul,
    136136        umount, uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis,
    137         wipefs, and zramctl</seg>
     137        wipefs, x86_64, and zramctl</seg>
    138138        <seg>libblkid.so, libfdisk.so, libmount.so,
    139139        libsmartcols.so, and libuuid.so</seg>
     
    507507      </varlistentry>
    508508
     509      <varlistentry id="i386">
     510        <term><command>i386</command></term>
     511        <listitem>
     512          <para>A symbolic link to setarch</para>
     513          <indexterm zone="ch-system-util-linux i386">
     514            <primary sortas="b-i386">i386</primary>
     515          </indexterm>
     516        </listitem>
     517      </varlistentry>
     518
    509519      <varlistentry id="ionice">
    510520        <term><command>ionice</command></term>
     
    12451255      </varlistentry>
    12461256
     1257      <varlistentry id="x86_64">
     1258        <term><command>x86_64</command></term>
     1259        <listitem>
     1260          <para>A symbolic link to setarch</para>
     1261          <indexterm zone="ch-system-util-linux x86_64">
     1262            <primary sortas="b-x86_64">x86_64</primary>
     1263          </indexterm>
     1264        </listitem>
     1265      </varlistentry>
     1266
    12471267      <varlistentry id="zramctl">
    12481268        <term><command>zramctl</command></term>
  • chapter10/grub.xml

    rf4facc4 r10d7c7a8  
    1919  <note>
    2020    <para>
    21       This section assume your system has UEFI support and you wish to boot
    22       LFS with UEFI and GRUB built following the instructions in Chapter 8.
    23     </para>
    24     <para>
    25       If you've installed GRUB for UEFI with optional dependencies following
    26       BLFS, you should skip this page, and config GRUB with UEFI support
     21      If your system has UEFI support and you wish to boot LFS with UEFI,
     22      you should skip this page, and config GRUB with UEFI support
    2723      using the instructions provided in
    2824      <ulink url="&blfs-book;postlfs/grub-setup.html">the BLFS page</ulink>.
    29     </para>
    30     <para>
    31       If your system does not support UEFI or you don't want to use it,
    32       you'll need to figure out how to configure the booting process of
    33       the system on your own.
    3425    </para>
    3526  </note>
     
    4435    LILO.</para></warning>
    4536
    46     <para>Ensure that an emergency boot disk is ready to <quote>rescue</quote>
     37    <para> Ensure that an emergency boot disk is ready to <quote>rescue</quote>
    4738    the computer if the computer becomes unusable (un-bootable).  If you do not
    48     already have a boot device, you can create one.  To create a emergency
    49     boot device for UEFI, consult section <quote>Create an Emergency Boot
    50     Disk</quote> in
    51         <ulink url="&blfs-book;postlfs/grub-setup.html">the BLFS page</ulink>.</para>
    52 
    53   </sect2>
    54 
    55   <sect2>
    56     <title>Turn off Secure Boot</title>
    57 
    58     <para>LFS does not have the essential packages to support Secure Boot.
    59     To set up the boot process following the instructions in this section,
    60     Secure Boot must be turned off from the configuration interface of the
    61     firmware. Read the documentation provided by the manufacturer of your
    62     system to find out how.</para>
     39    already have a boot device, you can create one.  In order for the procedure
     40    below to work, you need to jump ahead to BLFS and install
     41    <userinput>xorriso</userinput> from the <ulink
     42    url="&blfs-book;multimedia/libisoburn.html">
     43    libisoburn</ulink> package.</para>
     44
     45<screen role="nodump"><userinput>cd /tmp
     46grub-mkrescue --output=grub-img.iso
     47xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso</userinput></screen>
     48
    6349  </sect2>
    6450
     
    8672    <title>Setting Up the Configuration</title>
    8773
    88     <para>GRUB works by creating an EFI executable in the EFI System
    89     Partition (ESP).  You can find the ESP with:</para>
    90 
    91 <screen role="nodump"><userinput>fdisk -l | grep 'EFI System'</userinput></screen>
    92 
    93     <para>If no ESP exists on your hard drive (for example, you are building
    94     LFS on a fresh new system with a Live CD as the host distro), read
    95     <ulink url="&blfs-book;postlfs/grub-setup.html">the BLFS page</ulink>
    96     for the instruction to create an ESP on your hard drive.</para>
    97 
    98     <para>If the ESP is not mounted at
    99     <filename class="directory">/boot/efi</filename> (in the chroot),
    100     mount it now:</para>
    101 
    102 <screen role="nodump"><userinput>mount /boot/efi</userinput></screen>
    103 
    104     <note>
    105       <para>The path to the device node is intentionally omitted in the
    106       command.  We expect the entry for mounting the ESP to
    107       <filename class="directory">/boot/efi</filename> is already in
    108       <filename>/etc/fstab</filename>.  Add the entry before running the
    109       command if you forgot to create an entry for the ESP in
    110       <xref linkend="ch-bootable-fstab"/>.</para>
    111     </note>
     74    <para>GRUB works by writing data to the first physical track of the
     75    hard disk.  This area is not part of any file system.  The programs
     76    there access GRUB modules in the boot partition.  The default location
     77    is /boot/grub/.</para>
    11278
    11379    <para>The location of the boot partition is a choice of the user that
     
    13399
    134100    <para>Install the GRUB files into <filename
    135     class="directory">/boot/grub</filename> and the GRUB EFI executable into
    136     <filename class="directory">/boot/efi/EFI/BOOTAA64.EFI</filename>:</para>
     101    class="directory">/boot/grub</filename> and set up the boot track:</para>
    137102
    138103    <warning>
    139       <para>The following command will overwrite
    140       <filename>BOOTAA64.EFI</filename>. Do not run the command if this is
    141       not desired, for example, if it contains a third party boot manager.
    142       You can backup it with <command>cp</command> as it's a regular
    143       file.</para>
     104      <para>The following command will overwrite the current boot loader. Do not
     105      run the command if this is not desired, for example, if using a third party
     106      boot manager to manage the Master Boot Record (MBR).</para>
    144107    </warning>
    145108
    146 <screen role="nodump"><userinput>grub-install --removable</userinput></screen>
     109<screen role="nodump"><userinput>grub-install /dev/sda</userinput></screen>
    147110
    148111    <note>
    149       <para>
    150         <parameter>--removable</parameter> may seem strange here.  The UEFI
    151         firmware searches EFI executables for boot loaders in a hardcoded
    152         path, <filename>EFI/BOOTAA64.EFI</filename> in the ESP, and other
    153         boot loader paths listed in the EFI variables.  We've not installed
    154         the utilities for manipulating EFI variables so we need to install
    155         the EFI executable into the hardcoded path.  The hardcoded path is
    156         usually used by removable devices (for example, USB thumb devices)
    157         so the <command>grub-install</command> option for this purpose is
    158         named <parameter>--removable</parameter>.
    159       </para>
    160       <para>
    161         UEFI implementation usually prefers the boot loaders with paths
    162         recorded in an EFI variable, to the boot loader with the hardcoded
    163         search path.  You may need to invoke the boot device selection menu
    164         or setting interface of your EFI firmware on next boot to explicitly
    165         select the bootloader.
    166       </para>
    167       <para>
    168         Some UEFI implementation may completely skip the hardcoded path if
    169         there are other boot loaders in the same hard drive with paths
    170         recorded in an EFI variable.  Then you need to create an EFI
    171         variable for the newly installed boot loader.  Install
    172         <ulink url="&blfs-book;postlfs/efibootmgr.html">efibootmgr</ulink>,
    173         then run the following commands:
    174 <screen role="nodump"><userinput>mount -v -t efivarfs efivarfs /sys/firmware/efi/efivars
    175 efibootmgr -c -L LFS -l \EFI\BOOT\BOOTAA64.EFI -d /dev/sda</userinput></screen>
    176         Replace <filename>/dev/sda</filename> with the device node of the
    177         hard drive where you are installing GRUB into.
    178       </para>
     112      <para>If the system has been booted using UEFI,
     113      <command>grub-install</command> will try to install files for the
     114      <emphasis>x86_64-efi</emphasis> target, but those files
     115      have not been installed in <xref linkend="chapter-building-system"/>.
     116      If this is the case, add <option>--target i386-pc</option> to the
     117      command above.</para>
    179118    </note>
    180119
  • chapter10/kernel.xml

    rf4facc4 r10d7c7a8  
    165165       Pseudo filesystems  ---&gt;
    166166        [*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]</screen>
     167
     168      <para>Enable some additional features if you are building a 64-bit
     169      system.  If you are using menuconfig, enable them in the order of
     170      <parameter>CONFIG_PCI_MSI</parameter> first, then
     171      <parameter>CONFIG_IRQ_REMAP</parameter>, at last
     172      <parameter>CONFIG_X86_X2APIC</parameter> because an option only
     173      shows up after its dependencies are selected.</para>
     174
     175      <screen role="nodump">Processor type and features ---&gt;
     176  [*] Support x2apic [CONFIG_X86_X2APIC]
     177Device Drivers ---&gt;
     178  [*] PCI Support ---&gt; [CONFIG_PCI]
     179    [*] Message Signaled Interrupts (MSI and MSI-X) [CONFIG_PCI_MSI]
     180  [*] IOMMU Hardware Support ---&gt; [CONFIG_IOMMU_SUPPORT]
     181    [*] Support for Interrupt Remapping [CONFIG_IRQ_REMAP]</screen>
    167182    </note>
    168183
     
    273288      </varlistentry>
    274289
     290      <varlistentry>
     291        <term><parameter>Support x2apic</parameter></term>
     292        <listitem>
     293          <para>Support running the interrupt controller of 64-bit x86
     294          processors in x2APIC mode.  x2APIC may be enabled by firmware on
     295          64-bit x86 systems, and a kernel without this option enabled will
     296          panic on boot if x2APIC is enabled by firmware.  This option has
     297          has no effect, but also does no harm if x2APIC is disabled by the
     298          firmware.</para>
     299        </listitem>
     300      </varlistentry>
     301
    275302    </variablelist>
    276303
     
    321348    the filename should be <emphasis>vmlinuz</emphasis> to be compatible with
    322349    the automatic setup of the boot process described in the next section.  The
    323     following command assumes an ARM64 architecture:</para>
    324 
    325 <screen><userinput remap="install">cp -iv arch/arm64/boot/Image /boot/vmlinuz-&linux-version;-lfs-&version;</userinput></screen>
     350    following command assumes an x86 architecture:</para>
     351
     352<screen><userinput remap="install">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-&linux-version;-lfs-&version;</userinput></screen>
    326353
    327354    <para><filename>System.map</filename> is a symbol file for the kernel.
  • general.ent

    rf4facc4 r10d7c7a8  
    9292<!ENTITY test-results    "&lfs-root;lfs/build-logs/&generic-version;/">
    9393<!ENTITY secadv          "&lfs-root;lfs/advisories/">
    94 <!ENTITY min-kernel      "3.7">
     94<!ENTITY min-kernel      "3.2">
    9595<!--
    9696<!ENTITY patches-rootd   "&lfs-root;patches/lfs/&generic-versiond;/">
  • git-version.sh

    rf4facc4 r10d7c7a8  
    4949
    5050sha="$(git describe --abbrev=1)"
    51 rev=arm64-$(echo "$sha" | sed 's/-g[^-]*$//')
     51rev=$(echo "$sha" | sed 's/-g[^-]*$//')
    5252version="$rev"
    5353versiond="$rev-systemd"
  • prologue/architecture.xml

    rf4facc4 r10d7c7a8  
    1111  <title>LFS Target Architectures</title>
    1212
    13 <para>The target architectures of this LFS edition are ARM64 (sometimes
    14 called AArch64) CPUs.  On the other hand, the instructions in this book may
    15 work on 32-bit ARM CPUs with some modifications. To build a system that
    16 utilizes one of these CPUs, the main prerequisite, in addition to those on
    17 the next page, is an existing Linux system such as an earlier LFS
    18 installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution that
    19 targets the architecture that you have.</para>
     13<para>The primary target architectures of LFS are the AMD/Intel x86 (32-bit)
     14and x86_64 (64-bit) CPUs.  On the other hand, the instructions in this book are
     15also known to work, with some modifications, with the Power PC and ARM CPUs. To
     16build a system that utilizes one of these CPUs, the main prerequisite, in
     17addition to those on the next page, is an existing Linux system such as an
     18earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution
     19that targets the architecture that you have. Also note that a 32-bit
     20distribution can be installed and used as a host system on a 64-bit AMD/Intel
     21computer.</para>
    2022
    21 <para>The build results from this LFS edition is considered a
    22 <quote>pure</quote> 64-bit system.  That is, it supports 64-bit executables
    23 only.  Building a <quote>multi-lib</quote> system requires compiling many
     23<para>For building LFS, the gain of building on a 64-bit system
     24compared to a 32-bit system is minimal.
     25For example, in a test build of LFS-9.1 on a Core i7-4790 CPU based system,
     26using 4 cores, the following statistics were measured:</para>
     27
     28<screen><computeroutput>Architecture Build Time     Build Size
     2932-bit       239.9 minutes  3.6 GB
     3064-bit       233.2 minutes  4.4 GB</computeroutput></screen>
     31
     32<para>As you can see, on the same hardware, the 64-bit build is only 3% faster
     33and is 22% larger than the 32-bit build. If you plan to use LFS as a LAMP
     34server, or a firewall, a 32-bit CPU may be largely sufficient. On the other
     35hand, several packages in BLFS now need more than 4GB of RAM to be built
     36and/or to run, so that if you plan to use LFS as a desktop, the LFS authors
     37recommend building on a 64-bit system.</para>
     38
     39<para>The default 64-bit build that results from LFS is considered a
     40<quote>pure</quote> 64-bit system. That is, it supports 64-bit executables
     41only. Building a <quote>multi-lib</quote> system requires compiling many
    2442applications twice, once for a 32-bit system and once for a 64-bit system.
    2543This is not directly supported in LFS because it would interfere with the
     
    2745straightforward base Linux system. Some LFS/BLFS editors maintain a fork
    2846of LFS for multilib, which is accessible at <ulink
    29 url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But
    30 the multilib edition is for x86_64, and multilib is an advanced topic
    31 anyway.</para>
     47url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But it
     48is an advanced topic.</para>
    3249
    3350</sect1>
Note: See TracChangeset for help on using the changeset viewer.