Package: raspi3-firmware Version: 1.20190215-1 Severity: normal Dear Maintainer,
due to the order of the console=... arguments on the kernel command line, given to the firmware in /boot/firmware/cmdline.txt, constructed by your hook script /etc/kernel/postinst.d/z50-raspi3-firmware, the serial console is the main system console. (The last argument wins.) This means that, e.g., systemd boot messages won't appear on the HDMI-connected display. This also means that systemd units with StandardOutput=journal+console won't be able to give live comment on what they are doing / waiting for at boot to the person sitting in front of the monitor. Due to the construction of the Raspberry Pi 3 board and presumed usual use I consider it easier and more likely to connect a monitor (or TV) via an HDMI cable, than to first wire something up to even have a serial port at all in the first place. If still the serial console should be the default main console, and the HDMI-connected display only an additional console, please make this configurable in, e.g., /etc/default/raspi3-firmware. (It could be nice to be able to set additional kernel cmdline arguments or even override the complete cmdline from there, btw.) For the time being, to avoid editing (and later merging on upgrade) a 143 lines script conffile /etc/kernel/postinst.d/z50-raspi3-firmware (see above), I place this little sed script which exchanges the position of two console=... arguments if the first (not the final) is tty0: /etc/kernel/postinst.d/z51-raspi3-fixup and symlinked from /etc/initramfs/post-update.d/z51-raspi3-fixup: #!/bin/bash # (Note: This will not suffice with more than two console=...) exec -- sed -e 's/\(console=tty0 \)\(console=[^ ]* \)/\2\1/' -i /boot/firmware/cmdline.txt This changes /boot/firmware/cmdline.txt from, e.g. (with raised CMA in /etc/default/raspi3-firmware), this: | console=tty0 console=ttyS1,115200 root=/dev/mmcblk0p2 rw elevator=deadline fsck.repair=yes net.ifnames=0 cma=128M rootwait ..to this: | console=ttyS1,115200 console=tty0 root=/dev/mmcblk0p2 rw elevator=deadline fsck.repair=yes net.ifnames=0 cma=128M rootwait That is, tty0 boots as the main console, receiving, e.g., systemd boot output. The result can be checked by /proc/consoles: | tty0 -WU (EC p ) 4:7 | ttyS1 -W- (E p a) 4:65 Look for flag "C = it is preferred console", according to /usr/share/doc/linux-doc/Documentation/filesystems/proc.txt.gz Regards, Fabian -- System Information: Debian Release: buster/sid APT prefers testing APT policy: (500, 'testing') Architecture: arm64 (aarch64) Kernel: Linux 4.19.0-4-arm64 (SMP w/4 CPU cores) Kernel taint flags: TAINT_CRAP Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages raspi3-firmware depends on: ii dosfstools 4.1-2 raspi3-firmware recommends no packages. raspi3-firmware suggests no packages. -- Configuration Files: /etc/default/raspi3-firmware changed: CMA=128M -- no debconf information