linuxmobilebroadband

Mobile Broadband Sierra Gobi 3000 drivers compile under kernel 3.2


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.


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.