Ich bin nur sehr selten an einem Ort, an welchem ich keine Internetverbindung nutzen kann. Noch seltener würde ich genau dann eine Internetverbindung benötigen. Wenn es dann aber so ist, dann benötige ich sie wirklich!
Nun komme ich in der letzten Zeit immer mal wieder an diese Stelle und ärgere mich. Oft ist zwar ein Kollege oder Bekannter in der Nähe, mit so einem feinen Android Mobiltelefon, nur hilft mir dieses beim Arbeiten auf einer SSH-Shell weniger. Ja, es geht aber wirkliches Arbeiten geht nicht… Zudem bin ich ein Mensch der seinen Windowmanager benutzt, sprich viele offene Fenster. Auf so einem kleinen Mobilding ist mir mehr als eine kurze E-Mail oder etwas Google klicker klacker einfach zu aufwändig.
Das Handy also als Modem mit dem Rechner verbinden? So selten wie ich es im Moment benötige, mich direkt 1 Jahr an einen 20€/Monat Tarif meines Anbieters zu binden? Ne, so geht das nicht….
Vor kurzem war ich nun im Blödmarkt unterwegs. Da lagen in der Grabbelkiste so 15 Euronen O2 Prepaid USB-Sticks.
Dem etwas überforderten Fachberater für die Dinger konnte ich mit etwas Mühe die Information entlocken, dass ich über dieses Angebot „echtes“ Internet erhalte. Damit ist gemeint, dass ich SSH-Sessions auf beliebigen Ports öffnen kann und auch mein IPv6 Tunnelbroker funktionieren sollte. ….Nebenbei, habt ihr im Blödmarkt mal gefragt ob ihr über was auch immer eine Verbindung zu einen IPv6 Tunnelbroker aufbauen könnt? Macht mal, ist lustig 🙂
HTTP / SMTP / IMAP mit und ohne SSL/TLS alles kein Problem!
Mit der 5 Tage x 3,50€ = 17,50€ Sollte einem Test nichts im Wege stehen. Keine Grundgebühr oder sonstige laufenden Kosten… Ich brauche es nicht, ich zahle es nicht. Wenn ich also feststelle das ich es doch oft und gut nutze, so dass sich einer der Knebelverträge des Anbieters meines Vertrauens lohnen würde, dann kann ich das Teil wegwerfen und mich bewusst knebeln lassen. Anderweitig habe ich eine tolle Lösung für den Notfall!
Beim Kauf habe ich jetzt nicht darauf geachtet ob das Teil nun unter bzw. mit meinem Linux (Gentoo) zusammenarbeitet. Den Fachberater im Blödmarkt wollte ich es nun nicht noch fragen, er schien jetzt schon von mir genervt zu sein!
Hey, gut wie ich bin, bekomme ich das Teil schon zum rennen (Boar ist diese Selbstüberschätzung nicht wiederlich?)!
Da meine Frau etwas von: „Rausgeworfenes Geld…. Überflüssiges Spielzeug… und du sitzt eh viel zu viel vor dem Computer!“ murmelte…. _MUSS_ das Teil einfach Laufen.
Tut es nur so ~out of the box~ nicht! Dass hat man nun also davon, man kauft im Blödmarkt halt nichts. Vor allem nicht ohne Verstand, oder gerade deswegen? Wie auch immer, so haben ich es ans Laufen bekommen!
Ich habe hier also den O2 Surfstick MF190 von der Firma ZTE.
Stecke ich diesen einfach in mein System ein und schaue mir an was der Kernel dazu sagt, sehe ich folgendes:
$ dmesg usb 2-1: new high speed USB device using ehci_hcd and address 3 usb 2-1: New USB device found, idVendor=19d2, idProduct=0083 usb 2-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4 usb 2-1: Product: ZTE WCDMA Technologies MSM usb 2-1: Manufacturer: ZTE,Incorporated usb 2-1: SerialNumber: P671A2TMED010000 scsi7 : usb-storage 2-1:1.0 scsi 7:0:0:0: CD-ROM ZTE USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 2 sr1: scsi-1 drive sr 7:0:0:0: Attached scsi CD-ROM sr1 sr 7:0:0:0: Attached scsi generic sg2 type 5
Der Stick wird also als USB-CDROM Laufwerk (hier liegt die Software für die Windows User) und USB-Festplatte (sofern eine MicroSD-Karte eingelegt ist, wäre es diese) erkannt.
Mal schauen was ein lsusb sagt:
$ lsusb Bus 002 Device 004: ID 19d2:0083 ONDA Communication S.p.A
19d2 steht für den Hersteller und 0083 für das Gerät selbst. Google sagt 0083 ist der Stick aber im Modus (ich nenne es mal) Datenlaufwerk. Ich will aber Modem 🙂 Hierzu sagt Google man muss ein paar bestimmte Kommandos schicken und schon wechselt der USB-Stick seinen Modus. Findige Leute haben sich da schon einen Kopf zu gemacht und das Programm: usb_modeswitch geschrieben. Also soll emerge mal loslegen:
$ emerge usb_modeswitch
Solange er rechnet könnte ich meinen Kernel ja schon mal davon überzeugen das Gerät zu „ignorieren“. Dazu füge ich in die Datei: /usr/src/linux/drivers/usb/storage/unusual_devs.h folgende Zeilen ein:
UNUSUAL_DEV( 0x19d2, 0x0117, 0x0000, 0x0000, "ZTE Sinnlos", "USB UMTS Sinnlos", US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_IGNORE_DEVICE),
Damit Geräte dieser Art überhaupt funktionieren können (und ich nach der Änderung in unusual_devs.h ja eh neu kompilieren muss) sollte die Kernelkonfiguration wie folgt angepasst werden:
Device Drivers -> USB support ---> <M> OHCI HCD support (If not use Intel or VIA chipset) <M> UHCI HCD (most Intel and VIA) support (If use Intel or VIA chipset) <M> USB Serial Converter support ---> [*] USB Generic Serial Driver <M> USB driver for GSM and CDMA modems Network device support ---> <*> PPP (point-to-point protocol) support <*> PPP support for async serial ports
Inzwischen ist usb_modeswitch fertig. Für meinen Stick muss ich leider noch etwas Handarbeit leisten. Denn in der Datei /lib/udev/rules.d/40-usb_modeswitch.rules müssen noch folgende Zeilen hinzugefügt werden:
# ZTE MF190 (Variant) ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0117", RUN+="usb_modeswitch '%b/%k'"
Damit die neue Regel zur Anwendung kommen noch schnell ein:
$ udevadm control --reload-rules
Jetzt sollte es beim Einstecken vom Stick schon anders aussehen….
$ dmesg usb 2-1: new high speed USB device using ehci_hcd and address 4 usb 2-1: New USB device found, idVendor=19d2, idProduct=0117 usb 2-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4 usb 2-1: Product: ZTE WCDMA Technologies MSM usb 2-1: Manufacturer: ZTE,Incorporated usb 2-1: SerialNumber: P671A2TMED010000 usb-storage 2-1:1.0: device ignored usb-storage 2-1:1.1: device ignored usb-storage 2-1:1.2: device ignored usb-storage 2-1:1.3: device ignored usbcore: registered new interface driver usbserial USB Serial support registered for generic usbcore: registered new interface driver usbserial_generic usbserial: USB Serial Driver core USB Serial support registered for GSM modem (1-port) option 2-1:1.0: GSM modem (1-port) converter detected usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0 option 2-1:1.1: GSM modem (1-port) converter detected usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1 option 2-1:1.2: GSM modem (1-port) converter detected usb 2-1: GSM modem (1-port) converter now attached to ttyUSB2 usbcore: registered new interface driver option option: v0.7.2:USB Driver for GSM modems
Wohooo ein GSM Modem 🙂 Was sagt lsusb?
$ lsusb Bus 002 Device 004: ID 19d2:0117 ONDA Communication S.p.A.
OK, der Stick wird nun also als Modem erkannt, die Datenlaufwerke werden ignoriert und ich könnte mich ja mal um eine Interneteinwahl kümmern, oder? Nötig ist dafür ppp und (weil es so schön einfach ist) wvdial. Emerge muss das wieder für mich erledigen:
$ emerge ppp wvdial
Nach kurzer Zeit ist er fertig. Nun lege ich mal das ppp Device an:
$ mknod /dev/ppp c 108 0
*umschau* ich habe ja so ein paar Tests hinter mir und Scripte können da knallhart sein. Wenn man denen sagt: „Probiere mal bis geht…“ Dann tun die das auch wenn sie 100 mal die falsche PIN eingeben 😀 Man kann lange suchen bis man darauf kommt die PUK einzugeben. SEHR lange 😛 Ich habe also die PIN-Eingabe abgeschaltet!
wvdial ist schnell konfiguriert. Meine Konfiguration für O2 schaut so aus:
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 +FCLASS=0 Modem Type = Analog Modem Baud = 460800 New PPPD = yes Modem = /dev/ttyUSB2 ISDN = 0 [Dialer pin] [Dialer o2] Modem = /dev/ttyUSB2 Dial Command = ATD Carrier Check = no Phone = *99# Password = guest Username = guest Stupid Mode = 1 Init3 = AT+ZSNT=0,0,2, AT+ZOPRT=5 Init4 = AT+CGDCONT=1,"IP","pinternet.interkom.de" Dial Attempts = 2
Stecke ich nun meinen (mit abgeschalteter PIN-Eingabe) Surfstick ins Notebook beginnt er rot zu leuchten. Ist der Stick betriebsbereit und hat Netz beginnt er grün zu leuchten 🙂 Einfach, oder?
Die Einwahl funktioniert nun recht einfach mit wvdial:
$ wvdial o2 --> 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 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 +FCLASS=0 OK --> Sending: AT+ZOPRT=5 AT+ZOPRT=5 OK --> Sending: AT+CGDCONT=1,"IP","pinternet.interkom.de" AT+CGDCONT=1,"IP","pinternet.interkom.de" OK --> Modem initialized. --> Sending: ATD*99# --> Waiting for carrier. ATD*99# CONNECT 7200000 --> Carrier detected. Starting PPP immediately. --> Starting pppd at Tue Mar 8 20:35:06 2011 --> Pid of pppd: 22068 --> Using interface ppp0 --> local IP address 10.151.95.132 --> remote IP address 10.64.64.64 --> primary DNS address 193.189.244.225 --> secondary DNS address 193.189.244.206
Nun sollte man auch schon online sein. Ein kurzer Blick auf die Interfacekonfiguration zeigt:
$ ifconfig lo Protokoll:Lokale Schleife inet Adresse:127.0.0.1 Maske:255.0.0.0 inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1030 errors:0 dropped:0 overruns:0 frame:0 TX packets:1030 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:0 RX bytes:83580 (81.6 KiB) TX bytes:83580 (81.6 KiB) ppp0 Protokoll:Punkt-zu-Punkt Verbindung inet Adresse:10.151.95.132 P-z-P:10.64.64.64 Maske:255.255.255.255 UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:8360 errors:0 dropped:0 overruns:0 frame:0 TX packets:9926 errors:0 dropped:34 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:3 RX bytes:2446573 (2.3 MiB) TX bytes:5945120 (5.6 MiB) sixxs Protokoll:UNSPEC Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet6 Adresse: 2a01:198:200:a79::2/64 Gültigkeitsbereich:Global inet6 Adresse: fe80::98:200:a79:2/64 Gültigkeitsbereich:Verbindung UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1280 Metric:1 RX packets:1007 errors:0 dropped:0 overruns:0 frame:0 TX packets:973 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:500 RX bytes:880413 (859.7 KiB) TX bytes:234147 (228.6 KiB)
Wie zu erkennen ist steht auch die Verbindung zu meinem Tunnelbroker Sixxs. Somit ist mein Notebook auch per IPv6 unterwegs 🙂
Also, viel Spaß beim Surfen 😛
*Update*
Wer >>hier<< nachliest wird sehen, dass man den Flashdrive-Modus auch komplett deaktivieren kann.
Man kann hier zwei Wege gehen das zu tun:
1. Einmalig das ganze im Int3 mitgeben:
Init3 = AT+ZCDRUN=9, AT+ZSNT=0,0,2, AT+ZOPRT=5
2. Minicom 🙂
Schreibe einen Kommentar