我是新来的VyOS development。我已经编写了一个代码,它将从VyOS kernel module获取信息并在netlink socket上编写
我可以直接编辑内核模块代码来调用我定义的函数,或者我必须编写补丁。
如果我必须为它制作一个补丁文件,那么将它放在内核源代码中的位置。我已经用diff命令制作了一个补丁文件。
关于这个问题我找了很多遍,但找不到满意的解决办法。
谢谢。

最佳答案

经过长时间的搜寻,我解决了我所面临的问题。下面是一些结论,以防你们陷入同样的问题。
是的,您可以在VyOS开发中编辑内核模块代码。但这种方法不太受欢迎。
是的,您也可以为内核模块编写补丁。它应该采用GIT格式,如How to write VyOS Patch中所述。很快我就会更新,在VyOS内核代码中的.patch文件的位置。
要使用dmesg检查调试输出,请使用KERN_DEBUG选项。因为我对别人不确定。
printk(KERN_DEBUG "%s: Debuging info \n", __FUNCTION__);
此外,要检查VyOS内核中的修改,您不需要一直创建一个完整的ISO文件。您只需要运行以下命令。
*注意每条路径
每次都从主iso构建目录中描述以避免路径问题。

cd build-iso/
sudo make clean-linux-image
sudo make linux-image

那么
cd buil-iso/pkgs/

在这里您可以找到这些debian包。
buil-iso/pkgs/linux-image-3.13.11-1-amd64-vyos_999.dev_amd64.deb
buil-iso/pkgs/linux-libc-dev_999.dev_amd64.deb
buil-iso/pkgs/linux-vyatta-kbuild_999.dev_amd64.deb

将这些文件复制到已安装的VyOS系统并在那里安装它们。
dpkg -i linux-image-3.13.11-1-amd64-vyos_999.dev_amd64.deb
dpkg -i linux-libc-dev_999.dev_amd64.deb
dpkg -i linux-vyatta-kbuild_999.dev_amd64.deb

reboot系统并使用dmesg检查修改。

07-24 13:22