在 Nvidia 驱动程序处于活动状态的情况下,是否可以在 Ubuntu 18.04 LTS 上使用比 5.4 更新的内核?

在 Nvidia 驱动程序处于活动状态的情况下,是否可以在 Ubuntu 18.04 LTS 上使用比 5.4 更新的内核?

我发现,Ubuntu 18.04 LTS 中只有内核版本 5.4 可用,这是由名为linux-image-generic-hwe-18.04

众所周知,主线内核不能与 Ubuntu 存储库中的 Nvidia 驱动程序兼容。

我如何获取更新的内核版本?

答案1

可以通过从较新的 Ubuntu 版本(比如 Ubuntu 21.10(impish))下载内核源并使用相关的 Docker 容器,然后在目标 18.04 LTS 系统上编译内核并进行如下小修改:

mkdir -p ~/Downloads/impish-kernel

然后使用任何文本编辑器将以下代码放入目录compile-impish-kernel.sh内的脚本中:~/Downloads/impish-kernel

#!/bin/bash
# prepare download script
cat << EOF > script.sh
set -x

sed -i "s/# deb-src/deb-src/g" /etc/apt/sources.list
apt-get update && \
apt-get install -y dpkg-dev
cd && apt-get source linux
chown -R 1000:1000 linux* 
EOF

# run script inside container
docker run --rm -v ${PWD}:/root -it ubuntu:impish sh /root/script.sh

cd linux-5.13.0
echo 9 > debian/compat
LANG=C fakeroot debian/rules clean

sed -i "s/^CONFIG_KASAN/#CONFIG_KASAN/" debian.master/config/annotations
sed -i "s/^CONFIG_KCSAN/#CONFIG_KCSAN/" debian.master/config/annotations
LANG=C fakeroot debian/rules binary-headers binary-generic binary-perarch

ls ../linux-headers-5.13*.deb ../linux-image-unsigned-5.13*.deb ../linux-modules-*.deb

运行脚本

chmod +x compile-impish-kernel.sh
./compile-impish-kernel.sh

最后安装 5.13 内核包

sudo apt-get install ./linux-headers-5.13*.deb ./linux-image-unsigned-5.13*.deb ./linux-modules-*.deb

结果将安装 5.13 内核。Nvidia 驱动程序将正常运行。

相关内容