Hi everyone, long time lfs/blfs user, recently ran into a problem that
called for cross-lfs and ( :D ) a recompile, and I was wondering a few
things about my blfs system:
First and foremost, here's my situation:
I use an initrd containing to boot up with. It contains busybox, a
static e2fsck, my init script, a populated dev folder, and my kernel
modules. It's come in handy, because it means I can leave LFS' default
behavior with fsck alone; any time I have a serious disk error, I just
boot into a debug shell and fix the problem. As far as security, I've
decided if someone can get past my bios and at my hard disk, they're
smart enough to use their own livecd or usb stick, which gives them
the exact same advantage my having a debug shell would give them, so I
didn't see a negative impact.
At any rate, when I tried to upgrade my kernel from 2.6.{22,31} the
mdev script for the busybox in my initrd (mdev is like udev, and
busybox is a statically linked GNU toolset including sed, sh, mawk,
etc) suddenly couldn't find any of my hard disks. I did some digging
around and found that the cause was things being moved around in /sys
after 2.6.26.
The solution that I could come up with off the top of my head is to
cross-compile busybox using the headers from my new kernel. I'm hoping
that will cause busybox to know where everything got moved to, which
will save me figuring out what each device was and should be and
symlinking everything manually (which has HUGE PITA written all over
it). I'm currently trying just that using cross-lfs to build my
compiler.
I included that as information only, I really am going to ask a blfs
question. Bear with me.
Anywhoo, assuming all goes well, and I have an initrd that works with
the 2.6.31 kernel, here's my question:
I have a more or less vanilla BLFS system. The stuff (I'm assuming)
that's relevant to what I'm asking is all by the book, including gcc,
glibc, binutils, and other toolchain stuff. But my new initrd will
have CLFS and a different C library. I don't anticipate my host system
being polluted, and am hoping it'll use the proper (old) C-library,
but in case it fails (or busybox still fails to locate anything on its
own or I get a wild hair) and I want to just use my clfs toolchain
instead, how compatible are the BLFS instructions with CLFS? I know
they were written assuming an LFS system, but I'm basically just
seeking out anyone's personal experience going above and beyond the
CLFS toolchain with their own systems, along with anyone's experience
doing things like what I'm doing.
In case I suck at explaining things:
-Grub boots up
||
\/
My new 2.6.31 kernel and new initrd load, new initrd has tools from cross-lfs
||
\/
My initrd mounts my new root filesystem and calls
umount /sys /proc
exec switch_root /newroot /sbin/init
||
\/
My old, unchanged BLFS system loads under the new kernel
I'm going to try it one way or the other and let folks know how it
turned out, but any prior experience and suggestions would help.
By the way, thank you thank you thank you for doing this. I was a long
time slackware user before I found LFS, and it's so wonderful being
able to customize any aspect of my system and get my computer to do
whatever I need it to do. Long gone are the ways when I had to let
someone else do my thinking and installing for me.
Other info about my system, if it's important:
-LFS: 6.3
Package Management: checkinstall and slackware tools, heavy use of git
C library: glibc 2.5.1 in system, eglibc 2.10.1 in initrd
busybox: will be busybox 1.14.1
boot media: hard disk and usb stick
--
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page