Onda ET502HS su Sony Vaio VGN-NR21Z

Ven, 22/08/2008 - 21:18

Onda ET502HS su Sony Vaio VGN-NR21Z

Inviato da auris 8 commenti

Ho avuto tra le mani in questi giorni la scheda Express Card Onda ET502HS ed il portatile Sony Vaio VGN-NR21Z.

Visto che molti si accingono ad andare in vacanza e magari vorranno rimanere sempre connessi col nostro amato forum, la scheda in oggetto permette di collegarsi senza fili fino a 7.2 Mbps.
Nonostante sul sito della Onda Communication non venga riportata la compatibilità con Linux, è possibile utilizzare tale scheda col nostro pinguino.
Come ha segnalato più volte l'utente GizMo, tali dispositivi vengono visti dal kernel come CD-ROM virtuali nel momento in cui vengono collegati alla nostra Linux box.

Ecco il log di dmesg ottenuto dopo aver inserito la scheda nello slot del portatile:

[  346.135823] usb 6-2: new full speed USB device using uhci_hcd and address 2
[  346.288837] usb 6-2: configuration #1 chosen from 1 choice
[  346.295486] scsi6 : SCSI emulation for USB Mass Storage devices
[  346.296352] usb-storage: device found at 2
[  346.296357] usb-storage: waiting for device to settle before scanning
[  351.288140] usb-storage: device scan complete
[  356.888671] usb 6-2: reset full speed USB device using uhci_hcd and address 2
[  357.044195] scsi 6:0:0:0: CD-ROM            ONDA     USB Storage      2.31 PQ: 0 ANSI: 2
[  357.060078] sr1: scsi3-mmc drive: 0x/0x caddy
[  357.060170] sr 6:0:0:0: Attached scsi CD-ROM sr1
[  357.060242] sr 6:0:0:0: Attached scsi generic sg2 type 5
[  357.351851] usb 6-2: reset full speed USB device using uhci_hcd and address 2

Questo è invece il log del comando lsusb:

Bus 007 Device 001: ID 0000:0000  
Bus 001 Device 001: ID 0000:0000  
Bus 006 Device 002: ID 19d2:2000  
Bus 006 Device 001: ID 0000:0000  
Bus 005 Device 001: ID 0000:0000  
Bus 004 Device 001: ID 0000:0000  
Bus 003 Device 001: ID 0000:0000  
Bus 002 Device 001: ID 0000:0000

Per fare in modo che il device venga visto come modem dal kernel è necessario modificare gli identificativi USB. A tal proposito ho utilizzato il programma usb_modeswitch disponibile a questo indirizzo: usb_modeswitch.
La versione attualmente disponibile è la 0.9.4 che offre pieno supporto alla scheda in oggetto.
Scaricato l'archivio usb_modeswitch-0.9.4.tar.bz2, provvediamo ad estrarne il contenuto.
Copiano l'eseguibile usb_modeswitch in /sbin, mentre il file di configurazione usb_modeswitch.conf in /etc.
Per poter effettuare queste operazioni bisogna essere root.
Per i più pigri c'è la possibilità di scaricare il programma usb_modeswitch direttamente dal repository di Packman:
http://packman.links2linux.de/package/usb_modeswitch/

A questo punto modifichiamo gli identificativi USB della scheda in modo che venga vista dal kernel come modem e non come usb-storage.

Per fare questo usiamo l'eseguibile usb_modeswitch a cui passeremo gli identificativi corretti:

linux:/home/aurelio # /sbin/usb_modeswitch -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0002 -d 1

 * usb_modeswitch: tool for controlling "flip flop" mode USB devices
 * Version 0.9.4 (C) Josua Dietze 2008
 * Works with libusb 0.1.12 and probably other versions

Looking for target devices
 No target device found
Looking for default devices
 Found default devices (1)
Prepare switching, accessing latest device
Looking for active default driver to detach it
 OK, driver found ("usb-storage")
 OK, Driver "usb-storage" successfully detached
-> See /proc/bus/usb/devices (or call lsusb) for changes. Bye

Come possiamo osservare il comando usb_modeswitch permette di modificare gli identificativi USB della scheda e precisamente il vendorID ed il productID. I primi valori si riferiscono al vendorID e productID del dispositivo visto come CD-ROM, mentre gli ultimi due si riferiscono al device visto come modem (ho annotato gli identificativi presenti in Windows Vista e li ho confrontati con quelli presenti nel file di configurazione usb_modeswitch.conf). L'ultima opzione (-d 1) permette di rilevare il modulo usb-storage.

Ho notato che lo switch non avviene immediatamente, ma può essere necessario ripetere l'operazione un paio di volte, avendo cura di scollegare/collegare la scheda.
Questo è l'output del comando lsusb una volta modificati gli identificativi USB:

Bus 007 Device 001: ID 0000:0000  
Bus 001 Device 001: ID 0000:0000  
Bus 006 Device 004: ID 19d2:0002  
Bus 006 Device 001: ID 0000:0000  
Bus 005 Device 001: ID 0000:0000  
Bus 004 Device 001: ID 0000:0000  
Bus 003 Device 001: ID 0000:0000  
Bus 002 Device 001: ID 0000:0000

Per procedere alla configurazione della connessione ad internet è necessario passare i parametri corretti al modulo usbserial:

modprobe usbserial vendor=0x19d2 product=0x0002

Questo è il log di dmesg ottenuto dopo il caricamento del modulo usbserial:

