windows 11 发布了,新系统要求开启TPM2.0(一个安全芯片标准,8代及以后的intel和较新的amd cpu都支持)。但是之前在ubuntu下使用run包装nvidia 驱动时,一般都会遵循一些教程关闭UEFI的secure boot,同时也就关闭了TPM等。本文记录了如何开启TPM,在ubuntu下安装nvidia gpu driver。
开启TPM
以华硕主板, amd cpu为例,在UEFI中找到启动-->安全启动-->OS Type,选择Windows UEFT 模式。
在高级-->AMD fTPM设置,将默认的独立模式改为固件模式。
生成密钥
重启进入系统后,分辨率会变得很低。 根据How to install nvidia driver with secure boot enabled?这篇回答,根据实际情况修改下面命令中部分参数。
openssl req -new -x509 -newkey rsa:2048 -keyout PATH_TO_SAVE_PRIVATE_KEY -outform DER -out PATH_TO_SAVE_PUBLIC_KEY -nodes -days 36500 -subj "/CN=Graphics Drivers"
sudo mokutil --import PATH_TO_SAVE_PUBLIC_KEY
修改PATH_TO_SAVE_PUBLIC_KEY
,PATH_TO_SAVE_PRIVATE_KEY
为你自己的路径。第二条命令会让你设置密码。
执行完毕后重启,屏幕会提示让你倒入key。按照https://sourceware.org/systemtap/wiki/SecureBoot的说明,enroll mok --> continue --> yes--> 输入你在上一步设置的密码 --> ok。
安装nvidia driver
下载cuda toolkit,使用参数--extract=/tmp/nvidia
将下载包的内容解压到/tmp/nvidia/
中。在解压目录中可以看到驱动文件比如NVIDIA-Linux-x86_64-470.42.01.run
。
按照之前安装nvidia 驱动的步骤,关闭gdm或者lightdm之类。
然后执行以下命令
sudo bash /tmp/nvidia/NVIDIA-Linux-x86_64-470.42.01.run -s --module-signing-secret-key=PATH_TO_SAVE_PRIVATE_KEY --module-signing-public-key=PATH_TO_SAVE_PUBLIC_KEY
有可能需要去掉-s
。
安装完成后重启即可。
Reference
https://www.tomshardware.com/news/windows-11-tpm-enable-bios-uefi
https://www.isumsoft.com/it/how-to-boot-my-computer-asus-from-usb-in-uefi-bios/
https://askubuntu.com/questions/1023036/how-to-install-nvidia-driver-with-secure-boot-enabled/1049479#1049479
https://sourceware.org/systemtap/wiki/SecureBoot
Comments