Date: Sat, 30 Apr 2016 10:28:36 -0500 From: Karl Denninger <karl@denninger.net> To: freebsd-usb@freebsd.org Subject: Re: Prevent attach of modem serial emulated device on USB attach? Message-ID: <f3cde077-047a-cf0d-8522-0e4dbbb2eeb9@denninger.net> In-Reply-To: <5724CE1D.3070105@selasky.org> References: <08f991ca-0c97-3d29-8b56-5a4ac9f904f3@denninger.net> <5724BDEB.3060502@selasky.org> <8c60b86f-de54-f80d-741d-170829dac1c8@denninger.net> <5724CE1D.3070105@selasky.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <mailto: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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f3cde077-047a-cf0d-8522-0e4dbbb2eeb9>