| 1 |
#!/bin/sh |
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
PATH="/bin:/sbin:/usr/bin:/usr/sbin" |
|---|
| 10 |
export PATH |
|---|
| 11 |
|
|---|
| 12 |
XDIALOG_HIGH_DIALOG_COMPAT=1 |
|---|
| 13 |
export XDIALOG_HIGH_DIALOG_COMPAT |
|---|
| 14 |
|
|---|
| 15 |
[ "`id -u`" != "0" ] && exec sudo "$0" "$@" |
|---|
| 16 |
|
|---|
| 17 |
TMP="/tmp/wlconfig.tmp$$" |
|---|
| 18 |
OPTSFILE=/etc/pcmcia/wireless.opts |
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
bailout(){ |
|---|
| 22 |
rm -f "$TMP" |
|---|
| 23 |
exit $1 |
|---|
| 24 |
} |
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 |
writeline(){ |
|---|
| 28 |
OURLINE="" |
|---|
| 29 |
if [ -n "$NWID" ]; then |
|---|
| 30 |
iwconfig $WLDEV nwid "$NWID" |
|---|
| 31 |
OURLINE="$OURLINE NWID=\"$NWID\";" |
|---|
| 32 |
fi |
|---|
| 33 |
if [ -n "$MODE" ]; then |
|---|
| 34 |
iwconfig $WLDEV mode "$MODE" |
|---|
| 35 |
OURLINE="$OURLINE MODE=\"$MODE\";" |
|---|
| 36 |
fi |
|---|
| 37 |
if [ -n "$CHANNEL" ]; then |
|---|
| 38 |
iwconfig $WLDEV channel "$CHANNEL" |
|---|
| 39 |
OURLINE="$OURLINE CHANNEL=\"$CHANNEL\";" |
|---|
| 40 |
fi |
|---|
| 41 |
if [ -n "$FREQ" ]; then |
|---|
| 42 |
iwconfig $WLDEV freq "$FREQ" |
|---|
| 43 |
OURLINE="$OURLINE FREQ=\"$FREQ\";" |
|---|
| 44 |
fi |
|---|
| 45 |
if [ -n "$KEY" ]; then |
|---|
| 46 |
iwconfig $WLDEV key "$KEY" |
|---|
| 47 |
OURLINE="$OURLINE KEY=\"$KEY\";" |
|---|
| 48 |
fi |
|---|
| 49 |
if [ -n "$IWCONFIG" ]; then |
|---|
| 50 |
iwconfig $WLDEV $IWCONFIG |
|---|
| 51 |
OURLINE="$OURLINE IWCONFIG=\"$IWCONFIG\";" |
|---|
| 52 |
fi |
|---|
| 53 |
if [ -n "$IWSPY" ]; then |
|---|
| 54 |
iwspy $WLDEV $IWSPY |
|---|
| 55 |
OURLINE="$OURLINE IWSPY=\"$IWSPY\";" |
|---|
| 56 |
fi |
|---|
| 57 |
if [ -n "$IWPRIV" ]; then |
|---|
| 58 |
iwpriv $WLDEV $IWPRIV |
|---|
| 59 |
OURLINE="$OURLINE IWPRIV=\"$IWPRIV\";" |
|---|
| 60 |
fi |
|---|
| 61 |
|
|---|
| 62 |
if [ -n "$ESSID" ]; then |
|---|
| 63 |
iwconfig $WLDEV essid "$ESSID" |
|---|
| 64 |
OURLINE="ESSID=\"$ESSID\"; $OURLINE" |
|---|
| 65 |
fi |
|---|
| 66 |
OURLINE="*,*,*,"$HWADDR") "$OURLINE" ;;" |
|---|
| 67 |
echo $OURLINE >> $OPTSFILE |
|---|
| 68 |
} |
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 |
DIALOG="dialog" |
|---|
| 72 |
[ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog" |
|---|
| 73 |
|
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n |
|---|
| 77 |
|
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 |
case "$LANGUAGE" in |
|---|
| 81 |
de|at|ch) |
|---|
| 82 |
MESSAGE0="Keine Wireless-Netzwerkkarte gefunden." |
|---|
| 83 |
MESSAGE1="Konfiguration der Wireless-Parameter von" |
|---|
| 84 |
MESSAGE2="Bitte Wireless-Netzwerkkarte auswählen" |
|---|
| 85 |
MESSAGE3="Bitte konfigurieren Sie vorher die IP-Parameter der Karte !" |
|---|
| 86 |
MESSAGE4="Geben Sie die ESSID für" |
|---|
| 87 |
MESSAGE5="ein\n\n\n(leer für 'any', nicht zu empfehlen !!)\n" |
|---|
| 88 |
MESSAGE6="Geben Sie ggf. die NWID (Cell Identifier)\nfür" |
|---|
| 89 |
MESSAGE7="ein, falls es eine gibt\n\n\n" |
|---|
| 90 |
MESSAGE8="Geben Sie den Modus für" |
|---|
| 91 |
MESSAGE9="ein\n\n(Managed(=default), Ad-Hoc, Master,\nRepeater, Secondary, auto)\n" |
|---|
| 92 |
MESSAGE10="Geben Sie den Kanal für" |
|---|
| 93 |
MESSAGE11="ein\n\n(0 bis 16, leer für auto oder Frequenz-\neingabe im nächsten Fenster)\n" |
|---|
| 94 |
MESSAGE12="Geben Sie die Frequenz für" |
|---|
| 95 |
MESSAGE13="ein\n\n(z.B. 2.412G, leer für auto)" |
|---|
| 96 |
MESSAGE14="Geben Sie den Verschlüsselungs-Key\nfür" |
|---|
| 97 |
MESSAGE15="ein\n\n(leer für Klartext, nicht zu empfehlen !!)" |
|---|
| 98 |
MESSAGE16="Geben Sie ggf. zusätzliche Parameter für\n'iwconfig" |
|---|
| 99 |
MESSAGE17="' ein, z.B.\n\n\nsens -80 rts 512 frag 512 rate 5.5M" |
|---|
| 100 |
MESSAGE18="Geben Sie ggf. zusätzliche Parameter für\n'iwspy" |
|---|
| 101 |
MESSAGE19="' ein\n\n\n" |
|---|
| 102 |
MESSAGE20="Geben Sie ggf. zusätzliche Parameter für\n'iwpriv" |
|---|
| 103 |
MESSAGE21="' ein\n\n\n" |
|---|
| 104 |
NWC="Netzwerkkarte_" |
|---|
| 105 |
;; |
|---|
| 106 |
es) |
|---|
| 107 |
MESSAGE0="No se ha encontrado una tarjeta inalámbrica." |
|---|
| 108 |
MESSAGE1="Configuración de los parámetros inalámbricos para" |
|---|
| 109 |
MESSAGE2="Por favor, seleccione un dispositivo de red inalámbrico" |
|---|
| 110 |
MESSAGE3="Por favor, configure primero los parámetros de la IP para la interfaz" |
|---|
| 111 |
MESSAGE4="Teclee el ESSID para" |
|---|
| 112 |
MESSAGE5="\n\n\n(vacío para 'cualquiera', ¡no recomendado!)\n" |
|---|
| 113 |
MESSAGE6="Teclee el NWID (identificador de celda)\npara" |
|---|
| 114 |
MESSAGE7=", si es necesario\n\n\n" |
|---|
| 115 |
MESSAGE8="Teclee el modo para" |
|---|
| 116 |
MESSAGE9="\n\n(Managed(=por_defecto), Ad-Hoc, Master,\nRepeater, Secondary, auto)\n" |
|---|
| 117 |
MESSAGE10="Teclee el número del canal para" |
|---|
| 118 |
MESSAGE11="\n\n(0 bis 16, vacío para auto o si lo prefiere\n teclee la frecuencia seguidamente)\n" |
|---|
| 119 |
MESSAGE12="Teclee la frecuencia para" |
|---|
| 120 |
MESSAGE13="\n\n(ej. 2.412G, vacío para auto)" |
|---|
| 121 |
MESSAGE14="Teclee la clave de encriptación\npara" |
|---|
| 122 |
MESSAGE15="\n\n(vacío para texto plano, ¡¡no recomendado!!)" |
|---|
| 123 |
MESSAGE16="Teclee los parámetros adicionales para\n'iwconfig" |
|---|
| 124 |
MESSAGE17="' Si es necesario, ej.\n\n\nsens -80 rts 512 frag 512 rate 5.5M" |
|---|
| 125 |
MESSAGE18="Teclee los parámetros adicionales para\n'iwspy" |
|---|
| 126 |
MESSAGE19="' si es necesario\n\n\n" |
|---|
| 127 |
MESSAGE20="Teclee los parámetros adicionales para\n'iwpriv" |
|---|
| 128 |
MESSAGE21="' si es necesario\n\n\n" |
|---|
| 129 |
NWC="tarjeta_de_red_" |
|---|
| 130 |
;; |
|---|
| 131 |
*) |
|---|
| 132 |
MESSAGE0="No wireless network card found." |
|---|
| 133 |
MESSAGE1="Configuration of wireless parameters for" |
|---|
| 134 |
MESSAGE2="Please select wireless network device" |
|---|
| 135 |
MESSAGE3="Please configure IP parameters of the interface first" |
|---|
| 136 |
MESSAGE4="Enter the ESSID for" |
|---|
| 137 |
MESSAGE5="\n\n\n(empty for 'any', not recommended !)\n" |
|---|
| 138 |
MESSAGE6="Enter the NWID (cell identifier)\nfor" |
|---|
| 139 |
MESSAGE7=", if needed\n\n\n" |
|---|
| 140 |
MESSAGE8="Enter the mode for" |
|---|
| 141 |
MESSAGE9="\n\n(Managed(=default), Ad-Hoc, Master,\nRepeater, Secondary, auto)\n" |
|---|
| 142 |
MESSAGE10="Enter channel number for" |
|---|
| 143 |
MESSAGE11="\n\n(0 bis 16, empty for auto or if you want to\n enter the frequency next)\n" |
|---|
| 144 |
MESSAGE12="Enter the frequency for" |
|---|
| 145 |
MESSAGE13="\n\n(e.g 2.412G, empty for auto)" |
|---|
| 146 |
MESSAGE14="Enter the encryption key\nfor" |
|---|
| 147 |
MESSAGE15="\n\n(empty for cleartext, not recommended !!)" |
|---|
| 148 |
MESSAGE16="Enter additional parameters for\n'iwconfig" |
|---|
| 149 |
MESSAGE17="' if needed, e.g.\n\n\nsens -80 rts 512 frag 512 rate 5.5M" |
|---|
| 150 |
MESSAGE18="Enter additional parameters for\n'iwspy" |
|---|
| 151 |
MESSAGE19="' if needed\n\n\n" |
|---|
| 152 |
MESSAGE20="Enter additional parameters for\n'iwpriv" |
|---|
| 153 |
MESSAGE21="' if needed\n\n\n" |
|---|
| 154 |
NWC="network_card_" |
|---|
| 155 |
;; |
|---|
| 156 |
esac |
|---|
| 157 |
|
|---|
| 158 |
|
|---|
| 159 |
|
|---|
| 160 |
WLDEVICES=`grep -v "|" /proc/net/wireless | awk -F: '{print $1}'` |
|---|
| 161 |
|
|---|
| 162 |
if [ -z "$WLDEVICES" ]; then |
|---|
| 163 |
$DIALOG --msgbox "$MESSAGE0" 10 50 |
|---|
| 164 |
bailout |
|---|
| 165 |
fi |
|---|
| 166 |
|
|---|
| 167 |
|
|---|
| 168 |
|
|---|
| 169 |
|
|---|
| 170 |
SECOND=`echo $WLDEVICES | awk '{print $2}'` |
|---|
| 171 |
if [ -n "$1" ]; then |
|---|
| 172 |
SECOND="" |
|---|
| 173 |
WLDEVICES="$1" |
|---|
| 174 |
fi |
|---|
| 175 |
if [ -z "$SECOND" ]; then |
|---|
| 176 |
|
|---|
| 177 |
WLDEV=`echo $WLDEVICES | awk '{print $1}'` |
|---|
| 178 |
$DIALOG --msgbox "$MESSAGE1 $WLDEV" 10 50 |
|---|
| 179 |
else |
|---|
| 180 |
DEVICELIST="" |
|---|
| 181 |
for DEVICE in $WLDEVICES; do |
|---|
| 182 |
NUMBER="${DEVICE##eth}" |
|---|
| 183 |
NUMBER="${NUMBER##wlan}" |
|---|
| 184 |
DEVICELIST="$DEVICELIST ${DEVICE} $NWC${NUMBER}"; done |
|---|
| 185 |
$DIALOG --menu "$MESSAGE2" 18 45 12 $DEVICELIST 2>"$TMP" || bailout |
|---|
| 186 |
read WLDEV <"$TMP" ; rm -f "$TMP" |
|---|
| 187 |
fi |
|---|
| 188 |
|
|---|
| 189 |
|
|---|
| 190 |
|
|---|
| 191 |
HWADDR=`/sbin/ifconfig $WLDEV 2>/dev/null | head -1 | awk '{print $NF}'` |
|---|
| 192 |
if [ -z "$HWADDR" ]; then |
|---|
| 193 |
$DIALOG --msgbox "$MESSAGE3" 10 50 |
|---|
| 194 |
bailout |
|---|
| 195 |
fi |
|---|
| 196 |
|
|---|
| 197 |
|
|---|
| 198 |
|
|---|
| 199 |
ESSID=""; NWID=""; MODE=""; CHANNEL=""; FREQ=""; SENS=""; RATE=""; KEY=""; RTS=""; FRAG="" |
|---|
| 200 |
IWCONFIG=""; IWSPY=""; IWPRIV="" |
|---|
| 201 |
MAGIC=`grep "MaGiC nUmBeR" $OPTSFILE` |
|---|
| 202 |
if [ -z "$MAGIC" ]; then |
|---|
| 203 |
|
|---|
| 204 |
OUR="NO" |
|---|
| 205 |
else |
|---|
| 206 |
|
|---|
| 207 |
OUR="YES" |
|---|
| 208 |
OURLINE=`grep $HWADDR $OPTSFILE | awk -F")" '{print substr($2, 1, length($2) -3)}'` |
|---|
| 209 |
[ -n "$OURLINE" ] && eval "$OURLINE" |
|---|
| 210 |
fi |
|---|
| 211 |
|
|---|
| 212 |
|
|---|
| 213 |
|
|---|
| 214 |
|
|---|
| 215 |
$DIALOG --inputbox "$MESSAGE4 $WLDEV $MESSAGE5" 15 50 "$ESSID" 2>"$TMP" || bailout 1 |
|---|
| 216 |
read ESSID <"$TMP" ; rm -f "$TMP" |
|---|
| 217 |
[ -z "$ESSID" ] && ESSID="any" |
|---|
| 218 |
|
|---|
| 219 |
$DIALOG --inputbox "$MESSAGE6 $WLDEV $MESSAGE7" 15 50 "$NWID" 2>"$TMP" || bailout 1 |
|---|
| 220 |
read NWID <"$TMP" ; rm -f "$TMP" |
|---|
| 221 |
|
|---|
| 222 |
$DIALOG --inputbox "$MESSAGE8 $WLDEV $MESSAGE9" 15 50 "$MODE" 2>"$TMP" || bailout 1 |
|---|
| 223 |
read MODE <"$TMP" ; rm -f "$TMP" |
|---|
| 224 |
|
|---|
| 225 |
$DIALOG --inputbox "$MESSAGE10 $WLDEV $MESSAGE11" 15 50 "$CHANNEL" 2>"$TMP" || bailout 1 |
|---|
| 226 |
read CHANNEL <"$TMP" ; rm -f "$TMP" |
|---|
| 227 |
|
|---|
| 228 |
if [ -z $CHANNEL ]; then |
|---|
| 229 |
$DIALOG --inputbox "$MESSAGE12 $WLDEV $MESSAGE13" 15 50 "$FREQ" 2>"$TMP" || bailout 1 |
|---|
| 230 |
read FREQ <"$TMP" ; rm -f "$TMP" |
|---|
| 231 |
fi |
|---|
| 232 |
|
|---|
| 233 |
$DIALOG --inputbox "$MESSAGE14 $WLDEV $MESSAGE15" 15 50 "$KEY" 2>"$TMP" || bailout 1 |
|---|
| 234 |
read KEY <"$TMP" ; rm -f "$TMP" |
|---|
| 235 |
|
|---|
| 236 |
$DIALOG --inputbox "$MESSAGE16 $WLDEV$MESSAGE17" 15 50 "$IWCONFIG" 2>"$TMP" || bailout 1 |
|---|
| 237 |
read IWCONFIG <"$TMP" ; rm -f "$TMP" |
|---|
| 238 |
|
|---|
| 239 |
$DIALOG --inputbox "$MESSAGE18 $WLDEV$MESSAGE19" 15 50 "$IWSPY" 2>"$TMP" || bailout 1 |
|---|
| 240 |
read IWSPY <"$TMP" ; rm -f "$TMP" |
|---|
| 241 |
|
|---|
| 242 |
$DIALOG --inputbox "$MESSAGE20 $WLDEV$MESSAGE21" 15 50 "$IWPRIV" 2>"$TMP" || bailout 1 |
|---|
| 243 |
read IWPRIV <"$TMP" ; rm -f "$TMP" |
|---|
| 244 |
|
|---|
| 245 |
set -x |
|---|
| 246 |
|
|---|
| 247 |
|
|---|
| 248 |
|
|---|
| 249 |
if [ "$OUR" = "NO" ]; then |
|---|
| 250 |
rm $OPTSFILE |
|---|
| 251 |
echo "# Wireless LAN adapter configuration file /etc/pcmcia/wireless.opts" > $OPTSFILE |
|---|
| 252 |
echo "# written by wlcardconfig (C) Eckhard Rüggeberg" >> $OPTSFILE |
|---|
| 253 |
echo "# Sorry for the clumsy syntax, but I have to have everything in one" >> $OPTSFILE |
|---|
| 254 |
echo "# line for every card. This is a MaGiC nUmBeR." >> $OPTSFILE |
|---|
| 255 |
echo "# For the original file see in /KNOPPIX/etc/pcmcia/" >> $OPTSFILE |
|---|
| 256 |
echo "" >> $OPTSFILE |
|---|
| 257 |
echo 'case "$ADDRESS" in' >> $OPTSFILE |
|---|
| 258 |
writeline |
|---|
| 259 |
echo "esac" >> $OPTSFILE |
|---|
| 260 |
else |
|---|
| 261 |
|
|---|
| 262 |
mv $OPTSFILE $OPTSFILE.old |
|---|
| 263 |
echo "# Wireless LAN adapter configuration file /etc/pcmcia/wireless.opts" > $OPTSFILE |
|---|
| 264 |
echo "# written by wlcardconfig (C) Eckhard Rüggeberg" >> $OPTSFILE |
|---|
| 265 |
echo "# Sorry for the clumsy syntax, but I have to have everything in one" >> $OPTSFILE |
|---|
| 266 |
echo "# line for every card. This is a MaGiC nUmBeR." >> $OPTSFILE |
|---|
| 267 |
echo "# For the original file see in /KNOPPIX/etc/pcmcia/" >> $OPTSFILE |
|---|
| 268 |
echo "" >> $OPTSFILE |
|---|
| 269 |
echo 'case "$ADDRESS" in' >> $OPTSFILE |
|---|
| 270 |
writeline |
|---|
| 271 |
grep ";;" $OPTSFILE.old | grep -v $HWADDR 2>/dev/null >> $OPTSFILE |
|---|
| 272 |
echo "esac" >> $OPTSFILE |
|---|
| 273 |
fi |
|---|