With DRM panic added to trunk, now we only need 3 additional entries for
EFI boot, thus we can just add them and remove the reference to BLFS
UEFI kernel configuration.
This is a conflicting merge because of:
- The trunk and loongarch branch are having two different binutils patch
- The bump of min-kernel in trunk
- The introduce of DRM panic in trunk
Currently on a LFS system booted via legacy BIOS (intead of UEFI), the
users can make two different configurations:
1. The DRM driver for the GPU is built as a module. Then before the
module is loaded (i.e. the root fs is properly mounted) the kernel
messages are displayed via the VGA console.
2. The DRM driver for the GPU is built into the kernel image. Then the
kernel messages are displayed via the DRM-emulated framebuffer
console since a very early stage (before the root fs is properly
mounted).
When the system is booted via UEFI, we use SimpleDRM on the EFI
framebuffer for displaying kernel messages, thus it's always the case 2.
Both are not good for diagnostic in case the root fs cannot be mounted
properly (it's very frequent on lfs-support):
- With 1 the VGA console can only fit 80x24 characters, so the relevent
information is often flushed away.
- With 2 the panic message is often displayed improperly when a DRM
driver is running.
The "DRM panic" feature introduced since Linux 6.11 (but it'll only
become usable for LFS since Linux 6.12) can fix the case 2, while case
1 just cannot be fixed. So start to make LFS booted via legacy BIOS
to use method 2 now, then we can enable DRM panic and fix this
long-standing issue.
Though the commit message mentions "recent Binutils and GCC trunk", I'm
99.99% sure this is only related to Binutils since the troubling
R_LARCH_RELAX/R_LARCH_ALIGN is appearing in some object files assembled
from .S files.
IMO this commit should be backported to even 6.1, but Huacai always
believe people using the latest Binutils should use the latest kernel.
And it seems Linux 6.8 won't catch LFS 12.1 package freeze, leaving me
no choice but backporting this downstream.
"gcc(1)" is really not a file name.
Use <ulink> and link to the online man page on
https://man.archlinux.org/ so the user can refer to the man pages more
easily.
The change is done via a sed command and long lines are wrapped
manually.
In Linux 6.6 DRM_FBDEV_EMULATION no longer depends on FB, so we no
longer need to select FB (tested in a QEMU VM).
But if DRM is selected, we must select both DRM_FBDEV_EMULATION and
FRAMEBUFFER_CONSOLE or we'll see only blank screen. And now
FRAMEBUFFER_CONSOLE is not selected by default, be warned!!
Update to vim-1837.$
Update to zlib-1.3.$
Update to wheel-0.41.2 (Python Module).$
Update to util-linux-2.39.2.$
Update to sysvinit-3.08.$
Update to shadow-4.14.0.$
Update to Python-3.11.5.$
Update to procps-ng-4.0.4.$
Update to pkgconf-2.0.2.$
Update to mpfr-4.2.1.$
Update to kbd-2.6.2.$
Update to gzip-1.13.$
Update to coreutils-9.4.$
Specify the 'nobody-group' for systemd.$
Remove unused usb group.$
Import kernel-config infrastructure from BLFS and use it for kernel
configuration. Note that kernel-config.py is slightly different from
BLFS: we need role="nodump" for <screen> here.
A couple of the newer kernel options overflow past 80 columns on
the kernel page. It's not optimal, but insert newlines for these
options.
Also reorder the options to to same ordeer as they appear in
menuconfig and add some blank lines between major setions for
clarity.
- Mention NVME.
- Mention PAE (CONFIG_HIGHMEM64G) for 32-bit.
- Don't repeat the link to BLFS kernel config index twice on SysV.
And don't display the long URL for it.
- Emphasis that BLFS UEFI kernel config is needed even if you'll use the
UEFI bootloader of the host distro.
This reverts commit de679165f9.
localmodconfig does not work very well. It can only *un*select things
already enabled as modules if the module is not loaded by the host. It
won't select anything new, nor unselect unneeded things already set to
"y" instead of "m".
Maybe you think we can copy .config from a "mainstream" distro
(producing a highly modular kernel) and use "make localmodconfig", but
when we tested it with a Debian host kernel config, the resulted kernel
refuses to boot.
"make allmodconfig && make localmodconfig" does not work well either:
"allmodconfig" selects many things as y (these thing are not available
as a module) but "localmodconfig" fails to unselect them.