UMTS-Webstick an einem Raspberry Pi installieren

Heutige USB-Geräte werden immer zunächst als Massenspeicher erkannt, damit z.B. im Windows die mitgelieferten Treiber installiert werden können und nicht als CD ausgeliefert werden müssen. Danach wird, initiert durch den nun installierten Treiber, in den jeweiligen Gerätemodus umgeschaltet.
Das funktioniert unter Linux so nicht und damit bleibt das Gerät im Modus Massenspeicher „hängen“ und funktioniert nicht, hier sichtbar in /var/log/messages:

kernel: [ 3118.534964] usb 1-1.3.2: new high-speed USB device number 7 using dwc_otg
kernel: [ 3118.637196] usb 1-1.3.2: New USB device found, idVendor=0e8d, idProduct=0002
kernel: [ 3118.637236] usb 1-1.3.2: New USB device strings: Mfr=2, Product=3, SerialNumber=4
kernel: [ 3118.637256] usb 1-1.3.2: Product: Product
kernel: [ 3118.637273] usb 1-1.3.2: Manufacturer: MediaTek Inc
kernel: [ 3118.637291] usb 1-1.3.2: SerialNumber: 683694200106600
kernel: [ 3118.648352] usb-storage 1-1.3.2:1.0: USB Mass Storage device detected
kernel: [ 3118.656676] scsi host2: usb-storage 1-1.3.2:1.0
kernel: [ 3119.656031] scsi 2:0:0:0: CD-ROM MEDIATEK FLASH DISK 6225 PQ: 0 ANSI: 0 CCS

Hier wird versucht, ein MEDION / ALDI TALK Webstick S4222 (MD 99079) am Raspberry Pi zu betreiben. Wir sehen idVendor=0e8d, idProduct=0002 des Chipherstellers MediaTek Inc..

Anmerkung und Vorbereitung
Der Medion Webstick, kann wie viele andere USB-Geräte nicht zuverlässig direkt am Raspberry Pi betrieben werden. Es ist ein USB-Hub mit eigener Stromversorgung notwendig. Ebenso sollte die SIM-Karte vorher in einem Handy so konfiguriert werden, dass keine SIM-PIN Eingabe erforderlich ist.
Weiteres Vorgehen nach ausführlicher und weitergehender Beschreibung auf http://www.draisberghof.de Dank an Josua Dietze!
Hier die für den Medion Webstick erforderlichen Schritte:

a) Laden und Entpacken
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.5.tar.bz2
tar -xvjf usb-modeswitch-2.2.5.tar.bz2

wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20150627.tar.bz2
tar -xvjf usb-modeswitch-data-20150627.tar.bz2

Es wurde in zwei neue Verzeichnisse entpackt. Die tar-Dateien können entfernt werden.

drwxr-xr-x 3 pi   4096 Jun 27 23:56 usb-modeswitch-data-20150627
-rw-r--r-- 1 pi  29918 Jun 27 23:58 usb-modeswitch-data-20150627.tar.bz2
drwxr-xr-x 3 pi   4096 Jul 16 23:37 usb-modeswitch-2.2.5
-rw-r--r-- 1 pi 263335 Jul 16 23:37 usb-modeswitch-2.2.5.tar.bz2

b) Installation von libusb
sudo apt-get install libusb-1.0-0-dev

c) Installieren von usb-modeswitch und usb-modeswitch-data

cd usb-modeswitch-2.2.5

pi@raspberrypi ~/usb-modeswitch-2.2.5 $ sudo make install
sed 's_!/usr/bin/tclsh_!'"/usr/bin/tclsh"'_' < usb_modeswitch.tcl > usb_modeswitch_dispatcher
install -D --mode=755 usb_modeswitch /usr/sbin/usb_modeswitch
install -D --mode=755 usb_modeswitch.sh /lib/udev/usb_modeswitch
install -D --mode=644 usb_modeswitch.conf /etc/usb_modeswitch.conf
install -D --mode=644 usb_modeswitch.1 /usr/share/man/man1/usb_modeswitch.1
install -D --mode=644 usb_modeswitch_dispatcher.1 /usr/share/man/man1/usb_modeswitch_dispatcher.1
install -D --mode=755 usb_modeswitch_dispatcher /usr/sbin/usb_modeswitch_dispatcher
install -d /var/lib/usb_modeswitch
test -d /etc/init -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf /etc/init || test 1
test -d /etc/systemd/system -a \( -e /usr/bin/systemctl -o -e /bin/systemctl \) && install --mode=644 usb_modeswitch@.service /etc/systemd/system || test 1

