openEuler 25.09 升级内核至 kernel 7.2.0(源码编译安装)
kernel7.2.0
环境信息
| 项目 | 值 |
|---|---|
| 系统 | openEuler 25.09 (x86_64) |
| 原内核 | 7.1.2 |
| 目标内核 | 7.2.0 |
| 硬件 | 6 核 CPU / 30Gi 内存 / 磁盘可用 134G |
| 显卡 | NVIDIA GeForce GTX 750 (GM107) |
编译与安装过程
解压源码:
linux-7.2.tar.gz(约 260MB,解压后 1.8G)→linux-7.2/内核配置:复用当前运行内核配置(
/proc/config.gz)→.config,再执行make olddefconfig适配 7.2并发编译:
make -j3(按需求限制并发为 3,防止系统死机;全量编译约 2.5 小时,产出 15000+ 目标文件)安装模块:
make modules_install→/lib/modules/7.2.0安装内核:
make install→/boot/vmlinuz-7.2.0、System.map-7.2.0、initramfs-7.2.0.img(dracut 生成)更新引导:grub 自动生成
openEuler (7.2.0) 25.09菜单项,并通过grub2-set-default将默认启动项切换为 7.2.0
安装结果验证
/boot/vmlinuz-7.2.0(13.8MB)、System.map-7.2.0、initramfs-7.2.0.img均已生成/lib/modules/7.2.0模块目录完整grub 默认项:
saved_entry=openEuler (7.2.0) 25.09
NVIDIA 闭源驱动适配(580.159.04)
1. strncpy 被内核 7.2 彻底移除
nvidia/os-interface.cnvidia/linux_nvswitch.cnvidia-modeset/nvidia-modeset-linux.cnvidia-uvm/uvm_pmm_gpu.c
2. DRM atomic API 重构(drm_atomic_state → drm_atomic_commit)
类型替换:
struct drm_atomic_state→struct drm_atomic_commit(约 22 处,5 个源文件)函数改名:
drm_atomic_state_alloc/put/init/default_clear/default_release→ 对应drm_atomic_commit_*(8 处)注意保留驱动自有函数
nv_drm_atomic_state_*不被误改(用词边界正则)
3. conftest.sh 签名检测过时
并发限制
/usr/src/nvidia-580.159.04/dkms.conf:-j6→-j3/etc/dkms/framework.conf:parallel_jobs=3
驱动安装验证
$ dkms status
nvidia/580.159.04, 7.1.2, x86_64: installed
nvidia/580.159.04, 7.2.0, x86_64: installed
DKMS 退出码 0;5 个模块(nvidia / nvidia-uvm / nvidia-modeset / nvidia-drm / nvidia-peermem)已装入
/lib/modules/7.2.0/kernel/drivers/video/initramfs 已重建并包含 nvidia 模块加载配置
重启后验证命令
uname -r # 应为 7.2.0
lsmod | grep nvidia # 应有 nvidia、nvidia_drm 等
nvidia-smi # 应正常显示 GTX 750
回滚方案
备注
源码目录中的
kernel-install.sh为编译安装流水线脚本(等待编译→安装模块→安装内核),可删除全部编译安装操作并发均 ≤ 3,避免系统负载过高死机
目录 返回
首页