====== ACX100/ACX111 ====== //Nota: Questa pagina parla dei vecchi driver acx100/acx111. Per i nuovi driver basati su mac80211, vedere [[:acx1xx]].// ===== ATTENZIONE!!! ===== **C'è una controversia legale sullo sviluppo di questo driver, vedere la [[http://kerneltrap.org/comment/reply/6692|mailing list]] wireless per maggiori informazioni. Leggere [[http://acx100.sourceforge.net/wiki/History#Kernel_inclusion|kernel inclusion section]] per maggiori informazioni sul precedente tentativo di includere questi driver nel kernel. ** ===== Stato del driver ===== Questo è un piccolo report sui driver acx. Leggere [[http://forum.aircrack-ng.org/index.php?topic=2216.msg12412#msg12412|questo thread]] per maggiori informazioni. Esistono 3 versioni del driver: - plain - SoftMac - mac80211 Al momento la release stabile del driver "plain" è la v0.3.36 (acx-20070101) e funziona con le versioni del kernel >= 2.6.10. Per il kernel 2.6.21-22, è richiesta la patch: http://acx100.sourceforge.net/wiki/Patch_2.6.22 Questo driver non supporta WPA. Il driver può essere patchato per l'injection con le istruzioni riportate di seguito in questa pagina. La versione SoftMac è deprecata e non più aggiornata ormai. La [[:acx1xx|versione mac80211]] è ancora beta. Richiede una versione di kernel >= 2.6.18 (con il supporto per mac80211). Partendo dalla 2.6.27, sarà integrata nel kernel. A partire dalla versione 2.6.23, è stata inserita nel kernel una patch per l'injection direttamente nello stack mac80211. Per effettuare l'attacco fragmentation, è richiesta una patch aggiuntiva. Per maggiori informazioni vedere [[:mac80211]]. Tutte le versioni richiedono il firmware non-GPL in /lib/firmware/, che è possibile trovare online. Leggere: http://acx100.sourceforge.net/wiki/Main_Page ===== Installazione del driver ===== Per prima cosa è richiesta una versione del kernel >= 2.6.10: ifconfig wlan0 down rmmod acx wget http://www.cmartin.tk/acx/acx-20070101.tar.bz2 tar -xjf acx-20070101.tar.bz2 cd acx-20070101 wget http://patches.aircrack-ng.org/acx-20070101.patch patch -Np1 -i acx-20070101.patch make -C /lib/modules/`uname -r`/build/ M=`pwd` modules make -C /lib/modules/`uname -r`/build/ M=`pwd` modules_install modprobe acx nota: se il codice non funziona, gli utenti Ubuntu potranno modificare le seguenti righe: make -C /lib/modules/`uname -r`/build/ M=`pwd` modules make -C /lib/modules/`uname -r`/build/ M=`pwd` modules_install e sostituire `uname -r` con il nome del kernel utilizzato. Il motivo di tutto ciò è che le directory dei moduli del kernel (ovvero ciò che restituisce il comando /lib/modules/`uname -r`/) attuale non contengono il link simbolico "build" usato per la compilazione, e quindi non viene trovato nessun makefile dal comando make. Solo /lib/modules/2.6.20-16-generic/ contiene un link simbolico chiamato "build" che assicura la presenza del makefile. esempio: dal 26 Giugno 2007, sotto Ubuntu 7.04 "Feisty Fawn", le righe corrette dovrebbero essere le seguenti: make -C /lib/modules/2.6.20-16-generic/build/ M=`pwd` modules make -C /lib/modules/2.6.20-16-generic/build/ M=`pwd` modules_install ====== Risoluzione dei problemi ====== ===== FAILED to free any of the many full tx buffers ===== Si ottiene un messaggio del kernel simile al seguente: Jul 3 00:44:12 ubuntop kernel: [ 736.008000] wlan0: FAILED to free any of the many full tx buffers. Switching to emergency freeing. Please report! Jul 3 00:44:12 ubuntop kernel: [ 736.008000] wlan0: tx timeout! Dall'autore della patch: E' un problema con il driver che ho visto diverse volte durante la scrittura della patch per acx111. Funziona così: Ogni pacchetto trasmesso alloca un buffer tx, in modo da iniziare a riempire l'intero buffer fino alla sua liberazione, e quello è il punto. Non averlo liberato in tempo. Una volta raggiunto il limite ed aver utilizzato tutti i buffer disponibili, non funzionerà più fino al ricaricamento del driver. Egli attende per un messaggio TX_COMPLETE... Possibili soluzioni (nulla di certo, solo prove): * Questo accade quando si utilizza il driver non patchato, occorre infatti controllare ed assicurarsi di utilizzare il driver patchato: guardare il buildtime, rimuovere tutti i moduli acx, assicurarsi che il modulo personalizzato sia inserito nel percorso corretto /lib/modules/`uname -r`/ * Utilizzare aireplay-ng 0.8 o superiore, poiché hanno integrato un supporto indiretto dell'injection per acx (inviando più pacchetti ack) * Cambiare il mac dell'hardware con fakemac usando l'opzione "-h"