Gerard Beekmans wrote:
> 1) Simplifying too much does not illustrate what has become a very
> common setup on almost every system you encounter these days. The idea
> of LFS has always been to educate as to what is going on. If a just
> finished LFS system can't begin to explain how a regular distribution
> works, what the deal is with their initramfs setups and so on, then LFS
> has missed the mark, its primary purpose. It makes it less relevant in
> today's climate.
Learning needs to be an incremental process. Once you learn the basics,
you can go on to more advanced topics.
The initramfs has one purpose in life - getting the rootfs mounted so
that we can transition to the real rootfs. This is all driven by device
availability.
For a simple ext3 rootfs partition, the initramfs is certainly not
necessary. It's only when we get to more advanced topics: LVM, software
raid, encrypted file systems, network mounted filesystems, etc where an
initramfs is needed. We discuss none of these in LFS. Right now, the
only place in BLFS that these areas are discussed is NFS and Samba and
then we don't mention it with respect to the root fs.
Generally we have taken the approach in LFS/BLFS that we are not trying
to show the user how to use the software -- only how it's built with
relation to other packages. There are some exceptions of course. We go
into a (very) little detail for GRUB and discuss our own boot scripts in
LFS. We go into a little more detail about configuration for inputrc,
vimrc, iptables, xorg, subversion, dhcp, Trinity/KDE3, and Gnome.
However, each of these configuration pages stand alone.
On the other hand, setting up a initramfs may require a lot more. There
have been mentions of RAID, encrypted filesystems, LVM, and networked
FS. We could leave something out, but some have said they want
something that will work anywhere.
The packages that are needed beyond LFS include:
lvm2 - We have this in BLFS under device-mapper. We only build a
subset but that's easily fixed. Note to that if we want to put lvm into
LFS, we have to ask the user to run it from the host system before
starting to build Chapter 5. This IMO is not "From Scratch". I suppose
that the argument can be made that running fdisk from the host is not
"From Scratch" either, but it feels much closer to me.
All kernel network drivers
All kernel disk drivers in module form for virtually every filesystem
Kernel disk drivers don't, strictly speaking, have to be included,
but if they aren't, what's the point?
reiserfsprogs
xfsprogs
other FS utilities?
dmraid
madm
cryptsetup
I'll note here that it's not hard to copy an LFS system to another
partition and boot that. That would be my recommendation for
a first time LFS builder.
nfs-utilities
libtirpc
pkg-config
glib
libffi
Python
openssl
libffi
bdb
tcl
java (IcedTea of JDK)
sharutils
pcre
attr
rpcbind
TCP Wrappers
libevent (not in BLFS)
libnfsidmap (not in BLFS)
libgssapi (not in BLFS)
SPKM-3 (not in BLFS)
samba
popt
PAM
cups
ldap
acl
libcap2
tdb (not in BLFS)
gamin
libunwind
avahi
openAFS (not in BLFS)
gnutls
sqlite3
There are others. Clearly we don't have to build everything, but the
first decision is what to omit. Do we ask the user to build a subset
just for an initramfs and then go back later if a full installation is
desired?
I'll note here that on my system Ubuntu's initramfs is 7.5M. My largest
LFS kernel is 3.9M.
My overall impression is that BLFS is the right place for this with
links to the appropriate packages that need to be built. Forward
references in Chapter 2 and 8.3 (Kernel) and 8.4 (Grub Config) would be
appropriate.
Using Bryan's hint as a starting point, a page in Chapter 3 in BLFS for
the description would be reasonable. Alternatively, we could insert a
whole new Chapter with the appropriate packages.
I've run on enough. However, we need to decide how to go forward.
-- Bruce
--
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page