ubuntuusers.de

Herstellung der WLAN Verbindung dauert sehr lange, dann keine Probleme mehr. MSI M670

Status: Gelöst | Ubuntu-Version: Xubuntu 11.10 (Oneiric Ocelot)
Antworten |

Beerholm

Anmeldungsdatum:
22. Februar 2012

Beiträge: Zähle...

Hallo zusammen,

seit ich Xubuntu nutze, habe ich einige Probleme mit dem WLAN. Bis die Verbindung hergestellt wurde, kann es unterschiedlich lange dauern, manchmal „nur“ 2 Minuten, im schlimmsten Fall habe ich nach 10 oder 15 Minuten immer noch keine Verbindung. Das Signal des Netzwerks wird schon direkt nach dem Hochfahren erkannt (Signalstärke meist 2 von 4). Ich bilde mir ein, dass es die Verbindungsherstellung beschleunigt, wenn ich das Funknetzwerk deaktiviere und danach wieder aktiviere. Vielleicht stimmt das aber auch nicht. Wenn ich dann verbunden bin, läuft alles normal, wobei ich den Eindruck habe, dass die Geschwindigkeit unter winXP ein wenig höher war (stört mich nicht sonderlich). Das große Problem ist, dass ich oft sehr lange warten muss, was unter winXP nie der Fall war (Verbindung war immer beim Hochfahren schon hergestellt). Ich wohne in einem Wohnheim und kann nichts an den Routern oder am WLAN selbst einstellen. Mitbewohner, die Windows nutzen, haben dieses Problem nicht.

MSI Notebook M670 (schon etwas alt)

Network controller: Ralink corp. RT2561/RT61 rev B 802.11 g

unter Netzwerkverbindungen, allgemein:

Treiber: rt61pci

Sicherheit: WEP

Ich habe keine Ahnung, welche von den vielen Terminal-Befehlen ich hier angeben soll, denn es ist ja nicht so, dass das Internet überhaupt nicht funktioniert. Bei Tipps bitte sehr ausführliche Beschreibungen, bin noch wenig vertraut mit Linux.

Herzlichen Dank!!!

praseodym Team-Icon

Supporter
Avatar von praseodym

Anmeldungsdatum:
9. Februar 2009

Beiträge: 22105

Wohnort: ~

Hallo und willkommen bei uu.de.

Poste alle Terminal-Ausgaben aus diesem Thread in Codeblöcken zur "Diagnose".

Gruss

praseodym

Beerholm

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 4

So ich habe alles in eine Datei kopiert...

WLAN-Problem im Wohnheim

Bearbeitet von "Elektronenblitz63":

Syntax. Verwende bitte Codeblöcke für die Terminalausgaben damit alles gut lesbar ist oder verwende unseren Paste-Service. Ich habe das mal für dich gemacht. Siehe dazu auch Forum/Syntax. Anhang gelöscht.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
gib die MAC-Adresse (BSSID) des empfangsstärksten Zugangspunktes (AP) mit im Konfigurationsprofil an.

Das wäre momentan Cell 5:

Cell 05 - Address: 00:21:91:1D:7F:0C
          Channel:6
          Frequency:2.437 GHz (Channel 6)
          Quality=52/70  Signal level=-58 dBm  
          Encryption key:on
          ESSID:"FHHMA"

Verbindungen bearbeiten:

gksu nm-connection-editor

Der Manager hat ansonsten ein Problem mit mehreren gleichnamigen Netzen im Empfangsbereich.

Beerholm

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 4

Ok, ich habe also diese Adresse: 00:21:91:1D:7F:0C bei den Einstellungenen im Reiter "Funknetzwerk" bei "BSSID" eingetragen. Danach gespeichert, Neustart.

Nach 12 Minuten keine Verbindung. Nochmal Neustart, dann nach 8 Minuten Verbindung hergestellt. Das scheint es noch nicht gewesen zu sein, ist nach wie vor sehr unbefriedigend...

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Ein Neustart des Systems ist nicht erforderlich, was soll das bei einer einfachen Konfigurationsänderung auch bringen?

Ist der genannte AP vom Empfang her jetzt immer noch optimal?

Genauere Informationen stehen wieder im Log

dmesg | grep wlan0
egrep -i 'net|wlan|reason|firm' /var/log/syslog

WLAN Verbindungsskript

(zur besseren Diagnose bei Verbindungsproblemen)

Das Skript ermöglicht eine manuelle Verbindungsaufnahme zu einem WLAN-Accesspoint/WLAN-Router. Der Network-Manager und auch Wicd werden automatisch gesteuert und müssen nicht manuell deaktiviert werden. Je nach Bedarf kann WEP- oder WPA1/2-Verschlüsselung gewählt werden. Verschiedene Debug-Modi mit direkter Bildschirmausgabe oder über eine Protokolldatei zur besseren Fehlerdiagnose sind möglich.

Skript anlegen

Datei über Terminal anlegen und ausführbar machen:

touch WLAN_con.sh
chmod +x WLAN_con.sh 

Mit einem Editor öffnen. Unter KDE, Xubuntu bzw. Lubuntu wird ein anderer Editor verwendet. Siehe Wikilink!

gedit WLAN_con.sh 

Folgenden Inhalt einfügen und abspeichern:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
#!/bin/bash
## WLAN Verbindungsskript
## elektronenblitz63 ubuntuusers.de 2012
## published under GPL v3
##
## Version 1.0.4.2 vom 31. Januar 2014
## komplette Überarbeitung
##
## statische IP-Konfiguration in Kombination mit -d möglich
## Fehler bei Option -d behoben
## Ausgaben verbessert
##
## Version 1.0.3.4 vom 29. Juli 2012
## Prüfung auf laufenden Wicd-Manager
## verbesserte Reaktivierung der Dienste bei -stop
## bekannte, bereits automatisch erfasste Konfiguration starten / Startoption -a
## Pingtest am Ende der Konfiguration
## div. kleinere Anpassungen / Code verbessert
##
## Version 1.0.3.3 vom 26. Juli 2012
## Fehler bei Option -Aw behoben
##
## Version 1.0.3.2 vom 09. Juli 2012
## automatische Konfiguration hinzugefügt
## nach Ende des Debug-Modus (Startoption -f) kann der Network-Manager direkt aktiviert werden
##
## Version 1.0.2.3 vom 05. Juli 2012
## Zugangsschlüssel (PSK/WEP-Key) werden bei der Ausgabe nicht mehr öffentlich angezeigt
## Konfiguration wpa_supplicant im Deklarationsblock
##
## Version 1.0.2.2 vom 26. Februar 2012
## Debug-Modus verbessert. Kleinere Fehler beseitigt.
##
## Skript
##
## freie Variablen
##

