【发布时间】:2014-05-16 09:25:53
【问题描述】:
我正在为 Ubuntu 10.04(内核 2.6.32.52)上的 USB 显示器构建设备驱动程序。根据制造商的说法,系统必须具有 Git、Linux Headers、GCC、Binutils 和 Make。我检查了所有这些东西。然后我从厂商的github站点下载了驱动源码,cd到驱动目录运行make,但是有一些错误和警告:
make -C /lib/modules/`uname -r`/build KCPPFLAGS="-I/home/someuser/rpusbdisp/drivers/linux-driver/src -I/home/someuser/rpusbdisp/drivers/linux-driver/../common" M=/home/someuser/rpusbdisp/drivers/linux-driver modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-52-generic'
Makefile:597: "WARNING: Appending $KCPPFLAGS (-I/home/someuser/rpusbdisp/drivers/linux-driver/src -I/home/someuser/rpusbdisp/drivers/linux-driver/../common) from command line to kernel $CPPFLAGS"
CC [M] /home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.o
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c: In function ‘_status_start_querying’:
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c:300: error: implicit declaration of function ‘usb_pipe_endpoint’
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c:300: warning: assignment makes pointer from integer without a cast
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c: In function ‘_on_release_disp_tickets_pool’:
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c:866: error: implicit declaration of function ‘usb_free_coherent’
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c: In function ‘_on_alloc_disp_tickets_pool’:
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c:905: error: implicit declaration of function ‘usb_alloc_coherent’
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c:905: warning: assignment makes pointer from integer without a cast
/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.c:936: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 5 has type ‘size_t’
make[2]: *** [/home/someuser/rpusbdisp/drivers/linux-driver/src/usbhandlers.o] Error 1
make[1]: *** [_module_/home/someuser/rpusbdisp/drivers/linux-driver] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-52-generic'
make: *** [modules] Error 2
我希望有人可以为我提供一些指导,我应该检查哪些包,或者是否可以使用替代函数来代替“usb_pipe_endpoint”和“usb_alloc_coherent”。
谢谢。
所以我改变了,usb_alloc_coherent 与 usb_buffer_alloc 和 usb_free_coherent 与 usb_buffer_free。它解决了三个错误中的两个。
【问题讨论】:
标签: driver kernel-module