[  882.161213] usb 6-2: new full speed USB device using uhci_hcd and address 4
[  882.305072] usb 6-2: config 1 has an invalid interface number: 3 but max is 2
[  882.305080] usb 6-2: config 1 has no interface number 0
[  882.318233] usb 6-2: configuration #1 chosen from 1 choice
[  960.322767] usbcore: registered new interface driver usbserial
[  960.322782] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[  960.322799] usbserial_generic 6-2:1.1: generic converter detected
[  960.322898] usb 6-2: generic converter now attached to ttyUSB0
[  960.322906] usbserial_generic 6-2:1.2: generic converter detected
[  960.322948] usb 6-2: generic converter now attached to ttyUSB1
[  960.322956] usbserial_generic 6-2:1.3: generic converter detected
[  960.323001] usb 6-2: generic converter now attached to ttyUSB2
[  960.323008] usbcore: registered new interface driver usbserial_generic
[  960.323010] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial Driver core

Come si vede, sono state create le nuove porte seriali /dev/ttyUSB0, /dev/ttyUSB1 e /dev/ttyUSB2.

Interroghiamo il modem tramite wvdial:

linux:/home/aurelio # wvdialconf /etc/wvdial.conf
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0   S1   S2   S3   
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB1<*1>: Modem Identifier: ATI -- Manufacturer: ONDA COMMUNICATION
ttyUSB1<*1>: Speed 9600: AT -- OK
ttyUSB1<*1>: Max speed is 9600; that should be safe.
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB2<*1>: ATQ0 V1 E1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB2<*1>: Modem Identifier: ATI -- Manufacturer: ONDA COMMUNICATION
ttyUSB2<*1>: Speed 9600: AT -- OK
ttyUSB2<*1>: Max speed is 9600; that should be safe.
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttyUSB1.
Modem configuration written to /etc/wvdial.conf.
ttyUSB1: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyUSB2: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

Per la nostra immensa gioia il sistema ha individuato un modem sulla porta seriale /dev/ttyUSB1.

Per testare la connessione ho usato come provider TIM e questo è il file di configurazione wvdial.conf:

[Dialer Defaults]
Init1 = AT+CFUN=1
Init2 = AT+CGDCONT=1,"ip","ibox.tim.it","",0,0
Modem = /dev/ttyUSB1
Phone = *99***1#
Idle Seconds = 300
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Password = tim
Username = tim

Questo è il log della connessione tramite wvdial:

linux:/home/aurelio # wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: AT+CFUN=1
AT+CFUN=1
OK
--> Sending: AT+CGDCONT=1,"ip","ibox.tim.it","",0,0
AT+CGDCONT=1,"ip","ibox.tim.it","",0,0
OK
--> Modem initialized.
--> Idle Seconds = 300, disabling automatic reconnect.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Sun Jul 27 15:05:40 2008
--> Pid of pppd: 10131
--> Using interface ppp0
--> local  IP address 217.202.219.147
--> remote IP address 10.64.64.64
--> primary   DNS address 213.230.128.222
--> secondary DNS address 213.230.129.94

Buona navigazione a tutti!

La presente guida è valida anche per i modem ONDA MT512HS e MT503HS.





Commenti

Ritratto di anubis
#1

Inviato da anubis il Sab, 23/08/2008 - 10:36.

USB_ModeSwitch rpm

ti do 9 solo perchè non mi hai chiesto di fare l'rpm.. arriverà presto Laughing Laughing

OpenSUSE Member,Packman Packager, Education Project Admin, LXDE Project Admin
Powered by http://en.opensuse.org/HP_Pavilion_dv6855el



Ritratto di Alfio
#2

Inviato da Alfio il Sab, 23/08/2008 - 15:23.

Re: USB_ModeSwitch rpm

Cè chi se la canta e se la suona Laughing
Per anubis ben venga rpm però cosi è molto utile lo stesso per imparare a compilare per il resto rpm è il massimo.
Complimenti auris era da tanto che non vedevo una tua guida....
Ciao



Ritratto di anubis
#3

Inviato da anubis il Dom, 24/08/2008 - 00:09.

Re: USB_ModeSwitch rpm

http://packman.links2linux.de/package/usb_modeswitch/

auris solo una cosa... nel mio rpm l'eseguibile è in /usr/sbin e non in /sbin

OpenSUSE Member,Packman Packager, Education Project Admin, LXDE Project Admin
Powered by http://en.opensuse.org/HP_Pavilion_dv6855el



Ritratto di francesco-81
#4

Inviato da francesco-81 il Mar, 23/06/2009 - 12:11.

configurazione operatore tre

Complimenti ottima guida!!
Qualcuno mi sa dare l'output del file di conf etc/wvdial.conf
usando l'operatore tre??
Grazie mille!!!



Ritratto di auris
#5

Inviato da auris il Mar, 23/06/2009 - 14:09.

Re: configurazione operatore tre

Init2 = AT+CGDCONT=1,"ip","datacard.tre.it"
Phone = *99#
oppure
Phone = *99***2#

Se sei stanco di virus e schermate blu passa a Linux



Ritratto di Safraco
#6

Inviato da Safraco il Mar, 23/06/2009 - 14:49.

Re: configurazione operatore tre

A me funziona con questo

Chi va per il sentiero si annoia.



Ritratto di Eto81
#7

Inviato da Eto81 il Gio, 23/07/2009 - 15:22.

Re: configurazione operatore tre

Volevo aggiungere che questa procedura funziona alla grande anche con la chiavetta usb MT503HS, sempre della Onda. Inoltre per chi usasse Kde e ha poca voglia di smanettare può usare kppp che è abbastanza facile da configurare e offre delle statistiche dettagliate sulla connessione.

Per configurare kppp faccio riferimento alla seconda parte di questo post(ovvero saltando l'uso di modprobe):
Onda MT503HS Howto



Ritratto di auris
#8

Inviato da auris il Ven, 24/07/2009 - 17:02.

Re: configurazione operatore tre

Grazie della segnalazione!

Se sei stanco di virus e schermate blu passa a Linux