• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

USB-Stick-Modem "Onda MDC502HS"

susino

Member
Ich versuche seit ein paar Tagen das USB-Stick-Modem "Onda MDC502HS" (Hersteller Qualcomm) einzurichten, aber bisher ohne Erfolg.
Das Produkt wird mit Treiber und Software für Fedora, Debian und Ubuntu geliefert. Die Installation auf dem Notebook mit openSUSE 11.0 klappt aber nicht. Habe bereits gegoogelt und einige Tipps (für Ubuntu) gefunden und angewendet - haben leider nichts gebracht.
Deshalb bitte ich um Hilfe in diesem Forum.

Ich hoffe, folgende Daten verraten mehr über die Lage.

Vielen Dank im voraus für jede Hilfe.

Nach dem entpacken des Treiber-Pakets habe ich die installation vesucht:
sh --verbose install.sh
(
cp onda.ko /lib/modules/`uname -r` /kernel/drivers/usb/serial
/sbin/depmod -a
) 2>&1 >> /dev/null
uname -r

Nachdem sollte ein neues Speichermedium erscheinen, es geschieht aber nichts und auf den Befehl <sh. uninstall.sh> folgt "ERROR: Module Onda does not exist in /proc/modules"

Das Gerät wird von Yast (Hardware-Informationen) anerkannt als USB-Speicher:
Gerät: USB ONDA Storage
Alter eindeutiger Schlüssel: QvNm.6ZyNwbf41A2
Eindeutiger Code: ADDn.eDIGeyNChiE
Gerät-Kennung: 204800
Klasse (spec): Festplatte
Liferant: Qualcomm

Ergebnis von <lsmod | grep usb>
usbserial 38828 1 option
usb_storage 89864 0
usbcore 152268 5 option,usbserial,usb_storage,uhci_hcd
scsi_mod 156148 6 st,usb_storage;sr_mod,sg,sd_mod,libata

wenn man das Gerät an die USB-Schnittstelle anbringt, zeigt grep | dmesg
...
usb 1-1: new full speed USB device using uhci_hdc and address 8
hub 1-0:1.0: unable to enumarate USB device on port 1
usb 1-1: new full speed USB device using uhci_hdc and address 9
usb 1-1: configuration #1 chosen from 1 choise
usb-storage: device ignored
usb 1-1: New USB device found, idVendor=19d2, idProduct=2000
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: USB Onda Storage
usb 1-1: Manufacturer: Qualcomm, Incorporated

Betriebssystem
openSUSE 11.0
Kernel 2.6.25.20-0.1
KDE: 3.5.9 release 49.1
 

misiu

Moderator
Teammitglied
Wahrscheinlich muss da entsprechende udev/hal-Regel erstellt werden, sonst wird das
Teil immer, als Massenspeicher erkannt.
Vielleicht hilft dir das:
http://forums.opensuse.org/hardware/403298-hsdpa-usb-modem-zte-mf622-didnt-work-opensuse-11-1-a.html

MfG
misiu
 
OP
S

susino

Member
Hallo,

vielen Dank für die Tipps!

Ich habe die Datei "/usr/share/hal/fdi/information/10freedesktop/10-modem.fdi" entprechend den Angaben von "http://forums.opensuse.org/hardware/403 ... 1-1-a.html" geändert, usb_modeswitch.conf wurde bereits angepasst. Das hat aber nichts geholfen!

Es stimmt, das Modem wird vom System als Massenspeicher erkannt, ist aber nicht ansprechbar. Das heisst, es wird im Konqueror nicht als Speichermedium aufgeführt!
Daher denke ich, möglicherweise lief die Installation irgendwie nicht richtig.
Soll ich vielleicht den Treiber in einem bestimmten Verzeichnis entpacken und von dort die Installation durchführen? Die habe ich vom /home/~ versucht.

Bye.
 
susino schrieb:
Daher denke ich, möglicherweise lief die Installation irgendwie nicht richtig.
Poste mal die Ausgabe von
Code:
rpm -qa | grep kernel
prüfen kannst du auch ob alles OK ist, wenn du mal versuchst das Kernlmodul händisch zu laden:
Code:
modprobe onda
dabei zeitgleich in einem zweiten Terminal Ausgaben des Kernels loggen:
Code:
tail -f /var/log/messages
Soll ich vielleicht den Treiber in einem bestimmten Verzeichnis entpacken und von dort die Installation durchführen? Die habe ich vom /home/~ versucht.
das sollte normalerweise kein Problem sein, von wo du installierst, da die Installationspfade im Makefile des Quellcodes geregelt sind/sein sollten. Bitte auch mal die Quelle des Sourcepaketes angeben, vielleicht kanns einer der Suse fährt mal durchspielen (habe z.Zt. leider kein Opensuse installiert)? :smile:
 