## Ethernet-Schnittstelle (LAN-Interface)
laniface="eth0"

## Schnittstellenkonfiguration WLAN-Interface
wlaniface="wlan0"

## Konfiguration der Accesspoints
#
## Accesspoint Konfiguration
## bei manueller Konfiguration oder WEP-verschlüsselung anpassen!
# SSID (Name) des WLAN Accesspoints eintragen
# Beispiel:
# ssid="Easy-Box-123456"
ssid=""

# MAC-Adresse des WLAN Accesspoints eintragen
## bei manueller Konfiguration oder WEP-verschlüsselung anpassen!
# Beispiel:
# mac="00:15:0E:31:7A:1A"
mac=""

## statische Konfiguration für das WLAN-Interface (Optional)
## Startoption -s
address="192.168.178.6"
netmask="255.255.255.0"
broadcast="192.168.178.255"
gateway="192.168.178.1"

# Einstellungen zur Verschlüsselung (WPA1 und/oder WPA2)
# die Vorgabe deckt im Normalfall alle Konfigurationsmöglichkeiten ab
# Konfiguration wpa-supplicant
proto="WPA RSN"
key_mgmt="WPA-PSK"
pairwise="TKIP CCMP"
group="TKIP CCMP"

## Konfiguration wpa_supplicant
# Einstellungen müssen in der Regel nicht angepasst werden
configfile=wpa_supplicant.tmp
ctrliface="ctrl_interface=/var/run/wpa_supplicant"
eapolv="eapol_version=1"
apscan="ap_scan=1"

# Treiber für wpa_supplicant
wpadriver="wext"

## DHCP-Client
dhcpclient="dhclient"

## manuelle DNS (drei DNS Einträge, 1xDomain und 1xSearch sind möglich) - Startoption -D
# Beispiel:
# dns="nameserver 192.168.178.1 nameserver 192.168.178.1 nameserver 192.168.178.1 domain fritz.box search fritz.box"
dns="nameserver 8.8.4.4 nameserver 8.8.8.8 nameserver 213.73.91.35" 

## Pause bevor eine IP-Adresse angefordert wird
## diese Zeit in Sek. bleibt wpa_supplicant für den Verbindungsaufbau
connectsleep=15

## Pause in Sekunden für Konfigurationsparameter
## Vorgabewert 2
configdelay=2

## Desktop
# (x/l)ubuntu=1
# kubuntu=0
ubuntu=1

## verwendetes Terminalprogramm
# kde > konsole
# xfce > mousepad oder xterm
# gnome > gnome-terminal oder xterm
term=xterm

## Terminaloptionen
## hier größe des Fensters für die Scanergebnisse
termoptions="-geometry 70x50"

## hier größe des Fensters für den Debugmodus
termoptions1="-geometry 130x50"

## verwendeter Editor
# Standard nano
editor=nano
# Option „Datei nur lesen"
editoptions="-v"

## Konfiguration Debugmodus
# Dauer des Verbindungsversuchs in Sekunden
debugtime=45

# Protokolldatei
debugfile="WLAN_con_debug.txt"

# Dateien für die aut. Konfiguration
scanoutfile="WLAN_con_Scan_Output.txt"
keyfile="WLAN_con_keyfile.txt"

# Konfiguration Pingtest
localeping="/bin/ping"
pingcount=1
desta="ubuntuusers.de"
destb="213.95.41.11"
destc="google.com"

# Path to rfkill / Options
rfkill=/usr/sbin/rfkill
wlandevice=wifi

## Ende freie Variablen

## Startoptionen
D=0
H=0
d=0
w=0
f=0
s=0
knownconf=0
autoconf=1

clear

echo "Gewählte Optionen:"

while getopts ":hDdwfFas" OPTION ; do
 case $OPTION in
  D) echo "D - manueller DNS"; D=1 knownconf=1 autoconf=0;;
  d) echo "d - WPA-Supplicant im Debug-Modus"; d=1 f=0 knownconf=1 autoconf=0;;
  f) echo "f - WPA-Supplicant im Debug-Modus, Protokolldatei wird angelegt"; f=1 d=0 knownconf=1 autoconf=0;;
  w) echo "w - WEP-Verschlüsselung aktiviert"; w=1 autoconf=0;;
  a) echo "a - gespeicherte Konfiguration verwenden"; knownconf=1 autoconf=0;;
  s) echo "s - statische Konfiguration der WLAN-Schnittstelle"; s=1 knownconf=1 autoconf=0;;
  h) echo "h - Hilfe angefordert"; H=1;;
 esac
  done

if [ "$H" = "1" ]; then
echo Verwendung: WLAN_con.sh [-start] [-restart] [-stop] [-h] [-D] [-d] [-f] [-w]
echo Syntax:
echo "./WLAN_con.sh startet mit Standardparametern, wie [-start]"
echo "./WLAN_con.sh -start -w startet mit Standardparametern und verwendet WEP-Verschlüsselung"
echo "./WLAN_con.sh -restart erneuert die Verbindung über DHCP"
echo "./WLAN_con.sh -d startet im Debug-Modus. Informationen zum Verbindungsaufbau werden in einem Terminalfenster angezeigt."
echo "./WLAN_con.sh -ds startet im Debug-Modus. Statische Schnittstellenkonfiguration."
echo "./WLAN_con.sh -ads startet im Debug-Modus mit bekannter WLAN-Konfiguration. Statische Schnittstellenkonfiguration."
echo "./WLAN_con.sh -f startet im Debug-Modus. Informationen zum Verbindungsaufbau werden in einer Datei gespeichert."
echo "./WLAN_con.sh -restart -D erneuert die Verbindung über DHCP, verwendet manuelle DNS"
echo "./WLAN_con.sh startet mit automatischer Konfiguration. WLAN Umgebung wird gescannt, Zugangskennwort wird abgefragt. (Standard)"
echo "./WLAN_con.sh -a startet die bereits erfasste Konfiguration."
echo "sudo ./WLAN_con.sh -stop beendet die WLAN-Verbindung"
echo "Ende"
 exit
