Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Nov 2015 14:02:17 -0500
From:      Burton Sampley <bsmply@gmail.com>
To:        Ian Lepore <ian@freebsd.org>
Cc:        Hans Petter Selasky <hps@selasky.org>, freebsd-usb@freebsd.org
Subject:   Re: How to access a FTDI usb device with a custom vendor and product id's
Message-ID:  <CANV5k3rgow8y=MUjLZW6P38qC6j_jupVsdRzmoZ1WJmL=kP8tQ@mail.gmail.com>
In-Reply-To: <1447279455.91061.24.camel@freebsd.org>
References:  <CANV5k3rW62rGoXKD4m5meegEJ04T4b_v=QGCqBV5wuGxZjzCbg@mail.gmail.com> <56421DFD.6070503@selasky.org> <CANV5k3oRPP_-_SBz2fih0tA12BzoO9Ua%2BAfJGaE_CCNE3JzpHQ@mail.gmail.com> <564222D8.6020900@selasky.org> <CANV5k3qzn1UU=qvczGXUr3HQhxf0H8emKSV2XBDD%2B%2BfDr1yfjg@mail.gmail.com> <56422764.4040307@selasky.org> <CANV5k3pCx%2B3za1aPi=u5o36EvicgMgODL=eiTz-_s=nZLqbbAQ@mail.gmail.com> <1447277889.91061.22.camel@freebsd.org> <CANV5k3omAmBEy00Ny2uhc_NaqnDKbY1knNM8F_wWn2M-o7PHXQ@mail.gmail.com> <1447279455.91061.24.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
To All,

A quick update:

I really have no update.  I have been attempting to get to the point where
I can test the newly built module, but I can not get my system to the point
where I can try the new module.  I was able to compile it, but when I
attempted to load the new module, I get the following error:

# /usr/bin/grep uftdi /var/log/messages
Nov 12 08:14:39 gentoo kernel: KLD uftdi.ko: depends on kernel - not
available or version mismatch
#

I then updated my system and source code, now the kernel will not compile.
I searched and found a few posts on one of the FreeBSD forums, which stated
the problems might be resolved by "buildworld" first, then "buildkernel",
"install kernel", reboot single-user and "installworld".  After the latest
update and reboot, "buildworld" fails.  I don't want to move on to
"buildkernel" until I can resolve the "buildworld" failure first.

# /usr/sbin/freebsd-update fetch
Looking up update.FreeBSD.org mirrors... none found.
Fetching metadata signature for 10.2-RELEASE from update.FreeBSD.org...
done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 10.2-RELEASE-p7.
#

Made sure my source code is proper and up to date:

# /usr/local/bin/svn info
Path: .
Working Copy Root Path: /usr/src
URL: https://svn.freebsd.org/base/stable/10
Relative URL: ^/stable/10
Repository Root: https://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 291024
Node Kind: directory
Schedule: normal
Last Changed Author: gjb
Last Changed Rev: 290995
Last Changed Date: 2015-11-17 13:22:56 -0500 (Tue, 17 Nov 2015)

#  /usr/local/bin/svn update /usr/src
Updating '.':
At revision 291024.
#

In between each failed "buildworld" attempt, I have followed the
instructions for resetting /usr/obj in the handbook in the "buildworld" (
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html)
section.  Here's where "buildworld" fails:

---------------------------
===> usr.sbin/pw (all)
cc  -O2 -pipe   -std=gnu99 -Qunused-arguments  -fstack-protector
-Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized
-Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int
-Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value
-Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -c
/usr/src/usr.sbin/pw/pw.c -o pw.o
/usr/src/usr.sbin/pw/pw.c:90:21: error: tentative definition of variable
with internal linkage has incomplete non-array type 'struct cargs'
[-Werror,-Wtentative-definition-incomplete-type]
static struct cargs arglist;
                    ^
---------------------------

I assume my issues are outside of the scope of this specific list, but I
can not test the simple changes to the uftdi.ko module if I can't get the
module to build and load into the running kernel.

Here's my current kernel (don't be deceived by the hostname, it's
FreeBSD... the hardware used to run Gentoo and I was too lazy to change the
hostname/IP on my internal DNS server - which is also running FreeBSD):

