Драйверы 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
?