fi

# ungültige Kombination / Startoption -w

if [ "$w" = "1" ]; then
echo -e "\nBei WEP-Verschlüsselung müssen die SSID und die MAC-Adresse manuell in das Skript eingetragen werden!"

if [ "$autoconf" = "1" ]; then
 autoconf=0
  echo "WEP-Verschlüsselung in Kombination mit einer automatischen Konfiguration ist nicht möglich!"
 echo "Automatische Konfiguration deaktiviert."
fi

if [ "$knownconf" = "1" ]; then
 knownconf=0
  echo "WEP-Verschlüsselung in Kombination mit einer automatischen Konfiguration, Startoption -a, ist nicht möglich!"
   echo "Automatische Konfiguration deaktiviert."
 fi
fi

if [ "$s" = "1" ]; then
 echo -e "\ns - statischen Konfiguration nur in Kombination mit -a und -d möglich, Optionen zusätzlich aktiviert"
  echo "a - startet die bereits erfasste und gespeicherte Konfiguration (aut. erneute Abfrage falls erforderlich)"
   echo "d - WPA-Supplicant im Debug-Modus"
knownconf=1  
d=1 
fi

## be root if not
test `id -u` -eq 0 || exec sudo "$0" "$@"

echo -e "\nstarte gewählte Konfiguration ..."
 input=""

# WLAN aktivieren
$rfkill unblock $wlandevice

# Powermanagement deaktivieren
/sbin/iwconfig $wlaniface power off

if [ "$1" != "-start" ]; then
echo -e "\nstoppe alle Dienste, und Verbindungen ..."

# Wicd Check
wicdrun=$(ps aux | grep -o [w]icd-daemon)
 if [ "$wicdrun" = "wicd-daemon" ]; then
   echo "aktiven" $wicdrun "gefunden!"
    service wicd stop

echo -e "Nach einem\033[0;0;36m ./WLAN_con.sh -stop\033[0;0m wird das Skript versuchen den Dienst neu zu starten."
 echo -e "Alternativ kann der Manager kann nach Abschluß der Tests durch ein\033[0;0;36m sudo service wicd start\033[0;0m manuell reaktiviert werden."
  echo
   fi

defgw=$(route -n | grep UG | awk {'print $2'})
 echo "lösche vorhandene Route "$defgw

 /sbin/route del default gw $defgw $wlaniface
  echo '' | tee /etc/resolv.conf
   killall wpa_supplicant
    sleep $configdelay
     /sbin/ifconfig $wlaniface down
      sleep $configdelay
       /sbin/ifconfig $laniface down

## Restart Network-Manager - beende WLAN-Verbindung
if [ "$1" = "-stop" ]; then
 echo -e "\nVersuche die ursprüngliche Konfiguration wiederherzustellen ..."
  echo "reaktiviere Network-Manager."
   sleep $configdelay
    service network-manager start
     service network-manager restart
      killall $editor

# Wicd Check
wicdrun=$(ps aux | grep -o [w]icd-client)
 if [ "$wicdrun" = "wicd-client" ]; then
  service wicd start
fi

echo "WLAN Konfiguration beendet."
 exit
 fi
fi

# Konfiguration
ip link set $laniface down
 ip route del

service network-manager stop
 sleep 1
  killall wpa_supplicant
   killall $dhcpclient
    sleep $configdelay
     /sbin/ifconfig $wlaniface down
      sleep $configdelay
       /sbin/ifconfig $wlaniface up
        sleep $configdelay
         killall $editor
echo

# bekannte Konfiguration starten / Startoption -a
if [ "$knownconf" = "1" ]; then

# Default-Cell auslesen
input=$(grep Default_Cell $(pwd)/$scanoutfile | awk {'print $2'})

 if [ "$input" = "" ]; then
  autoconf=1
   echo -e "Konfiguration unvollständig, Accesspoint/Gateway noch nicht ausgewählt. Starte Abfrage ...\n"
 fi
fi

# aut. Konfiguration
if [ "$autoconf" = "1" ]; then

# Dateicheck / WLAN Scan
filecheck=$(find $(pwd)/$scanoutfile)

if [ "$filecheck" = "" ]; then
 echo -e "\nScanne die WLAN-Umgebung. Einen Moment bitte ..."
  iwlist $wlaniface  scan | egrep 'Cell|ESSID' > $(pwd)/$scanoutfile
   echo "Scan abgeschlossen. Ergebnisse wurden in" $(pwd)/$scanoutfile "abgelegt."

else
 echo "Scannergebnisse wurden bereits erfasst! Vorgang wiederholen? [j|n]"
  read input

   if [ "$input" = "n" ]; then
    echo "Verwende gespeicherte Scanergebnisse."

else
 echo -e "\nScanne die WLAN-Umgebung. Einen Moment bitte ..."
  iwlist $wlaniface  scan | egrep 'Cell|ESSID' > $(pwd)/$scanoutfile
   echo "Scan abgeschlossen. Ergebnisse wurden in" $(pwd)/$scanoutfile "abgelegt."
fi
 fi

outputcheck=$(cat $(pwd)/$scanoutfile)
 if [ "$outputcheck" = "" ]; then
  echo -e "\nAnscheinend wurden keine WLAN-Netze in der Umgebung erkannt!"
   echo "starte das Skript neu um erneut zu Scannen, oder"
    echo "trage die SSID und MAC-Adresse des WLAN-Accesspoints manuell in das Skript ein, oder"
     echo "beende den Vorgang uns stelle die Systemeinstellungen mit ./WLAN_con.sh -stop wieder her."
      exit 0
fi

# Einträgeg der Default-Konfiguration entfernen
sed -i "/Standard Access-Point/d" $(pwd)/$scanoutfile
 sed -i "/Default_Cell=/d" $(pwd)/$scanoutfile
  sed -i "/Default_SSID=/d" $(pwd)/$scanoutfile
   sed -i "/Default_MAC=/d" $(pwd)/$scanoutfile 

