# [RISOLTO] Wifi morta...

## sacchi

Ciao a tutti,

Nel mio routerino gentoo ha smesso di funzionare la wifi come access point. Un recente aggiornamento che credo significativo è stato udev, passato alla 197 (e stasera alla 200)... non so se è lui il colpevole.

Se faccio partire hostapd, con dmesg vedo questo errore:

```
Loading kernel module for a network device with CAP_SYS_MODULE (deprecated).  Use CAP_NET_ADMIN and alias netdev- instead.
```

La scheda wifi funziona, se do il comando:

```
iwlist wlan0 scan
```

vedo l'essid della wifi dei vicini.

Non funziona però come access point, nel senso che col portatile non vedo più la mia rete wireless.

Qualcuno può darmi una mano per cortesia?

Ciao e grazie,

LLast edited by sacchi on Tue Apr 09, 2013 10:57 pm; edited 1 time in total

----------

## sacchi

..un piccolo passo... non so se può essere di aiuto.

Ho notato che, se commento modules_wlan0="!wpa_supplicant" in /etc/conf.d/net, l'errore in dmesg scompare.

Ovviamente, se do il comando /etc/init.d/net.wlan0 restart, viene cercato wpa_supplicant che non c'è e non ci deve essere.

Ciao e grazie!

----------

## doom555

Non so se può servirti a qualcosa... Io tempo fa ho avuto alcuni problemi aggiornando hostapd alla versione 2.0. Io ho 2 ap, ma utilizzando una sola scheda wireless, per fare questo avviavo una seconda volta hostapd con una configurazione differente. Dopo l'aggiornamento alla versione 2.0 non riuscivo ad avviare hostapd sulla seconda interfaccia (non sono riuscito a comprendere le ragioni), quindi sono dovuto tornare alla versione 1.1. Potresti provare anche tu a retrocedere... io al momento utilizzo sys-fs/udev-200 e non ho alcun problema!

Se può tornati utile di seguito parte del mio /etc/conf.d/net:

```

# WIFI

modules_wlan0="ifconfig !iwconfig !wpa_supplicant"

config_wlan0="null"

#

modules_anonAp="ifconfig !iwconfig !wpa_supplicant"

config_anonAp="null"

mac_anonAp="XX:XX:XX:XX:XX:XX"

mode_anonAp="ad-hoc"

essid_anonAp="AP1"

#

modules_lanAp="ifconfig !iwconfig !wpa_supplicant"

config_lanAp="null"

mac_lanAp="YY:YY:YY:YY:YY:YY"

mode_lanAp="ad-hoc"

essid_lanAp="AP2"

```

----------

## sacchi

 *doom555 wrote:*   

> Non so se può servirti a qualcosa... Io tempo fa ho avuto alcuni problemi aggiornando hostapd alla versione 2.0. Io ho 2 ap, ma utilizzando una sola scheda wireless, per fare questo avviavo una seconda volta hostapd con una configurazione differente. Dopo l'aggiornamento alla versione 2.0 non riuscivo ad avviare hostapd sulla seconda interfaccia (non sono riuscito a comprendere le ragioni), quindi sono dovuto tornare alla versione 1.1. Potresti provare anche tu a retrocedere... io al momento utilizzo sys-fs/udev-200 e non ho alcun problema!

 

Ciao!

Io sono già retrocesso! Lol! Sto usando la versione 1.0 r4 che è fuori da un secolo.

Il problema mi è nato con l'aggiornamento di udev; il problema è che la versione che andava bene era quella prima della 197, direi la 171 che ora è hardmasked.

 *doom555 wrote:*   

> Se può tornati utile di seguito parte del mio /etc/conf.d/net:
> 
> ```
> 
> # WIFI
> ...

 

Non so se è un passo, ma con questa tua linea se lancio /etc/init.d/net.wlan0 restart ora non triggera più l'errore in dmesg.

```
/etc/init.d/net.wlan0 restart

 * Bringing down interface wlan0

 * Bringing up interface wlan0

 *   192.168.2.254 ...   [ ok ]
```

Questo il mio /etc/conf.d/net:

```
config_wlan0="192.168.2.254 netmask 255.255.255.0 brd 192.168.2.255"