cd usb-modeswitch-data-20150627

pi@raspberrypi ~/usb-modeswitch-data-20150627 $ sudo make install
install -d /usr/share/usb_modeswitch
install -d /etc/usb_modeswitch.d
install -D --mode=644 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules
install --mode=644 -t /usr/share/usb_modeswitch ./usb_modeswitch.d/*

Nun kann man schauen, ob die für unseren Vendor und die Product-ID geforderten Daten vorhanden sind.
Config-Dateien:
$ ls -l /usr/share/usb_modeswitch/0e8d:0002*
-rw-r–r– 1 root root 165 Aug 21 22:18 /usr/share/usb_modeswitch/0e8d:0002:uPr=MT
-rw-r–r– 1 root root 179 Aug 21 22:18 /usr/share/usb_modeswitch/0e8d:0002:uPr=Product
Udev-Rules:
$ vi /lib/udev/rules.d/40-usb_modeswitch.rules und suche nach 0e8d
# MediaTek/Medion S4222 and probably others, MediaTek MT6276M and others
ATTR{idVendor}==“0e8d“, ATTR{idProduct}==“0002″, RUN+=“usb_modeswitch ‚%b/%k’“

Reboot des Raspberry Pi, aber den UMTS-Stick noch nicht einstecken!
Anmelden und sich mit tail -f /var/log/messages „an das Log hängen“ .
Stick einstecken …

tail -f /var/log/messages
kernel: [  121.213918] usb 1-1.3: new high-speed USB device number 4 using dwc_otg
kernel: [  121.314835] usb 1-1.3: New USB device found, idVendor=1a40, idProduct=0101
kernel: [  121.314875] usb 1-1.3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
kernel: [  121.314895] usb 1-1.3: Product: USB 2.0 Hub
kernel: [  121.325893] hub 1-1.3:1.0: USB hub found
kernel: [  121.326862] hub 1-1.3:1.0: 4 ports detected
kernel: [  150.333925] usb 1-1.3.3: new high-speed USB device number 5 using dwc_otg
kernel: [  150.436066] usb 1-1.3.3: New USB device found, idVendor=0e8d, idProduct=0002
kernel: [  150.436107] usb 1-1.3.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
kernel: [  150.436131] usb 1-1.3.3: Product: Product
kernel: [  150.436150] usb 1-1.3.3: Manufacturer: MediaTek Inc
kernel: [  150.436167] usb 1-1.3.3: SerialNumber: 683694200106600
kernel: [  150.447454] usb-storage 1-1.3.3:1.0: USB Mass Storage device detected
kernel: [  150.456456] scsi host0: usb-storage 1-1.3.3:1.0
kernel: [  151.455108] scsi 0:0:0:0: CD-ROM MEDIATEK FLASH DISK 6225 PQ: 0 ANSI: 0 CCS
kernel: [  151.535748] sr 0:0:0:0: [sr0] scsi3-mmc drive: 0x/0x caddy
kernel: [  151.535792] cdrom: Uniform CD-ROM driver Revision: 3.20
usb_modeswitch: switch device 0e8d:0002 on 001/005
kernel: [  151.895582] usb 1-1.3.3: USB disconnect, device number 5
kernel: [  152.643968] usb 1-1.3.3: new high-speed USB device number 6 using dwc_otg
kernel: [  152.745374] usb 1-1.3.3: New USB device found, idVendor=0e8d, idProduct=00a5
kernel: [  152.745415] usb 1-1.3.3: New USB device strings: Mfr=9, Product=10, SerialNumber=0
kernel: [  152.745435] usb 1-1.3.3: Product: Product
kernel: [  152.745455] usb 1-1.3.3: Manufacturer: MediaTek Inc
kernel: [  152.760018] usb-storage 1-1.3.3:1.6: USB Mass Storage device detected
kernel: [  152.766154] scsi host1: usb-storage 1-1.3.3:1.6
kernel: [  152.955635] usbcore: registered new interface driver cdc_ncm
logger: usb_modeswitch: switched to 0e8d:00a5 on 001/006
kernel: [  152.994591] usbcore: registered new interface driver cdc_wdm
kernel: [  153.027917] usbcore: registered new interface driver usbserial
kernel: [  153.028085] usbcore: registered new interface driver usbserial_generic
kernel: [  153.028228] usbserial: USB Serial support registered for generic
kernel: [  153.045616] cdc_mbim 1-1.3.3:1.0: cdc-wdm0: USB WDM device
kernel: [  153.073849] cdc_mbim 1-1.3.3:1.0 wwan0: register 'cdc_mbim' at usb-bcm2708_usb-1.3.3, CDC MBIM, 62:0f:8f:c1:29:e8
kernel: [  153.075371] usbcore: registered new interface driver cdc_mbim
kernel: [  153.127876] usbcore: registered new interface driver option
kernel: [  153.128065] usbserial: USB Serial support registered for GSM modem (1-port)
kernel: [  153.129538] option 1-1.3.3:1.2: GSM modem (1-port) converter detected
kernel: [  153.157877] usb 1-1.3.3: GSM modem (1-port) converter now attached to ttyUSB0
kernel: [  153.161188] option 1-1.3.3:1.3: GSM modem (1-port) converter detected
kernel: [  153.166561] usb 1-1.3.3: GSM modem (1-port) converter now attached to ttyUSB1
kernel: [  153.167841] option 1-1.3.3:1.4: GSM modem (1-port) converter detected
kernel: [  153.194807] usb 1-1.3.3: GSM modem (1-port) converter now attached to ttyUSB2
kernel: [  153.195658] option 1-1.3.3:1 why not look here.5: GSM modem (1-port) converter detected
kernel: [  153.201407] usb 1-1.3.3: GSM modem (1-port) converter now attached to ttyUSB3
kernel: [  153.765075] scsi 1:0:0:0: Direct-Access     MEDIATEK  FLASH DISK      6225 PQ: 0 ANSI: 0 CCS
kernel: [  153.768166] sd 1:0:0:0: Attached scsi generic sg0 type 0
kernel: [  153.847826] sd 1:0:0:0: [sda] 3842048 512-byte logical blocks: (1.96 GB/1.83 GiB)
kernel: [  153.848819] sd 1:0:0:0: [sda] Write Protect is off
kernel: [  153.860054]  sda:
kernel: [  153.863441] sd 1:0:0:0: [sda] Attached SCSI removable disk

$ ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:c0:a5:67
inet addr:192.168.2.22 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3709 errors:0 dropped:174 overruns:0 frame:0
TX packets:1387 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:423132 (413.2 KiB) TX bytes:229988 (224.5 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1104 (1.0 KiB) TX bytes:1104 (1.0 KiB)

wwan0 Link encap:Ethernet HWaddr 62:0f:8f:c1:29:e8
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:83 errors:44 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:4294965375 (3.9 GiB)

In einem nächsten Artikel wird die Aktivierung der Internetverbindung via UMTS-Modem-Stick beschrieben.


Kommentare

UMTS-Webstick an einem Raspberry Pi installieren — 2 Kommentare

  1. Hallo Stephan,

    vielen Dank für den Artikel, ich hoffe noch auf den nächsten Artikel der das Herstellen der Internetverbindung beschreiben soll.

    Insbesondere würde mich interessieren, wie Du die PIN übermittelt hast.

    • Erledigt, ich hatte die SIM-Karte nicht korrekt eingelegt. SIM ist korrekt eingelegt wenn +CPIN=? nicht mit einem Fehler abbricht, z.B. hier wird kein Fehler ausgegeben:

      Dec 9 14:24:49 mohot chat[1057]: AT+CPIN?^M^M
      Dec 9 14:24:49 mohot chat[1057]: +CPIN: SIM PIN^M
      Dec 9 14:24:49 mohot chat[1057]: ^M

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert