Skip site navigation (1)Skip section navigation (2)
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>