abort if getSystemID doesn't return valid id
[sysadmin-cookbook] / recepies / amt / serial-console.sh
1 #!/bin/sh -x
2
3 # add AMT serial console to inittab
4
5 ttyS=`dmesg | grep ttyS | grep 0xe | sed 's/^.*\(ttyS[0-9]\).*$/\1/'`
6
7 test -z "$ttyS" && echo "Can't find serial port in dmesg output" && exit
8
9 if ! grep ttyS1 /etc/inittab | grep -v ^# ; then
10         echo "Am:2345:respawn:/sbin/getty $ttyS 115200 vt100-nav" >> /etc/inittab
11         init q
12 fi
13
14 ps ax | grep $ttyS | grep -v grep
15
16 grub=/boot/grub/menu.lst
17 tmp=/tmp/menu.lst
18
19 if ! grep '^# kopt=' $grub | grep console= ; then
20         cat $grub | sed "s/^\(# kopt=.*\)$/\1 console=$ttyS,115200 console=tty0/" > $tmp
21 else
22         cat $grub > $tmp
23 fi
24
25
26 if ! grep 'terminal *serial' $grub ; then
27         port=`dmesg | grep ttyS | grep 0xe | sed 's/^.*\(0xe[0-9a-f]*\).*$/\1/'`
28         cat $tmp | sed "s/\(### BEGIN AUTOMAGIC KERNELS LIST\)/serial --port=$port --speed=115200\nterminal serial\n\n\1/" >> $tmp.serial && mv $tmp.serial $tmp || exit
29 fi
30
31 if ! diff -urw $grub $tmp ; then
32         mv $tmp $grub && update-grub
33 fi