diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 0beb04d7b..cdb245999 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -40,6 +40,40 @@
appropriate for the entry or if needed the entire day's listitem.
-->
+
+ 2024-12-01
+
+
+ [bdubbs] - Update to iana-etc-20241122. Addresses
+ #5006.
+
+
+ [bdubbs] - Update to file-5.46. Fixes
+ #5601.
+
+
+ [bdubbs] - Update to iproute2-6.12.0. Fixes
+ #5597.
+
+
+ [bdubbs] - Update to libtool-2.5.4. Fixes
+ #5598.
+
+
+ [bdubbs] - Update to linux-6.12.1. Fixes
+ #5586.
+
+
+ [bdubbs] - Update to setuptools-75.6.0 (Python Module). Fixes
+ #5599.
+
+
+ [bdubbs] - Update to wheel-0.45.1 (Python Module). Fixes
+ #5600.
+
+
+
+
2024-11-15
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index bf699eef3..65de020ec 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -77,9 +77,9 @@
-
+
diff --git a/chapter08/e2fsprogs.xml b/chapter08/e2fsprogs.xml
index c5718c191..d99922610 100644
--- a/chapter08/e2fsprogs.xml
+++ b/chapter08/e2fsprogs.xml
@@ -146,7 +146,7 @@ install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
/etc/mke2fs.conf contains the default value of
various command line options of mke2fs. You may
- edit the file to make the default values suitable for your need.
+ edit the file to make the default values suitable for your needs.
For example, some utilities (not in LFS or BLFS) cannot recognize a
ext4 file system with
metadata_csum_seed feature enabled.
diff --git a/chapter08/iproute2.xml b/chapter08/iproute2.xml
index 8a6755f3d..50fec36aa 100644
--- a/chapter08/iproute2.xml
+++ b/chapter08/iproute2.xml
@@ -278,7 +278,7 @@ cp -v COPYING README* /usr/share/doc/iproute2-&iproute2-version;
tc class allows users to set up classes based
- on the queuing discipline scheduling
+ on the queueing discipline scheduling
tc filter allows users to set up the QoS/CoS
packet filtering
diff --git a/chapter10/grub.xml b/chapter10/grub.xml
index 1706ccb3c..00be1d6c0 100644
--- a/chapter10/grub.xml
+++ b/chapter10/grub.xml
@@ -135,6 +135,7 @@ set timeout=5
insmod part_gpt
insmod ext2
set root=(hd0,2)
+set gfxpayload=1024x768x32
menuentry "GNU/Linux, Linux &linux-version;-lfs-&version;" {
linux /boot/vmlinuz-&linux-version;-lfs-&version; root=/dev/sda2 ro
@@ -159,6 +160,14 @@ EOF
be needed with some rare configurations.
+
+ The set gfxpayload=1024x768x32 command sets the
+ resolution and color depth of the VESA framebuffer to be passed to the
+ kernel. It's necessary for the kernel SimpleDRM driver to use the
+ VESA framebuffer. You can use a different resolution or color depth
+ value which better suits for your monitor.
+
+
From GRUB's perspective, the
kernel files are relative to the partition used. If you
used a separate /boot partition, remove /boot from the above
diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml
index 4eb87a17b..971703466 100644
--- a/chapter10/kernel.xml
+++ b/chapter10/kernel.xml
@@ -272,6 +272,71 @@
+
+
+
+ Display a user-friendly message when a kernel panic occurs
+
+
+
+ This will make the kernel correctly display the message
+ in case a kernel panic happens and a running DRM driver
+ supports to do so. Without this, it would be more
+ difficult to diagnose a panic: if no DRM driver is running,
+ we'd be on the VGA console which can only hold 24 lines and
+ the relevant kernel message is often flushed away; if a DRM
+ driver is running, the display is often completely messed up
+ on panic. As of Linux-6.12, none of the dedicated drivers for
+ mainstream GPU models really supports this, but it's supported by
+ the Simple framebuffer driver which runs on the
+ VESA (or EFI) framebuffer before the dedicated GPU driver is
+ loaded. If the dedicated GPU driver is built as a module
+ (instead of a part of the kernel image) and no initramfs is
+ used, this functionality will work just fine before the root
+ file system is mounted and it's already enough for providing
+ information about most LFS configuration errors causing a
+ panic (for example, an incorrect root=
+ setting in ).
+
+
+
+
+
+
+ Panic screen formatter
+
+
+
+ Set this kmsg to make sure the last
+ kernel messages lines are displayed when a kernel panic happens.
+ The default, user, would make the kernel show
+ only a user friendly panic message which is not
+ helpful on diagnostic. The third choice,
+ qr_code, would make the kernel to compress
+ the last kernel message lines into a QR code and display it.
+ The QR code can hold more message lines than plain text and it
+ can be decoded with an external device (like a smart phone).
+ But it requires a Rust compiler that LFS does not provide.
+
+
+
+
+
+
+ Mark VGA/VBE/EFI FB as generic system framebuffer
+ and
+ Simple framebuffer driver
+
+
+ These allow to use the VESA framebuffer (or the EFI
+ framebuffer if booting the LFS system via UEFI) as a DRM device.
+ The VESA framebuffer will be set up by GRUB (or the EFI
+ framebuffer will be set up by the UEFI firmware), so the DRM panic
+ handler can function before the GPU-specific DRM driver is
+ loaded.
+
+
+
@@ -282,8 +347,8 @@
These are needed to display the Linux console on a
GPU driven by a DRI (Direct Rendering Infrastructure) driver.
- If (Direct Rendering Manager) is
- enabled, you should enable these two options as well or you'll see
+ As (Direct Rendering Manager) is
+ enabled, we should enable these two options as well or we'll see
a blank screen once the DRI driver is loaded.
diff --git a/chapter10/kernel/kernel.version b/chapter10/kernel/kernel.version
index 22cb9e553..ff61e1868 100644
--- a/chapter10/kernel/kernel.version
+++ b/chapter10/kernel/kernel.version
@@ -1 +1 @@
-6.10.2
+6.12.1
diff --git a/chapter10/kernel/systemd.toml b/chapter10/kernel/systemd.toml
index bfe7a1b40..387a74b66 100644
--- a/chapter10/kernel/systemd.toml
+++ b/chapter10/kernel/systemd.toml
@@ -13,7 +13,13 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
-DRM=' *M'
+SYSFB_SIMPLEFB='*'
+DRM='*'
+DRM_PANIC='*'
+DRM_PANIC_SCREEN='kmsg'
+DRM_FBDEV_EMULATION='*'
+DRM_SIMPLEDRM='*'
+FRAMEBUFFER_CONSOLE='*'
NET='*'
INET='*'
IPV6='*'
@@ -30,11 +36,3 @@ revision='systemd'
[RT_GROUP_SCHED]
value = ' '
comment = 'This may cause some systemd features malfunction'
-
-[DRM_FBDEV_EMULATION]
-value = ' *'
-comment = 'If [DRM] is selected as * or M, this must be selected'
-
-[FRAMEBUFFER_CONSOLE]
-value = ' *'
-comment = 'If [DRM] is selected as * or M, this must be selected'
diff --git a/chapter10/kernel/systemd.xml b/chapter10/kernel/systemd.xml
index a03c67402..0525fbd0a 100644
--- a/chapter10/kernel/systemd.xml
+++ b/chapter10/kernel/systemd.xml
@@ -42,15 +42,18 @@
... [FW_LOADER_USER_HELPER]
Firmware Drivers --->
[*] Export DMI identification via sysfs to userspace [DMIID]
+ [*] Mark VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB]
Graphics support --->
- < /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
+ <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
... [DRM]
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] Enable legacy fbdev support for your modesetting driver
+ [*] Display a user-friendly message when a kernel panic occurs
+ ... [DRM_PANIC]
+ (kmsg) Panic screen formatter [DRM_PANIC_SCREEN]
+ [*] Enable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION]
+ <*> Simple framebuffer driver [DRM_SIMPLEDRM]
Console display driver support --->
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] Framebuffer Console support [FRAMEBUFFER_CONSOLE]
+ [*] Framebuffer Console support [FRAMEBUFFER_CONSOLE]
File systems --->
[*] Inotify support for userspace [INOTIFY_USER]
diff --git a/chapter10/kernel/sysv.toml b/chapter10/kernel/sysv.toml
index 3f8d2e93c..c8267a303 100644
--- a/chapter10/kernel/sysv.toml
+++ b/chapter10/kernel/sysv.toml
@@ -12,14 +12,12 @@ STACKPROTECTOR_STRONG='*'
UEVENT_HELPER=' '
DEVTMPFS='*'
DEVTMPFS_MOUNT='*'
-DRM=' *M'
+SYSFB_SIMPLEFB='*'
+DRM='*'
+DRM_PANIC='*'
+DRM_PANIC_SCREEN='kmsg'
+DRM_FBDEV_EMULATION='*'
+DRM_SIMPLEDRM='*'
+FRAMEBUFFER_CONSOLE='*'
revision='sysv'
-
-[DRM_FBDEV_EMULATION]
-value = ' *'
-comment = 'If [DRM] is selected as * or M, this must be selected'
-
-[FRAMEBUFFER_CONSOLE]
-value = ' *'
-comment = 'If [DRM] is selected as * or M, this must be selected'
diff --git a/chapter10/kernel/sysv.xml b/chapter10/kernel/sysv.xml
index 451898a21..f90164d65 100644
--- a/chapter10/kernel/sysv.xml
+++ b/chapter10/kernel/sysv.xml
@@ -28,12 +28,16 @@
[*] Maintain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs
... [DEVTMPFS_MOUNT]
+ Firmware Drivers --->
+ [*] Mark VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB]
Graphics support --->
- < /*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
+ <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
... [DRM]
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] Enable legacy fbdev support for your modesetting driver
+ [*] Display a user-friendly message when a kernel panic occurs
+ ... [DRM_PANIC]
+ (kmsg) Panic screen formatter [DRM_PANIC_SCREEN]
+ [*] Enable legacy fbdev support for your modesetting driver
... [DRM_FBDEV_EMULATION]
+ <*> Simple framebuffer driver [DRM_SIMPLEDRM]
Console display driver support --->
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] Framebuffer Console support [FRAMEBUFFER_CONSOLE]
+ [*] Framebuffer Console support [FRAMEBUFFER_CONSOLE]
diff --git a/chapter11/afterlfs.xml b/chapter11/afterlfs.xml
index 633a782df..bfd6b084f 100644
--- a/chapter11/afterlfs.xml
+++ b/chapter11/afterlfs.xml
@@ -54,7 +54,7 @@
In addition to the above, there is a set of applications for system
management for all kinds of systems. These applications are all in the
- BLFS book. Not all packages are needed in every environments. For
+ BLFS book. Not all packages are needed in every environment. For
example dhcpcd, is
not normally appropriate for a server and wireless_tools,
@@ -168,7 +168,7 @@ EOF
alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM" PS1="\u:\w\\\\$ "
-PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'
+PATH=/usr/bin:/usr/sbin /bin/bash --login'
This alias is a little tricky because of the quoting and levels of
diff --git a/packages.ent b/packages.ent
index d8aa85732..f90f8fae7 100644
--- a/packages.ent
+++ b/packages.ent
@@ -172,10 +172,10 @@
-
-
+
+
-
+
@@ -317,10 +317,10 @@
-
-
+
+
-
+
@@ -341,10 +341,10 @@
-
-
+
+
-
+
@@ -413,10 +413,10 @@
-
-
+
+
-
+
@@ -430,13 +430,13 @@
-
-
+
+
-
+
-
+