我正在編譯一個內核驅動程序(我對驅動程序幾乎一無所知)。usb_kill_urb,usb_submit_urb,usb_find_interface在驅動程序中顯示未知符號
驅動程序代碼寫在2.6下,我將它移植到3.5.40。
我uname -a
:我使用Ubuntu 12.04.3 Linux的ADAM-ROS 3.5.0-40泛型#62〜precise1 Ubuntu的SMP週五08月23日17時38分26秒UTC 2013 x86_64的x86_64的x86_64的GNU/Linux的
我使用的信息被列爲下面的命令「命令insmod的./usbcan.ko」和「/var/log/kern.log」:
Sep 25 03:27:58 adam-ros kernel: [11354.020492] usbcan: Unknown symbol usb_kill_urb (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020513] usbcan: Unknown symbol usb_submit_urb (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020540] usbcan: Unknown symbol usb_find_interface (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020556] usbcan: Unknown symbol usb_put_dev (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020568] usbcan: Unknown symbol usb_free_urb (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020584] usbcan: Unknown symbol usb_deregister_dev (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020600] usbcan: Unknown symbol usb_get_dev (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020612] usbcan: Unknown symbol usb_alloc_urb (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020625] usbcan: Unknown symbol usb_register_dev (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020638] usbcan: Unknown symbol usb_register_driver (err 0) Sep 25 03:27:58 adam-ros kernel: [11354.020650] usbcan: Unknown symbol usb_deregister (err 0)
我不知道它是否是,我做到了不加載正確的驅動程序mod是一個依賴項,或者我應該鏈接Makefile中的一些東西?
Thx for answers!
嘗試modprobe而不是insmod。看起來像usb-storage.ko沒有加載。另外嘗試'lsmod | grep usb'。其中一些符號顯示在該驅動程序中:nm -g/lib/modules /'uname -r'/kernel/drivers/usb/storage/usb-storage.ko –
加載usb-storage後仍存在同樣的問題。我確實在USB存儲設備中找到了這些符號。這很奇怪,不是嗎? – Adam
等一下。 usb-storage的nm:usb_kill_urb是'U',意思是'未定義符號已使用但未定義。依賴另一個圖書館。「也許我會嘗試一些其他庫。 – Adam