1.问题说明
首先说明为什么外接屏幕需要装显卡驱动,显卡由GPU和显存构成,又称为显示适配器,与数据的输出有密切关系。
在ubuntu系统中,外接显示器是用的独立显卡驱动,而内置屏幕用的是集显驱动,也正是因为调用显卡的不同,产生了黑屏幕的现象。也就是说你的电脑不管哪个屏幕会不亮,都是因为独显与集显驱动之间的冲突或不适配。
网上各种各样的方法和讨论十分混杂,这里我将我所遇到的坑记录一下。
2.准备操作
为了避免后面不必要的麻烦,将会采取如下操作
2.1 更换源
1、打开源文件
sudo chmod 666 /etc/apt/sources.list
sudo gedit /etc/apt/sources.list
2、把以下内容复制
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
3、更新
sudo apt update
sudo apt upgrade
2.2安装依赖
sudo apt-get update #更新软件列表
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install build-essential
sudo apt-get install libc6-dev
2.3 禁用nouveau
#打开文件,
sudo gedit /etc/modprobe.d/blacklist.conf
#在最后添加如下两行:
blacklist nouveau
options nouveau modeset=0
#然后更新设置
sudo update-initramfs -u
随后输入以下命令,若无输出则成功
lsmod | grep nouveau
2.4 更换图形化界面
更换图像化界面是因为lightdm比gdm3的兼容性大
sudo apt-get install lightdm
sudo dpkg-reconfigure lightdm
3. 驱动安装
目前网上常见的驱动安装方法有三类,我称之为全自动、半手动和全手动,这一步先将显卡驱动安装上,先不考虑黑屏问题。
3.1全自动
全自动安装是使用ubuntu自带的"软件和更新",安装完成之后重启。
3.2半手动
ubuntu-drivers devices #查看适合本显卡的驱动
sudo apt-get install nvidia-430
3.3全手动
https://www.nvidia.com/Download/index.aspx?lang=en-us
首先用上面的网站自己选驱动
1.停图形化显示,进入文字命令行
sudo service lightdm stop
2. 删除已安装的显卡驱动
sudo apt-get remove --purge nvidia*
切勿使用这句sudo apt-get autoremove
3. 修改显卡驱动文件的权限
sudo chmod a+x NVIDIA-Linux-x86_64-396.18.run
4. 安装显卡驱动
sudo ./NVIDIA-Linux-x86_64-470.57.02.run -no-x-check -no-nouveau-check -no-opengl-files
一直按yes,最后一个-X也按yes.如果选择no,内置屏幕正常,但外接屏不能使用。
上面不管那种方法安装完,都需要重启。
4. 黑屏处理
不管使用上面哪种方法,都可能会出现黑屏的现象,左上方有一个小短白线一直在闪,进不到图形化界面。可以输入nvidia-smi测试显卡驱动是否安装成功。
如果身边有外接显示器可以插上试一下,会发现外接显示器是能够正常使用的。这是因为安装显卡驱动后,独立显卡的显示配置把之前的显示配置替换了。这时其实只需要覆盖 /etc/X11/xorg.conf
cd /etc/X11
sudo rm xorg.conf
sudo cp xorg.conf.nvidia-xconfig-original xorg.conf
reboot
这个配置文件重启后,电脑内置屏幕就可以进入图形化界面了,但外接显示屏是不能用的。如果没有外接显示器需求的小伙伴们就可以结束了。
5. 双屏幕
5.1首先查看系统是否能检测到屏幕
如果检测不到需要检查接口驱动问题
xrandr
5.2 查看nvidia-setting设置
sudo apt-get install nvidia-settings
nvidia-settings
若显示中没有出现X server Display Configuration,可能需要考虑重新安装一个驱动。
在配置界面左侧选择“X Server Display Configuration”,然在屏幕右方的“layout”中能看到两个类似显示器的方框,点击方框中有“disable”的方框,再点击“configuration”,选择“TwinView”,点击“确定”,然后点击“Apply”,最后点击“Save to X Configuration file”,点击保存。
5.3 亮度问题
如果顺利的话,会显示出两个屏幕,但会出现亮度无法调节的情况。这是因为亮度的控制是由集成显卡控制的,出现了冲突情况。这时需要重启进入bios中将显卡模式调成独显模式。再进入系统,一切变为正常。
6.总结
总之,整个过程与自己电脑显卡型号,驱动包型号和ubuntu版本都有关系。如果顺利选择一个好的驱动包,什么不需要调整就可以双屏幕显示。一个不适合的显卡驱动,需要花费很大力气才能实现双屏显示。
但是针对只需要电脑内置屏的朋友,只需要把xorg.conf文件覆盖即可。
根据我个人的情况推荐使用ubuntu自带的全自动显卡驱动安装,比较方便,如果一个包不合适,再多试几个其他版本的。博主本人也是是了第三个才成功。