Pagina 1 di 1

Con gli ultimi kernel bisogna aggiornare i wireless-tools!

Inviato: lun 1 mar 2010, 15:38
da phobos3576
L'altro giorno ho installato il 2.6.33 e ho così scoperto che la connessione wireless non partiva al boot; in pratica, /etc/rc.d/rc.wireless non riusciva a lanciare wpa_supplicant e quindi, il successivo comando dhcpcd -t 20 wlan0 produceva un errore di timeout dopo 20 secondi.

In ogni caso, la scheda wireless (Atheros Communications Inc. AR5413 802.11abg NIC) funziona perfettamente anche con il 2.6.33, ma richiede l'attivazione della connessione attraverso i soliti comandi manuali:

Codice: Seleziona tutto

/usr/sbin/wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B
/sbin/dhcpcd -t 20 wlan0
Dopo alcune verifiche ho potuto appurare che il problema risiede nella funzione is_wireless_device presente in rc.wireless; questa è la versione della Slackware 13:

Codice: Seleziona tutto

is_wireless_device ()
{
    #[ -x $IWPATH/iwconfig ] || return 1
    #LC_ALL=C $IWPATH/iwconfig $1 2>&1 | \
    #    grep -Eiq "no wireless extensions|no such device" || return 0
    #return 1
    if ! grep `echo ${1}: | cut -f 1 -d :`: /proc/net/wireless 1> /dev/null ; then
      # no wireless interface
      return 1
    else
      # interface has wireless extensions
      return 0
    fi
}
Questa funzione con il 2.6.33 ritorna il valore 1 (# no wireless interface) provocando l'uscita da rc.wireless senza che venga avviato wpa_supplicant; con il 2.6.32, invece, il valore ritornato è 0.

Pat si è accorto del problema e nella Current ha già provveduto ad aggiornare i wireless-tools.
Questa è la nuova versione di is_wireless_device con la spiegazione di Pat:

Codice: Seleziona tutto

# 02/jan/2010 * Pat Volkerding * Look for /sys/class/net/$NETDEV/wireless rather
#                                than the contents of /proc/net/wireless to find
#                                if a network device is wireless.  In newer
#                                kernels devices will not show up in
#                                /proc/net/wireless until active.
# ------------------------------------------------------------------------------

is_wireless_device ()
{
    #[ -x $IWPATH/iwconfig ] || return 1
    #LC_ALL=C $IWPATH/iwconfig $1 2>&1 | \
    #    grep -Eiq "no wireless extensions|no such device" || return 0
    #return 1
    if [ ! -d /sys/class/net/${1}/wireless ]; then
      # no wireless interface
      return 1
    else
      # interface has wireless extensions
      return 0
    fi
}
In definitiva, chi sta usando il kernel 2.6.33 con la Slackware 13 e riscontra il mio stesso problema, non deve fare altro che aggiornare i wireless-tools (o almeno il file rc.wireless).

Re: Con gli ultimi kernel bisogna aggiornare i wireless-tools!

Inviato: lun 1 mar 2010, 18:01
da tigerwalk
utilissima segnalazione, grazie phobos!

Re: Con gli ultimi kernel bisogna aggiornare i wireless-tools!

Inviato: lun 1 mar 2010, 22:18
da slucky
vero! grazie per la dritta e la segnalazione phobos! ;)