安装N卡驱动时出现问题

你应该卸载掉 nvidia-tesla-470-driver-bin 这个包

那这几个包我也给删了

brandon@debian:~$ sudo apt autoremove 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包将被【卸载】:
  libegl-nvidia-tesla-470-0:i386 libgl1-nvidia-tesla-470-glvnd-glx:i386 libgles-nvidia-tesla-470-1 libgles-nvidia-tesla-470-1:i386 libgles-nvidia-tesla-470-2 libgles-nvidia-tesla-470-2:i386 libnvidia-tesla-470-encode1 libnvidia-tesla-470-encode1:i386 libnvidia-tesla-470-nvcuvid1 libnvidia-tesla-470-nvcuvid1:i386 nvidia-tesla-470-driver-libs
  nvidia-tesla-470-driver-libs:i386 nvidia-tesla-470-egl-icd nvidia-tesla-470-egl-icd:i386
升级了 0 个软件包,新安装了 0 个软件包,要卸载 14 个软件包,有 0 个软件包未被升级。
解压缩后将会空出 15.0 MB 的空间。
您希望继续执行吗? [Y/n] 

因为你的显卡是 4060,只安装 nvidia-driver 这个元包就好。

nvidia-detect 命令可以用于检查显卡,它会提示建议的驱动包。

好的,这样应该就可以了吧?那怎么看显卡驱动有没有装好呢?

使用 nvidia-smi 命令。

内个……

brandon@debian:~$ nvidia-smi 
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

怎么办 :sob:

看上去你的系统状态比较糟糕…暂且没什么头绪 :smiling_face_with_tear:

:sob:

先别绝望!发一下 sudo journalctl -b 的内容看看。你可以贴到 pastebin 之类的地方。记得删掉敏感信息。

这边不能发送文档是吧?
p.s. pastebin 是什么?剪切板吗?

我也看不懂,就直接复制过来了

发现了可能的问题:

1、软件源存在重复内容,应当删掉 http://deb.debian.org 相关的条目。
与此同时,你的系统版本奇怪的低,因为最新版本应该是 Debian 12.5 而你的系统是 Debian 12.2。你的 /etc/apt/ 文件夹中都有什么文件?/etc/default/grub 内容是什么?也许你应该先解决为什么无法正确升级版本的问题。

2、你的显卡驱动不工作的原因是,虽然安装了正确的驱动包,但是 /lib/modules/6.1.0-13-amd64 找不到对应的内核模块。也许你应该贴一下 /lib/modules/ 下都有什么?但是你的 dkms 表示模块已经安装。
你的系统上都安装了哪些版本的内核?sudo dkms autoinstall 的输出是什么?

brandon@debian:~$ ls /etc/apt/
apt.conf.d   listchanges.conf    sources.list    sources.list.save
auth.conf.d  listchanges.conf.d  sources.list~   trusted.gpg.d
keyrings     preferences.d       sources.list.d
brandon@debian:~$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
#GRUB_DISABLE_OS_PROBER=false

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
brandon@debian:~$ ls /lib/modules/
6.1.0-13-amd64  6.1.0-18-amd64
brandon@debian:~$ sudo dkms autoinstall 
[sudo] brandon 的密码:
Sign command: /usr/lib/linux-kbuild-6.1/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...
Error! Your kernel headers for kernel 6.1.0-13-amd64 cannot be found at /lib/modules/6.1.0-13-amd64/build or /lib/modules/6.1.0-13-amd64/source.
Please install the linux-headers-6.1.0-13-amd64 package or use the --kernelsourcedir option to tell DKMS where it's located.
Sign command: /usr/lib/linux-kbuild-6.1/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Error! Your kernel headers for kernel 6.1.0-13-amd64 cannot be found at /lib/modules/6.1.0-13-amd64/build or /lib/modules/6.1.0-13-amd64/source.
Please install the linux-headers-6.1.0-13-amd64 package or use the --kernelsourcedir option to tell DKMS where it's located.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.

所以你的显卡驱动确实安装成功了,但是你启动的是之前的旧内核 6.1.0-13-amd64。尝试 sudo update-initramfssudo update-grub,最后在重启开机时选择正确的启动项。

上面这个指令好像没写全诶

brandon@debian:~$ sudo update-initramfs
You must specify at least one of -c, -u, or -d.


Usage: update-initramfs {-c|-d|-u} [-k version] [-v] [-b directory]

Options:
 -k version	Specify kernel version or 'all'
 -c		Create a new initramfs
 -u		Update an existing initramfs
 -d		Remove an existing initramfs
 -b directory	Set alternate boot directory
 -v		Be verbose

See update-initramfs(8) for further details.

换顺序应该没关系吧?我下面的哪个先执行了
“正确的启动项“是什么啊:face_with_raised_eyebrow:

sudo update-initramfs -u

该命令用于重新生成 initramfs。我只是希望至少排除一个可能的原因,让启动项正确生成…

能启动 kernel 6.1.0-18-amd64 的那个。

另外我注意到你的系统似乎开了安全启动?使用 nvidia-driver 就无法启用 Debian 的开箱即用的安全启动,你需要关闭它。

没有,我bios的安全启动是关闭的

3月 07 19:46:42 debian kernel: secureboot: Secure boot disabled

确实。

我刚才重启过了,但是还是只有三个选项

Debian GNU/Linux
Advance option for Debian GNU/Linux
UEFI Firmuware Setting

你已经安装了6.1.0-18的内核,
sudo apt install linux-headers-6.1.0-18-amd64
会自动安装common包,看看有没有问题。
6.1.0-13的headers包,系统仓库不含这个包。-前段时间我就是自己去下载安装的。
系统仓库的nvidia闭源驱动不好用,我已经好久没有用了—用不了。

不要手动这么做。因为随着软件包的更新,这个旧的包会被卸载会跟不上内核镜像版本。

如果真的希望把内核头文件设置为手动安装依赖项,那么应该安装这个包:linux-headers-amd64

另外 dkms 会自动依赖这个包,而 dkms 又被 nvidia-driver 依赖,因此只是想用 nvidia-driver 就不需要手动安装内核头文件包。

只有你真的希望手动保留它的时候才需要安装具体的版本,而不是元包。