OP
S

susino

Member
Hallo misiu, hallo chamaleon123!

Zuerts danke für eure Beiträge. Sie haben mich angespornt, weiter nach einer passenden Lösung zu suchen.

Nach unzähligen Versuchen und langem Suchen habe ich endlich einen hilfreichen Beitrag von nandinux gefunden: http://forum.ubuntu-it.org/index.php/topic,257395.0.html.

Das Endergebnis: die Verbindung klappt, wird aber oft unterbrochen. Ich glaube es liegt am Provider. Schliesslich ist mein Provider für den GPS-Modem die TIM (diTelecom Italia Mobile) während ich derzeit in Deutschland sitze. Oft wird die GPS nicht gefunden oder geht eben verloren ...
Die Geschwindigkeit ist jedoch akzetabel.

Da der gefundene Lösung auf Italienisch und für Ubuntu-User und für ein anderes Modell des Onda Modems (MDC525UP) geschrieben wurde, habe ich ihn ins Deutsche zu übersetzt und an openSUSE 11.0 und Onda MDC502HS anzupasst.

1. Schritt - Überprüfen ob folgende Pakete installiert sind und ggf. installieren:
kernel_source
usblib
make
wvdial
usb_modeswitch

2. Schritt
Falls die von Onda gelieferten Linux-Treiber bereits installiert wurden, müssen sie vorert deinstalliert werden.
Da im meinen openSUSE 11.0 wegen mehrerer Installationsversuche etwas Chaos gebracht hatte, habe eine Neuinstallation bevorzugt.

3. Schritt
Das Onda Modem herausstecken und den PC (oder Notebook) erneut starten.

4. Schritt - Die Module ehci_hdc und ohci_hcd löschen.
Methode a)
- Datei /etc/modprobe.d/blacklist mit einem Texteditor (etwa kwrite) öffnen
- Folgende 2 Zeilen anfügen:
blacklist ehci_hdc
blacklist ohci_hcd
Methode b)
eine Konsole mit Root-Rechten öffnen und folgende Befehle eingeben:
modprobe -r ehci_hdc
modprobe -r ohci_hcd

Überprüfen ob die genannten Dateien gelöscht wurden:
lsmod | grep _hcd
Im Ergebnis dürfen die zu löschenden Module nicht aufgelistet werden.

Ich habe die letzte Methode genutzt, da die Eintrag in der Datei blacklist nicht gewirkt hatte.

5. Schritt - Die Datei etc/wvdial.conf editieren
Der Autor nandinux schlägt zewi mögliche Konfigurationen. Der Unterschied ist in den Modem-Strings, erkenne den praktischen Unterschied aber nicht. Habe bisher nur die erste Konfiguration benutz. Die Werte in der letzten dieser Strings sind vom Provider abhängig! Die Werte zu Password und Username können der Regel beliebig sein.

Konfiguration A
[Dialer Defaults]
Modem = /dev/ttyUSB2
ISDN = off
Modem Type = Analog
Baud = 460800
Init = ATX3
Init2 = AT+COPS?
Init3 = ATQ0 V1 E1 S0=0 &C1 &D1 +FCLASS=0
Init4 = AT+CGDCONT=1,"IP","ibox.tim.it","",0,0
;Phone = *99#
Phone = *99***1#
Dial Prefix =
Dial Attempts = 20
Dial Command = ATM1L3DT
Ask Password = off
Password = <siehe Note>
Username = <siehe Note>
Auto Reconnect = on
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 600
Auto DNS = on

Konfiguration 2
[Dialer Defaults]
Modem = /dev/ttyUSB2
ISDN = off
Modem Type = Analog
Baud = 460800
Init = ATX3
Init2 = AT+COPS?
Init3 = AT+ZSNT=0,0,2
Init4 = AT+ZPAS?
Init5 = ATQ0 V1 E1 S0=0 &C1 &D1 +FCLASS=0
Init6 = AT+CGDCONT=1,"IP","ibox.tim.it","0.0.0.0",1,1
;Phone = *99#
Phone = *99***1#
Dial Prefix =
Dial Attempts = 20
Dial Command = ATM1L3DT
Ask Password = off
Password = <siehe Note>
Username = <siehe Note>
Auto Reconnect = on
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 600
Auto DNS = on

