Hi,
Quote:
Originally Posted by spiky0011
You've picked up the Gauntlet then lol. Yes Seems I,m like you, wont let it rest.
|
It would be a shame if this wouldn't be resolved. You're already this far with building a (B)LFS system, not being able to continue because of this "bug" seems not right.
Quote:
Is it not just a case of downloading new kernel unpacking then rebuild as in book???
|
You could go that way, but it has a major setback: You would need to recheck and re-set all the options in the kernel. A better approach is available (see my comment about this in the guide below).
- - - A small guide to switch from one kernel version to a newer one (LFS specific) - - -
You first need to clean up what's been done this far, which is the following (you might or might not have done so already):
- remove created xorg.conf file(s),
- remove
i915.modeset=1,
- remove
/etc/modrprobe.d/<i915-related-file>
- remove i915 related entry from
/etc/modprobe.conf,
-
Time to install the newer kernel......
Download the newest stable kernel (which is 2.6.38.3 when I type this):
linux-2.6.38.3 (kernel.org) or
linux-2.6.38.3 (xs4all)
Copy new kernel, extract, prepare for setting the options:
Code:
cp /x/y/z/linux-2.6.38.3.tar.bz2 /usr/src
cd /usr/src
tar jxf linux-2.6.38.3.tar.bz2
cd linux-2.6.38.3
make mrproper
Nothing new thus far, except the version number and you now have 2 kernel directories in /usr/src.
Because a newer kernel has extra, other and/or different option, you cannot use a config file from another kernerl version by just copying it to the correct place. Being able to use your current configuration has a big advantage: All changes made would also be reflected in the new kernel configuration, which would save you the trouble of having to set them all over again.
You do need to tell the make process it is going to use a config file from an older version:
Code:
# import old/current config file:
cp /boot/config-2.6.35.4 .config
make silentoldconfig
To avoid having to answer all (most?) of the questions about new/changed options,
make silentoldconfig is used, you could also use
make oldconfig, but it will ask conformation about a lot of stuff. If you do get questions: Accept all defaults (just press
enter).
Although you could skip this step, I always do it, just to make sure:
You should at least check the intel settings to see if they are still the same. I do realize that your knowledge about all the other options are probably still somewhat limited, but if you did set/change anything important in the 2.6.35 kernel: Check if those are still what you want them to be.
Compile and place the new kernel:
Code:
safe/exit menuconfig
make
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinux-2.6.38.3-lfs-6.7
cp System.map /boot/System.map-2.6.38.3
cp .config /boot/config-2.6.38.3
If all went as planned you now have 4 kernel versions, and their accompanying files, present in /boot:
vmlinux-2.6.35.4-lfs-6.7.new
vmlinux-2.6.35.4-lfs-6.7.org
vmlinux-2.6.35.4-lfs-6.7
vmlinux-2.6.38.3-lfs-6.7
Make changes to /boot/grub.cfg.
Replace all between
### BEGIN /etc/grub.d/10_linux ### and
### END /etc/grub.d/10_linux ### with:
Code:
### BEGIN /etc/grub.d/10_linux ###
menuentry "LFS 6.7 - 2.6.38.3" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(/dev/hd0,1)'
search --no-floppy --fs-uuid --set ad95dfa8-fdf9-47b5-ad1f-e0d35145c38c
echo Loading Linux 2.6.38.3-lfs-6.7 ...
linux /boot/vmlinux-2.6.38.3-lfs-6.7 root=/dev/sda1 ro
}
menuentry "LFS 6.7 - 2.6.38.3 (recovery mode)" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(/dev/hd0,1)'
search --no-floppy --fs-uuid --set ad95dfa8-fdf9-47b5-ad1f-e0d35145c38c
echo Loading Linux 2.6.38.3-lfs-6.7 ...
linux /boot/vmlinux-2.6.38.3-lfs-6.7 root=/dev/sda1 ro single
}
menuentry "LFS 6.7 - 2.6.35.4" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(/dev/hd0,1)'
search --no-floppy --fs-uuid --set ad95dfa8-fdf9-47b5-ad1f-e0d35145c38c
echo Loading Linux 2.6.35.4-lfs-6.7 ...
linux /boot/vmlinux-2.6.35.4-lfs-6.7 root=/dev/sda1 ro
}
menuentry "LFS 6.7 - 2.6.35.4 (recovery mode)" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(/dev/hd0,1)'
search --no-floppy --fs-uuid --set ad95dfa8-fdf9-47b5-ad1f-e0d35145c38c
echo Loading Linux 2.6.35.4-lfs-6.7 ...
linux /boot/vmlinux-2.6.35.4-lfs-6.7 root=/dev/sda1 ro single
}
menuentry "LFS 6.7 - original kernel 2.6.35.4" --class gnu-linux --class gnu --class os {
insmod ext2
set root='(/dev/hd0,1)'
search --no-floppy --fs-uuid --set ad95dfa8-fdf9-47b5-ad1f-e0d35145c38c
echo Loading Linux 2.6.35.4-lfs-6.7.org ...
linux /boot/vmlinux-2.6.35.4-lfs-6.7.org root=/dev/sda1 ro
}
### END /etc/grub.d/10_linux ###
The first 2 menu entries are the new 2.6.38.3 kernel, menu entries 3 and 4 are the previously used kernel and the last menu entry is the original first kernel you installed. The first menu entry should be started automatically.
In case you don't yet know: The
recovery mode entries are there to boot into runlevel 1, which could be useful to fix the system if something goes wrong.
Now reboot into your new kernel and start testing X again.
Lets hope I didn't forget anything