channel_wlan0="5"

essid_wlan0="TuxServer"

mode_wlan0="master"

modules_wlan0="ifconfig !iwconfig !wpa_supplicant"   
```

Ora ho solo questo:

```
 /etc/init.d/hostapd restart

 * Starting hostapd ...

rmdir[ctrl_interface]: No such file or directory

 * start-stop-daemon: failed to start `/usr/sbin/hostapd'   [ !! ]
```

in /etc/hostapd/hostapd.conf vedo che

```
ctrl_interface=/var/run/hostapd
```

Google non pare mio amico...

Grazie! Spero di aver fatto un passettino!

Ciao,

L

----------

## sacchi

Ciao a tutti,

Ho installato udev 171, ma il problema è identico...

Ho provato anche hostapd 2.00, stessa storia.

A questo punto non ho idea di quando mi è entrato questo problema.

Ciao,

L

----------

## sacchi

Incredibile.........

ho tirato fuori un backup, mi sono smazzato dei gran diff...

Il problema è nato quando mi hanno cambiato l'iphone, e ho dovuto cambiare il mac address autorizzato.

Visto che non mi prendeva la password, ho provato a mettere il suo mac address con password asdf in /etc/hostapd/hostapd.wpa_psk

ERA QUELLO! Una password così corta lo fa imbananare, e purtroppo non da né errori né warning relativi.

Grazie a tutti di nuovo!

L

----------

## doom555

Ciao,

ifconfig specifica di utilizzare ifconfig al posto di iproute2. 

!iwconfig specifica di non utilizzare iwconfig (net-wireless/wireless-tools), quindi viene utilizzato al suo posto iw (net-wireless/iw) che permette almeno nel mio caso la creazione di "interfacce logiche".

----------

## djinnZ

dato che ha smesso di funzionare quando stavo per partire per le vacanze ed al momento devo recuperare altri arretrati lavorativi non mi ci sono applicato ma inizierei con il segnalare che tutta la documentazione disponibile è errata o fuorviante.

----------

## djinnZ

Ho iniziato a vedere qualcosa. Adesso questa configurazione sembra funzionare  */etc/hostapd/hostapd.conf wrote:*   

> interface=net2
> 
> bridge=br0
> 
> driver=nl80211
> ...

  */etc/conf.d.net wrote:*   

> modules="iproute2"
> 
> # net0  - wan interface
> 
> config_net0="172.30.0.14/28"
> ...

  solo dopo 

```
euse -E ap

emerge -1 =net-wireless/wpa_supplicant-2.0-r2
```

non capisco perché, ma è così.

Adesso il client si autentica ed il dhcp riesce a dare le impostazioni corrette ma...

non vedo altro che il server. *Quote:*   

> # Generated by iptables-save v1.4.16.3 on Wed Mar 27 20:48:23 2013
> 
> *raw
> 
> :PREROUTING ACCEPT [595609:400497003]
> ...

 

L'assurdo è che se connetto il pc wired, quindi usando la ethernet dello stesso bridge senza alcuna modifica tutto funziona perfettamente.

E non ho fatto altro che aggiornare hostapd, ed udev secondo le correnti versioni in portage e smascherare wpa_supplicant 2.0 con l'apposita use flag.

Il bridge lo vedo, smb e servizi sul bridge idem ma non riesco ad uscire fuori via wifi, via ethernet invece va. Ovviamente la stessa identica configurazione ha funzionato sino al malefico upgrade di udev. L'unica anomalia nei log è un messaggio per "ctl_interface not created" all'avvio.

----------

## doom555

```
bridge_br0="net1" 
```

Nel tuo bridge c'è solo net1! Apparte l'inutilità del bridge per una sola interfaccia... net1 e net2(la tua interfaccia wireless) dovrebbero entrambe far parte di di br0 dato che le regole di iptables si riferiscono al bridge.

Poi, come mai utilizzi stessa sottorete per net0 e br0 se sono due reti distinte?

----------

## djinnZ

Contrariamente a quel che sostiene la documentazione (non so chi sia il deficiente che ne è responsabile ma auguro lui tutto il male possibile) hostapd deve aggiungere l'interfaccia wifi (net2) al bridge, non la si può preconfigurare, in nessun modo.

