--- recepies/amt/serial-console.sh 2009/05/17 11:50:30 76 +++ recepies/amt/serial-console.sh 2009/05/18 08:26:23 87 @@ -4,6 +4,8 @@ ttyS=`dmesg | grep ttyS | grep 0xe | sed 's/^.*\(ttyS[0-9]\).*$/\1/'` +test -z "$ttyS" && echo "Can't find serial port in dmesg output" && exit + if ! grep ttyS1 /etc/inittab | grep -v ^# ; then echo "Am:2345:respawn:/sbin/getty $ttyS 115200 vt100-nav" >> /etc/inittab init q @@ -12,8 +14,21 @@ ps ax | grep $ttyS | grep -v grep grub=/boot/grub/menu.lst +tmp=/tmp/menu.lst if ! grep '^# kopt=' $grub | grep console= ; then - cat $grub | sed "s/^\(# kopt=.*\)$/\1 console=$ttyS,115200/" > $grub.serial - diff -urw $grub $grub.serial + cat $grub | sed "s/^\(# kopt=.*\)$/\1 console=$ttyS,115200/" > $tmp +else + cat $grub > $tmp +fi + + +if ! grep 'terminal *serial' $grub ; then + port=`dmesg | grep ttyS | grep 0xe | sed 's/^.*\(0xe[0-9a-f]*\).*$/\1/'` + echo "serial --port=$port --speed=115200" >> $tmp + echo "terminal serial" >> $tmp +fi + +if ! diff -urw $grub $tmp ; then + mv $tmp $grub && update-grub fi