# Scanergebnisse anzeigen
if [ "$ubuntu" = "1" ]; then
 /usr/bin/$term $termoptions -e "$editor $editoptions $(pwd)/$scanoutfile" &> /dev/null & 
  else
   /usr/bin/$term $termoptions -e "$editor $editoptions $(pwd)/$scanoutfile" &> /dev/null & 
fi

# Netz auswählen
maxcell=$(grep Cell $(pwd)/$scanoutfile | awk {'print $2'})

echo -e "\nWLAN-Netze gefunden ..."
 echo -e "Folgende Funkzellen (Cell) \033[0;0;33m"$maxcell"\033[0;0m können ausgewählt werden."
  echo "Mit welchem der gefundenen WLAN-Netze (Cell) soll eine Verbindung hergestellt werden?"
   echo "Eingabe mit führender Null wie angezeigt!"
    read input
  echo -e "\nStandard Access-Point:\nDefault_Cell=" $input >> $(pwd)/$scanoutfile

# MAC-Adresse auslesen
mac=$(egrep "Cell $input" $scanoutfile | awk {'print $5'})

# SSID filtern

if [ "$input" -lt "10" ]; then
 checkinput=$(echo $input | cut -c2-3)
 fi

if [ "$checkinput" != "0" ]; then
   checkinput=$(($checkinput - 1))
 fi

if [ "$checkinput" -lt "0" ]; then
   checkinput=$(($input - 1))
 fi

deletelines="1,"$checkinput

if [ "$input" = "01" ]; then
 deletelines="2"
 fi

ssid=$(egrep -m $input "ESSID" $(pwd)/$scanoutfile | cut -c27-70 | tr -d '"' | sed -e "$deletelines"'d')
 echo "Default_SSID= $ssid" >> $(pwd)/$scanoutfile 
  echo "Default_MAC= $mac" >> $(pwd)/$scanoutfile 
   input=""

# Infozeile
echo -e "\nVersuche eine Verbindung mit \033[0;0;33m$ssid\033[0;0m / \033[0;0;33m$mac\033[0;0m herzustellen."
fi

# WEP-Verschlüsselung verwenden / Startoption -w
if [ "$w" = "1" ]; then
 echo -e "\nVerwende WEP-Verschlüsselung"

echo -e "\nSuche gespeicherten Zugangsschlüssel."
 wkey=$(grep WEP-Key= $(pwd)/$keyfile | awk {'print $2'})

if [ "$wkey" != "" ]; then
 echo -e "WEP-Key \033[0;0;33m$wkey\033[0;0m gefunden. Vorhandenen Schlüssel verwenden [j|n]?"
  read input
fi

if [ "$input" = "j" ]; then
 echo "verwende bereits erfassten WEP-Key"
else

# WEP-Zugangsschlüssel erfassen
# alten Eintrag für WEP-Key entfernen
sed -i "/WEP-Key=/d" $(pwd)/$keyfile
 echo -e "\nNeuen WEP-Zugangsschlüssel erfassen (hex-Code) => ENTER"
  read wkey
   echo "WEP-Key= $wkey" >> $(pwd)/$keyfile
  fi
 fi

# WPA/2-Verschlüsselung verwenden
echo -e "\nVerwende WPA1/2-Verschlüsselung"

echo -e "\nSuche gespeicherten Zugangsschlüssel PSK."
 psk=$(grep PSK= $(pwd)/$keyfile | awk {'print $2'})

# PSK auslesen
if [ "$psk" != "" ]; then
 echo -e "PSK gefunden. Vorhandenen Schlüssel verwenden [j|n]?"
  read input
fi

if [ "$input" = "j" ]; then
 echo "Verwende gespeicherten PSK Zugangsschlüssel."
else

# PSK erfassen
# alten Eintrag für PSK entfernen
sed -i "/PSK=/d" $(pwd)/$keyfile
 echo "Pre-Shared-Key erfassen (WPA/WPA2 Zugangsschlüssel) - Verdeckte Eingabe => Enter:"
  read -ers psk
   echo "PSK= $psk" >> $(pwd)/$keyfile
 fi

# Plausibilitätsprüfung WEP-Schlüssel
if [ "$w" = "1" ]; then
keycheck=$(echo $wkey | egrep -o [A-Fa-f0-9])
 keycheck=$(echo $keycheck | tr -d " ")
  keylenght=$(expr length $keycheck | egrep -wo '10|26')
   keylenght=$[keylenght +1]

if [ $keycheck != $wkey ]; then
 echo "Unzulässige Zeichen im WEP-Schlüssel. [a-f] [A-F] [0-9] (hex-Code) sind erlaubt"
  exit
 elif [ $keylenght = 1 ]; then
  echo "Länge des gewählten WEP-Schlüssels fehlerhaft, 10 Zeichen (64bit) oder 26 Zeichen (128bit) sind erlaubt"
   exit
fi
 fi

# Konfiguration auslesen
if [ "$knownconf" = "1" ]; then
 echo "Verwende bekannte Konfiguration."
  ssid=$(grep "Default_SSID=" $scanoutfile | awk {'print $2'})
   mac=$(grep "Default_MAC=" $scanoutfile | awk {'print $2'})
fi

if [ "$ssid" = "" ]; then
 echo "Netzwerk-SSID nicht definiert, beende Programmablauf."
exit 0

if [ "$mac" = "" ]; then
 echo "MAC-Adresse des Accesspoint (BSSID) nicht definiert, beende Programmablauf."
  exit 0
fi
 fi

## WLAN-Verbindung vorbereiten
# WPA/WPA2-Verschlüsselung
if [ "$w" = "0" ]; then
 echo -e "\nLege temporäre Konfigurationsdatei $configfile an ..."
  echo -e "\nVerwendete Konfiguration:\n"

 echo $ctrliface | tee $configfile
  echo $eapolv | tee -a $configfile
   echo $apscan | tee -a $configfile
    echo 'network={' | tee -a $configfile
     echo ssid='"'$ssid'"' | tee -a $configfile
      echo bssid=$mac | tee -a $configfile
       echo proto=$proto | tee -a $configfile
        echo key_mgmt=$key_mgmt | tee -a $configfile
         echo pairwise=$pairwise | tee -a $configfile
          echo group=$group | tee -a $configfile
           echo "psk=**********"
            echo psk='"'$psk'"' >> $configfile
             echo '}' | tee -a $configfile