Quindi detto bridge viene inizializzato solo con la ethernet (net1), poi viene solo inizializzata da ifconfig l'interfaccia wifi (net2) ed alla fine hostapd la aggiunge al bridge e ci si pone in attesa sopra.

Quel che non capisco è perché ho dovuto tirar su wpa_supplicant 2 con la use ap (cosa che serve solo per la modalità pc2pc) per far funzionare hostapd. Wpa_suppllicant non viene chiamato e non dovrebbe avere dipendenze in hostapd ma tant'è.

Il messaggio per ctl_interface persiste ma funziona. Disabilitando il firewalling ed abilitando il solo nat sembra andare... aff[censura]

Comunque il problema è localizzato in iptables.

A quanto pare il compilatore funziona male o non ammette le istruzioni legacy su alcune interfacce (Anche disabilitandolo le cose migliorano).

mah...

Quando ho tempo verifico e riporto.

----------

## doom555

Se può tornarti utile sotto qualche aspetto, posto le mie attuali configurazioni che a me funzionano alla perfezione. In sostanza ho il mio serverino collegato via Ethernet al router, quindi non ho alcun bisogno di implementare un router con l'utilizzo di iptables, funziona tutto a livello 2. 

In particolare ho 2 bridge su 2 reti isolate tra di loro: 

- lan : interfaccia Ethernet, interfaccia access point AP1, interfaccia tap per Openvpn1 

- anonBR : interfaccia access point AP2, interfaccia tap per Openvpn2

/etc/conf.d/net:

```
## Interfaccia ETHERNET

###

config_eth0="null"

## Interfacce WIFI

###

## Wifi AP su phy0 per lan

modules_lanAp="ifconfig !iwconfig !wpa_supplicant"

config_lanAp="null"

mac_lanAp="00:15:0C:44:A9:25"

mode_lanAp="master"

channel_lanAp="6"

essid_lanAp="AP1"

###

## Wifi AP su phy0 per anonBr

modules_anonAp="ifconfig !iwconfig !wpa_supplicant"

config_anonAp="null"

mac_anonAp="00:15:0C:10:A1:AB"

mode_anonAp="master"

channel_anonAp="6"

essid_anonAp="AP2"

## Interfacce OPENVPN

###

## Vpn per lan

tuntap_lanVpn="tap"

config_lanVpn="null"

###

## Vpn per anonBr

tuntap_anonVpn="tap"

config_anonVpn="null"

## LOOPBACK

###

dns_domain_lo="serverazuz"

## LAN

###

modules_lan="openvpn"

bridge_lan="eth0 lanVpn lanAp"

brctl_lan="stp on"

dns_domain_lan="serverazuz"

config_lan="192.168.179.30/24 192.168.179.31/24 192.168.179.32/24 192.168.179.33/24"

routes_lan="default via 192.168.179.1"

dns_servers_lan="8.8.8.8 8.8.4.4 192.168.179.1 208.67.222.222 208.67.220.220"  

rc_net_lan_need="net.lanVpn net.lanAp hostapd.lanAp"

## ANONBR

###

modules_anonBr="openvpn" 

bridge_anonBr="anonVpn anonAp"

dns_domain_anonBr="anon"

config_anonBr="10.20.30.1 netmask 255.255.255.0 brd 10.20.30.255"

dns_servers_anonBr="8.8.8.8 8.8.4.4"

rc_net_anonBr_need="net.anonVpn net.anonAp hostapd.anonAp"

preup() 

{

   ## Crea all'occorrenza l'interfaccia wireless su phy0

   if [[ ${IFACE} == "lanAp" || ${IFACE} == "anonAp" ]]; then

      iw phy phy0 interface add ${IFACE} type __ap

   

      ## Distrugge wlan0 se esiste

      if [[ `iw dev wlan0 info` ]] >> /dev/null 2>&1 ; then 

          iw dev wlan0 del

      fi

   fi

postdown()

{   

   ## Distrugge interfacce wireless

   if [[ ${IFACE} == "lanAp" || ${IFACE} == "anonAp" ]]; then

      iw dev ${IFACE} del

   fi

}
```

