Porting an USB software from linux (libusb)

Jim Bryant kc5vdj.freebsd at gmail.com
Tue Aug 31 20:46:52 UTC 2010


ah, i'm under -stable.

Alexander Leidinger wrote:
> Quoting Jim Bryant <kc5vdj.freebsd at gmail.com> (from Mon, 30 Aug 2010 
> 19:22:49 -0500):
>
>> easy fix.  just drop the _np
>>
>> the functions are there under legacy naming.
>
> Not in my revision of FreeBSD-current. I commented it out like HPS 
> suggested (the right way, with the correct macros to enable 
> automatically when those functions are merged from P4 to SVN) and the 
> linker doesn't complain anymore.
>
> Bye,
> Alexander.
>
>> Alexander Leidinger wrote:
>>> Hi,
>>>
>>> I try to port a linux userland USB program and I get the following 
>>> error message when trying to link to libusb (current as of r210105):
>>> ---snip---
>>> cc -lusb -lm -o fowsr  fowsr.o
>>> fowsr.o(.text+0x1546): In function `CUSB_Open':
>>> : undefined reference to `usb_get_driver_np'
>>> fowsr.o(.text+0x1710): In function `CUSB_Open':
>>> : undefined reference to `usb_detach_kernel_driver_np'
>>> gmake: *** [fowsr] Fehler 1
>>> ---snip---
>>>
>>> Do I need those functions on FreeBSD (the device may show up as a 
>>> HID device, I hadn't a chance to attach it to a FreeBSD box yet), or 
>>> can I just remove them (I could make sure the HID driver is not 
>>> loaded in the kernel)?
>>>
>>> Here is the related source:
>>> ---snip---
>>>        devh = usb_open(dev);
>>>        assert(devh);
>>>
>>>        signal(SIGTERM, release_usb_device);
>>>
>>>        ret = usb_get_driver_np(devh, 0, buf, sizeof(buf));
>>>        printf("usb_get_driver_np returned %d\n", ret);
>>>        if (ret == 0) {
>>>                printf("interface 0 already claimed by driver 
>>> \\'%s\\', attempting to detach it\n", buf);
>>>                ret = usb_detach_kernel_driver_np(devh, 0);
>>>                printf("usb_detach_kernel_driver_np returned %d\n", 
>>> ret);
>>>        }
>>>        ret = usb_claim_interface(devh, 0);
>>>        if (ret != 0) {
>>>                printf("claim failed with error %d\n", ret);
>>>                        exit(1);
>>>        }
>>>
>>>        ret = usb_set_altinterface(devh, 0);
>>> ---snip---
>>>
>>> Bye,
>>> Alexander.
>>>
>>
>>
>
>
>


More information about the freebsd-usb mailing list