wok-tiny rev 108
custom-console: multiple consoles, up (2.0)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Feb 15 22:11:25 2016 +0100 (2016-02-15) |
parents | 93ea2d4c06f3 |
children | 0d8ef9102fc0 |
files | custom-console/receipt |
line diff
1.1 --- a/custom-console/receipt Tue Feb 09 10:08:12 2016 +0100 1.2 +++ b/custom-console/receipt Mon Feb 15 22:11:25 2016 +0100 1.3 @@ -1,44 +1,125 @@ 1.4 # SliTaz package receipt. 1.5 1.6 PACKAGE="custom-console" 1.7 -VERSION="1.0" 1.8 +VERSION="2.0" 1.9 CATEGORY="meta" 1.10 -SHORT_DESC="Configure a custom console" 1.11 +SHORT_DESC="Configure the consoles" 1.12 MAINTAINER="pascal.bellard@slitaz.org" 1.13 LICENSE="BSD" 1.14 WEB_SITE="http://tiny.slitaz.org/" 1.15 DEPENDS="base-tiny" 1.16 SUGGESTED="module-usbserial module-serial" 1.17 -CONFIG_FILES="/etc/inittab" 1.18 1.19 # Rules to gen a SliTaz package suitable for Tazpkg. 1.20 genpkg_rules() 1.21 { 1.22 - mkdir -p $fs/etc 1.23 + mkdir -p $fs/etc/init.d 1.24 } 1.25 1.26 post_install() 1.27 { 1.28 - sed -i '/^tty[2-9]::/d' $1/etc/inittab 1.29 - sed -i "s|^tty1:.*|$TTYS::respawn:/sbin/getty $SPEED $TTYS|" \ 1.30 - $1/etc/inittab 1.31 + [ "$KERNEL_TTY" == "none" ] || 1.32 + echo -n " console=tty0 console=$KERNEL_TTY,${SPEED_KERNEL_TTY}n8" \ 1.33 + >> $1/boot/cmdline 1.34 + TTY_LIST="" 1.35 + for i in $(seq 1 63); do 1.36 + eval n=\$TTY$i 1.37 + [ -n "$n" ] || continue 1.38 + TTY_LIST="$TTY_LIST tty$i:38400" 1.39 + done 1.40 + for i in $(seq 0 3 | sed 's/^/TTYS/' ; seq 0 3 | sed 's/^/TTYUSB/'); do 1.41 + eval n=\$$i 1.42 + [ -n "$n" ] || continue 1.43 + eval s=\$SPEED_$i 1.44 + TTY_LIST="$TTY_LIST ${i/TTY/tty}:$s" 1.45 + done 1.46 + [ -s $1/etc/init.d/tty.sh ] || cat > $1/etc/init.d/tty.sh <<EOT 1.47 +#!/bin/sh 1.48 + 1.49 +. /etc/init.d/rc.functions 1.50 +EOT 1.51 + chmod +x $1/etc/init.d/tty.sh 1.52 + cat >> $1/etc/init.d/tty.sh <<EOT 1.53 + 1.54 +sed -i '/^tty/d' /etc/inittab 1.55 +EOT 1.56 + [ -n "$TTY_LIST" ] || 1.57 + echo 'echo -n "Disable login console"' >> $1/etc/init.d/tty.sh 1.58 + [ -n "$TTY_LIST" ] && cat >> $1/etc/init.d/tty.sh <<EOT 1.59 +echo -n "Enable login console from " 1.60 +for i in$TTY_LIST; do 1.61 + [ -e /dev/\${i%:*} ] || continue 1.62 + case "\$i" in 1.63 + ttyS*) grep -q serial /proc/ioports || continue ;; 1.64 + esac 1.65 + echo -n "\${i%:*} " 1.66 + echo "\${i%:*}::respawn:/sbin/getty \${i#*:} \${i%:*}" >> /etc/inittab 1.67 +done 1.68 +kill -1 1 1.69 +status 1.70 +EOT 1.71 + grep tty.sh $1/etc/rcS.conf || 1.72 + sed -i 's/RUN_SCRIPTS="/&tty.sh /' $1/etc/rcS.conf 1.73 } 1.74 1.75 config_form() 1.76 { 1.77 - [ -n "$TTYS" ] || TTYS=ttyS0 1.78 - [ -n "$SPEED" ] || SPEED=38400 1.79 cat <<EOT 1.80 -You can launch a serial console (ttyS0, ttyS1 ... ttyUSB0 ...) 1.81 +<hr /> 1.82 +Virtual consoles 1.83 <table> 1.84 +EOT 1.85 + for i in $(seq 1 63); do 1.86 + [ $(($i & 7)) -eq 1 ] && echo "<tr>" 1.87 + cat <<EOT 1.88 +<td> 1.89 +<input type="checkbox" name="TTY$i" /> tty$i 1.90 +</td> 1.91 +EOT 1.92 + [ $(($i & 7)) -eq 0 ] && echo "</tr>" 1.93 + done 1.94 + cat <<EOT 1.95 +<td></td> 1.96 +</tr> 1.97 +</table> 1.98 +<hr /> 1.99 +Serial consoles 1.100 +<table> 1.101 +EOT 1.102 + for i in $(seq 0 3 | sed 's/^/TTYS/' ; seq 0 3 | sed 's/^/TTYUSB/'); do 1.103 + cat <<EOT 1.104 <tr> 1.105 -<td>Device</td> 1.106 -<td><input type="text" name="TTYS" value="$TTYS" /></td> 1.107 +<td><input type="checkbox" name="$i" /> ${i/TTY/tty} </td> 1.108 +EOT 1.109 + for j in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do 1.110 + [ $j -eq 4800 ] && cat <<EOT 1.111 </tr> 1.112 <tr> 1.113 -<td>Speed</td> 1.114 -<td><input type="text" name="SPEED" value="$SPEED" /></td> 1.115 +<td></td> 1.116 +EOT 1.117 + checked= 1.118 + [ $j -eq 9600 ] && checked="checked=checked " 1.119 + cat <<EOT 1.120 +<td><input type="checkbox" name="SPEED_$i[]" value="$j" $checked/> $j</td> 1.121 +EOT 1.122 + done 1.123 + done 1.124 + cat <<EOT 1.125 +</table> 1.126 </tr> 1.127 -</table> 1.128 +Kernel serial console 1.129 +<select name="KERNEL_TTY"> 1.130 +<option>none</option> 1.131 EOT 1.132 + for i in $(seq 0 3); do 1.133 + echo "<option>ttyS$i</option>" 1.134 + done 1.135 + cat <<EOT 1.136 +</select> 1.137 +<select name="SPEED_KERNEL_TTY"> 1.138 +EOT 1.139 + for i in 115200 57600 38400 19200 9600 4800 2400 1200 600 300; do 1.140 + echo "<option>$i</option>" 1.141 + done 1.142 + echo "</select>" 1.143 }