Modem ZTE MF100 - Xubuntu 9.04

 

Stanco di navigare sempre in 2G, ho deciso di acquistare un modem di un altra compagnia telefonica Brasiliana che garantisce la copertura del segnale 3G anche a casa mia, ovvero in mezzo alla Foresta Amazzonica, o giù di li.

L'apparecchio in questione è uno ZTE MF100, molto diverso come vedremo dai suoi parenti Huawey et simila. Purtroppo, nonostante la dichiarata compatibilità con Ubuntu 7.10 e la LTS 8.04, non succede nulla all'inserimento di questo modem. Niente descrizione del dispositivo, niente binding con i soliti devices ttyUSB*, niente USB-STORAGE. Per farlo funzionare dobbiamo ricorrere ad usb_modeswitch, un hack per GNU/Linux che è in grado di emulare alcune funzioni dei drivers per Windows, tra cui il riconoscimento della scheda microSD, e di commutare il segnale tra il modem e lo stesso storage usb. Questo, su Windows, avviene naturalmente, mentre con Linux non sembra commutare un bel nulla. Quello che mi dovrei aspettare è il funzionamento di default della microSD e la conversione in modem dopo avere lanciato usb_modeswitch. In realtà di base non funziona nulla, come già specificato, mentre lanciando usb_modeswitch si mettono a funzionare entrambi.

A parte queste "stranezze" vediamo come sistemare rapidamente questo modem per poterlo utilizzare con la nostra linux-box.

- Osservazioni

Usb_modeswitch non funziona con il kernel 2.6.30*. Per effettuare la prova ho dovuto quindi ripiegare sul 2.6.28-15-generic di Xubuntu 9.04. In questo caso non ho il supporto PAE per i miei 4GB di RAM, ma con GNU/Linux bisogna sempre scendere MOMENTANEAMENTE a compromessi.

- Output

Lanciamo lsusb:

 

Bus 002 Device 008: ID 19d2:2000

 Quando visualizziamo questo ID significa che il modem non sta comunicando. Scarichiamo quindi il pacchetto usb_modeswitch.

- Usb_modeswitch

Download usb_modeswitch-1.0.5.tar.bz2

Installiamo i pacchetti necessari:

 

sudo apt-get install libusb-dev libusb0

 

Scompattiamo l'archivio nella /home ed installiamo lo script:

 

tar xjvf usb_modeswitch-1.0.5.tar.bz2

 

 

cd usb_modeswitch-1.0.5

 

 

sudo make install

 

Ora dobbiamo aprire il file di configurazione ed abilitare il modello del nostro modem. Uso mousepad come editor, chiaramente useremo gedit o kate a seconda del desktop environment: gksu mousepad /etc/usb_modeswitch.conf Cerchiamo la riga con la parola chiave "MF628" ed eliminiamo i caratteri ";" e "#" in questa maniera:

########################################################
ZTE MF628+ (tested version from Telia / Sweden)
ZTE MF626

Contributor: Joakim Wennergren

DefaultVendor=  0x19d2
DefaultProduct= 0x2000

TargetVendor=   0x19d2
TargetProduct=  0x0031

MessageEndpoint=0x01
MessageContent="55534243123456782000000080000c85010101180101010101000000000000"

# if that command doesn't work, try the other ("eject")
MessageContent="5553424312345678000000000000061b000000030000000000000000000000"

Per una maggiore compatibilità creiamo un file .fdi per HAL:

gksu mousepad /usr/share/hal/fdi/information/20thirdparty/20-zte-mf626.fdi

All'interno scriveremo:

 

 











GSM-07.07

GSM-07.05

modem









 

Adesso siamo pronti per caricare il TargetProduct con usb_modeswitch. Sempre da terminale:

/usr/sbin/usb_modeswitch -W -c /etc/usb_modeswitch.conf

O più semplicemente

sudo usb_modeswitch

Attenzione all'output finale: Caso in cui l'esecuzione fallisce:

Trying to send the message to endpoint 0x01 ...
 Sending the message returned error -110. Trying to continue
-> Run lsusb to note any changes. Bye

Caso in cui l'esecuzione va a buon fine:

Trying to send the message to endpoint 0x01 ...
 OK, message successfully sent
-> Run lsusb to note any changes. Bye

Come suggerito, aspettiamo che il modem esegua un reset e lanciamo nuovamente lsusb per verificare il cambiamento di ID:

Bus 002 Device 008: ID 19d2:0031

Adesso dovrebbe apparire l'usb_storage (la microSD non è inclusa nella confezione) e dal dmesg noteremo:

[  299.151197] usb 2-4: generic converter now attached to ttyUSB0
[  299.151402] usbserial_generic 2-4:1.1: generic converter detected
[  299.151491] usb 2-4: generic converter now attached to ttyUSB1
[  299.151684] usbserial_generic 2-4:1.2: generic converter detected

Non ci rimane che utilizzare wvdial, dato che network-manager se la "dorme", per finalizzare la connessione. Riporto un esempio tratto dal mio file di configurazione:

 

[Dialer Defaults]
baud = 921600
username = vivo
stupid mode = on
dial command = ATDT
auto dns = off
init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
init1 = ATX3
init2 = ATQ0 V1 E1 S0=0 &C1 &D2
modem type = Analog Modem
isdn = 0
new pppd = yes
phone = *99#
modem = /dev/ttyUSB3
password = vivo
need root = on

- Maggiori informazioni su usb_modeswitch (che trovate anche nei repository di Debian e Ubuntu)

Hi. This blog is Drupal

Hi. This blog is Drupal platform ?

drupal

Yes..

E se il comando fallisce?

ciao, tutto bello, anche io ho un modem del genere ma....
se si ricade nella casistica in cui lo switch miseramente fallisce cosa si fa?
è il caso in cui con i kernel nuovi di ubuntu (2.6.31-15-generic) si deve "retrocedere"?

Grazie

maybe english version:
hi, everything like a charme. I do have a moden like your but...
if is the case of the error what is necessary to do?
Is it the case of the newer kernels of Ubuntu (2.6.31-15-generic) and we need to go back to 2.6.28?

thank you

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
20 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.