25 aug. 2012

Vodafone K3772 conectare in Linux

Acum 2 zile am primit ca oferta modemul asta de la Vodafone. Pe cutie scrie ca nu e compatibil cu Linuxul, dar merge pe Windows si Mac. E compatibil cu MacOS? MacOS e la baza un fel de Unix. Linuxul e si el un fel de Unix. Primul gand pe care l-am avut: nu vad de unde nu ar merge si cu Linuxul!

Am ajuns acasa si l-am bagat in laptopul pe care rulez Archlinux. Nada :(. Nimic, canci, zero, nothing, keine. M-am chinuit cu usb_modeswitch si n-a vrut nenorocirea sa mearga. Am incercat modeseturi diferite, n-am reusit. Pana la urma l-am facut sa mearga in Linux.

Cititi in continuare intreaga poveste. Pentru nerabdatori, dati la final sa vedeti ce trebuie sa faceti sa mearga modemul in Linux.

Povestea mea incepe joi, intr-o zi cu soare si canicula, zi in care am fost sa-mi iau alt telefon. La magazin mi s-a facut o oferta, in care luam cu nush cat % mai ieftin (gen la aproape sfert de pretul la liber) telefonul, daca fac un abonament Combo la care mai primesc pe langa aia 500MB trafic pe luna, inca 750MB + modemul asta cu internet nelimitat pe el, pentru 15 lei in plus pe luna. 15 lei pentru toate alea si un telefon la sfert de pret? Eu zic ca merita, deci de ce nu?
Din pacate am plecat din magazin doar cu modemul, telefonul urmand sa vina zilele astea. Pentru ca in Romania un colet de la Arad ajunge la Bucuresti in 24 de H, in schimb un telefon de la sediul Vodafone la un reprezentant ajunge in 127. Ajuns acasa, am bagat modemul si n-a mers. Eram deja un pic dezamagit. Telefon canci, modem canci, macar puteam folosi cartela din el pe orice telefon.

Cand il conectez in Linux, mi se automonteaza partitia continuta de modem care are pe ea executabilele de Windows. Bleah.
Asa ca citind pe net si incercand mai multe variante, m-am decis ca fiind primul care incearca sa bage modemul asta in Linux, sa incerc faza cu USBSnoop pentru XP. Ma pun pe instalat un XP pe care-l am din 2007 de la MSDN intr-o masina virtuala. Bag stick-ul in el, USBSnoop pornit care raporteaza un device cu ID-ul 12d1:1526. La fel ca si Linuxul.

Incerc sa instalez cacatu' ala de program care are nevoie de nush ce .NET. Descarc dotnetfx, il instalez, restart la virtuala, incerc sa instalez iara. Runtime Error. Ba sa dea dracu'... Descarc vcrun6, rulez, incerc iara si in sfarsit imi porneste aplicatia. Ram pa pa pam. Odata pornita, se face schimbarea stickului din 12d1:1526 in 12d1:14cf. Opaaa, asta trebuie sa fie. Asta si urmaream. Am inregistrat, m-am uitat in log, am incercat acelasi lucru in Linux, nu mergea. Nu mergea pentru ca stringul care facea schimbarea era mascat. Nu mergea si nu mergea. In Linux mi-l vedea ca fiind alt modem, modem care nu mergea.

Si am dat peste unu cu un K3773. Am "furat" stringul de la el si am reusit sa-l fac pe al meu sa apara 12d1:14cf in Linux. Si tot degeaba. Se pare ca modeswitch-ul a fost facut corect, dar modulul cu care trebuie incarcat modemul este unul mai vechiut, nu usbserial, de care se foloseste usb_modeswitch.

Asadar, comenzile, rulate ca root:

usb_modeswitch -WD -v 12d1 -p 1526 -n -M 555342437f0000000002000080000a11062000000000000100000000000000 -I -w 500
modprobe option
echo "12d1 14cf" > /sys/bus/usb-serial/drivers/option1/new_id

Teoretic acuma toate modemurile USB de la Vodafone care sunt raportate ca 12d1:1526 ar trebui sa mearga dupa principiul de mai sus!

Dupa executarea comenzilor de mai sus, vi se va cere un PIN. Introduceti 1234 si aia e.
Acum puteti face reguli udev, folosi gnome-ppp sau orice aplicatie care se ocupa de managementul conectarii la internet.

Folositi urmatoarele setari:

Dialed number: *99#
Username: internet.vodafone.ro
Password: vodafone
APN: internet.vodafone.ro
PIN: 1234
PPP Methods: EAP, PAP, CHAP, MSCHAPv2, MSCHAP

IP-urile pentru gateway,dns, etc vi le luati automat.