![笔记本电脑显示器被禁用,无法重新启用](https://linux22.com/image/188101/%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E6%98%BE%E7%A4%BA%E5%99%A8%E8%A2%AB%E7%A6%81%E7%94%A8%EF%BC%8C%E6%97%A0%E6%B3%95%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8.png)
我想在插入外部显示器时关闭笔记本电脑显示器的电源,就像在我的发行版 (Manjaro 20.2) 上一样,使用xrandr
/禁用笔记本电脑屏幕arandr
不会关闭背光,并且不闪烁的光标仍然可见。
在我追求上述设置的过程中,我对我的计算机做了一些操作,现在,我的笔记本电脑显示器没有输出,并且不再对xrandr
.由于我的罪孽,我现在不记得我做了什么。相信我,我对自己也没有留下深刻的印象。
跑步xrandr -q
给了我以下内容:
Screen 0: minimum 8 x 8, current 2560 x 1080, maximum 32767 x 32767
HDMI-0 connected primary 2560x1080+0+0 (normal left inverted right x axis y axis) 798mm x 334mm
2560x1080 59.98*+ 74.99 50.00
3840x2160 29.97 25.00 23.98 23.98
2560x1440 59.95
1920x1080 75.00 60.00 59.94 50.00
1680x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1280x800 59.81
1280x720 60.00 59.94 50.00
1152x864 60.00
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 59.94
640x480 75.00 59.93 59.94
显然,我的笔记本电脑显示器(称为类似的东西eDP-1-1
)在这里不可用。
我该怎么做才能让我的笔记本电脑显示器恢复正常工作?
编辑
基于@TelcoM 的更新答案的更多详细信息:
我的集成GPU确实是Intel,我的独立GPU是NVIDIA。从我的 Xorg 日志来看,NVIDIA GPU 使用 NVIDIA 驱动程序,并且大概 Intel GPU 应该使用标准 Intel 驱动程序,但我不知道如何添加这些驱动程序,或者如何检查它们是否已经那里。
这是我的 Xorg 日志 -https://pastebin.com/X8F5k1BS
还有以下输出fbset -i
:
mode "1920x1080"
geometry 1920 1080 1920 1080 32
timings 0 0 0 0 0 0 0
accel true
rgba 8/16,8/8,8/0,0/0
endmode
Frame buffer device information:
Name : i915drmfb
Address : (nil)
Size : 8294400
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 1
YPanStep : 1
YWrapStep : 0
LineLength : 7680
Accelerator : No
编辑
在我最初的问题中,我概述了我如何认为 grub 的一些混乱导致了我的问题。一些对@telcoM 答案的深入挖掘会让我现在相信这毕竟不是问题所在。
我的结论是,我在累的时候做了一些愚蠢的事情,并且没有记下它是什么,所以现在我真的很困惑。我现在只是在寻找一种通用方法来诊断为什么我的笔记本电脑显示器对 不可见xrandr
,以及如何修复它。
原始问题详细信息
我跟着这个问题作为起点,建议编辑/etc/default/grub
添加video={monitor}:d
到设置的末尾GRUB_CMDLINE_LINUX_DEFAULT
,其中{monitor}
是根据 的显示器名称xrandr -q
。不清楚这里使用的显示器是笔记本电脑屏幕还是外接显示器,所以我选择了外接显示器,最终得到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet udev.log_priority=3 video=HDMI-0:d"
这没有达到我想要的在外部显示器上显示 GRUB 的效果,也没有关闭笔记本电脑屏幕的背光。此外,它还eDP-1-1
从可用屏幕列表中删除了笔记本电脑屏幕(类似于) xrandr
。现在我根本无法将输出输出到笔记本电脑屏幕上。
我怎样才能尝试诊断这个问题?
答案1
如果这是您所做的唯一更改,则只有在 GRUB 完成其工作并且内核接管之后才会生效。如果您在进行更改之前能够看到 GRUB 引导菜单,那么您应该仍然能够看到它。
通常情况下,您可以在 GRUB 引导菜单中按任意键中断自动引导过程,然后将选择栏移动到您要引导的内核,然后按 键E编辑引导项,然后执行。
让事情变得更复杂的是/etc/default/grub
一个预配置文件,它被预处理到真实的GRUB 配置文件。当您选择在启动时编辑启动项时,您将看到很多可以编辑的文本行。通常,您的GRUB_CMDLINE_LINUX_DEFAULT
设置将用于形成如下所示的配置行:
linux /vmlinuz-<version number> <other options> quiet udev.log_priority=3 video=HDMI-0:d <possibly some more options>
只需找到这样的一行,然后删除video=HDMI-0:d
给您带来问题的部分即可。
笔记:您在 GRUB 的启动时“启动项编辑模式”中所做的一切都是非持久性的:您在那里所做的任何更改都只会对该一次启动生效。一旦您回到 Linux 正常状态,您就有希望恢复屏幕显示,并且能够/etc/default/grub
再次编辑,然后sudo update-grub
再次运行以进行持久更改。
许多现代笔记本电脑都配备双 GPU:一个集成 CPU 的节能 GPU,用于最大限度地减少电池电量的使用,另一个独立 GPU 芯片用于需要提高显示性能时。不幸的是,一些笔记本电脑制造商采取了最便宜的方法:系统固件将只操作CPU集成的GPU,并让操作系统担心初始化第二个GPU。这意味着此类笔记本电脑只能在内部显示器以及物理连接到第一个 GPU 的任何外部显示器上显示固件配置菜单和启动过程的早期部分。
一种相当典型的双 GPU 设置似乎是内部显示器和 VGA 输出连接器连接到第一个 GPU,并将任何数字输出连接器(例如 HDMI 或 DisplayPort)连接到第二个功能更强大的 GPU。理由似乎是,如果您连接了外部高清显示器,您也很可能连接了外部电源,因此电池功耗不会成为问题。不幸的是,这种结构可能会限制您使用内部显示器进行启动故障排除和 BIOS 访问,因此您将无法设置 100%“纯粹”的仅外部显示器配置。
更高质量的双 GPU 实现将能够将输出从一个 GPU 切换到另一个 GPU,并且可能在 BIOS 菜单中进行设置,以选择在启动时使用哪个 GPU(如果两个 GPU 似乎都连接了显示器)。
如果不了解有关硬件的更多详细信息(主要是两个 GPU 的类型),就很难给出准确的说明。独立 GPU 还可能有两组驱动程序可供选择:ATI/AMD 和 Nvidia GPU 都有专有的二进制驱动程序和可用的开源驱动程序。
您的第一步可能应该是尝试加载两个 GPU 的内核模式设置驱动程序:首先是您想要用作“主”显示器的驱动程序,以便内核的文本模式显示最初在有用的位置启动。
一旦这些都存在,就可以看看 X11 服务器如何看待 GPU:如果加载了内核模式设置驱动程序,并且安装了两个 GPU 的 X11 驱动程序模块,它可能会自动检测两个 GPU,因为两个 GPU 现在似乎都有显示器附着在他们身上。如果没有,您可能必须至少编写一个部分xorg.conf
文件放入其中/etc/X11/xorg.conf.d
,以告诉 X 服务器需要两个 GPU,而不仅仅是一个。
然后,您应该能够在xrandr --listproviders
输出中看到两个 GPU。一旦你有了这个,xrandr --setprovideroutputsource 1 0
或者类似的将GPU耦合到一个单一的显示系统中,并带来其他GPU显示器/显示连接器可用于xrandr
- 或您的桌面环境选择的GUI显示配置工具,就此而言。然后,只需选择要使用的显示分辨率,并配置显示器相对于彼此的物理位置,以便鼠标指针从一个屏幕到另一个屏幕的转换有意义。