热插拔 HDMI 连接在 Ubuntu 上不起作用

热插拔 HDMI 连接在 Ubuntu 上不起作用

我在 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

相关内容