# WEP-Verschlüsselung
else
 echo -e "WEP-Verschlüsselung gewählt. Übernehme manuell eingetragene Konfigurationdaten.\n"
  echo -e "\nVersuche eine Verbindung mit \033[0;0;33m" $ssid"\033[0;0m / \033[0;0;33m"$mac"\033[0;0m herzustellen.\n"
   echo $ctrliface | tee $configfile
    echo 'network={' | tee -a $configfile
     echo ssid='"'$ssid'"' | tee -a $configfile
      echo bssid=$mac | tee -a $configfile
       echo "key_mgmt=NONE" | tee -a $configfile
        echo wep_key0="$wkey" >> $configfile
         echo wep_key="**********" 
          echo wep_tx_keyidx=0 | tee -a $configfile
           echo '}' | tee -a $configfile
fi

echo
 echo -e "Starte WLAN-Verbindungsaufbau ...\n"

# Debug-Modus / Protokollierung
if [ "$f" = "1" ]; then
 echo -e "protokolliere Verbindungsvorgang für "$debugtime" Sekunden, bitte warten ...\n"
  /usr/bin/$term -e "/sbin/wpa_supplicant -i $wlaniface -D $wpadriver -c $configfile -d > $debugfile" &> /dev/null &
   sleep $debugtime
    killall wpa_supplicant
  echo -e "Protokollierung beendet. Informationen wurden in "$(pwd)/$debugfile" abgelegt.\n"

echo "Soll der Network-Manager wieder aktiviert werden? [j|n]"
 read answer

if [ "$answer" = "j" ]; then
 echo -e "\nStarte Network-Manager ..."
  service network-manager start
fi

 echo "Beende Skript."
  exit 0
fi

# Debug-Modus / ohne Protokollierung
if [ "$d" = "1" ]; then
 /usr/bin/$term -e "/sbin/wpa_supplicant -i $wlaniface -D $wpadriver -c $configfile -d" &> /dev/null &
  echo "Warte auf Verbindung, einen Moment bitte ..."
   sleep $connectsleep

# aut. Konfiguration (DHCP)
if [ "$s" = "0" ]; then
 echo -e "\nautomatische Konfiguraton der WLAN-Schnittstelle über DHCP"
  echo -e "\nFordere IP-Adresse an ...\n"
   /sbin/dhclient -4 $wlaniface
fi

# statische Konfiguration
if [ "$s" = "1" ]; then
 echo -e "\nStatische Konfiguraton der WLAN-Schnittstelle ..."
  /sbin/ifconfig $wlaniface $address broadcast $broadcast netmask $netmask
   /sbin/route add default gw $gateway $wlaniface
   
# DNS-Einträge erzeugen
if [ "$D" = "0" ]; then
  echo '# erzeugt durch WLAN_con.sh / statische Konfiguration' | tee /etc/resolv.conf
   echo "nameserver" $gateway | tee -a /etc/resolv.conf
fi
 fi
  fi

# Daemon-Modus
if [ "$d" = "0" ]; then
 /sbin/wpa_supplicant -i $wlaniface -D $wpadriver -c $configfile -B
  echo -e "Warte auf Verbindung ($connectsleep Sekunden), einen Moment bitte ...\n"
    sleep $connectsleep
     echo -e "Fordere IP-Adresse an ...\n"
      /sbin/dhclient $wlaniface
        sleep $configdelay
fi

# manuelle DNS - Startoption -D
if [ "$D" = "1" ]; then
echo
 echo "setze manuelle DNS, überschreibe /etc/resolv.conf"
  echo '# erzeugt durch WLAN_con.sh' | tee /etc/resolv.conf
   echo $dns | awk {'print $1,$2'} | tee -a /etc/resolv.conf
    echo $dns | awk {'print $3,$4'} | tee -a /etc/resolv.conf
     echo $dns | awk {'print $5,$6'} | tee -a /etc/resolv.conf 
      echo $dns | awk {'print $7,$8'} | tee -a /etc/resolv.conf
       echo $dns | awk {'print $9,$10'} | tee -a /etc/resolv.conf
 sleep $configdelay
fi

# Ausgabe der Konfiguration. Einstellungen der Schnittstellen,
# Routingtabelle und DNS anzeigen

echo "aktuelle Konfiguration ..."
 echo -e "\nSystemkonfiguration: /etc/resolv.conf\n"
  /bin/cat /etc/resolv.conf
   echo
    /sbin/route -n

echo -e "\nKonfiguration WLAN:"
 /sbin/ifconfig $wlaniface | egrep 'Link|inet Adresse'
  echo
   /sbin/iwconfig $wlaniface

# ping über das WLAN-Interface
echo "Pingtest:"
 $localeping -c $pingcount -I $wlaniface $(route -n | grep UG | awk {'print $2'})
  $localeping -c $pingcount -I $wlaniface $desta
   $localeping -c $pingcount -I $wlaniface $destb
    $localeping -c $pingcount -I $wlaniface $destc
   
echo -e "\n\033[0;0;36mKonfiguration beendet. Einstellungen überprüfen, Datenübertragung und Internetzugang testen!\033[0;0;0m"
 exit 0

manuelle Grundeinstellungen

Im Bereich zwischen ...

## freie Variablen
...
## Ende freie Variablen

... können verschiedene Parameter eingestellt werden.

  • die Schnittstellenbezeichnungen für das Ethernet- und WLAN-Interface überprüfen. eth0 und wlan0 sind Voreinstellung

  • bei WEP-Verschlüsselung der WEP-Zugangsschlüssel

    • der Schlüssel muss in hexadezimalem Code angegeben werden. Das Skript prüft die Plausibilität (Länge und Zeichen) des Schlüssels

  • die IP-Adresse der WLAN-Schnittstelle bei statischer Konfiguration

Nachfolgende Einstellungen sind nicht erforderlich (automatische Konfiguration)!

  • die SSID - der Name des Netzes (hier im Beispiel FHHMA)

  • die MAC-Adresse des Routers (hier im Beispiel 00:21:91:1D:7F:0C)

