From owner-freebsd-usb@freebsd.org Sat Apr 30 15:28:58 2016 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 E7031B0F3D6 for ; Sat, 30 Apr 2016 15:28:58 +0000 (UTC) (envelope-from karl@denninger.net) Received: from mail.denninger.net (wsip-70-169-168-7.pn.at.cox.net [70.169.168.7]) (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 9E5EA1C1C for ; Sat, 30 Apr 2016 15:28:58 +0000 (UTC) (envelope-from karl@denninger.net) Received: from [192.168.1.40] (Karl-Desktop.Denninger.net [192.168.1.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.denninger.net (Postfix) with ESMTPSA id D3110198FA3 for ; Sat, 30 Apr 2016 10:28:56 -0500 (CDT) Subject: Re: Prevent attach of modem serial emulated device on USB attach? To: freebsd-usb@freebsd.org References: <08f991ca-0c97-3d29-8b56-5a4ac9f904f3@denninger.net> <5724BDEB.3060502@selasky.org> <8c60b86f-de54-f80d-741d-170829dac1c8@denninger.net> <5724CE1D.3070105@selasky.org> From: Karl Denninger Message-ID: Date: Sat, 30 Apr 2016 10:28:36 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <5724CE1D.3070105@selasky.org> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms040803000207030400090005" X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2016 15:28:59 -0000 This is a cryptographically signed message in MIME format. --------------ms040803000207030400090005 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 4/30/2016 10:24, Hans Petter Selasky wrote: > On 04/30/16 17:08, Karl Denninger wrote: >> >> >> On 4/30/2016 09:15, Hans Petter Selasky wrote: >>> On 04/30/16 16:06, Karl Denninger wrote: >>>> So I have managed to get access via ugen to one of the USB devices I= >>>> want to talk to. >>>> >>>> I would like to generalize that in a library, but am confounded by a= >>>> /second /device that comes up "looking like a modem", although it is= >>>> not. This is convenient if you want to open and deal with it like a= >>>> modem, but unfortunately that attachment appears to prevent me from >>>> successfully using it with the ugen interface at the same time, as t= he >>>> attachment looks like it "eats" the inbound byte stream. >>>> >>>> Is there a reasonably-easy way to /prevent /FreeBSD from declaring >>>> this >>>> device eligible to be attached as if it was a character-style modem,= >>>> leaving it only on ugen? I have figured out how to use devd to chan= ge >>>> permissions on attach, but not how to prevent it from attaching a >>>> generic USB device to a specific driver. >>>> >>> >>> Hi, >>> >>> Did you try: >>> >>> libusb_detach_kernel_driver() or >>> >>> libusb20_dev_detach_kernel_driver() >>> >>> --HPS >> >> I can probably code that into the application but what I'm looking for= >> is something that can be stuck into devd's config (or similar) that wi= ll >> prevent the attachment in the first place when the device is plugged i= n. >> >> The issue is that I have multiple "things" that I want to talk to in >> this application at the same time, multiplexing them via threads and >> select(). One of them is only a serial driven thing, and thus I have = to >> live with the reality of a USB serial dongle for those machines that >> don't have a built-in serial port. Ideally, I'd like to talk to >> everything that can come up on USB native via the ugen interface, whic= h >> (for my purposes) is quite good since I don't mind having a second fil= e >> handle open for write and, what's better, is that since I can open the= >> control instance without blowing things up if someone else has the >> device open for some purpose I can make very sure I have the right >> device with the vendor and product Ids before I start trying to talk >> to it. >> >> Unfortunately if it's a serial port all I can do is try to probe it, a= nd >> hope that my off-baud (if I get it wrong) inquiry strings don't cause >> the device to go insane since (and here's the really bad news) the >> serial-only one doesn't honor modem control lines as a means of insuri= ng >> a hard reset. Unfortunately since serial USB interfaces have no >> consistent order, especially if plugged in after boot, I can't hard-co= de >> a config file entry either. >> >> If I can prevent this other device from attaching in the first place t= o >> a modem port via umodem then at application start I can iterate over t= he >> /dev/usb/x.y.0 nodes and, when I find the rights ones, open them up. >> This leaves me only one possibility in the supported interfaces for a >> device that appears as a serial interface which will greatly reduce th= e >> risk of making that particular device insane. >> >> While I can "detach" at program start this doesn't help me with a >> hot-plug possibility; if I can't prevent the attachment in the first >> place then I may as well live with the risk of fraggling the "wrong" >> serial device since if someone plugs or unplugs while it's running I >> have to accept that risk anyway. >> > > Hi, > > This sounds like an USB quirk. We currently don't have such a quirk, > but feel free to make a PR for it. > > A temporary workaround is to unconfigure the device in devd, until the > real driver comes around: > > usbconfig -d X.Y set_config 255 > > We could possibly add a quirk to leave devices unconfigured after plug.= > > --HPS Is that persistent (and if so, where is it written?) I didn't find documentation on that command in usbconfig's man page... I don't think sending a PR for this is the right thing to do since other people who use this same device may *want* the serial interface emulation..... --=20 Karl Denninger karl@denninger.net /The Market Ticker/ /[S/MIME encrypted email preferred]/ --------------ms040803000207030400090005 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 RDdVYZLUu1JCEqXOXpMoxn3++0IAAAAAAAA= --------------ms040803000207030400090005--