LFS 5.0 # 12391

Albert Reiner areiner at tph.tuwien.ac.at
Tue Mar 2 10:51:27 PST 2004

Sunday evening it was - my new LFS booted for the first time!  Thanks
a lot for all the valuable and helpful suggestions on this list - I am
quite amazed at how smooth everything went. (Well, some things like
power management do not work correctly at the moment - I'm likely to
bother you some more if I cannot sort this out by myself.)

In case someone is interested, here are some of my notes as to what I
learned during LFS, and what I think should be considered for future
versions of the book:

* General observations

A lot of things will break if anyone has spaces etc in $LFS - maybe
one should warn against that.

Appendix A has a very interesting, rather detailed description of all
the binaries installed with the packages.  I would have found it
convenient if there were a link to the corresponding list at the
beginning of each section.

What about additional environment variables for the linker, directory
for the sources (patch ... $LFSSOURCES/...), etc.?

* Chapter 5, "Installing Glibc-2.3.2"

make install produced errors from commands of the form

    install .... -o root ... /tools/libexec/pt_chown

Building as user lfs, this cannot be permitted. Maybe some Makefile
should be edited to avoid this error.

* Chapter 6, Installing LFS-Bootscripts:

LFS 5.0 wrongly lists the dependencies for bzip2.

* Chapter 7, How does ... work?

I think it would be clearer to say that the names of the links are "S"
or "K" followed by a single number written with two digits, and the
name of the script.  From my old system I think services are started
earlier, but stopped later, when that number is smaller.

Also one might want to mention that rcsysinit.d holds the things that
have to be done at boot time; I suppose that is where, e.g., "depmod
-a" should go when using modules.

* Chapter 6, chroot

The annoying "I have no name" prompt only comes from gratuitously
setting PS1 in the chroot command. The normal bash prompt simply
displays the bash version.

* Chapter 8, /etc/fstab

For those who have ext[23] partitions it would probably be more robust
to use the LABEL= syntax rather than /dev/hd...; similarly with UUID=
for xfs.

According to the man page, the second field for the swap partition
should be "none", not "swap".

* Chapter 8, Installing Linux-...

It might be a good idea to collect here the assumptions the rest of
the LFS system makes regarding the kernel (e.g., you need /dev/pts

* system date may cause make to loop on non-Y2k compliant system

Originally I started with an old PC with a non-Y2K compliant BIOS.
The Linux system used for work on that box always jumped into the
future / past by a fixed amount when booting / shutting down.  For
compiling LFS I used Knoppix and did not bother to perform those
jumps; consequently I was compiling with a system date set to 1997.

On such a system it is necessary to unpack tarballs with the --touch
(or -m) option, or else make will notice (at least in some packages)
that the configure output is older than the source files and keep
happily looping until, well, presumably seven years have gone by.

* logging everything

I think it would be useful to point out some common pitfalls related
to the mechanics of building, especially with a view to keeping logs
of everything:

- when a sub-shell is started, some utilities cause bash to read
  system-wide initialization files so that the carefully constructed
  clean environment is no longer used.

  (This happens at least with script 2.11 and with emacs' term mode.)

- also, configuring (?) expect in Chapter 5 needs direct access to the

- in scripts, turn off bash path hashing: set +h.

In the end I used scripts [available in case of interest] to do most
of the work, using a lot of shell functions etc. for convenience.  I
also found it very useful to read the book in lynx and always print
the current page to a file; when writing the script, I would simply
insert the contents of this file and trim the commentary, which
greatly reduces the potential for missing some command or for typos.

Regards, and thanks again for all the help -


More information about the lfs-support mailing list