On Mon, Oct 2, 2017 at 1:40 AM, Ian Lepore <i...@freebsd.org> wrote:
> On Mon, 2017-10-02 at 00:05 +0200, Tomasz CEDRO wrote:
>> On Sun, Oct 1, 2017 at 10:59 PM, Ian Lepore <i...@freebsd.org> wrote:
>> > On Sun, 2017-10-01 at 22:20 +0200, Tomasz CEDRO wrote:
>> > > On Sun, Oct 1, 2017 at 9:38 PM, Ian Lepore <i...@freebsd.org>
>> > > wrote:
>> > > > On Sun, 2017-10-01 at 20:59 +0200, Tomasz CEDRO wrote:
>> > > > > On Sun, Oct 1, 2017 at 8:23 PM, Ian Lepore <i...@freebsd.org>
>> > > > > 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
>> > > Awsome! That works!! Thank you Ian!! Thank you for pointing out
>> > > how
>> > > that was achieved! :-)
>> > >
>> > > Is there any way to echo something out to the console to notify
>> > > user
>> > > that firmware is being updated? This takes some time and it would
>> > > be
>> > > nice to see something happens in the background.. I cannot see
>> > > anything with action "logging blah"; maybe no need for that?
>> > >
>> > I think you can use logger(1) in the action, like:
>> >
>> >   action "logger -p kern.crit Loading firmware to cua$ttyname ;
>> >     /usr/local/bin/gobi_loader etc etc"
>> >
>> > The 'kern.crit' should be a high enough priority to ensure it comes
>> > out
>> > on the console, but it depends on syslog.conf of course.  If
>> > gobi_loader outputs a nice message it could be piped to logger(1)
>> > instead of putting the message in the command.
>> >
>> > -- Ian
>> Logger works with syslog which is loaded after modules and firmware,
>> this is why I could not see the message.. but additional action with
>> /bin/echo seems to do the job :-)
>>
>> Thank you guys! You are the best! FreeBSD ROX!!! =)
>>
>> https://github.com/freebsd/freebsd/pull/115
>>
>
> echo probably won't work when devices attach after rc scripts are done.
>  Try "logger -s", that sends the output to syslog and stderr, it might
> cover both situations.
>
> -- Ian

Logging updated, works as expected, thanks Ian! It should be all fine now :-)

https://github.com/freebsd/freebsd/pull/115

-- 
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to