wok-tiny annotate custom-console/receipt @ rev 177
Shrink custom-console configuration
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Aug 09 15:38:04 2023 +0000 (10 months ago) |
parents | 3de5e6325aab |
children | 2a1ec9d88ac0 |
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@177 | 94 <p> |
pascal@177 | 95 <input type="checkbox" name="ASKFIRST" ${ASKFIRST:+checked=checked }/> |
pascal@177 | 96 Confirm console launch (spare some memory) |
pascal@177 | 97 </p> |
pascal@108 | 98 <hr /> |
pascal@108 | 99 Serial consoles |
pascal@108 | 100 <table> |
pascal@177 | 101 <tr> |
pascal@108 | 102 EOT |
pascal@108 | 103 for i in $(seq 0 3 | sed 's/^/TTYS/' ; seq 0 3 | sed 's/^/TTYUSB/'); do |
pascal@126 | 104 eval checked="\$$i" |
pascal@108 | 105 cat <<EOT |
pascal@177 | 106 <td><input type="checkbox" name="$i" ${checked:+checked=checked }/> ${i/TTY/tty} |
pascal@177 | 107 <select name="SPEED_$i"> |
pascal@108 | 108 EOT |
pascal@126 | 109 eval speed="\$SPEED_$i" |
pascal@108 | 110 for j in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do |
pascal@177 | 111 selected= |
pascal@127 | 112 case " ${speed:-9600} " in |
pascal@177 | 113 *\ $j\ *) selected=" selected=\"selected\"" |
pascal@126 | 114 esac |
pascal@177 | 115 echo " <option value=\"$j\"$selected>$j</option>" |
pascal@108 | 116 done |
pascal@177 | 117 echo "</select></td>" |
pascal@177 | 118 [ "$i" = "TTYS3" ] && echo "</tr><tr>" |
pascal@108 | 119 done |
pascal@108 | 120 cat <<EOT |
pascal@177 | 121 </tr> |
pascal@108 | 122 </table> |
pascal@53 | 123 </tr> |
pascal@109 | 124 <p> |
pascal@108 | 125 Kernel serial console |
pascal@108 | 126 <select name="KERNEL_TTY"> |
pascal@108 | 127 <option>none</option> |
pascal@53 | 128 EOT |
pascal@108 | 129 for i in $(seq 0 3); do |
pascal@126 | 130 echo -n "<option" |
pascal@142 | 131 [ "$KERNEL_TTY" = "ttyS$i" ] && echo -n ' selected="selected"' |
pascal@126 | 132 echo ">ttyS$i</option>" |
pascal@108 | 133 done |
pascal@108 | 134 cat <<EOT |
pascal@108 | 135 </select> |
pascal@177 | 136 <select name="SPEED_KERNEL_TTY" id="SPEED_KERNEL_TTY"> |
pascal@108 | 137 EOT |
pascal@108 | 138 for i in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do |
pascal@126 | 139 echo -n "<option" |
pascal@142 | 140 [ "$SPEED_KERNEL_TTY" = "$i" ] && echo -n ' selected="selected"' |
pascal@126 | 141 echo ">$i</option>" |
pascal@108 | 142 done |
pascal@109 | 143 echo -e "</select>\n</p>" |
pascal@53 | 144 } |
pascal@177 | 145 |
pascal@177 | 146 config_note() |
pascal@177 | 147 { |
pascal@177 | 148 cat <<EOT |
pascal@177 | 149 <script type="text/javascript"> |
pascal@177 | 150 function update_form() |
pascal@177 | 151 { |
pascal@177 | 152 for (var i = 0; i < document.forms.length; i++) { |
pascal@177 | 153 for (var j = 0; j < document.forms[i].elements.length; j++) { |
pascal@177 | 154 var obj = document.forms[i].elements[j] |
pascal@177 | 155 if (obj.name.startsWith("TTYS") || obj.name.startsWith("TTYUSB")) { |
pascal@177 | 156 var speed = document.getElementsByName("SPEED_"+obj.name)[0] |
pascal@177 | 157 speed.disabled = !obj.checked |
pascal@177 | 158 } |
pascal@177 | 159 if (obj.name == "KERNEL_TTY") { |
pascal@177 | 160 var speed = document.getElementsByName("SPEED_"+obj.name)[0] |
pascal@177 | 161 speed.disabled = (obj.value == "none") |
pascal@177 | 162 } |
pascal@177 | 163 } |
pascal@177 | 164 } |
pascal@177 | 165 } |
pascal@177 | 166 update_form() |
pascal@177 | 167 window.onchange = update_form |
pascal@177 | 168 //--> |
pascal@177 | 169 </script> |
pascal@177 | 170 EOT |
pascal@177 | 171 } |