Question

I got drivers from here: Codeaurora.

I was able to build drivers easily under 2.6.32 Kernel but due to other problems i had u had to upgrade kernel to 3.2 from back ports squeeze.

Now i got everything working. just i can't build those drivers any more.

I found tip from somebody to add in .c file:

#include <linux/module.h>

But it didn't work for me. (I read that here: https://www.codeaurora.org/forums/viewtopic.php?f=15&t=141)

This is what i get after make:

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'

If you have any clue pls.

Was it helpful?

Solution

/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’

THis error is caused by printk not having the right format string. Use %lu in the right place in the format string.

This was PROBABLY broken in 2.6 as well, but may have passed through as a warning rather than an error, because of stricter settings for the compiler in the 3.x kernel.

OTHER TIPS

I don't see where the build failed at all given your compiler output:

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

This looks like it succeeded to me. Check to see if you have the file /home/user/Desktop/gobi/GobiSerial/GobiSerial.ko and if so, then volia, it worked.

It's amazing that everyone else here has answered about some printk() format when it's obvious you didn't write this driver, and it's obvious the build succeeded.

Did you make sure to run make install after make and before modprobe GobiSerial?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top