#!/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]') # Backup $IFS. DEFAULT_IFS=$IFS # Customize Internal Field Separator. 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 /sbin/getty -L $1 $2 $3 fi break fi done fi done # Restore $IFS. IFS=$DEFAULT_IFS