venerdì 19 ottobre 2007

HOWTO:Installazione di un modem usb: il driver Eciadsl

Installare un modem USB su un pc con linux, risulta molto complicato perché, il più delle volte il cd di installazione non contiene i driver per linux, i driver sono introvabili o se vanno bene per una distribuzione non consentono il funzionamento del modem su un’altra. A questo problema ha cercato di ovviare un gruppo di programmatori (FlashCode, Jean-Sébastien Valette, Benoit Papillault, Crevetor, Laurent Wandrebeck) che ha messo in rete Eciadsl un driver per Linux onde consentire l’installazione di modem usb basati sul chipset Globespan. Sebbene la configurazione non sia semplice e a volte non vada a buon fine, seguendo queste indicazioni dovreste avere un modem USB ADSL funzionante. Cominciamo a procurare il necessario:
Trovate il driver a questo indirizzo:
http://eciadsl.flashtux.org

la lista dei modem supportati a questo:
http://eciadsl.flashtux.org/modems.php?lang=en&supported=yes

i drivers eciadsl qui :
http://eciadsl.flashtux.org/download/eciadsl-usermode-0.11.tar.bz2

i files synch aggiuntivi:
http://eciadsl.flashtux.org/download/eciadsl-synch_bin.tar.bz2

La lista delle diverse versioni dei drivers:
http://eciadsl.flashtux.org/download.php

In aggiunta, che non guasta, la documentazione in italiano:
http://eciadsl.flashtux.org/doc/eciadsl_install_it.txt
FAQ http://eciadsl.flashtux.org/faq.php?faq_lang=it

Prima di cominciare
E' necessario verificare se ci sia necessità di ricompilare il kernel, tenendo presente che alcune distribuzioni hanno già il kernel predefinito per l’installazione. Nel caso non fosse così, usate i tools eciadsl-probe-device e eciadsl-doctor. Per avviare questi tools basta digitarne il nome da terminale preceduto dal comando sudo o essere superuser. In caso quello che c’è da includere è:
I moduli per il supporto USB e i relative drivers, I moduli per il PPP.
Può capitare inoltre che il modem non si accenda all’avvio del sistema ed in quel caso bisogna rimuovere dabusb (con eciadsl-config-text o eciadsl-remove-dabusb che è in /usr/local/bin) in quanto, in questo caso il modem viene riconosciuto come periferica audio. Per ovviare a questo problema basta vedere in /etc/hotplug/ e cercare un file che si chiama blacklist che va editato e a cui va aggiunto dabusb. A questo punto occorre riavviare. Nel caso il file in questione non venisse trovato si può inserire questo comando: modprobe -r dabusb && rm -f $(modprobe -l | grep dabusb) && depmod –a
Importante:Se il kernel è stato compilato a mano rimuovere il supporto dabusb anche dalla configurazione del kernel.

