2012-12-25 11 views
0

여기에서 드라이버를 얻었습니다 : Codeaurora.모바일 광대역 Sierra Gobi 3000 드라이버가 커널 3.2에서 컴파일되었습니다.

2.6.32 커널에서 쉽게 드라이버를 만들 수 있었지만 다른 문제로 인해 커널을 후면 포트에서 3.2로 업그레이드해야했습니다.

이제 모든 것이 작동합니다. 그냥 더 이상 그 드라이버를 만들 수 없습니다.

나는 .c 파일에 추가 할 누군가로부터 팁을 발견

#include <linux/module.h>

그러나 그것은 나를 위해 작동하지 않았다. 이것은 내가 한 후 무엇을 얻을

: (https://www.codeaurora.org/forums/viewtopic.php?f=15&t=141 나는 여기 읽기) :

rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module.* modules.order 
make -C /lib/modules/3.2.0-0.bpo.3-amd64/build SUBDIRS=/home/user/Desktop/gobi/GobiSerial modules 
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-0.bpo.3-amd64' 
    CC [M] /home/user/Desktop/gobi/GobiSerial/GobiSerial.o 
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c: In function ‘GobiOpen’: 
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c:409: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’ 
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c: In function ‘GobiClose’: 
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c:485: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’ 
    Building modules, stage 2. 
    MODPOST 1 modules 
    CC  /home/user/Desktop/gobi/GobiSerial/GobiSerial.mod.o 
    LD [M] /home/user/Desktop/gobi/GobiSerial/GobiSerial.ko 
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-0.bpo.3-amd64' 

당신이 어떤 단서가있는 경우 PLS.

+1

그래서 485 번과 409 번 라인에는 % d 대신 % ld가 있어야합니다. 무엇이 잘못되었을지를 고칠 지 여부는 확실하지 않습니다. –

+0

불행히도 그것은 똑바로되지 않습니다 : ( –

+0

의미, 만약 당신이 그 문제를 해결한다면, 다른 무엇인가가 깨지십니까? 그렇다면 무엇을 설명하십시오! –

답변

0
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c: In function ‘GobiOpen’: 
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c:409: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’ 
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c: In function ‘GobiClose’: 
/home/user/Desktop/gobi/GobiSerial/GobiSerial.c:485: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’ 

이 오류는 올바른 형식 문자열이없는 printk로 인해 발생합니다. 형식 문자열의 적절한 위치에서 % lu를 사용하십시오.

이 문제는 2.6에서도 발생할 수 있지만 3.x 커널의 컴파일러에 대한 엄격한 설정 때문에 오류가 아닌 경고로 전달되었을 수 있습니다.

0

빌드가 전혀 컴파일러 출력을 주어 실패 어디 표시되지 않습니다 : 그것은 나에게 성공처럼

LD [M] /home/user/Desktop/gobi/GobiSerial/GobiSerial.ko 
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-0.bpo.3-amd64' 

이 보인다. 파일이 /home/user/Desktop/gobi/GobiSerial/GobiSerial.ko인지 확인하고, 그렇다면 volia가 작동하는지 확인하십시오.

이 드라이버를 작성하지 않은 것이 확실 할 때 여기있는 모든 사람들이 일부 printk() 형식에 대해 답변 한 점은 놀랍습니다. 빌드가 성공한 것은 확실합니다.

make 이후 make install을 실행하고 modprobe GobiSerial을 실행했는지 확인 했습니까?

+0

나는 내가 무엇을 고쳤는지 기억하지 못한다. 그러나 나는 그것이 지금 작동한다는 것을 안다 : D –