diff --git a/features.in/tty/README b/features.in/tty/README new file mode 100644 index 00000000..da19fb2b --- /dev/null +++ b/features.in/tty/README @@ -0,0 +1,5 @@ +Эта фича занимается терминалами ввода-вывода, в первую очередь +COM-портами (serial console). + +Следует заметить, что systemd занимается развешиванием agetty +самостоятельно. diff --git a/features.in/tty/config.mk b/features.in/tty/config.mk new file mode 100644 index 00000000..a9271673 --- /dev/null +++ b/features.in/tty/config.mk @@ -0,0 +1,9 @@ +use/tty: + @$(call add_feature) + @$(call xport,TTY_DEV) + @$(call xport,TTY_RATE) + +use/tty/S0: use/tty + @$(call add,THE_PACKAGES,agetty) + @$(call add,TTY_DEV,ttyS0) + @$(call set,TTY_RATE,115200) diff --git a/features.in/tty/rootfs/image-scripts.d/50-serial b/features.in/tty/rootfs/image-scripts.d/50-serial new file mode 100755 index 00000000..726c4365 --- /dev/null +++ b/features.in/tty/rootfs/image-scripts.d/50-serial @@ -0,0 +1,18 @@ +#!/bin/sh +# setup serial console access + +BIN=/sbin/agetty +CFG=/etc/inittab +SEC=/etc/securetty + +[ -n "$GLOBAL_TTY_DEV" -a -n "$GLOBAL_TTY_RATE" ] || exit 0 +[ -s "$CFG" -a -x "$BIN" ] || exit 0 + +if ! grep -q "$BIN" "$CFG"; then + n=0 + for t in $GLOBAL_TTY_DEV; do + grep -q "$t" "$SEC" || echo "$t" >> "$SEC" + echo "T$n:345:respawn:$BIN -L $t $GLOBAL_TTY_RATE vt100" >> $CFG + n=$(($n+1)) + done +fi