summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Adami <andrea.adami@gmail.com>2017-09-16 01:35:49 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-21 09:24:24 +0100
commitfbefc329886f1cbbc5c07378dcb15afdb83bec46 (patch)
tree3b140bcbd2891e49197b2872e9589728258c0595
parentcf166da446603f8a666f77b4c1d05b8c1c8f27a2 (diff)
downloadpoky-fbefc329886f1cbbc5c07378dcb15afdb83bec46.tar.gz
sysvinit-inittab: start_getty: consider whitespaces in tty driver name
Unbreak serial console when driver name contains spaces (PXA serial). Fix commit ac0e954 "start_getty: Over added SERIAL_CONSOLE cause error in userspace log" (From OE-Core rev: 8b98302c30efb7073f61dc2a166f7414f050ef65) Signed-off-by: Andrea Adami <andrea.adami@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab/start_getty16
1 files changed, 12 insertions, 4 deletions
diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
index 31b4413433..f0d9f8cbcf 100644
--- a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
+++ b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
@@ -8,21 +8,26 @@
8#################################################################################### 8####################################################################################
9 9
10# Get active serial filename. 10# Get active serial filename.
11active_serial=$(grep "serial" /proc/tty/drivers | grep -oh "^\s*\S*") 11active_serial=$(grep "serial" /proc/tty/drivers | cut -d/ -f1 | sed "s/ *$//")
12 12
13# Re-phrase input parameter from ttyS target index (ttyS1, ttyS2, ttyAMA0, etc). 13# Re-phrase input parameter from ttyS target index (ttyS1, ttyS2, ttyAMA0, etc).
14runtime_tty=$(echo $2 | grep -oh '[0-9]') 14runtime_tty=$(echo $2 | grep -oh '[0-9]')
15 15
16# Backup $IFS.
17DEFAULT_IFS=$IFS
18# Customize Internal Field Separator.
19IFS="$(printf '\n\t')"
20
16for line in $active_serial; do 21for line in $active_serial; do
17 # File is availability, file content current active serial target index. 22 # File is availability, file content current active serial target index.
18 if [ -e /proc/tty/driver/$line ] 23 if [ -e "/proc/tty/driver/$line" ]
19 then 24 then
20 # File content a lot of unknown serial. We use -v to remove all unmatch and get left off. 25 # File content a lot of unknown serial. We use -v to remove all unmatch and get left off.
21 # Tail use to avoid 1st line included into the filter because 1st line is file description. 26 # Tail use to avoid 1st line included into the filter because 1st line is file description.
22 activetty=$(grep -v "unknown" /proc/tty/driver/$line | tail -n +2 | grep -oh "^\s*\S*[0-9]") 27 activetty=$(grep -v "unknown" "/proc/tty/driver/$line" | tail -n +2 | grep -oh "^\s*\S*[0-9]")
23 for active in $activetty; do 28 for active in $activetty; do
24 # Check if both index is match then proceed to enable the serial console. 29 # Check if both index is match then proceed to enable the serial console.
25 if [ $active -eq $runtime_tty ] 30 if [ $active -eq $runtime_tty ]
26 then 31 then
27 if [ -c /dev/$2 ] 32 if [ -c /dev/$2 ]
28 then 33 then
@@ -33,3 +38,6 @@ for line in $active_serial; do
33 done 38 done
34 fi 39 fi
35done 40done
41
42# Restore $IFS.
43IFS=$DEFAULT_IFS