diff options
author | Andrea Adami <andrea.adami@gmail.com> | 2017-09-16 01:35:49 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-09-21 09:23:59 +0100 |
commit | 8b98302c30efb7073f61dc2a166f7414f050ef65 (patch) | |
tree | c07b787e4ea0b2db35dc0bdd2502589e283ee78b | |
parent | 2a4c65636821be48a8e585491bec40b5048be25d (diff) | |
download | openembedded-core-8b98302c30efb7073f61dc2a166f7414f050ef65.tar.gz openembedded-core-8b98302c30efb7073f61dc2a166f7414f050ef65.tar.bz2 openembedded-core-8b98302c30efb7073f61dc2a166f7414f050ef65.zip |
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"
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r-- | meta/recipes-core/sysvinit/sysvinit-inittab/start_getty | 16 |
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 @@ #################################################################################### # Get active serial filename. -active_serial=$(grep "serial" /proc/tty/drivers | grep -oh "^\s*\S*") +active_serial=$(grep "serial" /proc/tty/drivers | cut -d/ -f1 | sed "s/ *$//") # Re-phrase input parameter from ttyS target index (ttyS1, ttyS2, ttyAMA0, etc). runtime_tty=$(echo $2 | grep -oh '[0-9]') +# Backup $IFS. +DEFAULT_IFS=$IFS +# Customize Internal Field Separator. +IFS="$(printf '\n\t')" + for line in $active_serial; do # File is availability, file content current active serial target index. - if [ -e /proc/tty/driver/$line ] + if [ -e "/proc/tty/driver/$line" ] then # File content a lot of unknown serial. We use -v to remove all unmatch and get left off. # Tail use to avoid 1st line included into the filter because 1st line is file description. - activetty=$(grep -v "unknown" /proc/tty/driver/$line | tail -n +2 | grep -oh "^\s*\S*[0-9]") + activetty=$(grep -v "unknown" "/proc/tty/driver/$line" | tail -n +2 | grep -oh "^\s*\S*[0-9]") for active in $activetty; do # Check if both index is match then proceed to enable the serial console. - if [ $active -eq $runtime_tty ] + if [ $active -eq $runtime_tty ] then if [ -c /dev/$2 ] then @@ -33,3 +38,6 @@ for line in $active_serial; do done fi done + +# Restore $IFS. +IFS=$DEFAULT_IFS |