Inserisco qui dopo alcuni mesi, quindi le persone che vorrebbero implementarlo su un dispositivo Android potrebbero essere aiutate.
C'è un modo per avere un chip wireless funzionante in modalità ibrida, sia con modalità stazione (STA) e la modalità punto di accesso (AP) abilitata.
Per fare ciò, ho sostituito il driver wireless del mio chip con un driver wireless multi-role
. Fortunatamente, il mio chip supportava questa modalità, tuttavia non è il caso di tutti i chip wireless. Il mio chip è un chip basato su TI (wl1271), il multi ruolo era supportato, sebbene non fosse disponibile con il driver precedente.
Una volta ho ottenuto questo nuovo driver, ho dovuto ricompilare lungo con il mio kernel in modo da avere la .ko
del driver wireless ed i relativi mac80211
e cfg80211
moduli (che fornisce le API necessarie per il nuovo driver) generati. L'ultimo passaggio è stato l'aggiornamento di wpa_supplicant
e hostapd
con una versione personalizzata con patch fornita da TI.
Anche in questo caso, per le persone interessate in wl1271
solo qui sono i driver/strumenti che ho usato corrispondente e hanno riferito di lavorare su Android 4.0.4 ICS:
https://github.com/TI-OpenLink/hostap/tree/ol_R5.SP3.01
https://github.com/TI-OpenLink/iw/tree/ol_R5.SP3.01
https://github.com/TI-OpenLink/ti-utils/tree/ol_R5.SP3.01
https://github.com/TI-OpenLink/wl12xx_target_scripts/tree/ol_R5.SP3.01/sta
https://github.com/TI-OpenLink/compat/tree/ol_R5.SP3.01/
https://github.com/TI-OpenLink/compat-wireless/tree/ol_R5.SP3.01/
Se c'è un pilota a più ruolo per il tuo chip wireless, potrebbe essere la pena di scoprire quale versione o patch di wpa_supplicant e hostapd si deve utilizzare, e compilarli/provarli.
Alla fine del processo, ho avuto accesso a due interfacce di rete (wlan0 e wlan1) e ho potuto avviare wpa_supplicant su wlan0 e hostapd su wlan1.
Si riferisce effettivamente a ciò che volevo. Tuttavia, WDS sembra avvolgere molti concetti e protocolli. Volevo solo alcuni semplici consigli su come farlo senza avere un sistema di condivisione AP completo. Alcuni consigli su come farlo con l'API di Android (sembra non implementata) o elettronicamente (magari usando un secondo dispositivo wifi) -> e come farlo in Android senza cambiare il kernel :). –
@HQarroum La mia comprensione (e non sono un esperto su questo) è che avresti bisogno almeno di un AP compatibile con WDS e di un'implementazione compatibile di WDS in Android. Penso che questo non sia attualmente implementato in Android, e quindi richiederebbe una codifica di livello abbastanza basso ... – jhonkola
Grazie mille! Investigherò su questo più profondamente :) –