Porting an USB software from linux (libusb)

Alexander Leidinger Alexander at Leidinger.net
Tue Aug 31 13:24:39 UTC 2010


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.
>>
>
>



-- 
Star Trek Lives!

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-usb mailing list