我在 Dell Inspiron 15 Gaming 7566 上使用 elementaryOS Loki(基于 Ubuntu 的操作系统)。虽然 HDMI 连接适用于我的屏幕和电视,但只有当我重新启动计算机并连接 HDMI 且设备打开时它才会起作用(因此每次连接新设备时我都需要重新启动)。
除了系统预装的驱动程序外,我没有使用任何其他驱动程序。那么我能做些什么来解决这个问题,还是这只是我的笔记本电脑的硬件“问题”?
答案1
刚刚在配备英特尔+英伟达显卡的戴尔 Inspiron 13 上的 Ubuntu 16.04 LTS 上解决了这个问题。我花了一年多的时间。
我仅按照此处的说明安装了 HWE 内核和 HWE X-server:https://wiki.ubuntu.com/Kernel/LTSEnablementStack
sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04
无需重新启动即可连接第二台显示器。
答案2
我在 Arch 上,在 Dell 7566 上遇到同样的问题。对我有用的解决方法是:
- 启动时连接(任意)显示器(如果没有这个,下一步将不起作用),
- 我可以拔下显示器的电源,然后当我将其(或另一个显示器)重新连接时,我只需让笔记本进入睡眠状态(当它还没有处于睡眠状态时),然后将其唤醒,显示器就可以工作了!
这个方案适用于我家里和办公室的两个 HDMI 显示器。但是,它不适用于通过 HDMI-VGA 缩减连接的旧显示器(它仅在重新启动后才有效),这让我很抓狂……
答案3
这是hotplugtv
我为 Ubuntu 16.04 编写的 bash 脚本。据说它也适用于 Ubuntu 17.04。
#!/bin/bash
# NAME: hotplugtv
# PATH: /home/$USER/bin
# DESC: Update pulseaudio output device when HDMI TV plugged / unplugged
# CALL: called from /etc/udev/rules.d/99-hotplugtv.rules
# and /home/$USER/bin/lock-screen-timer
# DATE: Created Nov 26, 2016.
# NOTE: logs output using log-file
# UPDT: Dec 14, 2016 - Sometimes /sys/class/drm/card0 & sometimes /sys/class/drm/card1
# so use /sys/class/dmcard* instead.
# Dec 21, 2016 - Relocated to /home/$USER/bin for calling by lock-screen-timer
# Aug 06, 2017 - Convert from home grown log-file to universal logger command.
if [[ $(cat /sys/class/drm/card*-HDMI-A-1/status | grep -Ec "^connected") -eq 1 ]]; then
logger -t /home/rick/bin/log-hotplugtv "HDMI TV connected"
/bin/sleep 2;
export PULSE_RUNTIME_PATH="/run/user/1000/pulse/";
sudo -u rick -E pacmd set-card-profile 0 output:hdmi-stereo;
else
logger -t /home/rick/bin/log-hotplugtv "HDMI TV disconnected"
export PULSE_RUNTIME_PATH="/run/user/1000/pulse/";
sudo -u rick -E pacmd set-card-profile 0 output:analog-stereo;
fi
exit 0
重要的:将用户名“rick”更改为您的用户名。
为了在udev
热插拔事件期间调用此脚本,请创建/etc/udev/rules.d/99-hotplugtv.rules
包含以下内容的文件:
ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/home/rick/bin/hotplugtv"
更改/home/rick/bin/
为放置脚本的路径hotplugtv
。