Wird Xu-,Lu- oder Kubuntu verwendet, so muss das Konsolenprogramm und ein Parameter für die Desktopversion ggf. manuell gesetzt werden.

# Desktop
# (x/l)ubuntu=1
# kubuntu=0
ubuntu=0
...
## verwendetes Terminalprogramm
# kde > konsole
# xfce > mousepad oder xterm
# gnome > gnome-terminal oder xterm
term=konsole

aut. Konfiguration

Standardmäßig wird eine automatische Konfiguration durchgeführt. Eine Startoption ist nicht erforderlich. Nur die Angaben zur verwendeten Schnittstelle sollten kontrolliert und bei Bedarf angepasst werden. Das Skript scannt die WLAN-Umgebung und bietet eine Auswahl der erkannten WLAN-Netze in der Umgebung an.

Danach wird der Zugangsschlüssel (PSK) abgefragt. Die Eingabe erfolgt verdeckt und ohne Bilschirmecho, so wie bei der Eingabe des Systemkennworts!

Die Einstellungen werden nun gespeichert und müssen im Regelfall nur einmalig vorgenommen werden. Bei erneutem Start des Skripts werden die zuvor erfassten Einstellungen ausgelesen.

gespeicherte Konfiguration

Startoption -a
Wurde das Skript bereits einmal ausgeführt, kann die so erfasste und gespeicherte Konfiguration dann mit Option -a erneut ausgeführt werden. Ein Scan der WLAN-Umgebung, die manuelle Auswahl des Netzwerks und die Abfrage des Zugangskennworts (PSK) ist dann nicht erforderlich. Die benötigten Informationen werden aus den zuvor gespeicherten Konfigurationsdateien ausgelesen.

statische Schnittstellenkonfiguration

Startoption -s
Die WLAN-Schnittstelle wird statisch konfiguriert. Die IP-Adresse, Netzmaske, Broadcast-Adresse und Gateway sind im Skript bei Bedarf entsprechen anzupassen. Eine statische Konfiguration ist nur in Kombination mit dem Debug-Modus (Startoption -d) möglich. Dies wird geprüft und ggf. aut. aktiviert.

Einschränkungen

  • Ist die SSID, also der Name des AP unsichtbar (SSID Broadcast off), muss eine manuelle Konfiguration verwendet werden.

    • Eine unsichtbare SSID stellt jedoch keine zusätzliche Sicherheitsoption dar.

  • WEP-Verschlüsselung kann in diesem Fall ebenfalls nicht verwendet werden.

Verschlüsselung

Das Skript unterstützt gemischte WPA1/2-Verschlüsselung und erkennt aut. reine WPA1- oder WPA2-Verschlüsselung. WPA2-AES (CCMP) ist die z.Z. sicherste Variante. Der Router sollte entsprechend eingestellt sein.

  • das Skript muss mit Option -w gestartet werden soll WEP Verschlüsselung verwendet werden

    • WEP-Verschlüsselung ist veraltet und sollte nicht oder nur in bestimmten Ausnahmefällen verwendet werden

  • soll WPA- bzw. WPA2-Verschlüsselung verwendet werden, darf die Startoption -w nicht gesetzt werden

  • bei Bedarf kann die Konfiguration für den Supplicanten auch angepasst werden. Erläuterungen dazu in WLAN/wpa supplicant

  • nur bestimmte Zeichen sind im Zugangsschlüssel (PSK) erlaubt

Fehlererkennung

Startoption -d (Diagnose-Modus mit Verbindungsversuch)

  • optional kann bei Verbindungsproblemen auch mit Startoption -d gestartet werden um den Supplicanten im Diagnose-Modus aufzurufen

    • dann werden weitere Informationem zum Verbindungsversuch in einem extra Terminalfester angezeigt

    • es wird versucht eine vollständige Verbindung aufzubauen und eine IP-Adresse anzufordern

    • gedacht für erfahrene Benutzer

Startoption -f (Debug-Modus mit eingeschränktem Verbindungsversuch)

  • mit Startoption -f werden die Informationen zum Verbindungsversuch in einer Protokolldatei abgelegt

  • eine IP-Adresse wird nicht angefordert (reiner Debug-Modus zur Fehlerdiagnose).

  • die Protokolldatei kann bei Bedarf anschießend kopiert und zur genaueren Diagnose über unseren Paste-Service hochgeladen werden, oder ...

  • manuell kontrolliert, oder ...

  • über das weiter unten beschriebene Diagnoseskript ausgewertet werden

Manuelle DNS

(optional)

Startoption -D setzt die voreingestellten manuellen DNS

  • drei DNS und

  • zwei Sucheinträge können konfiguriert werden

  • drei freie DNS sind vorkonfiguriert

Hilfe

Startoption -h gibt nur eine kurze Hilfe zum Skript aus und beendet dann den Programmablauf.

Skript starten und beenden

./WLAN_con.sh                # das gewünschte WLAN-Netz und das zugehörige Zugangskennwort (PSK) werden erfasst und gespeichert
./WLAN_con.sh -a             # zuvor gespeicherte Daten werden verwendet
./WLAN_con.sh -stop          # beendet die Verbindung und das Skript, reaktiviert den Network-Manager 

Falls das Skript hängt oder vergeblich auf die Zuweisung eine IP-Adresse wartet, kann der Ablauf einfach mit Strg + C beendet werden.

Skript starten

./WLAN_con.sh                 # normaler Start mit WPA/WPA2-Verschlüsselung ohne Debug-Modi (automatische Konfiguration)
./WLAN_con.sh -af             # gespeicherte Konfiguration laden und Debug-Modus (es wird keine vollständige Verbindung hergestellt)
./WLAN_con.sh -ad             # gespeicherte Konfiguration laden und Diagnose-Modus
./WLAN_con.sh -ads            # Debug-Modus mit bekannter WLAN-Konfiguration. Statische Schnittstellenkonfiguration."
./WLAN_con.sh -wd             # Start mit WEP-Verschlüsselung und Diagnose-Modus
./WLAN_con.sh -stop           # beendet die Verbindung und das Skript, reaktiviert den Network-Manager 

