Qualcomm gobi 2000 GNU/Linux thinkpad x201/x100

Pré requis

Cette carte fonctionne actuellement sur la distribution Gentoo Linux.
La version du kernel est un : 2.6.36.1
Tous les programmes sont dans les toutes dernières version disponible à l’heure ou j’écris ses lignes.

Petite Histoire

Donc j’ai décidé de changer d’ordinateur portable récemment.
Mon dévolu s’est naturellement posé sur le Lenovo x201 thinkpad , car c’est le seul qui me paraissait répondre à tous mes critères de choix d’ordinateur portable.

Petit, beaucoup de batterie, costaud, avec un modem 3G intégré, une carte ethernet Gbps, un écran opaque, et pas les merdes qui brillent que je ne supporte pas.
le x201 était destiné à remplacer un x300 commençant à vieillir, mais qui marchait bien, jusqu’à ce que le AHCI commence à faire des choses bizarre avec le disque SSD.

Réception de la bête et déboire 3G

Je reçois le x201
Je gicle cash Windows Seven du disque dur.
Je boot sur un livecd gentoo la machine.
J’install mon OS.
Je compile mon noyau aux petits oignons (comme pour chaque nouveau portable que je reçois).

Et là c’est le drame !
Le support de la carte 3G Qualcomm gobi 2000 est plus que merdique sous Linux !
Tout à l’air de bien marcher, mais la 3G c’est l’horreur.

J’avais une carte Seria Wireless 3G sur mon x300 qui fonctionnait du feu de dieu.
Avoir une carte 3G intégré c’est vraiment génial, pas besoin d’avoir de clée USB qui mange toute ta batterie, qui est moche, et que tu dois trimballer dans tous tes déplacements.

La carte Seria Wireless était vraiment super bien supporté, voir :

http://bragon.info/wiki/doku.php?id=pppd_sierra-wireless_sfr_x300

La clée SFR fourni avec le eeepc 7″ était vraiment bien supporté par le noyau Linux.
Mais la ma nouvelle gobi 2000 c’est la merde.
Voir même la grosse merde !

Faire fonctionner cette putain de carte 3G sur mon GNU/Linux, pas une option, une NÉCESSITÉ

Impossible de faire l’impasse sur cette carte 3G.
Il *FAUT* que ça marche.
On ne change pas de portable pour subir une régression !
Mes astreintes m’obligent à pouvoir me connecter de partout, je ne peux pas y couper, et revenir en arrière avec la clée 3G USB blanche toute moche, c’est hors de question dans mon petit esprit étriqué Geek.

La, commence le parcours du combattant cérébralement.
Beaucoup de temps perdu.
Beaucoup d’efforts.
(Merci à ma copine de m’avoir supporté durant ce moment très difficile ;p ).

Étapes, Espoirs, Déceptions, Automatisation,

Découverte de la dure vérité

Jouissant de l’expérience de mon x300 avec sa carte Seria Wireless je m’attelle donc à ce que je sais faire.

lsusb :

diantre bragon # lsusb | grep Qualcomm
Bus 002 Device 003: ID 05c6:9204 Qualcomm, Inc.

diantre bragon # ls /dev/ttyUSB*
/dev/ttyUSB0

Cool je vais pouvoir me connecter, la carte à l’air parfaitement reconnu !!!

Je lance un screen sur /dev/ttyUSB0 (voir la doc pour faire fonctionner la carte Seria Wireless ici

C’est quoi ce délire ?
Je ne peux pas écrire sur le port série de la carte 3G ?
Bon, ça va être la chienli, là, je le sent !

J’ai même tenté de démonter la carte 3G seria Wireless de mon x300 pour la monter dans le x201 sans succés.

Le bios des Lenovo est bridé et bloqué pour ne pas qu’on puisse changer le hardware des models.

Recherches !

Je sors mon arme ultime !
GOOOOOOOOOOOGLE

Ma première recherche me permet de comprendre que le device que je vois via la commande lsusb : 05c6:9204 est en faite un périphérique de “controle” et en aucun cas un modem 3G.
Le modem 3G doit apparaitre dans lsusb sur l’id : 05c6:9205

Je tombe sur cette documentation du wiki thinkwiki :
http://www.thinkwiki.org/wiki/Qualcomm_Gobi_2000

ainsi cela me permet de lire ceci :

The firmware for this device is not publicly downloadable and currently must be obtained from a windows installation. The firmware consists of 3 parts:

* amss.mbn (firmware stage 1)
* apps.mbn (firmware stage 2)
* UQCN.mbn (formware stage 3) – includes configuration and carrier specific settings)

