0

我从这里得到了驱动程序:Codeaurora

我能够在 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'

如果你有任何线索请。

4

2 回答 2

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 内核中对编译器的设置更严格,因此可能作为警告而不是错误通过。

于 2012-12-25T02:34:26.023 回答
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 install之后make和之前跑了modprobe GobiSerial吗?

于 2013-03-25T06:19:35.527 回答