Linux 移动宽带Sierra Gobi 3000驱动程序在内核3.2下编译

Linux 移动宽带Sierra Gobi 3000驱动程序在内核3.2下编译,linux,mobile,broadband,Linux,Mobile,Broadband,我这里有司机: 我能够在2.6.32内核下轻松构建驱动程序,但由于其他问题,我不得不将内核从后端升级到3.2 现在一切都好了。只是我不能再制造那些驱动程序了 我在.c文件中找到了某人的提示: #包括 但这对我不起作用。(我在这里读到:) 这是我制作后得到的: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module.* modules.order make -C /lib/modules/3.2.0-0.bpo.3-a

我这里有司机:

我能够在2.6.32内核下轻松构建驱动程序,但由于其他问题,我不得不将内核从后端升级到3.2

现在一切都好了。只是我不能再制造那些驱动程序了

我在
.c
文件中找到了某人的提示:

#包括

但这对我不起作用。(我在这里读到:)

这是我制作后得到的:

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'
如果你有任何线索,请

/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内核中的编译器设置更为严格

考虑到您的编译器输出,我根本看不到构建失败的地方:

  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
之后和
modprobe-GobiSerial
之前运行
make-install

因此,第485行和第409行需要使用%ld而不是%d-我不确定是什么解决了其他可能出错的问题。不幸的是,这并不是那么简单:(意思是说,如果你解决了这些问题,会有其他问题出现?如果是,请解释一下!相同的错误只是说%ld而不是%dGah,是的,应该是%lu,因为它是未签名的。我甚至不记得我修复了什么,但我知道它现在起作用了:D