Mögliche Startoptionen/Kombinationen:

./WLAN_con.sh [-start] [-restart] [-stop] [-d] [-D] [-h] [-f] [-w] [-A] [-a] [-s]
./WLAN_con.sh -start         # automatische Konfiguration / Erfassung der verfügbaren Netzwerke / Abfragen des Zugangsschlüssels / nur WPA1 oder WPA2!
./WLAN_con.sh                # automatische Konfiguration
./WLAN_con.sh -start -a      # gespeicherte Konfiguration / die bereits erfasste Konfiguration wird erneut verwendet
./WLAN_con.sh -af            # gespeicherte Konfiguration / Debug-Modus
./WLAN_con.sh -start -w      # WEP-Verschlüsselung
./WLAN_con.sh -start -wfd    # WEP-Verschlüsselung / Debug-Modus mit Protokoll / Option -d wirkungslos
./WLAN_con.sh -restart -dDw  # Restart im Debug-Modus (Terminal, kein Protokoll), manuelle(r) DNS und WEP-Verschlüsselung
./WLAN_con.sh -stop          # beendet die Verbindung und aktiviert wieder den Network-Manager 

Der Network-Manager und Wicd, sofern installiert, werden direkt über das Skript gesteuert. Um die Verbindung zu trennen, den Manager wieder zu aktivieren und gestartete Instanzen des Supplicanten zu beenden, muss das Skript abschließend mit …

./WLAN_con.sh -stop  

… aufgerufen werden.

Fehler / Probleme

ESSID wird nicht gefunden

Wird das Skript mit automatischer Konfiguration gestartet, kann es beim Scann der WLAN-Umgebung zu einer unvollständigen Ausgabe kommen. Bei schwachem Empfang ist der Scan möglicherweise unvollständig und die ESSID wird nicht einwandfrei übermittelt.

Die Ausgabe sieht dann vielleicht so aus (Beispiel):

...
          Cell 4 - Address: 00:06:0E:D2:48:26
                   ESSID:"FRITZ!Box Fon WLAN 7170"
          Cell 5 - Address: 00:14:BA:CA:A2:49
          Cell 6 - Address: 78:35:2A:13:26:65
                   ESSID:"NETGEAR"
...

Ist nun gerade Cell 5 das gesuchte Netz und wird ausgewählt, so verwendet das Skript die nachfolgende ESSID von Cell 6, da diese ja bei Cell 5 fehlt. In diesem Fall sollte das Skript neu gestartet und der Scan wiederholt werden. Alternativ manuell konfigurieren und ESSID und MAC-Adresse in das Skript eintragen. Grundsätzlich könnte der Empfang dann aber wohl schon grenzwertig, also schlecht sein, oder wird gestört.

DNS fehlerhaft

Ab Ubuntu 12.04 ist das Paket resolvconf wieder standardmäßig im System vorinstalliert. Sollten die entsprechenden Einträge in der /etc/resolv.conf fehlerhaft sein, die aktuelle Konfiguration wird am Ende des Skripts angezeigt, so kann das Skript mit Startoption -D aufgerufen werden. Dann werden die im Skript voreingestellten DNS in die /etc/resolv.conf eingetragen. Vorhandene Einträge werden überschrieben.

Diagnoseskript

Über ein weiteres kleines Skript kann die zuvor mit Startoption -f oder -Af (empfohlen) erzeugte Datei in begrenztem Rahmen ausgewertet werden. Im Zweifelsfall sollte die vollständige Protokolldatei, wie bereits weiter oben beschrieben, über unseren Paste-Service zur Durchsicht hochgeladen und im Forum verlinkt werden.

Skript anlegen

Datei anlegen und ausführbar machen

touch WLAN_con_diag.sh
chmod +x WLAN_con_diag.sh 

Bearbeiten ...

gedit WLAN_con_diag.sh 

... und folgenden Inhalt einfügen:

#!/bin/bash
## WLAN Schnelldiagnose für WLAN Verbindungsskript WLAN_con.sh
##
## elektronenblitz63 ubuntuusers.de 2012
## published under GPL v3
##
## Version 0.0.0.3 vom 09. Juli 2012
##
## Skript
##
## freie Variablen
##

# Protokolldatei
if [ "$1" = "" ]; then
 debugfile="WLAN_con_debug.txt"

 else
  debugfile=$1
fi

diagoutfile="WLAN_con_diag.txt"

## verwendetes Terminalprogramm
term=xterm

## Terminaloptionen
## hier größe des Fensters für die Ausgabe
termoptions="-geometry 90x50"

## verwendeter Editor
editor=nano
# Option „Datei nur lesen"
editoptions="-v"

### Diagnose

## AP Suche
echo -e " Diagnose der Protokolldatei "$debugfile"\n" > $diagoutfile
 echo -e " Werden mehrere Zeilen je Abschnitt ausgegeben,\n deutet dies auf grundsätzliche Verbindungsprobleme hin!" >> $diagoutfile
   echo  >> $diagoutfile

echo " Scantest / wird der gesuchte AP gefunden?" >> $diagoutfile
 echo " Zeile  Status" >> $diagoutfile

scancheck=$(cat -nT $debugfile | egrep 'No suitable AP found.' >> $diagoutfile)

if [ "$scancheck" != "" ]; then
 if [ "$scancheck" != "No suitable AP found" ]; then
  echo -e " Der gesuchte AP wurde nicht gefunden!\n" >> $diagoutfile
     echo -e " Der Empfang ist möglicherweise grenzwertig,\n oder wird gestört." >> $diagoutfile

## Terminal/Editor öffnen / Ausgabe
 /usr/bin/$term $termoptions -e "$editor $editoptions $diagoutfile" &> /dev/null &

## Ende
echo "Schnelldiagnose beendet."
 exit 0
fi
 fi

scancheck=$(cat -nT $debugfile | egrep 'SCANNING -> ASSOCIATING' >> $diagoutfile)

if [ "$scancheck" != "" ]; then
 echo  >> $diagoutfile
  echo -e " Der gesuchte AP wurde nicht gefunden!\n" >> $diagoutfile
   else
    echo -e " Der gesuchte AP wurde gefunden!\n" >> $diagoutfile
fi