# /usr/bin/uname -a
FreeBSD gentoo.chicken.fish 10.2-RELEASE-p7 FreeBSD 10.2-RELEASE-p7 #0: Mon
Nov  2 14:19:39 UTC 2015
root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
 amd64
#

What am I missing, or can someone please point me in the right direction of
how to successfully "buildworld" so I can then, build a GENERIC kernel and
install everything?  BTW, I for the kernel build file, I simply made a copy
of GENERIC, with a new name and no other modifications.

Regards,

-Burton

On Wed, Nov 11, 2015 at 5:04 PM, Ian Lepore <ian@freebsd.org> wrote:

> On Wed, 2015-11-11 at 16:57 -0500, Burton Sampley wrote:
> > Ian,
> >
> > Thank you for your prompt reply.
> >
> > Looking at the usbdevs file, I found 0x2100, but there is no entry
> > for
> > 0x9e56, which is my device.  So, I'm assuming that changing uftdi.c
> > to the
> > correct name for the VID will only solve part of my problem.  I will
> > further assume that I need to find the correct/proper entry for
> > usbdevs as
> > well.  Is this a correct assumption?  If so, then how/where can I
> > find the
> > proper entry for usbdevs?
> >
> > Here's the 2 closest entries:
> >
> > /* RT system products */
> > product RTSYSTEMS CT29B         0x9e54  FTDI compatible adapter
> > product RTSYSTEMS SERIAL_VX7            0x9e52  FTDI compatible
> > adapter
> >
> > For me, what appears to be the last piece of the puzzle is to find
> > the
> > correct name to place in the 3rd field.  Based on the following:
> >
> > $ /usr/local/bin/sudo /usr/sbin/usbconfig -d ugen2.3 dump_device_desc
> > ugen2.3: <CT-62B Radio Cable RT Systems> at usbus2, cfg=0 md=HOST
> > spd=FULL
> > (12Mbps) pwr=ON (90mA)
> >
> >   bLength = 0x0012
> >   bDescriptorType = 0x0001
> >   bcdUSB = 0x0200
> >   bDeviceClass = 0x0000  <Probed by interface class>
> >   bDeviceSubClass = 0x0000
> >   bDeviceProtocol = 0x0000
> >   bMaxPacketSize0 = 0x0008
> >   idVendor = 0x2100
> >   idProduct = 0x9e56
> >   bcdDevice = 0x0600
> >   iManufacturer = 0x0001  <RT Systems>
> >   iProduct = 0x0002  <CT-62B Radio Cable>
> >   iSerialNumber = 0x0003  <RTUI129S>
> >   bNumConfigurations = 0x0001
> >
> > $
> >
> > does "CT-62B" look reasonable?
> >
>
> Yep, you'll have to add a new entry to usbdevs for the the 0x9e56
> device.  CT62B seems like a good name (can't put the dash in the name
> for C syntax reasons).
>
> -- Ian
>
> >
> > Regards,
> >
> > -Burton
> >
> > On Wed, Nov 11, 2015 at 4:38 PM, Ian Lepore <ian@freebsd.org> wrote:
> >
> > > On Wed, 2015-11-11 at 16:28 -0500, Burton Sampley wrote:
> > > > I added a line to the table, but it seems to have failed since I
> > > > used
> > > > the
> > > > VID# instead of the VID# name.  Where are the VID names mapped to
> > > > the
> > > > VID#'s?  Apparently, I know enough about coding to be dangerous.
> > > >  I'll do
> > > > some more digging to try to fix my own error.
> > > >
> > > > Here's a diff of the original source and my modified source:
> > > >
> > > > [/usr/src/sys/dev/usb/serial]$ /usr/bin/diff ./uftdi.c
> > > > ./uftdi.c.ORIG
> > > > 914d913
> > > > <       UFTDI_DEV(2100, 9e56, 0),
> > > > [/usr/src/sys/dev/usb/serial]$
> > > >
> > > > Here's the compile splattage:
> > >
> > > The VID and PID names are in the file src/sys/dev/usb/usbdevs.
> > >
> > > -- Ian
> > >
> >
> >
> >
>



-- 
Your mind is like a parachute, it works much better when it is open.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANV5k3rgow8y=MUjLZW6P38qC6j_jupVsdRzmoZ1WJmL=kP8tQ>