home: hub: mkinitfs

Download patch

ref: 317c1ec274c84e39e3f777a81e6484aa768e58ef
parent: 86e617bfe18977cd367c461635c4c29f0823f574
author: Natanael Copa <ncopa@alpinelinux.org>
date: Mon May 15 03:54:34 CDT 2023

init: improve detection of serial consoles

fixes https://gitlab.alpinelinux.org/alpine/aports/-/issues/14927

--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -104,17 +104,22 @@
 	done
 }
 
-detect_serial_console() {
+detect_serial_consoles() {
 	local n=$(awk '$7 ~ /CTS/ || $7 ~ /DSR/ { print $1 }' "$ROOT"/proc/tty/driver/serial 2>/dev/null)
 	if [ -n "$n" ]; then
 		echo ttyS${n%:}
 	fi
+	for i in "$ROOT"/sys/class/tty/*; do
+		if [ -e "$i"/device ]; then
+			echo ${i##*/}
+		fi
+	done
 }
 
 setup_inittab_console() {
 	term=vt100
 	# Inquire the kernel for list of console= devices
-	consoles="$(for c in console $KOPT_consoles $(detect_serial_console); do list_console_devices $c; done)"
+	consoles="$(for c in console $KOPT_consoles $(detect_serial_consoles); do list_console_devices $c; done)"
 	for tty in $consoles; do
 		# ignore tty devices that gives I/O error
 		if ! stty -g -F /dev/$tty >/dev/null 2>/dev/null; then
--- a/tests/initramfs-init.test
+++ b/tests/initramfs-init.test
@@ -134,11 +134,20 @@
 		3: uart:unknown port:000002E8 irq:3
 	EOF
 
+	mkdir -p sys/devices/platform/ARMH0011:00/tty/ttyAMA0
+	ln -s ../../../ARMH0011:00 \
+		sys/devices/platform/ARMH0011:00/tty/ttyAMA0/device
+
+	mkdir -p sys/class/tty/
+	ln -s ../../devices/platform/ARMH0011:00/tty/ttyAMA0 \
+		sys/class/tty/ttyAMA0
+
 	atf_check \
 		-o ignore \
 		initramfs-init
 	atf_check \
 		-o match:"ttyS0::respawn:/sbin/getty" \
+		-o match:"ttyAMA0::respawn:/sbin/getty" \
 		cat sysroot/etc/inittab
 }