由于bochs, qemu想要配置网络,比较好的选择是采用tun设备,所以在网上找了一些教程。
先下载Linux的源码(apt-get install -y linux-source),由于我的内核版本是 4.15.0-70-generic, 只能下载4.15.0版本的源码。
然后按照教程把tun模块编译出来,得到tun.ko, 但是把它放到/lib/modules...相应目录下,执行depmod, modprobe都没有反应。
于是使用insmod加载,但是又提示 ‘Require key’ 具体提示忘了,这是因为Linux为了安全,一般不允许加载外部模块,需要设置一下secureboot, 重启。
这时重新insmod, 提示变成了'Invalid format', 使用dmesg命令查看问题,提示'...4.15.0 should be 4.15.70-generic', 也就是版本不匹配,但是又找不到相应版本的源码,于是只能修改下载的这份源码的版本号(modinfo tun.ko可以查看生成的这个模块的版本号信息),但是又要去哪里修改呢?
看到源码中包含了 include/generated/utsrelease.h这个头文件,而其中的内容恰好就是 #define UTS_RELEASE "4.15.0" 也就是版本号信息,这就简单了,直接改为#define UTS_RELEASE " 4.15.0-70-generic" 不就行了吗,改完之后,重新编译模块,(两个小时),拿着它去insmod,dmesg中还是'...4.15.0 should be 4.15.70-generic,也就是版本号还是4.15.0, 明