因为要在Ubuntu下支持新硬件,所以要重新编译当前系统内核。总结了如下操作。
下载内核源代码 两种方法
直接从Ubuntu源中下载当前内核版本的源代码。
1 2 3
| uname -a sudo apt-cache search linux-source sudo apt-get install sudo apt-get install linux-source-4.20.5
|
两种方法都需要使用sudo tar解压缩到当前宿主目录目录。
安装编译过程中所用到的软件
1 2 3 4 5 6
| sudo apt-get update sudo apt-get install libncurses5-dev libssl-dev sudo apt-get install build-essential openssl sudo apt-get install zlibc minizip sudo apt-get install libidn11-dev libidn11 sudo apt-get install pkg-config libc6-dev bison flex libelf-dev
|
净化源代码
获取当前内核配置
将系统当前正在运行的内核配置复制并且加载
1 2 3 4
| cd ~/linux-source-4.18.0 uname -a cp /boot/config-4.18.0-25-generic ./.config make menuconfig
|
执行编译命令生成内核和模块二进制文件
安装编译好的模块和内核
1 2
| sudo make modules_install sudo make install
|
重启
后记:
在安装内核过程中提示空间不足错误提示:
1
| gzip: stdout: No space left on device
|
因为我在编译内核的时候把很多驱动直接编译到了内核中,导致内核体积变大,500M的/boot分区都放不下,所以准备取消/boot分区,直接在/下重建。
1 2 3 4 5 6 7 8 9 10 11
| sudo rsync -arv /boot /home/用户名/backup sudo umount /boot/efi sudo umount /boot sudo ln -s /boot/home/用户名/backup/boot /boot sudo make install sudo rm -rf /boot sudo rsync -arv /home/zs/backup/boot / sudo rm -rf /boot/efi sudo mkdir /boot/efi sudo mount /boot/efi sudo rsync -arv /home/zs/backup/boot/efi /boot
|