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 @@ - - + + - + - +