Installazione pacchetto
A seconda del pacchetto che sarà scaricato si dovrà estrarre e installare usando questi comandi a seconda della versione. Il link lo trovate all’inizio della guida.
  • (.tar.gz): tar xvzf /path/eciadsl-usermode-Versione.tar.gz
  • Sorgenti (.tar.bz2): tar xvjf /path/eciadsl-usermode- Versione.tar.bz2
  • RedHat/Mandrake (.rpm): rpm -i /path/eciadsl-usermode- Versione -1.i386.rpm
  • Debian (.deb): dpkg -i /path/eciadsl-usermode_ Versione -1_i386.deb
  • Slackware (.tgz): installpkg /path/eciadsl-usermode- Versione -i386-1.tgz
    Per Gentoo (.ebuild): http://doc.gentoofr.org/Members/BeTa/eciadsl-gentoo-howto/view

    Compilazione
    # ./configure
    # make
    # make install

    Configurare il driver
    Ci sono 3 alternative per configurare il driver:
    • tool grafico => sudo eciadsl-config-tk
    • tool testuale => sudo eciadsl-config-text
    • editare il file di configurazione (con un qualunque editor testuale /etc/eciadsl/eciadsl.conf
    • Il tool grafico
      Per avviare il tool digitate dal terminale:
      sudo eciadsl-config-tk
      all’apertura della finestra (avremo come punto di riferimento la connessione con Alice):
      User: aliceadsl
      Password: aliceadsl
      VPI :8
      VCI:35
      questi 2 numeri sono quelli che in windows diamo come numero di telefono per la connessione ad Alice e sono scritti così: 8,35 Update Provider DNS Selezionare la casella “Update provider DNS” e scegliere il proprio provider nella lista. Se così non fosse inserire manualmente i server DNS nei campi sotto. Per Alice digitare:
      IT alice Telecom
      Provider DNS Inserire i DNS forniti
      Select your modem cercate il vostro modem nell'elenco e selezionatelo. Se il modem non fosse nella lista controllare al link dei modem supportati. Se il modem non si trovasse neppure lì abbandonate le speranze di poterlo configurare. Chipset Va verificato e in caso di dubbi visitare questo link:
      http://eciadsl.flashtux.org/modems.php?lang=en
      In ogni caso per i vecchi modelli dovrebbe essere GS7070 mentre per i nuovi GS7470
      VID1 VID2 PID1 PID2 per ottenere queste informazioni digitate:
      sudo eciadsl-probe-device
      Se il programma vi chiedesse quale device usb deve visionare, selezionate il modem e avreste i vostri VID e PID.
      ALT synch e ALT pppoeci
      Se il modem ha un chipset GS7070 i valori da inserire saranno 4 sia per il synch che per il pppoeci mentre se il chipset è GS7470 i valori saranno rispettivamente 5 e 1.
      Select a PPP mode
      selezionate VCM_RFC2364 che è la modalità predefinita.
      Use DHCP da selezionare solo se il provider us ail DHCP (in caso di dubbio lasciare deselezionato).
      Use Static IP da selezionare solo se si ha un ip statico.
      Vediamo adesso un esempio di file eciadsl.conf
      N.B. Tenete presente che questi valori sono puramente indicativi e servono a farsi un’idea del contenuto del file ricordando che ho preso ad esempio una connessione con Alice.
      VID1=0915
      PID1=8102
      VID2=0915
      PID2=8102
      MODE=VCM_RFC2364
      VCI=35
      VPI=8
      FIRMWARE=/etc/eciadsl/firmware00.bin
      SYNCH=/etc/eciadsl/gs7470_synch04.bin
      PPPD_USER=
      PPPD_PASSWD=
      USE_DHCP=no
      USE_STATICIP=no
      STATICIP=
      GATEWAY=
      MODEM=Modello del vostro modem
      MODEM_CHIPSET=GS7470
      SYNCH_ALTIFACE=5
      PPPOECI_ALTIFACE=1
      PROVIDER=IT..Alice Telecom
      DNS1=81.xx.xxx.xxx
      DNS2=151.xx.xxx.x

      Se tutto è andato a buon fine a questo punto si può digitare:
      # eciadsl-start
      E attendere la connessione.

      Problemi di sincronizzazione
      Può capitare che, nonostante si sia seguita la procedura correttamente, ci siano problemi di sincronizzazione. Da segnalare che se l'indicatore di sincronizzazione rallenta o si ferma per alcuni istanti non è il caso di allarmarsi: bisogna preoccuparsi solo se rimane fermo qualche minuto. I motivi dei problemi possono essere:
      1) non trova il synch.bin. In questo caso controllate che il file synch.bin sia nella giusta directory e che la sintassi sia corretta;
      2) parte e si blocca subito In questo caso state utilizzando un file synch che non va bene.
      3) parte va avanti, si blocca o dà messaggi di errore
      In tutti i casi sono problemi di sincronizzazione. Di conseguenza bisogna:
      Download .bin package da questo link:
      http://eciadsl.flashtux.org/download.php?lang=en&view=sync
      Decomprimere il pacchetto in /etc/eciadsl (come root):
      cd /etc/eciadsl && tar xvzf /path/eciadsl-synch_bin.tar.gz
      Eseguire eciadsl-config-tk o eciadsl-config-text e scegliere un altro file .bin
      Spegnere il modem: con modprobe -r usb-uhci (o usb-ohci), oppure scollegando/ricollegando il modem (cavo USB) perché in caso contrario verrà mantenuta in memoria la prededente impostazione.
      Eseguire eciadsl-start di nuovo.
      Se i problemi di sincronizzazione persistessero bisogna provare un altro file .bin a questa riga:
      # SYNCH=/indirizzo/indirizzo/gs7470_synchXX.bin
      Oppure usare questo script:
      eciadsl-probe-synch
      N.B. Per Alice ADSL :nella stessa directory nella quale si trovano i .bin si dovranno scompattare anche i drivers synch bin aggiuntivi, che verranno installati in un'altra directory "GS7470_SynchFiles" che contiene i synch aggiuntivi assolutamente necessari per connettersi alla rete alice adsl. In ogni caso il file che serve dovrebbe essere file synch04.bin del pacchetto aggiuntivo.

      Driver Eci per Windows
      Se nessun .bin funziona, si potrà creare il file. bin personalizzato sotto Windows o se non si è in possesso di un modem con chipset GS7470 seguendo questa procedura e solo se siete esperti: Come prima operazione si scarica il driver Eci per windows versione 1.06:
      http://eciadsl.flashtux.org/download/eci_drv_106_win.zip

      Modifica del driver
      Se il modem non ha uno di questi VID/PID, bisognerà modificare due file nel driver di windows:
      - VID1/PID1: 0547/2131, VID2/PID2: 0915/8000
      - VID1/PID1: 0915/0001, VID2/PID2: 0915/0002
      Ricordasi di verificare i propri VID/PID :
      http://eciadsl.flashtux.org/modems.php?lang=en
      E adesso passiamo alle modifiche :
      - nel file gafwload.inf, linea 24 :
      ExcludeFromSelect = USB\VID_0547&PID_2131
      sostituire con 0547 il proprio VID1 e con 2131 il proprio PID1

      - nel file gafwload.inf, line 30 :
      %GSILOAD.DeviceDescAnchor% = GSIUSBLDRANCHOR, USB\VID_0547&PID_2131
      sostituire con 0547 il proprio VID1 e con 2131 il proprio PID1

      - nel file gwausb.inf, linea 34 :
      ExcludeFromSelect = USB\VID_0915&PID_8000
      sostituire 0915 il proprio VID2 e con 8000 il proprio PID2

      - nel file gwausb.inf, linea 42 :
      %ADSLUSB.DeviceDesc% = ADSLUSB.gspnDefault, USB\VID_0915&PID_8000
      sostituire con 0915 il proprio VID2 e con 8000 il proprio PID2

      - nel file gwausb.inf, linea 58 :
      HKR, Ndi, DeviceID, 0, "USB\VID_0915&PID_8000"
      sostituire con 0915 il proprio VID2 e con 8000 il proprio PID2

      Installazione
      Lanciare setup.exe e segui le istruzioni.

      Sniffer USB
      Scaricare e installa l'ultima versione del pacchetto sniffer USB:
      http://benoit.papillault.free.fr/usbsnoop/
      e la documentazione:
      http://benoit.papillault.free.fr/usbsnoop/doc.php

      Sniffing di pacchetti USB da Windows
      • Deselezionare l'auto-connessione ad internet e scollegare tutte le periferiche USB ad eccezione del modem
      • Avviare lo sniffer e installare il filtro sul “modem Wan”, scollegare e ricollegare il modem.
      • Appena le luci rosse e verdi sono fisse, disinstallare i filtri.
      • I pacchetti sniffati dovrebbere trovarsi in C:\WINDOWS\usbsnoop.log
      • Riavviare il pc da Linux.
      • Conversione da log a .bin da Linux
        Montare la partizione di windows contente il file usbsnoop.log e copialo in una directory.
        Eseguire questo comando:
        eciadsl-vendor-device.pl usbsnoop.log -chipset=#YOUR_MODEM_CHISPET(dove inserirete il vostro chipset ).
        Eseguire questo comando:
        #BIN_FILENAME_CREATED# /etc/eciadsl/my_synch.bin
        sostituire #BIN_FILENAME_CREATED con il nome del file .bin creato
        ed eseguire eciadsl-config-text usando questo .bin.

        Ultime operazioni
        Disconnettere il modem, premere sul tasto Remove dabusb e poi Create config.
        A questo punto riconnettere il modem e provare ad avviare la connessione digitando da terminale:
        sudo eciadsl-start

        Diagnostica e risoluzione problemi
        Al momento che facciamo partire la connessione, il programma avvia 5 fasi:
        • Setting up USB support
        • Uploading firmware
        • Synchronization
        • Connecting to provider
        • Setting up route table
        Per passare da una fase all’altra è richiesta conferma o si passa alla fase successiva che comunque viene citata. Se ciò non avvenisse sarà evidente in quale passaggio si è verificato il problema.

        La disconnessione
        Per disconnettersi è sufficiente digitare dal terminale:
        sudo eciadsl-stop





        Fonti:
        http://eciadsl.flashtux.org/
        In particolare ho seguito di pari passo la loro guida per quel che riguarda la creazione del file .bin.

Nessun commento: