wok-tiny view custom-console/receipt @ rev 181

x86test: add a patch for NMOS 8088
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Sep 20 13:53:13 2023 +0000 (7 months ago)
parents 07306c98c4d7
children
line source
1 # SliTaz package receipt.
3 PACKAGE="custom-console"
4 VERSION="2.0"
5 CATEGORY="meta"
6 GROUP="system"
7 SHORT_DESC="Configure the consoles"
8 MAINTAINER="pascal.bellard@slitaz.org"
9 LICENSE="BSD"
10 WEB_SITE="http://tiny.slitaz.org/"
11 DEPENDS="base-tiny"
12 SUGGESTED="module-usbserial module-serial"
13 CONFIG_FILES="/etc/init.d/tty.sh"
15 # Rules to gen a SliTaz package suitable for Tazpkg.
16 genpkg_rules()
17 {
18 mkdir -p $fs/etc/init.d
19 }
21 post_install()
22 {
23 respawn=respawn
24 [ "$ASKFIRST" ] && respawn=askfirst
25 [ "$KERNEL_TTY" = "none" ] ||
26 echo -n " console=tty0 console=$KERNEL_TTY,${SPEED_KERNEL_TTY}n8" \
27 >> $1/boot/cmdline
28 TTY_LIST=""
29 for i in $(seq 1 63); do
30 eval n=\$TTY$i
31 [ -n "$n" ] || continue
32 TTY_LIST="$TTY_LIST tty$i:38400"
33 done
34 for i in $(seq 0 3 | sed 's/^/TTYS/' ; seq 0 3 | sed 's/^/TTYUSB/'); do
35 eval n=\$$i
36 [ -n "$n" ] || continue
37 eval s=\$SPEED_$i
38 TTY_LIST="$TTY_LIST ${i/TTY/tty}:$s"
39 done
40 [ -s $1/etc/init.d/tty.sh ] || cat > $1/etc/init.d/tty.sh <<EOT
41 #!/bin/sh
43 . /etc/init.d/rc.functions
44 EOT
45 chmod +x $1/etc/init.d/tty.sh
46 cat >> $1/etc/init.d/tty.sh <<EOT
48 sed -i '/^tty/d' /etc/inittab
49 EOT
50 [ -n "$TTY_LIST" ] ||
51 echo 'echo -n "Disable login console"' >> $1/etc/init.d/tty.sh
52 [ -n "$TTY_LIST" ] && cat >> $1/etc/init.d/tty.sh <<EOT
53 echo -n "Enable login console from "
54 for i in$TTY_LIST; do
55 dev=\${i%:*}
56 major=4
57 minor=\$(echo \$dev | sed 's/[^0-9]*//')
58 case "\$dev" in
59 ttyUSB*) major=188 ;;
60 ttyS*) minor=\$((64+\$minor)) ;;
61 esac
62 [ -e /dev/\$dev ] || mknod /dev/\$dev c \$major \$minor
63 stty -F /dev/\$dev > /dev/null 2>&1 || continue
64 echo -n "\$dev "
65 echo "\$dev::$respawn:getty \${i#*:} /dev/\$dev" >> /etc/inittab
66 done
67 kill -1 1
68 status
69 EOT
70 grep tty.sh $1/etc/rcS.conf ||
71 sed -i 's/^RUN_SCRIPTS="/&tty.sh /' $1/etc/rcS.conf
72 }
74 config_form()
75 {
76 cat <<EOT
77 <hr />
78 Virtual consoles
79 <table>
80 EOT
81 for i in $(seq 1 63); do
82 [ $(($i & 7)) -eq 1 ] && echo "<tr>"
83 eval checked="\$TTY$i"
84 cat <<EOT
85 <td>
86 <input type="checkbox" name="TTY$i" ${checked:+checked=checked }/> tty$i
87 </td>
88 EOT
89 [ $(($i & 7)) -eq 0 ] && echo "</tr>"
90 done
91 cat <<EOT
92 <td></td>
93 </tr>
94 </table>
95 <p>
96 <input type="checkbox" name="ASKFIRST" ${ASKFIRST:+checked=checked }/>
97 Confirm console launch (spare some memory)
98 </p>
99 <hr />
100 Serial consoles
101 <table>
102 <tr>
103 EOT
104 for i in $(seq 0 3 | sed 's/^/TTYS/' ; seq 0 3 | sed 's/^/TTYUSB/'); do
105 eval checked="\$$i"
106 cat <<EOT
107 <td><input type="checkbox" name="$i" ${checked:+checked=checked }/> ${i/TTY/tty}
108 <select name="SPEED_$i">
109 EOT
110 eval speed="\$SPEED_$i"
111 for j in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do
112 selected=
113 case " ${speed:-9600} " in
114 *\ $j\ *) selected=" selected=\"selected\""
115 esac
116 echo " <option value=\"$j\"$selected>$j</option>"
117 done
118 echo "</select></td>"
119 [ "$i" = "TTYS3" ] && echo "</tr><tr>"
120 done
121 cat <<EOT
122 </tr>
123 </table>
124 </tr>
125 <p>
126 Kernel serial console
127 <select name="KERNEL_TTY">
128 <option>none</option>
129 EOT
130 for i in $(seq 0 3); do
131 echo -n "<option"
132 [ "$KERNEL_TTY" = "ttyS$i" ] && echo -n ' selected="selected"'
133 echo ">ttyS$i</option>"
134 done
135 cat <<EOT
136 </select>
137 <select name="SPEED_KERNEL_TTY" id="SPEED_KERNEL_TTY">
138 EOT
139 for i in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do
140 echo -n "<option"
141 [ "$SPEED_KERNEL_TTY" = "$i" ] && echo -n ' selected="selected"'
142 echo ">$i</option>"
143 done
144 echo -e "</select>\n</p>"
145 }
147 config_note()
148 {
149 cat <<EOT
150 <script type="text/javascript">
151 function update_form()
152 {
153 for (var i = 0; i < document.forms.length; i++) {
154 for (var j = 0; j < document.forms[i].elements.length; j++) {
155 var obj = document.forms[i].elements[j]
156 if (obj.name.startsWith("TTYS") || obj.name.startsWith("TTYUSB")) {
157 var speed = document.getElementsByName("SPEED_"+obj.name)[0]
158 speed.disabled = !obj.checked
159 }
160 if (obj.name == "KERNEL_TTY") {
161 var speed = document.getElementsByName("SPEED_"+obj.name)[0]
162 speed.disabled = (obj.value == "none")
163 }
164 }
165 }
166 }
167 update_form()
168 window.onchange = update_form
169 //-->
170 </script>
171 EOT
172 }