2013-09-24 2 views
0

커널 드라이버를 컴파일하고 있습니다 (드라이버에 대해서는 거의 알지 못합니다).usb_kill_urb, usb_submit_urb, 알 수없는 기호를 표시하는 드라이버의 usb_find_interface

드라이버 코드는 2.6 이하로 작성되었으며 3.5.40으로 이식 중입니다.

uname -a : 나는 우분투 12.04.3을 사용하고 리눅스 ADAM-ROS 3.5.0-40 제네릭 # 62 ~ precise1 - 우분투 SMP 금 8월 23일 세계 협정시 17시 38분 26초 2013 x86_64에의 x86_64에의 x86_64의 GNU/리눅스 그것이 내가했던 것을인지 궁금

 
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) 

:

나는 정보가 아래로 나열되는 명령 "sudo는 insmod 명령 ./usbcan.ko"와 "/var/log/kern.log"에 사용 의존성이되는 올바른 드라이버 mod를로드하지 않거나 Makefile에서 somestuffs를 링크해야합니까?

대답을위한 Thx!

+0

insmod 대신 modprobe를 시도하십시오. usb-storage.ko가로드되지 않은 것 같습니다. 또한 'lsmod | grep usb '. nmb/lib/modules /'uname -r'/kernel/drivers/usb/storage/usb-storage.ko –

+0

USB 저장 장치를로드 한 후에도 여전히 같은 문제가 발생합니다. 나는 USB 저장 장치에서 이러한 기호를 찾는다. 이상 하네, 안 그래? – Adam

+0

기다려주십시오. usb- 저장소의 nm : usb_kill_urb은 'U'의미 '정의되지 않은 기호가 사용되었지만 정의되지 않았습니다. 다른 라이브러리에 대한 의존성. ' 다른 라이브러리를 사용해 보도록하겠습니다. – Adam

답변

0

나는 그것이 바보 같은 것이라고 알고 있지만 정확히 동일한 문제가 있었고이 새로운 것으로 Makefile을 변경했습니다 (특별한 것은 없습니다 ....).

obj-m := usbmodule.o 

KERNELDIR ?= /lib/modules/$(shell uname -r)/build 
PWD := $(shell pwd) 

all: 
    $(MAKE) -C $(KERNELDIR) M=$(PWD) 

clean: 
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions 

필자는 이전에 수행 한 일부 컴파일 작업 (이전에 몇 가지 테스트를 수행함)을 제거하고 작동했습니다. 아마도 usbmodule.o 및 다른 파일과 같은 이전에 컴파일 된 파일에 문제가 있었을 것입니다. 나는 정확한 답을 줄 수 없으며, 이전의 컴파일 파일을 정리하고이 단순한 Makefile을 사용하여 다시 컴파일 해보라고 조언한다. 설치된 Linux 커널 헤더와 일치해야하는 현재 Linux 커널 버전을 기억하십시오. (uname -a로 확인하십시오)

도움이되기를 바랍니다. 나는 많이 알지 못한다. 그러나 나는 같은 방법으로이 문제를 해결했다.

+0

Thx. 그러나 프로젝트는 너무 오래 전이었고 코드를 찾을 수 있는지 여부를 알지 못합니다. 어쨌든, 우리가하는 것과 똑같은 문제를 가지고있는 나중의 사람들을 도울 수 있기를 바랍니다. – Adam

관련 문제