Internet über ttyUSB

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
guennid

Internet über ttyUSB

Beitrag von guennid » 19.09.2010 09:54:47

Ich habe hier dieses ältere UMTS-PCMCIA-Modem: Option GT 3G Quad UMTS/GPRS Card
OS ist lenny. Das Modem funktioniert prinzipiell mit meinem kernel und e+ (aldi-talk).

Wenn ich die Karte einstecke, sollte da ttyUSB[0-3] angelegt werden - dachte ich jedenfalls. Kontoabfage über ttyUSB2. Um Einwahl und Kontoabfage per script zu automatisieren, habe ich heute Morgen schon einige Male die Karte ein- und ausgesteckt. Zuletzt keine Kontoabfrage mehr möglich: Fehlermeldung sinngemäß: kein ttyUSB2 gefunden. Einwahl über ttyUSB0 funktioniert nach wie vor. Dann stell ich fest, es wurde plötzlich ttyUSB[0,1,3,4] erzeugt. Konto jetzt über 3.

Wie kommt das? Warum werden die Schnittstellen unterschiedlich benamt, und vor allem, wie kann man das verhindern?

Grüße, Günther

[edit:] Kann es sein, dass vmc und wvdial nicht recht miteinander können? Soweit ich weiß, benutzt vmc zwar wvdial, aber zuletzt habe ich das Phänomen beobachtet, nachdem ich mich mit wvdial problemlos ver- und entbunden habe, danach ein weiterer Versuch mit vmc fehlschlug (mit Meckern über ttyUSBs). Aus- und Einstöpseln der Karte brachte danach *3-4, statt *2-3

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Internet über ttyUSB

Beitrag von Danielx » 19.09.2010 13:48:03

guennid hat geschrieben:Warum werden die Schnittstellen unterschiedlich benamt
Wird vielleicht nach der Reihenfolge benannt, in der die Schnittstellen verfügbar sind bzw. schon belegt sind und das könnte sich eben evtl. verändern.
guennid hat geschrieben:und vor allem, wie kann man das verhindern?
Vielleicht mit einer UDEV-Regel, hier mal ein Beispiel eines Huawei-Modems:

Code: Alles auswählen

SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1004*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_modem"
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1004*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_diag"
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1004*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="02", ATTRS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_pcui"
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1004*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="03", ATTRS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_pcsc"
In diesem Fall wäre "bInterfaceNumber" das unterscheidende Merkmal.

Gruß,
Daniel

guennid

Re: Internet über ttyUSB

Beitrag von guennid » 19.09.2010 14:09:17

Danke sehr!
udev - Das hätt ich mir ja denken können! :evil:

Diese kryptische Syntax verstehen doch nur eingeweihte Mystagogen, ich jedenfalls nicht. :mrgreen:
Aber fangen wir mal an: Mit ATTRS{modalias} weiß ich nichts anzufangen. Ist das relevant für mich? Sehe ich richtig, dass das, was nach 'NAME=' kommt, ein von mir zu wählender Ausdruck wäre? Aber ist nicht gerade die bei mir inkonsistente device-Nummer das Problem?

Zuletzt sagt dmesg beim Einstecken der Karte das hier:

Code: Alles auswählen

pcmcia_socket pcmcia_socket0: pccard: CardBus card inserted into slot 0
pci 0000:06:00.0: reg 10 32bit mmio: [0x000000-0x000fff]
pci 0000:06:00.0: supports D1 D2
pci 0000:06:00.0: PME# supported from D0 D1 D2 D3hot
pci 0000:06:00.0: PME# disabled
pci 0000:06:00.1: reg 10 32bit mmio: [0x000000-0x000fff]
pci 0000:06:00.1: supports D1 D2
pci 0000:06:00.1: PME# supported from D0 D1 D2 D3hot
pci 0000:06:00.1: PME# disabled
ohci_hcd 0000:06:00.0: enabling device (0000 -> 0002)
ohci_hcd 0000:06:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
ohci_hcd 0000:06:00.0: setting latency timer to 64
ohci_hcd 0000:06:00.0: OHCI Host Controller
ohci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 3
ohci_hcd 0000:06:00.0: irq 16, io mem 0x80000000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 1 port detected
ohci_hcd 0000:06:00.1: enabling device (0000 -> 0002)
ohci_hcd 0000:06:00.1: PCI INT B -> GSI 16 (level, low) -> IRQ 16
ohci_hcd 0000:06:00.1: setting latency timer to 64
ohci_hcd 0000:06:00.1: OHCI Host Controller
ohci_hcd 0000:06:00.1: new USB bus registered, assigned bus number 4
ohci_hcd 0000:06:00.1: irq 16, io mem 0x80001000
usb usb4: configuration #1 chosen from 1 choice
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 1 port detected
usb 4-1: new full speed USB device using ohci_hcd and address 2
usb 4-1: configuration #1 chosen from 1 choice
option 4-1:1.0: GSM modem (1-port) converter detected
usb 4-1: GSM modem (1-port) converter now attached to ttyUSB0
option 4-1:1.1: GSM modem (1-port) converter detected
usb 4-1: GSM modem (1-port) converter now attached to ttyUSB1
option 4-1:1.2: GSM modem (1-port) converter detected
usb 4-1: GSM modem (1-port) converter now attached to ttyUSB2
option 4-1:1.3: GSM modem (1-port) converter detected
usb 4-1: GSM modem (1-port) converter now attached to ttyUSB3
Wobei, wie gesagt, die drei letzten Zeilen variieren.