## Verbindung?
 echo " Verbindungstest. Wird eine erste Verbindung zum AP aufgebaut?" >> $diagoutfile
  echo " Zeile  Status" >> $diagoutfile

connection=$(cat -nT $debugfile | egrep 'ASSOCIATING -> ASSOCIATED' >> $diagoutfile)

if [ "$connection" != "" ]; then
 echo  >> $diagoutfile
  echo -e " Die Verbindung wurde nicht aufgebaut!\n" >> $diagoutfile
   else
    echo -e " Die Verbindung wurde aufgebaut!\n" >> $diagoutfile
fi

## Authentifikation ok?
 echo " Authentifizierung. Wird die Verbindung zum AP vollständig hergestellt?" >> $diagoutfile
  echo " Zeile  Status" >> $diagoutfile

authentication=$(cat -nT $debugfile | egrep '4-Way Handshake failed - pre-shared key may be incorrect' >> $diagoutfile)
 authentication=$(cat $debugfile | egrep -o '4-Way Handshake failed - pre-shared key may be incorrect')

if [ "$authentication" != "" ]; then
 echo  >> $diagoutfile
  echo -e " Die Authentifikation war nicht erfolgreich!" >> $diagoutfile
   echo -e " Das Zugangskennwort (PSK) scheint falsch oder fehlerhaft zu sein!\n"  >> $diagoutfile
    echo "Schnelldiagnose beendet." >> $diagoutfile

/usr/bin/$term $termoptions -e "$editor $editoptions $diagoutfile" &> /dev/null &
 echo "Schnelldiagnose beendet."
  exit 0
fi

 authentication=$(cat -nT $debugfile | egrep 'GROUP_HANDSHAKE -> COMPLETED' >> $diagoutfile)
authentication=$($authentication | awk {'print $3;$4;$5'})

if [ "$authentication" = "" ]; then
 echo -e " Die Authentifikation war erfolgreich!\n" >> $diagoutfile
fi

## verwendete Verschlüsselung
echo -e " Verwendete Verschlüsselungsmethode:" >> $diagoutfile
 encryption=$(cat -nT $debugfile | egrep 'Key negotiation completed' >> $diagoutfile)
  echo  >> $diagoutfile

pairwise_cipher=$(cat $debugfile | egrep 'Key negotiation completed' | awk {'print $7'} | tr -d '[')
 echo " Paarweise Verschlüsselung (pairwise cipher): "$pairwise_cipher >> $diagoutfile 

group_cipher=$(cat $debugfile | egrep 'Key negotiation completed' | awk {'print $8'} | tr -d ']')
 echo -e " Gruppenverschlüsselung (group cipher): "$group_cipher >> $diagoutfile

## Terminal/Editor öffnen / Ausgabe
 /usr/bin/$term $termoptions -e "$editor $editoptions $diagoutfile" &> /dev/null &

## Ende
echo "Schnelldiagnose beendet."
 exit 0

Skript starten

./WLAN_con_diag.sh  

Die Ausgabe mit entsprechenden Informationen wird in einem extra Fenster angezeigt. Siehe Screenshots im Anhang.

Bilder

Beerholm

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 4

Die Neustarts waren notwendig, um zu sehen, ob es eine Veränderung bringt. Denn: Wenn die Verbindung einmal hergestellt ist, dann kann ich trennen und danach wieder verbinden ohne dieses ewige Abwarten. Keine Ahnung, warum.

Letzten Endes habe ich es geschafft, das Skript anzulegen. Und es scheint zu funktionieren. Wenn ich mit "./WLAN_con.sh -wd" starte geht es wohl ein wenig schneller als mit "./WLAN_con.sh -w". Nur bei -wd kann ich das Fenster des Supplicant (wpa_supplicant.tmp -d) nicht mehr schließen. Ist das normal?

Jetzt würde ich das Skript gerne automatisch beim Hochfahren starten. Hab mal bei Automatisch gestartete Anwendungen einen neuen Eintrag mit dem Befehl zum Starten des Skripts erstellt. Geht nicht ☺ Wie kann ich das machen?

Auf jeden Fall vielen Dank, jetzt hab ich in weniger als 1 Minute zuverlässig eine Verbindung!

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Beerholm schrieb:

Letzten Endes habe ich es geschafft, das Skript anzulegen. Und es scheint zu funktionieren. Wenn ich mit "./WLAN_con.sh -wd" starte geht es wohl ein wenig schneller als mit "./WLAN_con.sh -w". Nur bei -wd kann ich das Fenster des Supplicant (wpa_supplicant.tmp -d) nicht mehr schließen. Ist das normal?

Von der Funktion her macht das absolut keinen Unterschied. Das Fenster schließt sich bei -stop oder wenn der Supplicant-Prozess manuell beendet wird.

Nachtrag: das Skript wurde aktualisiert, ein paar kleinere Fehler wurden ausgemerzt

Achte auf die Terminalausgabe des Supplicanten und stoppe die Zeit bis eine Verbindung hergestellt wurde. Siehe Sreenshot im Anhang und achte auf „... authentication completet successfully“ (die restlichen Ausgaben weichen u.U. etwas ab, da hier eine Verbindung mit WPA-Verschlüsselung aufgebaut wurde). Erst danach sollte dhclient versuchen eine IP-Adresse anzufordern. Der Parameter connectsleep des Skripts in Sekunden …

## Pause bevor eine IP-Adresse angefordert wird
## diese Zeit in Sek. bleibt wpa_supplicant für den Verbindungsaufbau
connectsleep=15

…muss entsprechend angepasst werden. Trage die ermittelte Zeit ein und gib eine kleine zusätzliche Karenz von ca. zwei Sekunden hinzu.

Jetzt würde ich das Skript gerne automatisch beim Hochfahren starten. Hab mal bei Automatisch gestartete Anwendungen einen neuen Eintrag mit dem Befehl zum Starten des Skripts erstellt. Geht nicht ☺ Wie kann ich das machen?

Lege zwei Starter an

gksu /home/<Benutzer>/WLAN_con.sh -start -w
gksu /home/<Benutzer>/WLAN_con.sh -stop

Oder trage den Startbefehl in rc.local ein und lege nur einer Starter zum stoppen des Skriptes an.

Bilder
Antworten |