6. Schritt - Die Datei /etc/usb_modeswitch.conf editieren:
a) Nach dem Abschnitt "Onda MDC502HS" suchen
b) Die Wertzeilen aktivieren, d.h., das Semikolon am Zeilenanfang herausnehmen

7. Schritt - Testen
a) Das Onda-Modem anschliessen und einige Sekunde warten;
b) In der Root-Konsole <lsusb> eingeben.
Das Ergebnis dürfte ähnlich aussehen:
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 04f9:01af Brother Industries, Ltd MFC-440CN
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:2000 Linux Foundation 2.0 root hub
Hier zeigt die letzte Zeile unser Onda-Modem, der noch als Massenspeicher anerkannt wird => ID = xxxx:2000 (das Default-Wert). Es wird sich nach die Verwendung von USB-Modeswitch ändern!

c) nach der Befehleingabe von <usb_modeswitch> bekommt man etwas Ähnliches:
* usb_modeswitch: tool for controlling "flip flop" mode USB devices
* Version 0.9.7 (C) Josua Dietze 2009
* Works with libusb 0.1.12 and probably other versions

* usb_modeswitch: tool for controlling "flip flop" mode USB devices
* Version 0.9.7 (C) Josua Dietze 2009
* Works with libusb 0.1.12 and probably other versions

Looking for target devices ...
Found devices in target mode or class (1)
Looking for default devices ...
No default device found. Is it connected? Bye!

Komment: Das USB-Modem wurde gefunden (target mode), aber es ist noch nicht mit dem Aussenwelt verbunden. Dazu brauch man noch das Programm wvdial. Jetzt wird es aber nicht mehr als Massenspeicher erkannt. Der Output von <lsusb> lautet jetzt:
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

8. Schritt - Das Modul "option" aktivieren:
Den Befehl <modprobe option> eingeben
Jetzt ist sicher, openSUSE sieht ein Modem an einem USB-Anschluss.
Die Eingabe von <ls /dev/ttyUSB*> liefert einige, wenigstens 3 Devices.

9. Schritt - Endlich die Verbindung versuchen
Nach dem Befehl <wvdial> ist es soweit:
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATX3
ATX3
OK
--> Sending: AT+COPS?
AT+COPS?
+COPS: 0,0,"T-Mobile Deutschland GmbH",0
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","ibox.tim.it","",0,0
AT+CGDCONT=1,"IP","ibox.tim.it","",0,0
OK
--> Modem initialized.
--> Idle Seconds = 600, disabling automatic reconnect.
--> Sending: ATM1L3DT*99***1#
--> Waiting for carrier.
ATM1L3DT*99***1#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Sat May 23 22:55:10 2009
--> Pid of pppd: 15713
--> Using interface ppp0
--> pppd: ؟[06][08](�[06][08]
--> pppd: ؟[06][08](�[06][08]
--> pppd: ؟[06][08](�[06][08]
--> pppd: ؟[06][08](�[06][08]
--> pppd: ؟[06][08](�[06][08]
--> pppd: ؟[06][08](�[06][08]
--> local IP address 217.202.63.107
--> pppd: ؟[06][08](�[06][08]
--> remote IP address 10.64.64.64
--> pppd: ؟[06][08](�[06][08]
--> primary DNS address 213.230.129.94
--> pppd: ؟[06][08](�[06][08]
--> secondary DNS address 213.230.128.222
--> pppd: ؟[06][08](�[06][08]
--> Script /etc/ppp/ip-up run successful
--> Default route Ok.
--> Nameserver (DNS) Ok.
--> Connected... Press Ctrl-C to disconnect
--> pppd: ؟[06][08](�[06][08]


NB: Nach Verbindungsabbruch aus welchem Grund auch immer, muss man
a) das Modem herausstecken
b) einige Sekunde warten
c) das Modem wieder anschliessen
d) <usb_modeswitch> wieder eingeben
e) sich durch den Befehl <ls /dev/ttyUSB*> vergewissern das Modem erkannt worden ist
f) wieder <wvdial> eingeben


Viel Glück für weitere
 
Oben