版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haolipengzhanshen/article/details/85257446
常见问题
一、内核模块A调用内核模块B
查看导出的内核符号表
cat /proc/kallsyms | grep 'func_m2'
1、一个内核模块A调用另一个内核模块B的导出函数,需要做到三点
1.模块B先加载
2.模块B函数导出成功
3.模块B编译后会有个Module.symvers,将这个Module.symvers拷贝到模块A的编译目录
二、内核模块如何调试
printk + systemtap + kgdb调试环境搭建
三、内核模块相关命令
modprobe
insmod
rmmod
printk
每次重新编译模块后,必须卸载并重新加载后,针对模块的修改才会生效
四、dmesg和/var/log/messages区别
开启syslog服务后,是一样的
五、以iptables/netfilter的set模块为例子
需要编写用户态和内核态模块
用户态iptables:libxt_set.c
内核态netfilter:xt_set.c
六、编译内核模块的makefile
obj-y和obj-m