Hi I'm UEFI-booting Arch Linux from a unified kernel image (UKI) generated by mkinitcpio: https://wiki.archlinux.org/title/Unified_kernel_image Recently, I'm seeing random junk being appended to the kernel commandline: $ cat /proc/cmdline "_VGA] +WQmapper/ssdvg-root rw quiet loglevel=3 udev.log_priority=3 ]GM?|-dQ2�H~A3y $ hexdump -C /proc/cmdline 00000000 72 6f 6f 74 3d 2f 64 65 76 2f 6d 61 70 70 65 72 |root=/dev/mapper| 00000010 2f 73 73 64 76 67 2d 72 6f 6f 74 20 72 77 20 71 |/ssdvg-root rw q| 00000020 75 69 65 74 20 6c 6f 67 6c 65 76 65 6c 3d 33 20 |uiet loglevel=3 | 00000030 75 64 65 76 2e 6c 6f 67 5f 70 72 69 6f 72 69 74 |udev.log_priorit| 00000040 79 3d 33 20 17 5d 47 4d 05 3f 7c 2d 64 51 32 1a |y=3 .]GM.?|-dQ2.| 00000050 1f 48 15 7e 41 33 79 0d 22 5f 56 47 41 5d 20 2b |.H.~A3y."_VGA] +| 00000060 57 51 0a |WQ.| 00000063 (the junk is only at the end, but with "cat" it garbles the terminal and overwrites the beginning of the line. hexdump shows it's exclusively at the end though.) Unrecognized junk is then passed on to init: $ journalctl -k -o cat | grep -a command\ line "_VGA] +WQmand line: root=/dev/mapper/ssdvg-root rw quiet loglevel=3 udev.log_priority=3 ]GM?|-dQ2�H~A3y Unknown kernel command line parameters "]GM?|-dQ2�H~A3y _VGA] +WQ", will be passed to user space. $ ps -ef | grep init root 1 0 1 20:30 ? 00:00:00 /sbin/init ?]GM??|-dQ2??H?~A3y _VGA] +WQ (journalctl without -o cat doesn't even print those lines.) The input file /etc/kernel/cmdline (used by mkinitcpio to generate the UKI) is clean though: $ cat /etc/kernel/cmdline root=/dev/mapper/ssdvg-root rw quiet loglevel=3 udev.log_priority=3 And the UKI itself doesn't seem to contain this random junk either: $ hexdump -C /boot/archlinux-linux.efi | grep -A5 root= 0000e200 72 6f 6f 74 3d 2f 64 65 76 2f 6d 61 70 70 65 72 |root=/dev/mapper| 0000e210 2f 73 73 64 76 67 2d 72 6f 6f 74 20 72 77 20 71 |/ssdvg-root rw q| 0000e220 75 69 65 74 20 6c 6f 67 6c 65 76 65 6c 3d 33 20 |uiet loglevel=3 | 0000e230 75 64 65 76 2e 6c 6f 67 5f 70 72 69 6f 72 69 74 |udev.log_priorit| 0000e240 79 3d 33 20 00 00 00 00 00 00 00 00 00 00 00 00 |y=3 ............| 0000e250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| However when booting the kernel directly (not the UKI) from the UEFI shell, the same kernel command line is passed clean. No idea what is causing this, but it's a recent issue. I have regenerated the UKI several times, and also tried downgrading mkinitcpio back to v31, and the kernel to 5.19, but keep getting the same result. I'm not suspecting the hardware, since I'm seeing the same issue on two different machines. Any ideas? Geert
This is a known bug. Please see https://bugs.archlinux.org/task/76468 https://github.com/systemd/systemd/pull/25222 -- Morten Linderud PGP: 9C02FF419FECBE16
On Thu, Nov 10, 2022 at 23:59:27 +0100, Morten Linderud wrote:
This is a known bug.
Please see https://bugs.archlinux.org/task/76468 https://github.com/systemd/systemd/pull/25222
Thanks! I terminated my /etc/kernel/cmdline with a null byte as a workaround now. (and changed grep call in mkinitcpio line 751 to grep -a to accept this) We could make mkinitcpio add that nullbyte as well? Geert
participants (2)
-
Geert Hendrickx
-
Morten Linderud