1.下载内核并且解压
安装依赖
sudo apt-get install gcc libncurses5-dev build-essential kernel-package libssl-dev flex bison libelf-dev dwarves zstd libxcb-cursor0
2.执行make menuconfig,并不修改,使用默认然后退出,默认使用的配置是x86_64_defconfig
所以也可以直接:make x86_64_defconfig
还可以拷贝/boot/目录下的既有的config文件来作为编译内核的配置文件来编译。但是需要两个内核版本号差别不大,可以互通使用。
$ cp /boot/config-5.4.0-84-generic .config
将CONFIG_SYSTEM_TRUSTED_KEYS字符串置空。
或者使用工具方法去掉选项,达到同样目的:
$ scripts/config --disable SYSTEM_TRUSTED_KEYS
$ make menuconfig
$ make clean
3.执行make -j4
因为之前编译过,再次编译输出很少
4.执行sudo make modules_install
执行module_install命令会安装内核编译出来的所有模块,后续开发过程中,如果只更新了个别模块,只需要执行如下命令安装指定模块即可:
sudo make M=path/to/module modules_install
这种方式需要系统内核是自定义升级过的,并且是编译模块所在源码树。
如果是基于默认内核编译一个新的源码树上的指定模块,需要带出模块全路径。
$ make -C /lib/modules/5.15.0-122-generic/build/ M=/home/czl/Workspace/linux/linux-5.15.166/drivers/infiniband/sw/rxe modules
5.执行sudo make headers_install,用于开发应用程序
也是因为之前安装过,所以输出很少
6.最后,执行sudo make install,更新内核,文件系统和grub.
7:重启内核完成升级
注意:有些PC需要将security boot功能关闭才能完成升级,否则启动的时候对内核签名校验失败,无法正确启动,再bios里面有关闭开关,首先设置密码,再通过密码关闭security boot.
8:编译deb包:
方式:
make -j4 deb-pkg
HDRINST usr/include/asm/unistd_x32.h
HDRINST usr/include/asm/unistd_64.h
HDRINST usr/include/asm/ipcbuf.h
HDRINST usr/include/asm/socket.h
HDRINST usr/include/asm/termios.h
HDRINST usr/include/asm/unistd_32.h
HDRINST usr/include/asm/sockios.h
HDRINST usr/include/asm/bpf_perf_event.h
HDRINST usr/include/asm/poll.h
HDRINST usr/include/asm/errno.h
HDRINST usr/include/asm/param.h
HDRINST usr/include/asm/fcntl.h
HDRINST usr/include/asm/resource.h
HDRINST usr/include/asm/ioctls.h
HDRINST usr/include/asm/types.h
HDRINST usr/include/asm/ioctl.h
HDRINST usr/include/asm/termbits.h
INSTALL ./debian/headertmp/usr/include
dpkg-deb: 正在 '../linux-headers-5.4.138-rt62+_5.4.138-rt62+-1_amd64.deb' 中构建软件包 'linux-headers-5.4.138-rt62+'。
dpkg-deb: 正在 '../linux-libc-dev_5.4.138-rt62+-1_amd64.deb' 中构建软件包 'linux-libc-dev'。
dpkg-deb: 正在 '../linux-image-5.4.138-rt62+_5.4.138-rt62+-1_amd64.deb' 中构建软件包 'linux-image-5.4.138-rt62+'。
dpkg-genbuildinfo
dpkg-genchanges >../linux-5.4.138-rt62+_5.4.138-rt62+-1_amd64.changes
dpkg-genchanges: 警告: 控制文件声明了包 linux-image-5.4.138-rt62+-dbg 但它却不在文件列表中
dpkg-genchanges: info: 上传数据中包含完整的原始代码
dpkg-source -i.git --after-build linux-5.4.138
dpkg-buildpackage: info: 完整上载(包含原始的代码)
caozilong@caozilong-Vostro-3268:~/Workspace/linux-rt/linux-5.4.138$ find ./ -type f -name "*.deb"
在内核的上级目录,生成了3个deb文件,分别为内核,头文件以及libc.
安装:
sudo dpkg -i *.deb
czl@czl-RedmiBook-14:~/kernel$ sudo dpkg -i *.deb
[sudo] czl 的密码:
正在选中未选择的软件包 linux-headers-4.14.119。
(正在读取数据库 ... 系统当前共安装有 256271 个文件和目录。)
正准备解包 linux-headers-4.14.119_4.14.119-1_amd64.deb ...
正在解包 linux-headers-4.14.119 (4.14.119-1) ...
正在选中未选择的软件包 linux-image-4.14.119。
正准备解包 linux-image-4.14.119_4.14.119-1_amd64.deb ...
正在解包 linux-image-4.14.119 (4.14.119-1) ...
正在选中未选择的软件包 linux-image-4.14.119-dbg。
正准备解包 linux-image-4.14.119-dbg_4.14.119-1_amd64.deb ...
正在解包 linux-image-4.14.119-dbg (4.14.119-1) ...
正准备解包 linux-libc-dev_4.14.119-1_amd64.deb ...
正在将 linux-libc-dev (4.14.119-1) 解包到 (4.4.0-210.242) 上 ...
正在设置 linux-headers-4.14.119 (4.14.119-1) ...
正在设置 linux-image-4.14.119 (4.14.119-1) ...
* dkms: running auto installation service for kernel 4.14.119
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area....
make KERNELRELEASE=4.14.119 -C /lib/modules/4.14.119/build M=/var/lib/dkms/virtualbox/5.1.38/build.........
Signing module:
- /var/lib/dkms/virtualbox/5.1.38/4.14.119/x86_64/module/vboxpci.ko
- /var/lib/dkms/virtualbox/5.1.38/4.14.119/x86_64/module/vboxnetadp.ko
- /var/lib/dkms/virtualbox/5.1.38/4.14.119/x86_64/module/vboxdrv.ko
- /var/lib/dkms/virtualbox/5.1.38/4.14.119/x86_64/module/vboxnetflt.ko
Secure Boot not enabled on this system.
cleaning build area....
DKMS: build completed.
vboxdrv.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.14.119/updates/dkms/
vboxnetadp.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.14.119/updates/dkms/
vboxnetflt.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.14.119/updates/dkms/
vboxpci.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.14.119/updates/dkms/
depmod....
DKMS: install completed.
[ OK ]
update-initramfs: Generating /boot/initrd.img-4.14.119
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-142-generic
Found initrd image: /boot/initrd.img-4.15.0-142-generic
Found linux image: /boot/vmlinuz-4.15.0-112-generic
Found initrd image: /boot/initrd.img-4.15.0-112-generic
Found linux image: /boot/vmlinuz-4.14.119
Found initrd image: /boot/initrd.img-4.14.119
Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done
正在设置 linux-image-4.14.119-dbg (4.14.119-1) ...
正在设置 linux-libc-dev (4.14.119-1) ...
czl@czl-RedmiBook-14:~/kernel$
按照上述方法安装的,默认是没有安装.ko模块的,需要在源码目录中编译安装:
make modules
sudo make modules_install
生成内核头文件
第一步:
make mrproper
第二步:
make ARCH=x86_64 headers_check
第三步:
make ARCH=x86_64 INSTALL_HDR_PATH=/home1/caozilong/WorkSpace/linux/headers headers_install
安装结果:
基于社区公版预编译内核升级
下载ubuntu-mainline-kernel脚本
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
将脚本放在可执行路径中
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
检查最新的可用内核版本
ubuntu-mainline-kernel.sh -c
获得最新版本并确认这就是您想要安装在系统上的版本之后,运行
sudo ubuntu-mainline-kernel.sh -i
$ ubuntu-mainline-kernel.sh -c
Finding latest version available on kernel.ubuntu.com: v6.1.8
Finding latest installed version: none
A newer kernel version (v6.1.8) is available
$ sudo ubuntu-mainline-kernel.sh -i
Finding latest version available on kernel.ubuntu.com
Latest version is: v6.1.8, continue? (y/N)
Will download 6 files from kernel.ubuntu.com:
Downloading amd64/linux-headers-6.1.8-060108-generic_6.1.8-060108.202301240742_amd64.deb: 100%
Downloading amd64/linux-headers-6.1.8-060108_6.1.8-060108.202301240742_all.deb: 100%
Downloading amd64/linux-image-unsigned-6.1.8-060108-generic_6.1.8-060108.202301240742_amd64.deb: 100%
Downloading amd64/linux-modules-6.1.8-060108-generic_6.1.8-060108.202301240742_amd64.deb: 100%
Downloading amd64/CHECKSUMS: 100%
Downloading amd64/CHECKSUMS.gpg: 100%
Importing kernel-ppa gpg key ok
Signature of checksum file has been successfully verified
Checksums of deb files have been successfully verified with sha256sum
Installing 4 packages
Cleaning up work folder
$ ls -l /boot/
config-5.4.0-135-generic grub/ initrd.img-6.1.8-060108-generic System.map-5.4.0-135-generic vmlinuz-5.4.0-135-generic
config-5.4.0-136-generic initrd.img-5.4.0-135-generic memtest86+.bin System.map-5.4.0-136-generic vmlinuz-5.4.0-136-generic
config-5.4.0-137-generic initrd.img-5.4.0-136-generic memtest86+.elf System.map-5.4.0-137-generic vmlinuz-5.4.0-137-generic
config-6.1.8-060108-generic initrd.img-5.4.0-137-generic memtest86+_multiboot.bin System.map-6.1.8-060108-generic vmlinuz-6.1.8-060108-generic
升级指定版本
$ sudo ubuntu-mainline-kernel.sh -i v5.10.100
重新启动系统并检查内核版本
uname -rs
卸载最新的Linux Kernel
sudo ubuntu-mainline-kernel.sh -u
首先重启系统,然后运行以下命令:
uname -rs
-r 选项可以查看所有可用的内核版本。
$ ubuntu-mainline-kernel.sh -r
Downloading index from kernel.ubuntu.com
v3.2.85 v3.2.90 v3.2.92 v3.2.93 v3.2.94 v3.2.95 v3.2.96 v3.2.97 v3.2.98 v3.2.99 v3.2.100
v3.2.101 v3.4.113 v3.8.3 v3.8.7 v3.12.65 v3.12.66 v3.12.67 v3.12.68 v3.12.69 v3.12.70 v3.12.71
v3.12.72 v3.12.73 v3.12.74 v3.14.74 v3.14.75 v3.14.77 v3.14.78 v3.14.79 v3.16.40 v3.16.45 v3.16.50
v3.16.55 v3.16.60 v3.16.65 v3.16.70 v3.16.75 v3.16.76 v3.16.77 v3.16.78 v3.16.79 v3.16.80 v3.16.81
v3.16.82 v3.16.83 v3.16.84 v3.16.85 v3.18.40 v3.18.45 v3.18.50 v3.18.55 v3.18.60 v3.18.70 v3.18.75
v3.18.80 v3.18.85 v3.18.90 v3.18.95 v3.18.100 v3.18.105 v3.18.110 v3.18.115 v3.18.120 v3.18.125 v3.18.130
v3.18.131 v3.18.132 v3.18.133 v3.18.134 v3.18.135 v3.18.136 v3.18.137 v3.18.138 v3.18.139 v3.18.140 v4.1.30
v4.1.35 v4.1.40 v4.1.43 v4.1.44 v4.1.45 v4.1.46 v4.1.47 v4.1.48 v4.1.49 v4.1.50 v4.1.51
v4.1.52 v4.4.20 v4.4.30 v4.4.40 v4.4.50 v4.4.60 v4.4.70 v4.4.80 v4.4.90 v4.4.100 v4.4.110
v4.4.120 v4.4.130 v4.4.140 v4.4.150 v4.4.155 v4.4.160 v4.4.165 v4.4.170 v4.4.175 v4.4.180 v4.4.185
v4.4.190 v4.4.195 v4.4.200 v4.4.205 v4.4.210 v4.4.215 v4.4.220 v4.4.225 v4.4.230 v4.4.235 v4.4.240
v4.4.245 v4.4.250 v4.4.255 v4.4.260 v4.4.265 v4.4.270 v4.4.275 v4.4.280 v4.4.285 v4.4.290 v4.4.293
v4.4.294 v4.4.295 v4.4.296 v4.4.297 v4.4.298 v4.4.299 v4.4.300 v4.4.301 v4.4.302 v4.6.4 v4.6.5
v4.6.6 v4.6.7 v4.7.0 v4.7.1 v4.7.2 v4.7.3 v4.7.4 v4.7.5 v4.7.6 v4.7.7 v4.7.8
v4.7.9 v4.7.10 v4.8.0 v4.8.5 v4.8.8 v4.8.9 v4.8.10 v4.8.11 v4.8.12 v4.8.13 v4.8.14
v4.8.15 v4.8.16 v4.8.17 v4.9.0 v4.9.5 v4.9.10 v4.9.15 v4.9.20 v4.9.25 v4.9.30 v4.9.35
v4.9.40 v4.9.45 v4.9.50 v4.9.55 v4.9.60 v4.9.65 v4.9.70 v4.9.75 v4.9.80 v4.9.85 v4.9.90
v4.9.95 v4.9.100 v4.9.105 v4.9.110 v4.9.115 v4.9.120 v4.9.125 v4.9.130 v4.9.135 v4.9.140 v4.9.145
v4.9.150 v4.9.155 v4.9.160 v4.9.165 v4.9.170 v4.9.175 v4.9.180 v4.9.185 v4.9.190 v4.9.195 v4.9.200
v4.9.205 v4.9.210 v4.9.215 v4.9.220 v4.9.225 v4.9.230 v4.9.235 v4.9.240 v4.9.245 v4.9.250 v4.9.255
v4.9.260 v4.9.265 v4.9.270 v4.9.275 v4.9.280 v4.9.285 v4.9.290 v4.9.295 v4.9.300 v4.9.305 v4.9.310
v4.9.320 v4.9.323 v4.9.324 v4.9.325 v4.9.326 v4.9.327 v4.9.328 v4.9.329 v4.9.330 v4.9.331 v4.9.332
v4.9.333 v4.9.335 v4.9.336 v4.9.337 v4.10.0 v4.10.5 v4.10.8 v4.10.9 v4.10.10 v4.10.11 v4.10.12
v4.10.13 v4.10.14 v4.10.15 v4.10.16 v4.10.17 v4.11.0 v4.11.3 v4.11.4 v4.11.5 v4.11.6 v4.11.7
v4.11.8 v4.11.9 v4.11.10 v4.11.11 v4.11.12 v4.12.0 v4.12.5 v4.12.6 v4.12.7 v4.12.8 v4.12.9
v4.12.10 v4.12.11 v4.12.12 v4.12.13 v4.12.14 v4.13.0 v4.13.5 v4.13.7 v4.13.8 v4.13.9 v4.13.10
v4.13.11 v4.13.12 v4.13.13 v4.13.14 v4.13.15 v4.13.16 v4.14.0 v4.14.10 v4.14.20 v4.14.30 v4.14.40
v4.14.50 v4.14.60 v4.14.70 v4.14.80 v4.14.90 v4.14.100 v4.14.110 v4.14.120 v4.14.130 v4.14.140 v4.14.150
v4.14.155 v4.14.160 v4.14.165 v4.14.170 v4.14.175 v4.14.180 v4.14.185 v4.14.190 v4.14.195 v4.14.200 v4.14.205
v4.14.210 v4.14.215 v4.14.220 v4.14.225 v4.14.230 v4.14.235 v4.14.240 v4.14.245 v4.14.250 v4.14.255 v4.14.260
v4.14.265 v4.14.270 v4.14.275 v4.14.280 v4.14.285 v4.14.289 v4.14.290 v4.14.291 v4.14.292 v4.14.293 v4.14.294
v4.14.295 v4.14.296 v4.14.297 v4.14.298 v4.14.299 v4.14.301 v4.14.302 v4.14.303 v4.14.304 v4.15.0 v4.15.5
v4.15.9 v4.15.10 v4.15.11 v4.15.12 v4.15.13 v4.15.14 v4.15.15 v4.15.16 v4.15.17 v4.15.18 v4.16.0
v4.16.5 v4.16.9 v4.16.10 v4.16.11 v4.16.12 v4.16.13 v4.16.14 v4.16.15 v4.16.16 v4.16.17 v4.16.18
v4.17.0 v4.17.5 v4.17.10 v4.17.11 v4.17.12 v4.17.13 v4.17.14 v4.17.15 v4.17.16 v4.17.17 v4.17.18
v4.17.19 v4.18.0 v4.18.5 v4.18.10 v4.18.11 v4.18.12 v4.18.13 v4.18.14 v4.18.15 v4.18.16 v4.18.17
v4.18.18 v4.18.19 v4.18.20 v4.19.0 v4.19.5 v4.19.10 v4.19.15 v4.19.20 v4.19.25 v4.19.30 v4.19.35
v4.19.40 v4.19.45 v4.19.50 v4.19.55 v4.19.60 v4.19.65 v4.19.70 v4.19.75 v4.19.80 v4.19.85 v4.19.90
v4.19.95 v4.19.100 v4.19.105 v4.19.110 v4.19.115 v4.19.120 v4.19.125 v4.19.130 v4.19.135 v4.19.140 v4.19.145
v4.19.150 v4.19.155 v4.19.160 v4.19.165 v4.19.170 v4.19.175 v4.19.180 v4.19.185 v4.19.190 v4.19.195 v4.19.200
v4.19.205 v4.19.210 v4.19.215 v4.19.220 v4.19.225 v4.19.230 v4.19.235 v4.19.240 v4.19.245 v4.19.250 v4.19.255
v4.19.256 v4.19.257 v4.19.258 v4.19.259 v4.19.260 v4.19.261 v4.19.262 v4.19.263 v4.19.264 v4.19.265 v4.19.268
v4.19.269 v4.19.270 v4.19.271 v4.20.0 v4.20.5 v4.20.8 v4.20.9 v4.20.10 v4.20.11 v4.20.12 v4.20.13
v4.20.14 v4.20.15 v4.20.16 v4.20.17 v5.0.0 v5.0.5 v5.0.10 v5.0.12 v5.0.13 v5.0.14 v5.0.15
v5.0.16 v5.0.17 v5.0.18 v5.0.19 v5.0.20 v5.0.21 v5.1.0 v5.1.5 v5.1.10 v5.1.12 v5.1.13
v5.1.14 v5.1.15 v5.1.16 v5.1.17 v5.1.18 v5.1.19 v5.1.20 v5.1.21 v5.2.0 v5.2.5 v5.2.10
v5.2.12 v5.2.13 v5.2.14 v5.2.15 v5.2.16 v5.2.17 v5.2.18 v5.2.19 v5.2.20 v5.2.21 v5.3.0
v5.3.5 v5.3.9 v5.3.10 v5.3.11 v5.3.12 v5.3.13 v5.3.14 v5.3.15 v5.3.16 v5.3.17 v5.3.18
v5.4.0 v5.4.5 v5.4.10 v5.4.15 v5.4.20 v5.4.25 v5.4.30 v5.4.35 v5.4.40 v5.4.45 v5.4.50
v5.4.55 v5.4.60 v5.4.65 v5.4.70 v5.4.75 v5.4.80 v5.4.85 v5.4.90 v5.4.95 v5.4.100 v5.4.105
v5.4.110 v5.4.115 v5.4.120 v5.4.125 v5.4.130 v5.4.135 v5.4.140 v5.4.145 v5.4.150 v5.4.155 v5.4.160
v5.4.165 v5.4.170 v5.4.175 v5.4.180 v5.4.185 v5.4.190 v5.4.200 v5.4.205 v5.4.210 v5.4.214 v5.4.215
v5.4.216 v5.4.217 v5.4.218 v5.4.219 v5.4.220 v5.4.221 v5.4.222 v5.4.223 v5.4.224 v5.4.226 v5.4.227
v5.4.228 v5.4.229 v5.4.230 v5.5.0 v5.5.5 v5.5.10 v5.5.11 v5.5.12 v5.5.13 v5.5.14