xref: /OK3568_Linux_fs/kernel/Documentation/s390/config3270.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# config3270 -- Autoconfigure /dev/3270/* and /etc/inittab
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun#       Usage:
6*4882a593Smuzhiyun#               config3270
7*4882a593Smuzhiyun#
8*4882a593Smuzhiyun#       Output:
9*4882a593Smuzhiyun#               /tmp/mkdev3270
10*4882a593Smuzhiyun#
11*4882a593Smuzhiyun#       Operation:
12*4882a593Smuzhiyun#               1. Run this script
13*4882a593Smuzhiyun#               2. Run the script it produces: /tmp/mkdev3270
14*4882a593Smuzhiyun#               3. Issue "telinit q" or reboot, as appropriate.
15*4882a593Smuzhiyun#
16*4882a593SmuzhiyunP=/proc/tty/driver/tty3270
17*4882a593SmuzhiyunROOT=
18*4882a593SmuzhiyunD=$ROOT/dev
19*4882a593SmuzhiyunSUBD=3270
20*4882a593SmuzhiyunTTY=$SUBD/tty
21*4882a593SmuzhiyunTUB=$SUBD/tub
22*4882a593SmuzhiyunSCR=$ROOT/tmp/mkdev3270
23*4882a593SmuzhiyunSCRTMP=$SCR.a
24*4882a593SmuzhiyunGETTYLINE=:2345:respawn:/sbin/mingetty
25*4882a593SmuzhiyunINITTAB=$ROOT/etc/inittab
26*4882a593SmuzhiyunNINITTAB=$ROOT/etc/NEWinittab
27*4882a593SmuzhiyunOINITTAB=$ROOT/etc/OLDinittab
28*4882a593SmuzhiyunADDNOTE=\\"# Additional mingettys for the 3270/tty* driver, tub3270 ---\\"
29*4882a593Smuzhiyun
30*4882a593Smuzhiyunif ! ls $P > /dev/null 2>&1; then
31*4882a593Smuzhiyun	modprobe tub3270 > /dev/null 2>&1
32*4882a593Smuzhiyunfi
33*4882a593Smuzhiyunls $P > /dev/null 2>&1 || exit 1
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun# Initialize two files, one for /dev/3270 commands and one
36*4882a593Smuzhiyun# to replace the /etc/inittab file (old one saved in OLDinittab)
37*4882a593Smuzhiyunecho "#!/bin/sh" > $SCR || exit 1
38*4882a593Smuzhiyunecho " " >> $SCR
39*4882a593Smuzhiyunecho "# Script built by /sbin/config3270" >> $SCR
40*4882a593Smuzhiyunif [ ! -d /dev/dasd ]; then
41*4882a593Smuzhiyun	echo rm -rf "$D/$SUBD/*" >> $SCR
42*4882a593Smuzhiyunfi
43*4882a593Smuzhiyunecho "grep -v $TTY $INITTAB > $NINITTAB" > $SCRTMP || exit 1
44*4882a593Smuzhiyunecho "echo $ADDNOTE >> $NINITTAB" >> $SCRTMP
45*4882a593Smuzhiyunif [ ! -d /dev/dasd ]; then
46*4882a593Smuzhiyun	echo mkdir -p $D/$SUBD >> $SCR
47*4882a593Smuzhiyunfi
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# Now query the tub3270 driver for 3270 device information
50*4882a593Smuzhiyun# and add appropriate mknod and mingetty lines to our files
51*4882a593Smuzhiyunecho what=config > $P
52*4882a593Smuzhiyunwhile read devno maj min;do
53*4882a593Smuzhiyun	if [ $min = 0 ]; then
54*4882a593Smuzhiyun		fsmaj=$maj
55*4882a593Smuzhiyun		if [ ! -d /dev/dasd ]; then
56*4882a593Smuzhiyun			echo mknod $D/$TUB c $fsmaj 0 >> $SCR
57*4882a593Smuzhiyun			echo chmod 666 $D/$TUB >> $SCR
58*4882a593Smuzhiyun		fi
59*4882a593Smuzhiyun	elif [ $maj = CONSOLE ]; then
60*4882a593Smuzhiyun		if [ ! -d /dev/dasd ]; then
61*4882a593Smuzhiyun			echo mknod $D/$TUB$devno c $fsmaj $min >> $SCR
62*4882a593Smuzhiyun		fi
63*4882a593Smuzhiyun	else
64*4882a593Smuzhiyun		if [ ! -d /dev/dasd ]; then
65*4882a593Smuzhiyun			echo mknod $D/$TTY$devno c $maj $min >>$SCR
66*4882a593Smuzhiyun			echo mknod $D/$TUB$devno c $fsmaj $min >> $SCR
67*4882a593Smuzhiyun		fi
68*4882a593Smuzhiyun		echo "echo t$min$GETTYLINE $TTY$devno >> $NINITTAB" >> $SCRTMP
69*4882a593Smuzhiyun	fi
70*4882a593Smuzhiyundone < $P
71*4882a593Smuzhiyun
72*4882a593Smuzhiyunecho mv $INITTAB $OINITTAB >> $SCRTMP || exit 1
73*4882a593Smuzhiyunecho mv $NINITTAB $INITTAB >> $SCRTMP
74*4882a593Smuzhiyuncat $SCRTMP >> $SCR
75*4882a593Smuzhiyunrm $SCRTMP
76*4882a593Smuzhiyunexit 0
77