Riconnetti automaticamente la connessione wireless


13

Purtroppo la connessione wireless a casa mia spesso scompare, richiedendo il riavvio del router wireless.

A peggiorare le cose, il mio Ubuntu Media PC non si ricollega automaticamente alla rete wireless quando non c'è più, e poi si presenta dopo circa un minuto. La rete in questione è configurata come "connetti automaticamente" nelle impostazioni di rete.

Se seleziono manualmente la mia rete wireless, utilizzando l'icona wireless nella parte superiore dello schermo, tutto funziona correttamente, fino alla successiva interruzione della connessione wireless.

Sto cercando un modo, quindi non devo ricordarmi di farlo manualmente tutto il tempo.


Ho lo stesso identico problema. Sarei soddisfatto di una soluzione che utilizzava, ad esempio uno script cron ogni 5 minuti, chiedendo a Network Manager di riconnettersi, se non è già connesso.
Marius Gedminas,

@Marius hai una sceneggiatura del genere?
Oli

Aggiungi alcune informazioni sull'hardware alla tua domanda.
Jorge Castro,

@Oli: purtroppo no.
Marius Gedminas,

Risposte:


3

Ho avuto un problema simile con la scheda a mezza altezza Intel Wireless WiFi 5100 del mio laptop e il driver iwlagn del driver. Questo problema è noto con il driver iwlagn e la soluzione alternativa consiste nel disabilitare 802.11n sulla scheda.

Per disabilitare 802.11n su questa scheda creare / modificare il /etc/modprobe.d/options.conffile:

sudo -H gedit /etc/modprobe.d/options.conf

E aggiungi quanto segue.

options iwlagn 11n_disable=1 11n_disable50=1

3

Questa è un'alternativa usando service network-manager restart:

#!/usr/bin/env bash


# 1. copy this script into
# /usr/bin

# 2. change permissions
# root:/usr/bin# chmod +x checkwifi.sh 

# 3. add to cron as root
# sudo su
# crontab -e

# add this to check your wifi every minute
# * * * * * /usr/bin/checkwifi.sh

is_ok=$(/sbin/ifconfig wlp2s0 | /bin/grep inet\ addr -c)

if [ "$is_ok" -eq 0 ] ; then

    # restart
    /usr/sbin/service network-manager restart

    # wifi is ok
    /bin/echo $(date) "wifi was restarted" >> /user/user/Dropbox/wifi.log
    /bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log

else

    # wifi is ok
    /bin/echo $(date) "wifi is ok" >> /home/user/Dropbox/wifi.log
    /bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log

fi

3

Questo sembra essere pubblicato su tutta la rete senza buone soluzioni. Immagino che la soluzione migliore / soluzione alternativa sia quella di verificare la connettività Internet e, se non è presente, riconnettersi. L'ho fatto tramite un test ping su google.com e poi l'ho fatto semplicemente riavviare la rete. Il codice non è testato (la parte di riavvio e la parte cron, se l'istruzione è stata testata), quindi aspetterò solo che si disconnetta ad un certo punto. Ho un Ubuntu Server 12.10, quindi nessuna interfaccia grafica, ed è un problema connettere monitor e tastiera ogni volta che il wireless si riempie.

Parte cron fatta via webmin quindi Idk molto al riguardo. Lo script è il seguente:

# edited by dim_voly for networking restart on no pingback every 5 mins

#!/bin/bash
# Name of File: networkingCron
# Purpose: to check if the internet is up (via ping test to google) and if not, restart networking service
# this script is invoked via cron, ideally every 5 mins.

#check if there is internet via ping test
if ! [ "`ping -c 1 google.com`" ]; then #if ping exits nonzero...
   sudo service networking restart #restart the whole thing
   echo Networking service restarted due to no ping response from google.com
fi

echo Script 'networkingCron' completed, if no message above then there was no network restart.

# dunno how to restart the wifi only since that is the only active connection that server uses.

# also I don't think those echos go anywhere

Assicurati di essere eseguito come root e assicurati che lo script abbia le autorizzazioni di esecuzione (u + x).

links:


2

Versione più moderna dello script @DougD

#!/bin/bash    
wlan=$(/sbin/ifconfig wlan0 | grep inet\ addr -c)
if [ "$wlan" -eq 0 ]; then    
    /sbin/ifdown wlan0 && /sbin/ifup wlan0
else    
    echo interface is up    
fi

2

Basta creare un nuovo file vi /root/checkwanupe aggiungere questo contenuto:

#!/bin/bash    
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`    
if [ $wlan -eq 0 ]; then    
    /sbin/ifdown wlan0 && /sbin/ifup wlan0
else    
    echo interface is up    
fi

Quindi chmod 555 /root/checkwanupaggiungilo al tuo crontab:

crontab -e
*/15 * * * * /bin/bash /root/checkwanup

Fonte: http://sirlagz.net/2013/01/10/script-wifi-checker-script/


aggiungere LANG=Co grep inet\ addrpotrebbe non riuscire.
Mawi12345,

1

Potresti voler dare un'occhiata all'utilizzo di wpa_supplicant invece del gestore della rete, ma questo non ha molta importanza quando sei su un media center. wpa_supplicant non è flessibile come il gestore della rete ma dopo non ci si arrende dopo aver provato tre volte. dai un'occhiata a questa risposta .


1

Ecco la mia versione - funziona con NetworkManager:

#!/bin/bash    
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`    
if [ $wlan -eq 0 ]; then   
    /usr/bin/nmcli nm wifi off && /usr/bin/nmcli nm wifi on 
fi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.