GENIAL J’AI SUPPRIME MON WINDOWS MOI !!
Bon … là j’ai eu une sacrée chance.
J’ai récupéré les fichiers depuis un Lenovo thinkpad x100e qui trainait chez moi, sous windows, pour une raison que je n’expliquerai pas ici :) (Ma copine à ce laptop, et n’a pas encore été installé sous GNU/Linux)
Une copie sur clée USB plus tard des fameux firmware proprio des firmware USB 3G, j’ai tout ce qu’il faut pour avancer !!!

Je place donc comme le dit la doc les fichiers pourraves dans /lib/firmware/gobi

Pour SFR voici les fichiers qu’il vous faut :


bragon@diantre /lib/firmware/gobi $ md5sum *.mbn   
c3d6fd93ae2e52775ef9cd8fccbc20be  UQCN.mbn
84d002b0ef003cde6c95826bfbf067fe  amss.mbn
d7496085f1af3d1bfdf0fa60c3222766  apps.mbn

Je paufine mon fichier : /etc/udev/rules.d/60-gobi.rules

# udev rules for firmware loading on qualcomm gobi devices

ACTION=="add", SUBSYSTEM=="tty" KERNEL=="ttyUSB*" GOTO="gobi_rules"

GOTO="gobi_rules_end"

LABEL="gobi_rules"

ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9204", RUN+="/home/bragon/gobi/gobiloader/gobi_loader $env{DEVNAME} /lib/firmware/gobi"
ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9205", RUN+="/home/bragon/gobi/gobiloader/gobi_loader $env{DEVNAME} /lib/firmware/gobi"

J’ai du placer un gobiloader non officiel pour que ma carte soit supporté.
Je l’ai mis dans /home/bragon/gobi/gobiloader (mettez le ou vous voulez).
Vous pouvez récupérer le gobi_loader patché pour cette carte pourrave ici :
http://www.codon.org.uk/~mjg59/gobi_loader/

Bon, un reboot plus tard, ma carte est détecté et supporté !
ENFIN

it works

Mon script wvdial


[Dialer Defaults]               
Init2 = ATQ0 V1 E1 +FCLASS=0    
Modem Type = Analog Modem       
ISDN = 0                        
Init1 = ATZ                     
Modem = /dev/ttyUSB0
Baud = 9600

[Dialer pin]
Init1 = AT+CPIN="0000"

[Dialer SFR]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 = AT+CGDCONT=1,"IP","slsfr"
Stupid mode = 1
New PPPD = yes
Phone = *99#
Username = vodaphone
Password = vodaphone
Stupid mode=1
Check Def Route = 1

Mise à feu ! (et à sang)

wvdial pin


diantre wifi # wvdial pin
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: AT+CPIN="0000"
OK
--> Sending: ATQ0 V1 E1 +FCLASS=0
ATQ0 V1 E1 +FCLASS=0
OK
--> Modem initialized.

wvdial sfr

--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2
ATQ0 V1 E1 S0=0 &C1 &D2
OK
--> Sending: AT+CGDCONT=1,"IP","slsfr"
AT+CGDCONT=1,"IP","slsfr"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 7200000
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Sun Nov 28 19:54:33 2010
--> Pid of pppd: 6633
--> Using interface ppp0
--> local  IP address 10.240.192.86
--> remote IP address 10.64.64.64
--> primary   DNS address 10.11.12.13
--> secondary DNS address 10.11.12.14

Bibliographie

http://blogs.gnome.org/dcbw/2010/04/15/mobile-broadband-and-qualcomm-proprietary-protocols/

http://www.thinkwiki.org/wiki/Qualcomm_Gobi_2000

https://www.codeaurora.org/patches/quic/gobi/2010_Oct_19/

http://www.blinkenlights.ch/ccms/linux/vaio-w.html

One Response to “Qualcomm gobi 2000 GNU/Linux thinkpad x201/x100”

  1. Yannick Says:

    Excellent nom de machine, choisi avec goût.