Thursday, April 9, 2009

Lenovo laptoper med Telenor 3G og Linux

Så,

I februar postet jeg om 3G støtten i nyere Lenovo laptoper (siden rett før nyttår 2009 tror jeg). Dette er laptoper hvor det følger med gratis Telenor abonnement i 3 måneder. 3G hardwaren i maskinene er tilstrekkelig forskjellig til at standard programmene i Ubuntu Intrepid ikke virker. Ikke Jaunty heller vil jeg tro - uten at jeg har testet ennå. Den forrige blog-posten min dekket basisen i hvordan en får hardwaren opp på 3G slik at en kan bruke pppd - men det mangler noen deler for å komme "rett opp" på Telenor Trådløst Bredbånd. De følger her. Delene som følger her er litt Thinkpad spesifikke fordi de manipulerer Thinkpad sin ACPI til å skru av og på 3G hardwaren.

Jeg ville kunne koble meg til og fra og bruke hardwaren uten å måtte gi kommandoer med sudo eller i en root tty. Derfor har jeg gått til det skritt å lage .desktop filer som starter fine script - hvertfall under KDE, trolig også Gnome. De bruker gksudo til å få root - som scriptene tross alt må kjøres som, og så smelles det opp et log vindu med xterm (konfigurertbart) som viser hvordan det går med scriptet.

Script pakken min, versjon 0.1, er publisert på http://hjemme.langfeldt.net/3G.tar.gz - det er sent på kvelden i påska, det kan opplagt være feil O:-) - post kommentarer eller send meg epost på janl(måtte-nøkken-ta-spammere)redpill-linpro.com

Framgangsmåte:

  1. Registrer SIM-kortet ditt hos Telenor
  2. Mens du venter på bekreftelse (da jeg registrerte meg elektronisk tok det flere dager) kan du lese resten av framgangsmåten og forberede deg mentalt.
  3. Som root og stående i / pakker du opp tar filen som du hentet over (det er litt uforsiktig å gjøre slikt uten å undersøke innholdet i tar filen først, den kunne f.eks. ha erstattet passord-filen din. Men det tenkte du sikkert på ;-)
  4. Kikk på /etc/thinkpad/.resources/settings.sh - bruken av den er langt fra gjennomført i scriptene og oppsett-filene, men det gir deg en ideé.
  5. Dersom du ikke erstatter TERMINAL kommandoen med noe annet enn xterm må du installere pakken som inneholder xterm i distribusjonen din. I Ubuntu heter pakken "xterm".
  6. I /etc/ppp/peers/3G erstatter du verdiene på slutten av "name" og "password" linjene med nummeret du fikk av Telenor. Verdien som står i filen er riktig for MEG, trolig virker de overhodet ikke for DEG, men hvem vet om Telenor faktisk sjekker slikt.
  7. Så kan du ta en kikk på /etc/ppp/3G-connect. Sammenholder du den med http://www.natisbad.org/E4300/Dell_Wireless_5530_AT_cmd_ref.html kan det være at du blir klokere. Og du kan bestemme om kortet ikke skal forsøke seg med både WCDMA og GSM, men tvinge det til å bruke den ene eller den andre.
  8. I KDE 4 finnes det et widget/en plasmoid (dock-bar-applet tror jeg det heter i Gnome) som heter "Quick Access" ("folder view" kan også brukes, men da få du ikke byttet ikon på den). Den kan du legge til panelet ditt. Så høyre-klikker du på den og endrer pathen den viser til /etc/thinkpad og ikonet til /etc/thinkpad/.resources/thinkpad_logo-trans.gif, view mode til Icon Mode og Icon Size til f.eks. 32 slik at du kan se ikonene. Dette gjør at jeg får et ThinkPad ikon i panelet, og når jeg klikker på det popper det opp et lite vindu med 5 ikoner i. Det finnes sikkert noe liknende i Gnome.
  9. Det gøyeste ikonet er "Connect 3G". Klikker du på det spretter en liten xterm opp som viser hvordan oppkoblingen går. Etter ikke alt for mange sekunder blir det lys i et nytt antenne ikon nederst på skjermen din og i xtermen kommer oppmuntrende tekst slik som dette:

