查看当前内核版本
uname -r
这台机器上的内核版本是5.2.0
获取内核源码
git clone -b 5.2 https://github.com/torvalds/linux.git
wget https://github.com/torvalds/linux/archive/refs/tags/v5.2.zip
我是直接wget源码的压缩包,然后解压的
安装依赖
apt install libncurses5-dev git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison gcc flex dwarves
配置编译config
make menuconfig
Device Drivers --> Network Device Support --> Universal TUN/TAP device driver support
光标指到键盘按 M (表示编译成模块)
编译tun模块
make -j8 modules
我选择8线程编译
安装模块
cp ./drivers/net/tun.ko /lib/modules/5.2.0/
更新模块
depmod
查看模块信息
modinfo tun
自动加载
/lib/modules/5.2.0/
文件夹好像每次重启都会重置
在网上找了下,好像没有专门介绍自动加载模块的办法
只好写了个脚本,每次开机执行
/etc/systemd/system
touch auto-tun.service
vim auto-tun.service
[Unit]
Description=Setup tun.ko module
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c 'ln -sf /usr/lib/tun.ko /lib/modules/$(uname -r)/tun.ko && /sbin/depmod -a'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
systemctl enable auto-tun.service
然后重启了下,再输入 modinfo tun
成功显示tun模块信息