nvidia驱动非常”脆弱”
一次非正常关机(直接断电),就有可能掉驱动
在系统环境配置好之后,我给我的电脑插了两个显示屏,然后驱动就不能用了???
再装死活也装不上,一直报error
ERROR: An error occurred while performing the step :"Building kernel modules". See /var'/log/nvidia-installer.log for details.
1
尝试很多方法都没有解决,因为一直报与”kernel”有关的错误,所以想是不是ubuntu内核版本的问题
uname -r
1
查看当前使用的版本内核,
另外可在 /lib/modules路径下查看已经安装的内核.
因为执行过apt-get upgrade命令,内核从4.10升级到4.13,在安装nvidia驱动就会报错,所以就把内核版本重新降回4.10版本,再次安装,问题解决.
内核版本在升级时,并不会删除旧版本,只是用新的替换旧的,只需要删除新版本内核,系统会自动降到旧版本,删除新版本内核:
uname -r //查看当前内核版本
sudo apt-get remove linux-image-(版本号)-generic
ubuntu删除正在使用的内核
查看内核信息:
dpkg --get-selections | grep linux
状态为deinstall
即已经卸载,如果觉得看着不舒服的话可以使用purge连配置文件里一起彻底删除,清理内核列表。
删除多余的内核,如下:
sudo apt autoremove linux-headers-5.4.0-52 linux-headers-5.4.0-52-generic linux-image-5.4.0-52-generic linux-modules-5.4.0-52-generic linux-modules-extra-5.4.0-52-generic linux-modules-nvidia-450-5.4.0-52-generic
或
sudo apt --purge autoremove linux-headers-5.4.0-52 linux-headers-5.4.0-52-generic linux-image-5.4.0-52-generic linux-modules-5.4.0-52-generic linux-modules-extra-5.4.0-52-generic linux-modules-nvidia-450-5.4.0-52-generic
删除内核后需要更新grub移除失效的启动项:
sudo update-grub
Could not get lock /var/lib/dpkg/lock
有朋友在使用Ubuntu Linux的apt 包管理器更新或安装软件时,可能会遇到过诸如以下:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
1
2
或者:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
1
2
再或者:
E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
1
2
等这样的报错信息。
这种时候做为小白的你或许会有些不知所措,请冷静不必惊慌,这些错误提示大多是因为某些程序在系统后台进行着某些 apt 操作,因此锁定了 apt 数据库,所以暂时不能进行 apt 操作。就像windows上某程序或文件被另一进程所占有时,其他进程也无法访问一样,这是符合设计逻辑的。
解决方案
那遇到这种情况,一般我们只需要安静地等待几分钟,或者先去做其他的事情,比如打把落地成盒或者王者农药,直到当前的更新、安装或卸载任务完成后,锁就会自动释放,然后就可以进行 apt 操作了。
当然了,上面说的是正常情况下的对应,那非正常情况下,比方说你等了好多个几分钟锁都还没有被释放,你就要看看是不是该进程由于某些原因而卡住了并且一直占用着锁。如果是的话,那你只能干掉这个进程,然后删除该锁定了。
首先,我们 先找出是哪个进程占用了锁文件 /var/lib/dpkg/lock
$ sudo lsof /var/lib/dpkg/lock
1
其他锁文件对应的命令
$ sudo lsof /var/lib/dpkg/lock-frontend
$ sudo lsof /var/lib/apt/lists/lock
1
2
然后得到输出结果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
unattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock