Date: Mon, 5 May 2008 08:35:30 +0200 From: Matthias Apitz <matthias.apitz@oclc.org> To: Volker <volker@vwsoft.com>, freebsd-mobile@freebsd.org Subject: Re: nozomi driver (was: Vodafone Mobile Connect HSDPA/UMTS/EDGE datacard supported?) Message-ID: <20080505063530.GA4581@rebelion.Sisis.de> In-Reply-To: <20080504143704.GA2571@rebelion.Sisis.de> References: <20080503064135.GA2355@rebelion.Sisis.de> <481C6A3D.6030007@vwsoft.com> <20080504143704.GA2571@rebelion.Sisis.de>
next in thread | previous in thread | raw e-mail | index | archive | help
El día Sunday, May 04, 2008 a las 04:37:05PM +0200, Matthias Apitz escribió: > On card insert it says: > > May 4 16:19:54 rebelion kernel: nozomi0: <Option N.V. GlobeTrotter 3G+> mem 0xc8309000-0xc83097ff irq 16 at device 0.0 on cardbus0 > May 4 16:19:54 rebelion kernel: nozomi0: [GIANT-LOCKED] > May 4 16:19:54 rebelion kernel: nozomi0: [ITHREAD] > May 4 16:19:55 rebelion kernel: nozomi0: ver. 3 with 2048 bytes of memory > May 4 16:19:55 rebelion kernel: nozomi0: initialization complete > > As the next step I wanted to check with some serial line tool (kermit) how the > card answers on AT commands, but I don't see any /dev file coming up in > user space; am I missing something? what should be the name of the > device in user space? Thanks in advance I have digged into this and it turned out that ttycreate() is called with incompatible (means: incompatible to FreeBSD 7.0-REL) arguments: *** nozomi.c 2008-05-05 08:05:54.000000000 +0200 --- nozomi.c.orig 2007-04-18 00:47:50.000000000 +0200 *************** *** 1070,1078 **** tmptty->t_modem = nzmodem; tmptty->t_ioctl = nzioctl; tmptty->t_sc = sc; ! // see /usr/src/sys/kern/tty.c: ! device_printf(sc->dev, "ttycreate for /dev/cuaN%d\n", i); ! ttycreate(tmptty, TS_CALLOUT, "N%r", i); sc->port[i].tty_devunit = tmptty->t_devunit; sc->port[i].tty_open_count = 0; } --- 1070,1076 ---- tmptty->t_modem = nzmodem; tmptty->t_ioctl = nzioctl; tmptty->t_sc = sc; ! ttycreate(tmptty, NULL, 0, 0, "N%r", i); sc->port[i].tty_devunit = tmptty->t_devunit; sc->port[i].tty_open_count = 0; } This and the missing argument for bus_setup_intr() let me think that the driver was not ported to FreeBSD 7.0-REL (don't know if this interface changed from 6.x to 7.0, will have a look into some older server when I'm at work); anyway, with the above small change th devices /dev/cuaN0, to /dev/cuaN4 get created and /dev/cuaN0 works fine with kermit and responses on AT commands, like for example ATI2 to read the vendor information; I fired up as well PPPD the sign-in to the network works well with the following chat script: '' +++ '' AT OK\r at_opsys=1,2 OK\r at+CGQREQ=? OK\r at+cpin="xxxx" O AT+CGDCONT=1,"IP","web.vodafone.de" OK\r ATD*99***1# CONNECT the LCP layer worked as well, IP comes up, got an IP addr, routing came up fine; the things went wrong when real TCP should be send encapsulated in PPP frames, then even the LCP echo requests come out of sync: May 4 17:50:12 rebelion pppd[3055]: sent [LCP EchoReq id=0x1 magic=0x725825f7] May 4 17:50:12 rebelion pppd[3055]: rcvd [LCP EchoRep id=0x1 magic=0x4a0ab1cb 0a 0b 0c 0e] May 4 17:50:42 rebelion pppd[3055]: sent [LCP EchoReq id=0x2 magic=0x725825f7] May 4 17:50:46 rebelion pppd[3055]: rcvd [LCP EchoRep id=0x2 magic=0x4a0ab1cb 0a 0b 0c 0e] May 4 17:51:12 rebelion pppd[3055]: sent [LCP EchoReq id=0x3 magic=0x725825f7] May 4 17:51:42 rebelion pppd[3055]: sent [LCP EchoReq id=0x4 magic=0x725825f7] May 4 17:51:42 rebelion pppd[3055]: rcvd [LCP EchoRep id=0x4 magic=0x4a0ab1cb 0a 0b 0c 0e] which let me think that data sent by PPPD is not sent out properly to the air (to UMTS); PPPD opens the device /dev/cuaN0 and sets 230400 baud with CRTSCTS control; will see what I can find out by enabling the debug printf()'s thx for your comments, Volker, if you have any idea what's wrong; matthias
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080505063530.GA4581>