我用RedHat9开始驱动编程联系的,由于在/usr/src 和 /usr/local/src/ 都没有Linux源码,所以自己下了个2.4.20的包解压到了这两个地方(以用来操作,一个做备份吧)。解压完后,刚开始不能执行 “make menuconfig” 命令,在提示下执行了“make config” 命令,接着执行了 “make modules ” 和 “make modules_install"命令。终于把源码包配置完毕。
接着回到我的驱动测试目录,执行了”[root@localhost drivers]# gcc -D__KERNEL__ -DMODULE -DLINUX -I /usr/local/src/linux-2.4.20/include -c -o test001.o test001.c “ 命令来编译驱动,然后执行了命令”[root@localhost drivers]# insmod ./test001.o”并且出现了如下提示:“./test001.o: kernel-module version mismatch ./test001.o was compiled for kernel version 2.4.20 while this kernel is version 2.4.20-8.“。很明显,驱动编译成功,由于版本不配而安装失败。又回到,内核源码目录下修改Makefile 文件,添加了如下红色所示的-8
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
EXTRAVERSION = -8
接着,又执行 “make modules ” 和 “make modules_install"命令,最后又执行了”[root@localhost drivers]# gcc -D__KERNEL__ -DMODULE -DLINUX -I /usr/local/src/linux-2.4.20/include -c -o test001.o test001.c “ 命令 和”[root@localhost drivers]# insmod ./test001.o”命令。
O(∩_∩)O~,到此为止,驱动安装完毕!