How to access a FTDI usb device with a custom vendor and product id's
Burton Sampley
bsmply at gmail.com
Wed Nov 18 19:02:19 UTC 2015
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 at 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 at 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 at 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.
More information about the freebsd-usb
mailing list