Surf the web with an H3G datacard and Ubuntu 8.04

Dopo i post dedicati a come utilizzare dei comuni cellulari UMTS come modem in linux è finalmente giunto il momento di parlare di come far funzionare la datacard di tre.

La datacard di cui sono in possesso è una momodesign MD-@ (le momo colorate per intenderci) che è ufficialmente supportata in  Windows e OSx, tuttavia funziona senza particolari problemi anche in Linux.

La suddetta datacard è una versione rinnovata di un modello già presente e fra le novità introdotte figurano:

  • nuovo chip (quindi quando leggete qualche howto ingiro verificate che l’ID USB del dispositivo trattato combaci con quello del vostro altrimenti potreste avere qualche sorpresa spiacevole)
  • Rimozione dell’interruttore che permetteva di switchare fra la modalità disco esterno e la modalità modem (si perchè la datacard integra una memoria esterna in cui sono contenuti i driver per i sistemi operativi supportati ed appena inserita viene rilevata come un pendrive e non come un modem)

L’ultima modifica per l’utente di un qualsiasi sistema operativo non Microsoft costituisce un’inutile complicazione, gli stessi utenti di OSx (sistema operativo ufficialmente supportato) potrebbero avere problemi, visto che la guida d’installazione (quella ufficiale) per il loro sistema operativo ad un certo punto dice testualmente: “Sfilare il MD-@ dal MAC e riportare il commutatore su USB Modem” …ma se l’interruttore non c’è?!?!?!

Già a questo punto i più avranno capito la qualità del dispositivo e del supporto tecnico, il mio parere da acquirente è “comprate la datacard HUAWEI“, peggiore non può essere.

Passando al dunque: in rete ci sono parecchie guide che trattano la configurazione di questa datacard nelle sue varie incarnazioni e versioni. Molte propongono alcune ottimizzazioni che tuttavia richiedono la ricompilazione del modulo del kernel preposto alla gestione del dispositivo. Una delle modifiche suggerite è basata sull’ID USB del dispositivo (per questo ho detto di prestare attenzione all’ID) e quindi potenzialmente potrebbe richiedere modifiche che non tutti gli utenti sono in grado di apportare, quanto segue non richiede in alcun modo la ricompilazione di alcun modulo ed ha il vantaggio di funzionare sempre a prescindere dalla revisione hardware del nostro dispositivo.

Inoltre quanto segue resta valido e funzionante anche su Ubuntu 8.10 a differenza di quanto succede in altre guide in cui si fa utilizzare al dispositivo il modulo airprime (rimosso in Ubuntu 8.10) in abbinamento ad usbserial.

Ricordo che comunque anche nel caso in cui abbiate preferito seguire altre guide la sezione che riguarda la configurazione di wvdial è comunque valida.

Appena inserito la datacard nel PC dovete aspettare qualche secondo in cui il sistema operativo si occupa di montare il dispositivo come disco esterno con all’interno i driver per Windows, nel dmesg una volta che quest’operazione ha avuto termine dovrebbe comparire qualcosa di simile a quanto segue:

[  168.974855] usb 2-1: new full speed USB device using uhci_hcd and address 2
[  167.123092] usb 2-1: configuration #1 chosen from 1 choice
[  167.238925] usbcore: registered new interface driver libusual
[  169.267095] Initializing USB Mass Storage driver...
[  169.268732] scsi2 : SCSI emulation for USB Mass Storage devices
[  169.269430] usbcore: registered new interface driver usb-storage
[  169.269435] USB Mass Storage support registered.
[  169.269536] usb-storage: device found at 2
[  169.269538] usb-storage: waiting for device to settle before scanning
[  172.252194] usb-storage: device scan complete
[  179.873688] usb 2-1: reset full speed USB device using uhci_hcd and address 2
[  180.038820] scsi 2:0:0:0: CD-ROM            PHD      MMC Storage      2.31 PQ: 0 ANSI: 2
[  180.078770] sr1: scsi-1 drive
[  180.078836] sr 2:0:0:0: Attached scsi CD-ROM sr1
[  180.078880] sr 2:0:0:0: Attached scsi generic sg2 type 5
[  186.487239] sr 2:0:0:0: ioctl_internal_command return code = 8000002
[  186.487246]    : Sense Key : No Sense [current]
[  186.487252]    : Add. Sense: No additional sense information
...
[  187.126891] ISO 9660 Extensions: Microsoft Joliet Level 3
[  187.132888] ISOFS: changing to secondary root

