Probleme mit ppp.conf für u3g modem

lauguru

Member
Hallo Leute ich habe folgendes Problem. Also ich besitze einen ZTE K3565-Z Umts-Stick von Vodafone. Der wird folgendermaßen von meinem FreeBSD 8.0-Release erkannt, nachdem ich dessen Hardware-IDs im Source des u3g Kernelmoduls eingetragen hab.

u3g0: <ZTE,Incorporated ZTE CDMA Technologies MSM, class 0/0, rev 2.00/0.00, addr 3> on usbus4
u3g0: Found 5 ports.

schön und gut soweit. Um den Pin an das Gerät zu senden verwende ich "umts_stick -a" von

http://wiki.bsdforen.de/howto/umts_mit_huawei

funktioniert auch, merkt ob pin falsch is und so zeigt verbindungs einstellungen an, etc. was das script halt so kann.
Meine ppp.conf hab ich auch von da. Nur Verbindung krieg ich keine und im ppp.log steht immer - NO CARRIER -...ich weiss kein Netz denkt ihr jetzt, kann aber nicht sein, weil der stick an exakt der gleichen Position mit nem Windows-Gerät ne Verbindung aufbaut. Bin für jede Hilfe dankbar denn ich verzweifle langsam...
 
Mal hier meine für E-Plus:
Code:
default:
 set log Phase Chat LCP IPCP CCP tun command
 ident user-ppp VERSION

 # Ensure that "device" references the correct serial port
 # for your modem. (cuau0 = COM1, cuau1 = COM2)
 #
 set device /dev/cuau1

 set speed 115200
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
           \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
 set timeout 180			# 3 minute idle timer (the default)
 enable dns				# request DNS info (for resolv.conf)

#eplus: append to default
 set reconnect 3 30
 set redial 3 3
 
 set openmode active 5
 #set openmode passive
 #set hangup "\"\" AT OK-AT-OK ATZ OK"

 set phone "*99#"
 set login
 set authname eplus
 set authkey eplus
 
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR			# Add a (sticky) default route

u3g0:
 set device /dev/cuaU0.0

u3g1:
 set device /dev/cuaU1.0

u3g2:
 set device /dev/cuaU2.0

u3g3:
 set device /dev/cuaU3.0

u3g4:
 set device /dev/cuaU4.0

u3g5:
 set device /dev/cuaU5.0

Dann habe ich da noch in /etc/devd/u3g.conf folgendes stehen:
Code:
attach 0 {
	device-name "u3g[0-9]+";
	action "/etc/rc.d/ppp onestart $device-name > /dev/ttyv0 2>&1";
};

detach 0 {
	device-name "u3g[0-9]+";
	action "/etc/rc.d/ppp onestop $device-name > /dev/ttyv0 2>&1";
};
So passiert dann alles von alleine, sobald ich den Stick einstecke. Zumindest so lange ich nicht vorher einen USB/RS232 Adapter eingesteckt habe.
 
So mit der ppp.conf läuft mein ZTE K3565-Z jetzt...hammer hart 2Tage lang rumprobiert...

Code:
default:
 set log Phase Chat LCP IPCP CCP tun command +connect

umts:
       enable dns
       set log local LCP IPCP Phase Chat
       set timeout 0
       set authname vodafone
       set authkey vodafone
       set cd off
       set device /dev/cuaU0.3
       set speed 115200
       set dial "ABORT BUSY \
           ABORT VOICE ABORT NO\\sDIALTONE ABORT NO\\sDIAL\\sTONE ABORT ERROR \
           ABORT NO\\sANSWER ABORT DELAYED TIMEOUT 5 \
           \"\" ATZ OK ATQ\\sE0\\sV1\\sX4\\s&C1\\s+FCLASS=0 OK \
           AT+CFUN=1 OK \
           AT+CREG? OK \
           AT+COPS? OK \
           AT+CSQ OK \
           AT+cgdcont=1,\\\"IP\\\",\\\"event.vodafone.de\\\" OK \
           ATDT*99***1# CONNECT"
       set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
       add default HISADDR
 
Hi lauguru,

bitte verrat mir doch mal genau wo du die VendorID und ProductID in die u3g Sourcen eingetragen hast ...

Ein Auszug aus der Datei, ist wohl die u3g.c, wäre sehr nett!

Ich hab es auch schon versucht aber mein Sick wird immer noch nich erkannt. :zitter:
 
Wenn du gar keine Ahnung von C oder C++ hast wird es grad schwer für mich dir das zu erklären da ich ein schlechter Erklärer bin ;) sorry...ich hoffe du hast da bissle Kenntnisse und kannst mit Code was anfangen sonst muss sich jemand anderes finden der es dir ordentlich erklärt wie und was...

Also du musst zuerst die Vendor und die Product ID deines Sticks herausfinden das geht mit
Code:
usbconfig dump_device_desc

diese IDs musst du dann in

Code:
/usr/src/sys/dev/usb/usbdevs

eintragen danach ist

Code:
/usr/src/sys/dev/usb/serial/u3g.c

dran...such nach

Code:
static const struct usb_device_id u3g_devs[]

da trägst du dann die IDs die du in dem ersten File zugewiesen hast ein bzw. deren Konstanten. Danach musst du deinen Kernel oder das u3g-Modul neu kompilieren je nach dem wie deine Konfiguration ist obs im Kernel ist oder nicht. So hoffe dir hilft das irgendwie, ich weiss war schlecht erklärt ich kann sowas absolut nicht ;)
 
Vielen Dank erstmal ... ist doch sehr verständlich was du da schreibst!
Zumindest wird die "ZeroCD" bzw der internet Speicher vom Stick jetzt erkannt. :)

Wie hast du den Mode vom Stick geändert oder musstest du das bei deinem nicht machen?

Habe folgendes gefunden: http://forums.freebsd.org/showthread.php?t=12829 Beitrag #7

Modeswitch gut und schön nur habe ich kein SerialDevice um dem Stick mitzuteilen welchen Mode ich will! :confused:

Hast du noch nen Tipp?
 
Kingkone: Kannst du bitte einen PR erstellen, der die von dir hinzugefügten IDs enthält? Dann haben bald auch andere was davon. :)
 
Du musst ein SCSI Eject Command an dein device senden, das kannst du entweder über das usb_modeswitch binary machen oder direkt in der

Code:
/usr/src/sys/dev/usb/serial/u3g.c

eintragen. Ich weiss nicht welche FreeBSD Version du benutzt, da sich die Konstante von 8.0 - 8.2 verändert hat und ich meinen Code von 8.0 nich mehr vorliegen hab. Aber die Commands stehen ziemlich am Anfang des Files. Bei 8.2 brauchst du sowieso nichts mehr basteln da ist das schon im Modul drin seh ich grad und da wird die Konstante U3GINIT_SCSIEJECT
benutzt um das Device in dem Modem Modus zu versetzen. Ein PR is deshalb gar nich mehr nötig.
 
Back
Top