我发现,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 驱动程序将正常运行。