wok-tiny annotate custom-console/receipt @ rev 171

memtest: tune lzma compression (again)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri May 07 16:58:07 2021 +0000 (2021-05-07)
parents 34a749493ee3
children 07306c98c4d7
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@53 13
pascal@53 14 # Rules to gen a SliTaz package suitable for Tazpkg.
pascal@53 15 genpkg_rules()
pascal@53 16 {
pascal@108 17 mkdir -p $fs/etc/init.d
pascal@53 18 }
pascal@53 19
pascal@53 20 post_install()
pascal@53 21 {
pascal@109 22 respawn=respawn
pascal@109 23 [ "$ASKFIRST" ] && respawn=askfirst
pascal@142 24 [ "$KERNEL_TTY" = "none" ] ||
pascal@108 25 echo -n " console=tty0 console=$KERNEL_TTY,${SPEED_KERNEL_TTY}n8" \
pascal@108 26 >> $1/boot/cmdline
pascal@108 27 TTY_LIST=""
pascal@108 28 for i in $(seq 1 63); do
pascal@108 29 eval n=\$TTY$i
pascal@108 30 [ -n "$n" ] || continue
pascal@108 31 TTY_LIST="$TTY_LIST tty$i:38400"
pascal@108 32 done
pascal@108 33 for i in $(seq 0 3 | sed 's/^/TTYS/' ; seq 0 3 | sed 's/^/TTYUSB/'); do
pascal@108 34 eval n=\$$i
pascal@108 35 [ -n "$n" ] || continue
pascal@108 36 eval s=\$SPEED_$i
pascal@108 37 TTY_LIST="$TTY_LIST ${i/TTY/tty}:$s"
pascal@108 38 done
pascal@108 39 [ -s $1/etc/init.d/tty.sh ] || cat > $1/etc/init.d/tty.sh <<EOT
pascal@108 40 #!/bin/sh
pascal@108 41
pascal@108 42 . /etc/init.d/rc.functions
pascal@108 43 EOT
pascal@108 44 chmod +x $1/etc/init.d/tty.sh
pascal@108 45 cat >> $1/etc/init.d/tty.sh <<EOT
pascal@108 46
pascal@108 47 sed -i '/^tty/d' /etc/inittab
pascal@108 48 EOT
pascal@108 49 [ -n "$TTY_LIST" ] ||
pascal@108 50 echo 'echo -n "Disable login console"' >> $1/etc/init.d/tty.sh
pascal@108 51 [ -n "$TTY_LIST" ] && cat >> $1/etc/init.d/tty.sh <<EOT
pascal@108 52 echo -n "Enable login console from "
pascal@108 53 for i in$TTY_LIST; do
pascal@109 54 dev=\${i%:*}
pascal@109 55 major=4
pascal@109 56 minor=\$(echo \$dev | sed 's/[^0-9]*//')
pascal@109 57 case "\$dev" in
pascal@109 58 ttyUSB*) major=188 ;;
pascal@109 59 ttyS*) minor=\$((64+\$minor)) ;;
pascal@108 60 esac
pascal@109 61 [ -e /dev/\$dev ] || mknod /dev/\$dev c \$major \$minor
pascal@109 62 stty -F /dev/\$dev > /dev/null 2>&1 || continue
pascal@109 63 echo -n "\$dev "
pascal@109 64 echo "\$dev::$respawn:getty \${i#*:} /dev/\$dev" >> /etc/inittab
pascal@108 65 done
pascal@108 66 kill -1 1
pascal@108 67 status
pascal@108 68 EOT
pascal@108 69 grep tty.sh $1/etc/rcS.conf ||
pascal@109 70 sed -i 's/^RUN_SCRIPTS="/&tty.sh /' $1/etc/rcS.conf
pascal@53 71 }
pascal@53 72
pascal@53 73 config_form()
pascal@53 74 {
pascal@53 75 cat <<EOT
pascal@108 76 <hr />
pascal@108 77 Virtual consoles
pascal@53 78 <table>
pascal@108 79 EOT
pascal@108 80 for i in $(seq 1 63); do
pascal@108 81 [ $(($i & 7)) -eq 1 ] && echo "<tr>"
pascal@126 82 eval checked="\$TTY$i"
pascal@108 83 cat <<EOT
pascal@108 84 <td>
pascal@126 85 <input type="checkbox" name="TTY$i" ${checked:+checked=checked }/> tty$i
pascal@108 86 </td>
pascal@108 87 EOT
pascal@108 88 [ $(($i & 7)) -eq 0 ] && echo "</tr>"
pascal@108 89 done
pascal@108 90 cat <<EOT
pascal@108 91 <td></td>
pascal@108 92 </tr>
pascal@108 93 </table>
pascal@108 94 <hr />
pascal@108 95 Serial consoles
pascal@108 96 <table>
pascal@108 97 EOT
pascal@108 98 for i in $(seq 0 3 | sed 's/^/TTYS/' ; seq 0 3 | sed 's/^/TTYUSB/'); do
pascal@126 99 eval checked="\$$i"
pascal@108 100 cat <<EOT
pascal@53 101 <tr>
pascal@126 102 <td><input type="checkbox" name="$i" ${checked:+checked=checked }/> ${i/TTY/tty} </td>
pascal@108 103 EOT
pascal@126 104 eval speed="\$SPEED_$i"
pascal@108 105 for j in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do
pascal@108 106 [ $j -eq 4800 ] && cat <<EOT
pascal@53 107 </tr>
pascal@53 108 <tr>
pascal@108 109 <td></td>
pascal@108 110 EOT
pascal@108 111 checked=
pascal@127 112 case " ${speed:-9600} " in
pascal@126 113 *\ $j\ *) checked="checked=checked "
pascal@126 114 esac
pascal@108 115 cat <<EOT
pascal@108 116 <td><input type="checkbox" name="SPEED_$i[]" value="$j" $checked/> $j</td>
pascal@108 117 EOT
pascal@108 118 done
pascal@108 119 done
pascal@108 120 cat <<EOT
pascal@108 121 </table>
pascal@53 122 </tr>
pascal@109 123 <p>
pascal@126 124 <input type="checkbox" name="ASKFIRST" ${ASKFIRST:+checked=checked }/>
pascal@109 125 Confirm console launch (spare some memory)
pascal@109 126 </p>
pascal@109 127 <p>
pascal@108 128 Kernel serial console
pascal@108 129 <select name="KERNEL_TTY">
pascal@108 130 <option>none</option>
pascal@53 131 EOT
pascal@108 132 for i in $(seq 0 3); do
pascal@126 133 echo -n "<option"
pascal@142 134 [ "$KERNEL_TTY" = "ttyS$i" ] && echo -n ' selected="selected"'
pascal@126 135 echo ">ttyS$i</option>"
pascal@108 136 done
pascal@108 137 cat <<EOT
pascal@108 138 </select>
pascal@108 139 <select name="SPEED_KERNEL_TTY">
pascal@108 140 EOT
pascal@108 141 for i in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do
pascal@126 142 echo -n "<option"
pascal@142 143 [ "$SPEED_KERNEL_TTY" = "$i" ] && echo -n ' selected="selected"'
pascal@126 144 echo ">$i</option>"
pascal@108 145 done
pascal@109 146 echo -e "</select>\n</p>"
pascal@53 147 }