旧MacBookPro9,2(2012年中款)双启动Ubuntu 22.04外接显示器异常求助
嘿,我来帮你一步步解决这个外接显示器的问题,毕竟2012款MacBookPro在Ubuntu上确实偶尔会有硬件兼容性小问题,别担心,咱们慢慢来:
先搞清楚当前的显示状态
首先打开终端(按Ctrl+Alt+T就能快速唤起),输入下面的命令:
xrandr
这个命令会列出所有已识别的显示器和它们支持的分辨率。你要重点看外接显示器的名称(比如可能是HDMI-1、DP-1或者VGA-1),以及有没有1920x1080这个全HD分辨率选项。
如果全HD分辨率不在列表里,咱们就手动添加它:
- 先生成该分辨率的模式参数,输入:
cvt 1920 1080 60
(这里的60是刷新率,大部分显示器都是60Hz,如果你的显示器支持更高刷新率,可以改成对应的数值,比如75)
- 命令会输出一段类似
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync的内容,把整段复制下来。 - 用复制的内容创建新的分辨率模式:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
(注意把这里的参数换成你刚才复制的内容,别直接抄我的)
- 把这个模式添加到你的外接显示器上,假设显示器名称是
HDMI-1,就输入:
xrandr --addmode HDMI-1 1920x1080_60.00
- 最后切换到这个分辨率:
xrandr --output HDMI-1 --mode 1920x1080_60.00
如果这样操作后显示器能正常显示全HD画面了,你可以把这些命令做成一个脚本,设置成开机自动运行,省得每次都手动输。
试试重新安装Intel显卡驱动
你的显卡是Intel HD Graphics 4000,Ubuntu默认自带开源驱动,但针对MacBook的硬件,重新安装或者更新驱动可能会解决问题:
打开终端输入:
sudo apt update && sudo apt install --reinstall xserver-xorg-video-intel
安装完成后重启电脑,看看外接显示器的情况有没有改善。
调整内核启动参数(针对MacBook硬件的特殊设置)
有时候MacBook的Intel显卡需要添加特定内核参数才能正常识别外接显示器,咱们来试试:
- 编辑grub配置文件:
sudo nano /etc/default/grub
- 找到
GRUB_CMDLINE_LINUX_DEFAULT这一行,在引号里添加i915.enable_dc=0或者i915.modeset=1,修改后应该类似:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_dc=0"
- 保存并退出编辑器(按
Ctrl+O,回车确认保存,再按Ctrl+X退出)。 - 更新grub配置:
sudo update-grub
- 重启电脑,看看问题是否解决。
最后检查一下硬件连接
2012款MacBookPro用的是Mini DisplayPort接口,如果你用的是转接线(比如Mini DP转HDMI),有可能是转接线质量太差导致的分辨率识别问题,试试换一根质量靠谱的转接线,或者直接用Mini DP转DP的线(如果你的显示器支持DP接口的话)。
如果上面的方法都试过还是不行,可以把xrandr命令的输出结果贴出来,我再帮你进一步排查~
备注:内容来源于stack exchange,提问作者FranzCaviglia

