<在树莓派3b+上学习Linux内核>
uname -a #查看自己的ubuntu使用的内核版本
去这里下载内核源码,https://www.kernel.org/pub/linux/kernel/ 。稳定起见选择和自己内核相近的版本
或者直接 sudo apt-get install linux-source-4.15.0 (这里选择版本的时候选择相近的版本) 将源码下载到 /usr/src/linux-source-x.x.x/
完成后解压缩源码包
安装配置内核的必要软件包
apt-get install libssl-dev libncurses5-dev
sudo su 切换到root
make mrproper #清理代码
#最好使用没有更换前的当前系统的配置!
cp /boot/config-4.15.0-122-generic ./.config
make menuconfig --> device drivers --> network device support --> universal tun/tap device driver support
make -j4 #这个命令包括了 make bzImage(生成内核) 和 make modules(生成单独编译的内核模块)。完成后内核与模块都已经编译好。此指令会生成生成相应内核版本的内核模块和vmlinuz,initrd.img,Symtem.map文件。
make modules_install #指令执行完会在/lib/modules/目录下生成对应版本的内核模块
make install #此指令是把原先make -j2产生的System.map, vmlinux,config,initrd.img文件拷贝到/boot/目录下
最后一步make install 会更新grub,将本次编译得到的内核添加到grub的第一个,下次启动默认就是他。看起来更换内核后并不会对以前apt-get install 的软件造成任何影响(因为他们都是被安装到根文件系统,只要文件系统被成功挂在就没有问题)。若是想回到以前的内核,可以在启动的时候选择ubuntu高级选项,这会列出/boot下所有可选的内核。真是个学习 内核/内核驱动 的好机制 :)
重启电脑
modprobe tun ,加载对应的模块
lsmod | grep tun
https://www.cnblogs.com/grglym/p/7891253.html
https://www.jianshu.com/p/b1d315ea002e
Ubuntu18.04更换内核方法(原内核版本 4.15.0-38-generic)_sa_hao的博客-CSDN博客_ubuntu18.04内核