mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +00:00
sysvinit-inittab/start_getty: Check /sys for the tty device existence
The hvc tty driver doesn't populate a file like /proc/tty/driver/serial, so the current implementation of start_getty doesn't work for the hvc console. By checking the /sys/class/tty/ for the tty device existence, it should support more console types and also make the codes more simple. (From OE-Core rev: 670ceef0f6584ece5ce4176610255226a6148570) Signed-off-by: Kevin Hao <kexin.hao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
7d9a47e623
commit
bfbccfd85f
@@ -1,17 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
###############################################################################
|
|
||||||
# This script is used to automatically set up the serial console(s) on startup.
|
|
||||||
# The variable SERIAL_CONSOLES can be set in meta/conf/machine/*.conf.
|
|
||||||
# Script enhancement has been done based on Bug YOCTO #10844.
|
|
||||||
# Most of the information is retrieved from /proc virtual filesystem containing
|
|
||||||
# all the runtime system information (eg. system memory, device mount, etc).
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Get active serial filename.
|
|
||||||
active_serial=$(grep "serial" /proc/tty/drivers | cut -d/ -f1 | sed "s/ *$//")
|
|
||||||
|
|
||||||
# Rephrase input parameter from ttyS target index (ttyS1, ttyS2, ttyAMA0, etc).
|
|
||||||
runtime_tty=$(echo $2 | grep -oh '[0-9]\+')
|
|
||||||
|
|
||||||
# busybox' getty does this itself, util-linux' agetty needs extra help
|
# busybox' getty does this itself, util-linux' agetty needs extra help
|
||||||
getty="/sbin/getty"
|
getty="/sbin/getty"
|
||||||
@@ -25,31 +12,6 @@ case $(readlink -f "${getty}") in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Backup $IFS.
|
if [ -e /sys/class/tty/$2 -a -c /dev/$2 ]; then
|
||||||
DEFAULT_IFS=$IFS
|
${setsid:-} ${getty} -L $1 $2 $3
|
||||||
# Customize Internal Field Separator.
|
fi
|
||||||
IFS="$(printf '\n\t')"
|
|
||||||
|
|
||||||
for line in $active_serial; do
|
|
||||||
# Check we have the file containing current active serial target index.
|
|
||||||
if [ -e "/proc/tty/driver/$line" ]
|
|
||||||
then
|
|
||||||
# Remove all unknown entries and discard the first line (desc).
|
|
||||||
activetty=$(grep -v "unknown" "/proc/tty/driver/$line" \
|
|
||||||
| tail -n +2 | grep -oh "^\s*\S*[0-9]\+")
|
|
||||||
for active in $activetty; do
|
|
||||||
# If indexes do match then enable the serial console.
|
|
||||||
if [ $active -eq $runtime_tty ]
|
|
||||||
then
|
|
||||||
if [ -c /dev/$2 ]
|
|
||||||
then
|
|
||||||
${setsid:-} ${getty} -L $1 $2 $3
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Restore $IFS.
|
|
||||||
IFS=$DEFAULT_IFS
|
|
||||||
|
|||||||
Reference in New Issue
Block a user