产品原型验证,需要在内核进行修改。初步想法是在原有网络栈代码里增加对自己封装的一个模块调用。
1.基础知识
模块函数的导出使用EXPORT_SYMBOL();
引用其他模块导出的符号时,需要先extern 函数定义。
测试:
编写内核模块module1。module2.其中module2 export_symbol(func1);
编写内核模块module2.extern func1后,调用func1。编译时,module1成功,module2提示
WARNING: "func1" [module2路径] undefined!
将module1加载到内核后,再编译,也不行。
2.内核代码修改
将原先在2.6版本上编译通过的代码移植到3.0内核上。发现3.0内核的函数接口netif_receive_skb(struct sk_buff *skb)跟2.6的完全不一样了。原先代码还能用吗?头疼。