Grüße, Günther

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Internet über ttyUSB

Beitrag von Danielx » 20.09.2010 12:02:07

guennid hat geschrieben:Sehe ich richtig, dass das, was nach 'NAME=' kommt, ein von mir zu wählender Ausdruck wäre?
Ja, über diese Namen kannst du dann die entsprechenden Schnittstellen eindeutig ansprechen, d.h. es kommt bei diesen Namen nicht zu "Umbenennungen".

Gruß,
Daniel

guennid

Re: Internet über ttyUSB

Beitrag von guennid » 20.09.2010 19:31:29

Verstehen wir uns vielleicht miss?

Mein Problem ist doch, dass für das Modem Mal ttyUSB2 und mal ttyUSB3 erzeugt wird und ich das ja nicht weiß, wann udev was erzeugt. Damit scheidet doch "bInterfaceNumber" aus - oder? Bei 'ner "normalen" pcmcia-Karte, z.B. Netzwerkkarte nennt mir udev im Kommentar wenigstens das zuständige Kernelmodul der Karte, so dass man das eth* dann händisch hinbiegen kann. Aber wo ich hier ansetzen soll, ist mir nach wie vor schleierhaft

Ich dächte, dass, wenn überhaupt, dann ließe sich was über "model", "vendor" oder so machen. Früher habe ich mal mit solchen Parametern gearbeitet. Gibt's die noch? Red' ich Käse?

Grüße, Günther

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: Internet über ttyUSB

Beitrag von cosmac » 20.09.2010 20:09:15

hi,

also ich schreib' jetzt nicht: "dann steck die Karte doch einfach nicht aus" :)
Ich könnte mir aber vorstellen, dass vmc oder wvdial das Device noch benutzen während du die Karte aus- und wieder einsteckst. Dann ist ttyUSB2 noch vergeben und der Kernel nimmt die nächste Nummer. Normalerweise bekommen die Devices immer die gleiche Nummer solange nur ein Gerät im Spiel ist.
Beware of programmers who carry screwdrivers.

guennid

Re: Internet über ttyUSB

Beitrag von guennid » 20.09.2010 21:00:42

Also, ich bild' mir zumindest ein, ich hätte bei meinen Testereien wvdial immer ordnungsgemäß mit Strg+C beendet.
Gehe ich recht in der Befürchtung, dass ich mit dem Phänomen leben muss?

Grüße, Günther

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Internet über ttyUSB

Beitrag von Danielx » 21.09.2010 10:18:39

guennid hat geschrieben:Mein Problem ist doch, dass für das Modem Mal ttyUSB2 und mal ttyUSB3 erzeugt wird und ich das ja nicht weiß, wann udev was erzeugt.
Deswegen ja die extra Namen zum eindeutigen Ansprechen.
guennid hat geschrieben:Damit scheidet doch "bInterfaceNumber" aus - oder?
Nein, die InterfaceNumber wird mit dem DeviceDescriptor (dort stehen z.B. auch die Vendor- und Product-IDs drin) vom USB-Gerät gesendet und wird nicht vom Treiber zugewiesen, ist also eindeutig.
guennid hat geschrieben:Gehe ich recht in der Befürchtung, dass ich mit dem Phänomen leben muss?
Vielleicht, denn ich weiß jetzt nicht, ob der extra Name korrekt erstellt wird, wenn eine Schnittstelle hängen geblieben ist und evtl. noch ihren extra Namen trägt.
Versuch macht klug. :)

Gruß,
Daniel

guennid

Re: Internet über ttyUSB

Beitrag von guennid » 21.09.2010 11:09:03

Nochmals danke!

Weiß noch nicht, wann ich's teste. Versuch macht zwar möglicherweise klug, hier aber auch arm: mind. zwei Euros :wink:

Grüße, Günther

Antworten