Nonostante le 2 interfacce wireless, ho solo una scheda wireless che utilizza ath9k come driver (testato stessa configurazione anche con una zd1211 e NON funziona), chiaramente sono costretto a mettere i 2 AP sullo stesso canale. Attualmente utilizzo net-wireless/hostapd-2.0 con le seguenti use: ipv6, ssl, wps, -crda, -logwatch, -madwifi.

NON ho installato i seguenti seguenti pacchetti : net-wireless/wpa_supplicant, net-wireless/crda, net-wireless/wireless-regdb.

NON ho abilitato rfkill nel kernel (infatti che hostapd mi da all'avvio... mi tengo il warning, non voglio probabili problemi causati rfkill, dato che nella mia configurazione sarebbe inutile)

Ho dovuto chiaramente modificare le configurazioni di di hostapd per avere il doppio AP.

/etc/conf.d/hostapd :

```
# Space separated List of interfaces which needs to be started before

# hostapd

#INTERFACES="wlan0"

INTERFACES_LANAP="lanAp"

INTERFACES_ANONAP="anonAp"

# Space separated list of configuration files

#CONFIGS="/etc/hostapd/hostapd.conf"

CONFIGS_LANAP="/etc/hostapd/hostapd.lanAp.conf"

CONFIGS_ANONAP="/etc/hostapd/hostapd.anonAp.conf"

# Extra options to pass to hostapd, see hostapd(8)

OPTIONS=""
```

/etc/init.d/hostapd.anonAp :

```
#!/sbin/runscript

# Copyright 1999-2011 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/files/hostapd-init.d,v 1.3 2011/09/25 14:03:46 gurligebis Exp $

extra_started_commands="reload"

depend() {

   local myneeds=

   for iface in ${INTERFACES_ANONAP}; do

      myneeds="${myneeds} net.${iface}"

   done

   [ -n "${myneeds}" ] && need ${myneeds}

   use logger

}

checkconfig() {

   local file

   for file in ${CONFIGS_ANONAP}; do

      if [ ! -r "${file}" ]; then

         eerror "hostapd configuration file (${CONFIG}) not found"

         return 1

      fi

   done

}

start() {

   checkconfig || return 1

   ebegin "Starting ${SVCNAME}"

   start-stop-daemon --start -N 5 --exec /usr/sbin/hostapd \

      -- -B ${OPTIONS} ${CONFIGS_ANONAP}

   eend $?

}

stop() {

   ebegin "Stopping ${SVCNAME}"

   start-stop-daemon --stop --exec /usr/sbin/hostapd

   eend $?

}

reload() {

   checkconfig || return 1

   ebegin "Reloading ${SVCNAME} configuration"

   kill -HUP $(pidof /usr/sbin/hostapd) > /dev/null 2>&1

   eend $?

}
```

/etc/init.d/hostapd.lanAp :

```
#!/sbin/runscript

# Copyright 1999-2011 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/files/hostapd-init.d,v 1.3 2011/09/25 14:03:46 gurligebis Exp $

extra_started_commands="reload"

depend() {

   local myneeds=

   for iface in ${INTERFACES_LANAP}; do

      myneeds="${myneeds} net.${iface}"

   done

   [ -n "${myneeds}" ] && need ${myneeds}

   use logger

}

checkconfig() {

   local file

   for file in ${CONFIGS_LANAP}; do

      if [ ! -r "${file}" ]; then

         eerror "hostapd configuration file (${CONFIG}) not found"

         return 1

      fi

   done

}

start() {

   checkconfig || return 1

   ebegin "Starting ${SVCNAME}"

   start-stop-daemon --start -N 5 --exec /usr/sbin/hostapd \

      -- -B ${OPTIONS} ${CONFIGS_LANAP}

   eend $?

}

stop() {

   ebegin "Stopping ${SVCNAME}"

   start-stop-daemon --stop --exec /usr/sbin/hostapd

   eend $?

}

reload() {

   checkconfig || return 1

   ebegin "Reloading ${SVCNAME} configuration"

   kill -HUP $(pidof /usr/sbin/hostapd) > /dev/null 2>&1

   eend $?

}
```

/etc/hostapd/hostapd.anonAp.conf :

```
interface=anonAp

bridge=anonBr

driver=nl80211

logger_syslog=-1

logger_syslog_level=2

logger_stdout=-1

logger_stdout_level=2

dump_file=/tmp/hostapd.anonAp.dump

ctrl_interface=/var/run/hostapd.anonAp

ctrl_interface_group=0

ssid=AP2

#country_code=IT

#ieee80211d=1

hw_mode=g

channel=6

beacon_int=100

dtim_period=2

max_num_sta=255

rts_threshold=2347

fragm_threshold=2346

macaddr_acl=0

auth_algs=3

ignore_broadcast_ssid=0

wmm_enabled=1

wmm_ac_bk_cwmin=4

wmm_ac_bk_cwmax=10

wmm_ac_bk_aifs=7

wmm_ac_bk_txop_limit=0

wmm_ac_bk_acm=0

wmm_ac_be_aifs=3

wmm_ac_be_cwmin=4

wmm_ac_be_cwmax=10

wmm_ac_be_txop_limit=0

wmm_ac_be_acm=0

wmm_ac_vi_aifs=2

wmm_ac_vi_cwmin=3

wmm_ac_vi_cwmax=4

wmm_ac_vi_txop_limit=94

wmm_ac_vi_acm=0

wmm_ac_vo_aifs=2

wmm_ac_vo_cwmin=2

wmm_ac_vo_cwmax=3

wmm_ac_vo_txop_limit=47

wmm_ac_vo_acm=0

ieee80211n=1

ht_capab=[HT40-][SHORT-GI-40][DSSS_CCK-40]

eapol_key_index_workaround=0

eap_server=0

own_ip_addr=127.0.0.1

wpa=2

wpa_passphrase=la_mia_chiave_non_la_condivido

wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256

rsn_pairwise=CCMP
```

/etc/hostapd/hostapd.lanAp.conf :

```
interface=lanAp

bridge=lan

driver=nl80211

logger_syslog=-1

logger_syslog_level=2

logger_stdout=-1

logger_stdout_level=2

dump_file=/tmp/hostapd.lanAp.dump

ctrl_interface=/var/run/hostapd.lanAp

ctrl_interface_group=0

ssid=AP1

#country_code=IT

#ieee80211d=1

hw_mode=g

channel=6

beacon_int=100

dtim_period=2

max_num_sta=255

rts_threshold=2347

fragm_threshold=2346

macaddr_acl=0

auth_algs=3

ignore_broadcast_ssid=0

wmm_enabled=1

wmm_ac_bk_cwmin=4

wmm_ac_bk_cwmax=10

wmm_ac_bk_aifs=7

wmm_ac_bk_txop_limit=0

wmm_ac_bk_acm=0

wmm_ac_be_aifs=3

wmm_ac_be_cwmin=4

wmm_ac_be_cwmax=10

wmm_ac_be_txop_limit=0

wmm_ac_be_acm=0

wmm_ac_vi_aifs=2

wmm_ac_vi_cwmin=3

wmm_ac_vi_cwmax=4

wmm_ac_vi_txop_limit=94

wmm_ac_vi_acm=0

wmm_ac_vo_aifs=2

wmm_ac_vo_cwmin=2

wmm_ac_vo_cwmax=3

wmm_ac_vo_txop_limit=47

wmm_ac_vo_acm=0

ieee80211n=1

ht_capab=[HT40-][SHORT-GI-40][DSSS_CCK-40] 

eapol_key_index_workaround=0

eap_server=0

own_ip_addr=127.0.0.1

wpa=2

wpa_passphrase=neanche_questa_chiave_condivido

wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256

rsn_pairwise=CCMP
```

Nel mio runlevel default ho aggiunto : net.anonBr, net.lan, openvpn.anonVpn, openvpn.lanVpn. Tutto il resto viene avviato automaticamente è in needed (net.lanAp, net.anonVpn, net.anonAp, hostapd.anonAp, net.eth0, hostapd.lanAp).

Credo di aver scritto tutto quello che può tornare utile, ho evitato di riportare le configurazioni di Openvpn e le regole di forwarding con Iptables (che in realtà uso per l'interfaccia anonBr) perchè troppo offtopic e per evitare di dilungarmi ulteriormente...

L'unico problema è che se uno delle interfacce presenti in uno dei bridges dovesse fallire, la rete per il bridge specifico non viene configurata e tutti i servizi dipendendi da net non vengono avviati... Di per se non è un problema, ma siccome a volte mi capita di fare dei piccoli cambiamenti alla configurazione, mi capita di commettere errori e di conseguenza di perdere l'accesso remoto... La soluzione in parte sarebbe quella di modificare gli script di avvio dei servizi e scollegarli dalla dipendenza da net; resta il problema che non so come fare nel creare una configurazione alternativa per eth0 nel caso il bridge lan fallisca. Se vi vengono in mente suggerimenti...

----------

## djinnZ

Ti ripeto che il mio problema, adesso, è contenuto nelle impostazioni del kernel relative alla rete ed in particolare CONFIG_BPF_JIT (se lo abilito con sysconfig sono proprio numeri).

Nessun warning se il modulo relativo al filtro non è attivo, alcuni filtri che semplicemente non funzionano etc. Molto dipende dal fatto che diverse opziojni sono deprecate per i devel del kernel ma a quanto pare non lo sono per i devel di iptables&c.

Ho capito qual è il problema ma al momento non ho voglia/tempo per applicarmi, per ora.

Per quanto riguarda i problemi con rfkill e le atheros tutto si riduce a  *Quote:*   

> CONFIG_CMDLINE="domdadm video=HDMI-A-1:d video=DVI-I-1:d drm_kms_helper.edid_firmware=VGA-1:edid/Samsung_S19B150N.bin video=VGA-1:e rfkill.master_switch_mode=2"

 

Sulla conf almeno da quello che ho capito neppure iw deve essere chiamato e per questo ho "!wireless".

Prova sulla scorta della mia.

Di certo il bridge va creato con la sola interfaccia ethernet (se c'è) o non va creato per niente (o dovresti solo crearlo vuoto). Deve essere hostapd ad inizializzare ed aggiungere al bridge le interfacce wifi. Così dovresti riuscire a riavviare hostapd senza tirare giù la rete.

Per la conf mi pare strano che non funzioni usare ln -s hostapd hostapd.xxx in init.d e due diversi file hostapd.xxx in conf.d. Qui aprirei un bug.

Quanto a wpa_supplicant lo ho installato perchè in caso di necessità uso la wifi al posto della ethernet per collegarmi ad internet. Ma non so perchè hostapd 2.o non vuol andare se anche wpa_supplicant non è alla 2.0. Boh...

----------

## doom555

 *djinnZ wrote:*   

> Ti ripeto che il mio problema, adesso, è contenuto nelle impostazioni del kernel relative alla rete ed in particolare CONFIG_BPF_JIT (se lo abilito con sysconfig sono proprio numeri).
> 
> Nessun warning se il modulo relativo al filtro non è attivo, alcuni filtri che semplicemente non funzionano etc. Molto dipende dal fatto che diverse opziojni sono deprecate per i devel del kernel ma a quanto pare non lo sono per i devel di iptables&c.
> 
> Ho capito qual è il problema ma al momento non ho voglia/tempo per applicarmi, per ora.

 

Mi è sfuggita la parte su CONFIG_BPF_JIT, in ogni caso non ne so nulla.

 *djinnZ wrote:*   

> Sulla conf almeno da quello che ho capito neppure iw deve essere chiamato e per questo ho "!wireless".
> 
> Prova sulla scorta della mia.

 

Provato, funziona anche a me!

 *djinnZ wrote:*   

> Di certo il bridge va creato con la sola interfaccia ethernet (se c'è) o non va creato per niente (o dovresti solo crearlo vuoto). Deve essere hostapd ad inizializzare ed aggiungere al bridge le interfacce wifi. Così dovresti riuscire a riavviare hostapd senza tirare giù la rete.

 

In  effetti sarebbe una soluzione quella di definire l'inizializzazione delle interfacce e l'aggiunta al bridge direttamente nello script di avvio di hostapd. Io ero fisato a voler definire tutto in /etc/conf.d/net, tempo fa avevo provato a definire una funzione failup() ma senza successo. Appena ne avrò voglia proverò...

 *djinnZ wrote:*   

> Per la conf mi pare strano che non funzioni usare ln -s hostapd hostapd.xxx in init.d e due diversi file hostapd.xxx in conf.d. Qui aprirei un bug.

 

A quanto pare, hostapd può gestire un con un solo processo direttamente più AP, quindi non c'è bisogno di avviarlo 2 volte, sarebbe sufficiente creare un secondo file di configurazione ed aggiungerlo In /etc/conf.d/hostapd. Nel mio caso, gli AP si trovano su due differenti bridge, per non far fallire l'avvio mi son trovato costretto a raddoppiare e personalizzare gli script di avvio.

----------

## djinnZ

Ricominciamo: hostapd se è definito bridge=vattelappesca chiama lui brctl ed aggiunge l'interfaccia al bridge.

Ed in conf.d/hostapd INTERFACES serve a definire quali servizi vanno avviati prima quindi ci vanno il bridge e le interfacce che vanno aggiunte, che non devono essere aggiunte al runlevel.

Se hai due interfacce wifi da mettere insieme allora neppure il bridge devi aggiungere (con rc-config per capirci) fa tutto l'initscript prima ed hostapd (il demone) dopo.

In generale in openrc se vuoi avere più istanze di un demone dovrebbe bastare creare un link simbolico in init.d e avviare i link simbolici che dovrebbero cercare in conf.d il file con il nome corrispondente. Se non è così è un bug.

Da quel che ho capito il tuo caso è quello di volere due interfacce di rete autonome, possibile che vuoi solo lan o solo anonBr attivi, quindi vuoi due istanze separate del demone. E la via in openrc dovrebbe essere quella che ti ho descritto. Inserire più configurazioni in CONFIGS="" serve per avere un'unica istanza quindi solo a risparmiare un poco di risorse presupponendo che al di là della configurazione di rete comunque le interfacce le vuoi o tutte attive o tutte giù.

Prova a creare un link simbolico (allo script hostapd) hostapd.lan in init.d ed un file hostapd.lan in conf.d.

Se /etc/init.d/hstapd.lan funziona caricando il corretto file di configurazione allora è tutto a posto.

Con le ultime versioni del kernel alcune cose sono cambiate nella configurazione di iptables e di sicuro il compilatore jit incluso nel kernel non funziona bene.

In sostanza CONFIG_BPF_JIT serve a velocizzare il firewalling ma a quanto pare manda in malora i messaggi di errore con il risultato che non si riesce a capire cosa non vada. A quanto pare i comandi legacy come -m state su alcune interfacce generano errore ma il cavolo del kernel se è attivo il compilatore si limita ad ignorare il comando senza alcun log, warning od errore.

Non sapendo cosa potesse essere il problema ammattivo dietro ad hostapd (che comunque non funzionava bene).

----------

## doom555

 *djinnZ wrote:*   

> Ricominciamo: hostapd se è definito bridge=vattelappesca chiama lui brctl ed aggiunge l'interfaccia al bridge.
> 
> Ed in conf.d/hostapd INTERFACES serve a definire quali servizi vanno avviati prima quindi ci vanno il bridge e le interfacce che vanno aggiunte, che non devono essere aggiunte al runlevel.
> 
> Se hai due interfacce wifi da mettere insieme allora neppure il bridge devi aggiungere (con rc-config per capirci) fa tutto l'initscript prima ed hostapd (il demone) dopo.
> ...

 

Testato, funziona, nessun bug! Avevo già provato in passato con i link simbolici ma senza successo... probabilmente dimenticavo di replicare il file di configurazione in /etc/conf.d/ e definivo tutto in un file (confuso dal plurale di INTERFACES e CONFIGS). Leggendo gli script di avvio,  ne avevo creati 2 modificati...

Anche la creazione dell''interfaccia e l'aggiunta al bridge da parte di hostapd funziona!

Thanks!

----------

## djinnZ

ok allora è certo che la documentazione è balorda.

Quando ho tempo apro un bug o mi cimento sul wiki.

Se non ti è di troppo disturbo vorrei sapere (se non hai già porovato) se hostapd funziona anche con una singola istanza (dovrebbe) anche se è ovvio che è scomodo per te.

----------

