Драйверы Mobile Broadband Sierra Gobi 3000 компилируются под ядро ​​3.2

Я получил драйверы отсюда: Codeaurora.

Я смог легко собрать драйверы под ядро ​​2.6.32, но из-за других проблем мне пришлось обновлять ядро ​​до 3.2 из сжатых портов.

Теперь у меня все работает. просто я больше не могу создавать эти драйверы.

Я нашел совет от кого-то, чтобы добавить в .c файл:

#include <linux/module.h>

Но это не сработало для меня. (Я читал это здесь: https://www.codeaurora.org/forums/viewtopic.php?f=15&t=141)

Вот что я получаю после 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'

Если у вас есть какие-либо подсказки, пожалуйста.

2 ответа

Решение
/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 и если так, то Воли, это сработало.

Удивительно, что все остальные здесь ответили о каком-то формате printk(), когда очевидно, что вы не написали этот драйвер, и очевидно, что сборка прошла успешно.

Ты убегал? make install после make и раньше modprobe GobiSerial?

Другие вопросы по тегам