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