Ora il dispositivo è stato rilevato, la sua ID USB la otteniamo con lsusb:

paolomargara@mrcrow:~$ lsusb
...
Bus 002 Device 002: ID 05c6:2001 Qualcomm, Inc.
...

Ora per poter avere un modem anzichè una memoria esterna è necessario espellere l’unità cdrom USB creata automaticamente, per farlo selezionare l’icona del disco che ci è stata creata sul desktop, click su tasto destro e premere “Espelli“, in alternativa possibile digitare alla console eject /dev/sr1 (dove sr1 fa riferimento all’unità disco creata). In dmesg dovrebbe comparire qualcosa di simile a quanto segue:

[  356.272860] usb 2-1: USB disconnect, address 2
...
[  357.756839] usb 2-1: new full speed USB device using uhci_hcd and address 3
[  355.903892] usb 2-1: configuration #1 chosen from 1 choice
[  357.944820] scsi3 : SCSI emulation for USB Mass Storage devices
[  357.969034] usb-storage: device found at 3
[  357.969040] usb-storage: waiting for device to settle before scanning
[  356.055584] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
[  356.058766] usbcore: registered new interface driver cdc_acm
[  356.058914] /build/buildd/linux-2.6.24/drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters

Ci verrà creato un device /dev/ttyACM0 che procederemo ad utilizzare da wvdial. Notare che l’ID USB cambia come da output di lsusb:

paolomargara@mrcrow:~$ lsusb
...
Bus 002 Device 003: ID 1e0e:3100
...

Configurazione di wvdial

Come dialer ho scelto di utilizzare wvdial per la sua facilità di configurazione e le feature che offre, per configurarlo è sufficiente inserire nel file /etc/wvdial.conf una sezione come la seguente:

[Dialer H3G]
Modem = /dev/ttyACM0
Modem Type = Analog Modem
Baud = 460800
Init1 = AT+CPIN=xxxx
Init2 = ATX3
Init3 = AT+COPS?
Init4 = AT+CGDCONT=1,"ip","datacard.tre.it"
Dial Command = ATM1L3DT
Carrier Check = on
Phone = *99#
Auto DNS = on
Check Def Route = on
Username = none
Password = none

Nel caso in cui anzichè utilizzare ttyACM0 utilizziate ttyUSB0 ovviamente ricordatevi di cambiare il campo Modem.

Nella stringa che contiene il PIN della USIM (Init1) è necessario sostituire xxxx con il PIN da noi utilizzato, nel caso in cui avessimo disabilitato il PIN sull’USIM semplicemente non inserite questa riga nel file di configurazione.

Come valore dell’opzione modem si è messa la porta seriale creata al punto precedente di questa breve guida. L’esempio si riferisce alla configurazione della connessione con tre come operatore.

Notare che la stringa che indica l’APN (Init4) cambia da operatore ad operatore, così come il numero da chiamare (al variare del numero da chiamare varia la stringa di inizializzazione Init4).

Per completezza riporto una tabella con gli APN dei principali operatori italiani con i relativi numeri da chiamare ed il valore della stringa di inizializzazione indicata col nome Init3.

Italian APN list
TIM ibox.tim.it
Vodafone web.omnitel.it
Wind internet.wind
3 tre.it – naviga.tre.it – datacard.tre.it
Phone Number & value for Init3
*99# AT+CGDCONT=1,”ip”,”APN”
*99***1# AT+CGDCONT=1,”ip”,”APN”
*99***2# AT+CGDCONT=2,”ip”,”APN”

Username e password possono assumere qualsiasi valore, io come valore ci ho messo none tuttavia sappiate che quei valori sono ininfluenti ai fini della connessione.

Ora per avviare la connessione è sufficiente digitare…

wvdial H3G

…per essere già online!!!

Related post:

Comments are closed.