#!/bin/sh #################################################################################### # This script is use to automatic start serial console once power up. # Script enhancement has been done base on Bug YOCTO 10844. # Configuration can be done in meta/conf/machine/*.conf variable SERIAL_CONSOLES. # Most of the information is retrieve from /proc virtual filesystem which # contain 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/ *$//") # 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" ] 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]") for active in $activetty; do # Check if both index is match then proceed to enable the serial console. if [ $active -eq $runtime_tty ] then if [ -c /dev/$2 ] then /sbin/getty -L $1 $2 $3 fi break fi done fi done # Restore $IFS. IFS=$DEFAULT_IFS