Kablosuz bağlantı yapıldıktan sonra çeşitli nedenlerle bağlantı kesilebilir. Örneğin hem Wireless Access Point (Kablosuz erişim noktası) hem de Raspberry Pi’ınız kapsama alanı dışına çıkabilir, kilitlenebilir, etraftaki radyo frekans kirliliği nedeniyle (genellikle çok yakındaki bir elektronik cihazın yarattığı frekans kirliliğine neden olur) kararsızlığa düşüp kablosuz bağlantı kesilebilir. Raspberry Pi’ın adaptöre uyguladığı güç tasarruf modu sırasında, kablosuz adaptör kullanım dışı da kalabilir. Bu durumda; tek bağlantı yöntemi olarak kablosuzu kullanıyorsanız Raspberry Pi’ınıza ağ üzerinden erişemeyeceksiniz demektir.
Bu sorunu gidermek için aşağıdaki gibi bir betik iş görecektir. crontab’a eklenecek betik belirli sürelerle wlan0 arabirimini kontrol edip, ağ bağlantısı sonlandığında ifup ile yeniden başlatacaktır. Aşağıdaki betiği nano ile wifi_check.sh dosya adı ile kaydedin:
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 |
pi@raspberry ~ $ # nano wifi_check.sh lockfile='/var/run/WiFi_Check.pid' # Kontrol etmek istediginiz adaptorun adı wlan='wlan0' echo echo "$wlan adaptoru icin Wi-Fi kontrolu basliyor..." date echo if [ -e $lockfile ]; then pid=`cat $lockfile` if kill -0 &>1 > /dev/null $pid; then exit 1 else rm $lockfile fi fi echo $$ > $lockfile echo "$wlan adaptorunun ag baglantisi kontrol ediliyor" if ifconfig $wlan | grep -q "inet addr:" ; then echo "Aygitin ag baglantisi tamam." else echo "Aygitin ag baglantisi devre disi! Yeniden baglaniyor." ifdown $wlan sleep 5 ifup --force $wlan ifconfig $wlan | grep "inet addr" fi sleep 15 echo echo "Mevcut ag yapilandirmasi:" ifconfig $wlan | grep "inet addr:" echo rm $lockfile exit 0 |
Çalıştırma izni verip sınamak için aşağıdaki komutları çalıştırabilirsiniz:
1 2 3 4 |
pi@raspberry ~ $ # nano wifi_check.sh pi@raspberry ~ $ # chmod 755 wifi_check.sh pi@raspberry ~ $ # sudo ./wifi_check.sh |
Betiği cron’a eklemek için crontab -e yazın ve alttaki satırı ekleyin:
1 2 3 4 5 |
pi@raspberry ~ $ # sudo crontab -e # Her 5. dakikada wireless baglantisini kontrol et, kesikse yeniden bagla */5 * * * * sudo /home/pi/wifi_check.sh > /dev/null 2>&1 |
Daha önce bahsedildiği gibi; kablosuz ağ adaptörü kullanılmadığı zamanlarda güç tasarruf moduna geçebilir ve bu moddan istenildiği şekilde çıkamayabilir. Bu mod özellikle sınırlı bir besleme kaynağına (akü, li-ion pil vb.) sahip Raspberry Pi’ler için oldukça faydalıdır. Eğer enerji kaynağı sorununuz yoksa bu güç tasarruf modunu tamamen devreden çıkartabilirsiniz. Önce tasarruf modunun aktif olup olmadığına bakın:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
pi@raspberry ~ $ # iwconfig wlan0 wlan0 IEEE 802.11bgn ESSID:"CELL-LKREP" Mode:Managed Frequency:2.452 GHz Access Point: E8:AB:FA:11:36:E8 Bit Rate=36 Mb/s Tx-Power=1 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:on Link Quality=63/70 Signal level=-47 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:5 Invalid misc:92 Missed beacon:0 |
iwconfig çıktısının Power Management satırındaki değer, güç tasarruf modunun durumunu gösterir. Eğer mod, on yani açık ise kapatmak için /etc/network/interfaces dosyasına aşağıdaki satırı ekleyin:
1 |
wireless-power off |
Isınmaya bağlı donanımsal Wi-Fi sorunları
Bazen kablosuz ağ erişim noktası donanımsal bir nedenden dolayı ya da aşırı ısınmadan kararsız bir duruma düşüp yazılımsal müdahalelere yanıt vermeyebilir. Aynı durum Raspberry Pi’ın dâhili Wi-Fi arabirimi ya da USB üzerinden bağlı Wi-Fi arabiriminde gerçekleşebilir. Bu durumda Rasberry Pi’ı yeniden başlatmak çözüm olabilir. Hatta crontab aracılığı ile belli zamanlar için otomatik yeniden başlatma tanımlayabilirsiniz.
yukarıdaki betiği çalıştırınca fi den sonra unexpected fi gibi bir hata veriyor