Q: 在SLES8上如何编译内核模块
A: 在某些情况下,用户需要重新编译内核模块,例如:由于使用到了更新的硬件,需要升级驱动程序。
我们对用户编译驱动程序的操作做出一些假设,当实际条件满足这些条件时,驱动的编译应该
可以顺利进行。
1 系统上已经安装上了正确的内核源代码(在/lib/modules/`uname -r`/build)
2 系统上已经安装好了开发工具gmake,gclearcase/" target="_blank" >cc等
3 系统上有当前的内核配置(/boot/vmlinuz.config或/boot/config-`uname -r`,视具体情况)
4 要编译的驱动源码内有符合相应内核编译框架的Makefile文件(obj-y, obj-m, $(TOPDIR)/Rules.make)
在上述条件都已满足的情况下,假设要编译的内核驱动程序源码目录为/tmp/foobar
# cd /lib/modules/`uname -r`/build
# cp /boot/config-`uname -r` .config
# make menuconfig
选择'Exit'
选择'Yes'
# make dep
# make SUBDIRS=/tmp/foobar modules
可以测试新编译好的内核模块
# insmod /tmp/foobar/foobar.o
运行dmesg检查相应的输出
# dmesg