From owner-freebsd-usb@FreeBSD.ORG Fri Jan 11 17:50:18 2008 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6A91B16A41B for ; Fri, 11 Jan 2008 17:50:18 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe14.swip.net [212.247.155.161]) by mx1.freebsd.org (Postfix) with ESMTP id C314813C469 for ; Fri, 11 Jan 2008 17:50:17 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] Received: from [85.19.218.45] (account mc467741@c2i.net [85.19.218.45] verified) by mailfe14.swip.net (CommuniGate Pro SMTP 5.1.13) with ESMTPA id 27858330; Fri, 11 Jan 2008 18:50:15 +0100 From: Hans Petter Selasky To: perryh@pluto.rain.com Date: Fri, 11 Jan 2008 18:50:58 +0100 User-Agent: KMail/1.9.7 References: <477a00ea.73gFojnRSqtUufCO%perryh@pluto.rain.com> <200801101638.19620.hselasky@c2i.net> <47871344.bvH7YPY9QJF3xIgB%perryh@pluto.rain.com> In-Reply-To: <47871344.bvH7YPY9QJF3xIgB%perryh@pluto.rain.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200801111850.59173.hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: ZyXEL Omni 56K Plus USB/serial modem X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jan 2008 17:50:18 -0000 On Friday 11 January 2008, perryh@pluto.rain.com wrote: > > > > To me it looks like they are using some kind of propritary > > > > protocol. You could try and see if any of the endpoints, > > > > which appear like /dev/ugen0.x files respond with "OK" when > > > > you send "AT\r\n" to the endpoint ... > > > > > > How would I go about doing that? > > > > I think the best will be to write a small C-program: > > > > Here is the basic: > > > > ... > > Either the device doesn't like this sort of thing, > or I did something wrong: > > # ls -l /dev/ugen* > crw-r--r-- 1 root operator 1, 15 Nov 24 21:17 /dev/ugen0 > crw-r--r-- 1 root operator 1, 16 Nov 24 21:17 /dev/ugen0.1 > crw-r--r-- 1 root operator 1, 17 Nov 24 21:17 /dev/ugen0.2 > crw-r--r-- 1 root operator 1, 18 Nov 24 21:17 /dev/ugen0.3 > crw-r--r-- 1 root operator 1, 19 Nov 24 21:17 /dev/ugen0.4 Hi, It is strange that you cannot open "/dev/ugen0.X". And you are running the application like root ? And what happens if you do "cat /dev/ugen0.1 > /dev/null" ? --HPS > > Not sure where that Nov 24 date comes from -- > I just plugged the modem in a couple of days ago. > They do go away when I turn it off, and then come > back (still dated 11/24) when I turn it back on. > > # ./usbEpProbe /dev/ugen0.1 > usbEpProbe: Cannot open '/dev/ugen0.1': Device not configured > # ./usbEpProbe /dev/ugen0.2 > usbEpProbe: Cannot open '/dev/ugen0.2': Device not configured > # ./usbEpProbe /dev/ugen0.3 > usbEpProbe: Cannot open '/dev/ugen0.3': Device not configured > # ./usbEpProbe /dev/ugen0.4 > usbEpProbe: Cannot open '/dev/ugen0.4': Device not configured > # ./usbEpProbe /dev/ugen0 > usbEpProbe: Cannot set short XFER > > : Invalid argument > > # cat usbEpProbe.c > #include > #include > #include > #include > > #define STIMULUS "AT\r\n" > > main(int argc, char *argv[]) > { > int f, error, count; > char buf[4]; > > if (argc != 2) { > err(1, "Usage: %s /dev/ugen0.[1-4]", argv[0]); > } > > f = open(argv[1], O_RDWR); > if (f < 0) { > err(1, "Cannot open '%s'", argv[1]); > } > > /* allow short transfers */ > error = 1; > error = ioctl(f, USB_SET_SHORT_XFER, &error); > if (error < 0) { > err(1, "Cannot set short XFER\n"); > } > > error = 1000; > error = ioctl(f, USB_SET_TIMEOUT, &error); > if (error < 0) { > err(1, "Cannot set timeout"); > } > > error = write(f, STIMULUS, sizeof(STIMULUS)-1); > > for ( count = 0 ; ; ++count ) { > error = read(f, buf, 1); > if (error > 0) > printf("%c", buf[0]); > else > break; > } > printf("\ngot %d bytes\n", count); > }