Waiting for ACM devices
...
Waiting for ACM devices
Turning on radio (GSM/WCDMA)
RADIO ON - Connecting
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyACM2
CHAP authentication succeeded: Congratulations!
CHAP authentication succeeded
Could not determine remote IP address: defaulting to 10.64.64.64
Cannot determine ethernet address for proxy ARP
local IP address 77.17.195.246
remote IP address 10.64.64.64
primary DNS address 130.67.15.198
secondary DNS address 193.213.112.4

For å avslutte ppp forbindelsen trykker du på ^C. Vinduet avslutter og etter en kort stund slukker 3G-antenne-lampen nederst på skjermen.

Det er et umtsmon ikon også. Dersom du har umtsmon installert vil det starte opp 3G-radioen og så starte utsmon. Når du avslutter umtsmon - programmet henger antaklig ved avsluttning, må du skru av 3G-radioen selv: Når du klikker på Thinkpad-ikonet du laget tidligere et det en "scripts" mappe. Den kan du åpne, og fra den kjører du scriptet som heter "Disable_3G-GPS". Nedi scripts-mappen ligger forresten noen delscript som kan gi deg ideer. Jeg laget bare ikoner for de jeg syntes var viktigst.

God påske!

Ericsson Mobile Broadband Module F3507g

Umtsmon is a very nice application for wireless broadband on GSM/WCDMA (alias UMTS of old) based devices that looks like AT-command modems. As I wrote earlier (norwegian) I have a wireless broadband device of that kind. Since it's easter I've been able to debug my scripts and can say definitly that it works - and how. So I just posted this to umtsmon-develop:

---
Hi again,

Since I'm not on the list you may have figured this out already without me knowing. But here I go anyway.

Nicolai Langfeldt wrote:
> following 3g device in a lenovo t400 laptop.
>
> lsusb:
> Bus 008 Device 002: ID 0bdb:1900 Ericsson Business Mobile Networks BV

It is also known as the more google-able "Ericsson Mobile Broadband Module F3507g". At least two colleagues have differently lettered, but recent Lenovos for the Norwegian market with this hardware. Google says the hardware is also found in Dell machines.

> It publishes 10 USB serial devices. /dev/ttyUSB2 and /dev/ttyUSB4 can be talked to (I have no other serial USB on this machine).

This device has proven to support pppd quite nicely (and also GPS, but that's out of scope for umtsmon I think :-).

* First of all it will only work if used with the cdc-acm (loaded name cdc_acm) tty driver. No chance with the usb-serial/option combo. Some versions of the option driver has the usb id listed and causes autoload. From what I see from some mailing list archives this should soon be fixed.

modprobe -rv option
modprobe -v cdc-acm

The device names are /dev/ttyACM[012]. Each device works the same, but for example you can run some AT commands to make the connected tty into a GPS device spouting NEMA strings. So it can work as a GPS on ACM0 and a 3G device on ACM1 at the same time. umtsmon sould be able to use two ACM devices, one for PPP and one for monitoring - I guess.

* Second, it has a somewhat peculiar AT command set: ATZ does not work. And radio has to be turned on with an explicit AT+CFUN=1 - Here is a pppd style chat script to enable radio and connect 3G:

---
TIMEOUT 30
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
SAY "Turning on radio (GSM/WCDMA)\n"
"" "AT"
OK "AT+CFUN=1"
+PACSP0 "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
SAY "RADIO ON - Connecting\n"
TIMEOUT 10
OK 'AT+CGDCONT=1,"IP","telenor"'
OK "ATM1L3DT*99#"
}
---

There is a CONNECT somewhere in the output stream after the final command but chat does not recognize it.

IF I initialize the device with the AT commands up to the "RADIO ON" message utmsmon works with it.

I sort of understand that the next two commands to select

* Thirdly: Here are some command references and more usage examples:

http://www.natisbad.org/E4300/Dell_Wireless_5530_AT_cmd_ref.html samt http://www.nabble.com/X301-Ericsson-Modul-f3507g-AT-Command-reference-td20152955.html

Among other things the +CFUN command can be used to set different radio capapabilities (GPS, WCDMA, one of, both, etc.).

I have discovered that AT+CFUN=0 seems to shut the hardware off almost entirely. On my thinkpad I can get out of this by using ACPI to turn off and then on it's power. It should prove harder on other hardware it appears. Kermit is unable to connect to the

* Forth: I know C and I can run software in a debugger. So if you want I can test and debug umtsmon running on this hardware.

Regards,
Nicolai
---

My next post here is going to be my scripts and setup for automating the use of this with KDE 4.2