mirror of
https://git.yoctoproject.org/poky
synced 2026-05-07 16:59:22 +00:00
sysvinit-inittab: use ttyrun to run getty only if the terminal exists
Wrap calls to start_getty with ttyrun, so that getty isn't started if the device doesn't exist. As we know start_getty is only called when the device exists we can remove the partial workaround for this problem in that scripts too. This neatly obsoletes SERIAL_CONSOLES_CHECK, whose sole purpose was to check what terminals are present at boot and rewrite inittab. Notably, this meant that SERIAL_CONSOLES_CHECK made using a read-only rootfs impossible. (From OE-Core rev: f4fd17d5a5e4eaa31995d3ca52c871cfbdc0df68) (From OE-Core rev: 8e48297621311116d3edd7e3aa0de1b8ef2431b1) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
b3fa551d64
commit
42d35e89a3
@@ -1,5 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
SPEED=$1
|
||||
DEVICE=$2
|
||||
TERM=$3
|
||||
|
||||
# busybox' getty does this itself, util-linux' agetty needs extra help
|
||||
getty="/sbin/getty"
|
||||
case $(readlink -f "${getty}") in
|
||||
@@ -13,9 +17,4 @@ case $(readlink -f "${getty}") in
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -e /sys/class/tty/$2 -a -c /dev/$2 ]; then
|
||||
${setsid:-} ${getty} ${options:-} -L $1 $2 $3
|
||||
else
|
||||
# Prevent respawning to fast error if /dev entry does not exist
|
||||
sleep 1000
|
||||
fi
|
||||
${setsid:-} ${getty} ${options:-} -L $SPEED $DEVICE $TERM
|
||||
|
||||
@@ -28,7 +28,7 @@ do_install() {
|
||||
device=$(echo $s | cut -d\; -f 2)
|
||||
label=$(echo $device | sed -e 's/tty//' | tail --bytes=5)
|
||||
|
||||
echo "$label:12345:respawn:${base_bindir}/start_getty $speed $device vt102" >> ${D}${sysconfdir}/inittab
|
||||
echo "$label:12345:respawn:${sbindir}/ttyrun $device ${base_bindir}/start_getty $speed $device vt102" >> ${D}${sysconfdir}/inittab
|
||||
done
|
||||
|
||||
if [ "${USE_VT}" = "1" ]; then
|
||||
@@ -52,33 +52,6 @@ EOF
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst:${PN} () {
|
||||
# run this on host and on target
|
||||
if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst_ontarget:${PN} () {
|
||||
# run this on the target
|
||||
if [ -e /proc/consoles ]; then
|
||||
tmp="${SERIAL_CONSOLES_CHECK}"
|
||||
for i in $tmp
|
||||
do
|
||||
j=`echo ${i} | sed -e s/^.*\;//g -e s/\:.*//g`
|
||||
k=`echo ${i} | sed s/^.*\://g`
|
||||
if [ -z "`grep ${j} /proc/consoles`" ]; then
|
||||
if [ -z "${k}" ] || [ -z "`grep ${k} /proc/consoles`" ] || [ ! -e /dev/${j} ]; then
|
||||
sed -i -e /^.*${j}\ /d -e /^.*${j}$/d /etc/inittab
|
||||
fi
|
||||
fi
|
||||
done
|
||||
kill -HUP 1
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# USE_VT and SERIAL_CONSOLES are generally defined by the MACHINE .conf.
|
||||
# Set PACKAGE_ARCH appropriately.
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
@@ -89,4 +62,5 @@ CONFFILES:${PN} = "${sysconfdir}/inittab"
|
||||
USE_VT ?= "1"
|
||||
SYSVINIT_ENABLED_GETTYS ?= "1"
|
||||
|
||||
RDEPENDS:${PN} = "ttyrun"
|
||||
RCONFLICTS:${PN} = "busybox-inittab"
|
||||
|
||||
Reference in New Issue
Block a user