From owner-freebsd-usb@freebsd.org Sun Oct 1 19:38:32 2017 Return-Path: Delivered-To: freebsd-usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 69064E2CBEB for ; Sun, 1 Oct 2017 19:38:32 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D4486BF60 for ; Sun, 1 Oct 2017 19:38:31 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: 1dbbfc82-a6e0-11e7-a937-4f970e858fdb X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound1.ore.mailhop.org (Halon) with ESMTPSA id 1dbbfc82-a6e0-11e7-a937-4f970e858fdb; Sun, 01 Oct 2017 19:38:36 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id v91JcTV4001693; Sun, 1 Oct 2017 13:38:29 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1506886709.22078.43.camel@freebsd.org> Subject: Re: USB/U3G: Added support for Panasonic CF-F9 GOBI 3G modem to U3G module From: Ian Lepore To: Tomasz CEDRO Cc: "freebsd-usb@FreeBSD.org" Date: Sun, 01 Oct 2017 13:38:29 -0600 In-Reply-To: References: <1506465459.73082.168.camel@freebsd.org> <165556bc-c011-bebd-feee-5bbd4cb5943e@selasky.org> <1506876055.22078.24.camel@freebsd.org> <87d62aba-0b35-8b20-cf1f-9fd2de2d301a@selasky.org> <1506882193.22078.32.camel@freebsd.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Oct 2017 19:38:32 -0000 On Sun, 2017-10-01 at 20:59 +0200, Tomasz CEDRO wrote: > On Sun, Oct 1, 2017 at 8:23 PM, Ian Lepore wrote: > > > > On Sun, 2017-10-01 at 20:17 +0200, Tomasz CEDRO wrote: > > > > > > [...old stuff...] > I have verified on uath device (more on that below) and it turns out > $cdev works fine.. but it returns /dev/usb/X.Y.Z not the /dev/cuaU0 > which does not work with this "gobi_loader" utility which requires > /dev/cuaU0 (CDC / serial port device)... any clues how to replace > $cdev with cuaUX? :-) > > Regarding the UATH, I have TP-LINK TL-WN822N Ver2.0 based on Atheros > 9002[1] and it seems to work with modified /dev/devd/uath.conf but > the > uathload returns "Operation not permitted" when executed as root and > during boot.. > > [1] https://wikidevi.com/wiki/TP-LINK_TL-WN822N_v2 > Hmmm.  I think we need to key off the tty 'attach' event instead of the devfs 'create' event.  The tty attach for a usb device is the one event that has all the info we need in one message.  This is assuming the device name in dmesg on attach is u3g0 or u3g1 or whatever. attach 100 { device-name "(u3g)[0-9]+"; match "vendor"          "0x04da"; match "product"         "0x250e"; action "/usr/local/bin/gobi_loader /dev/cua$ttyname /boot/firmware/gobi/"; }; The way I arrived at this conclusion was to first look in the devd source to figure out/remind myself that devd creates variables from all the tag=value tuples it finds in the events coming from the kernel.  Then I connected to devd using netcat so I could watch the events as they happen:   nc -U /var/run/devd.pipe then I plugged in a usb-serial adapter (I have no u3g stuff), which creates a whole lot of events.  The last one was the tty attach: +uplcom0 at bus=1 hubaddr=1 port=1 devaddr=2 interface=0 ugen=ugen1.2 vendor=0x067b product=0x2303 devclass=0x00 devsubclass=0x00 devproto=0x00 sernum="" release=0x0300 mode=host intclass=0xff intsubclass=0x00 intprotocol=0x00 ttyname=U0 ttyports=1 on uhub1 The '+' means it's an attach, the "device-name" variable is set from the space-delimited word after the +, and then vars are created from all the tag=value tuples between 'at' and 'on'.  So that gives us the info to match product and vendor, and ttyname is the suffix to append to /dev/cua to make the cdev name. -- Ian