Я скомпилировал (без предупреждений) пример hello-5.c
из "Руководства по программированию модуля ядра Linux", и когда я попытался его модифицировать, я получил следующую ошибку:
insmod: error inserting 'hello-5.ko': -1 Unknown symbol in module
Я думал, что попробую splint, чтобы посмотреть, не возникнут ли какие-либо очевидные ошибки, но когда я запустил его, я получил множество предупреждений из заголовков ядра, пока он не вырвался, пытаясь разобрать asm/types.h
anon@anon:~/kernel-source/lkmpg$ splint -I/lib/modules/$(uname -r)/build/include hello-5.c
Splint 3.1.1 --- 03 Nov 2006
( ... lots of warnings ... )
/lib/modules/2.6.24-24-insp8600/build/include/asm/types.h:13:24: Parse Error:
Suspect missing struct or union keyword: __signed__ :
unsigned short int. (For help on parse errors, see splint -help
parseerrors.)
*** Cannot continue.
Так что на самом деле есть два вопроса:
- Как исправить ошибку insmod?
- Как заставить шину хорошо работать с заголовками ядра?