Linux – Kali Rolling can’t connect to external display. How to troubleshoot it

graphics cardkali-linuxmultiple-monitorsnvidia-graphics-card

The screen is connected to an HDMI port on my laptop through an adaptor (the screen is not HDMI-capable). The same screen works fine with Windows.

There's a key on my keyboard to change screen, it just says 'No external display'.

How do I troubleshoot this?

Linux 4.14.0-kali3-amd64 #1 SMP Debian 4.14.12-2kali2 (2018-01-11) x86_64 GNU/Linux

.

 dpkg -l |grep nouv
ii  libdrm-nouveau2:amd64                         2.4.89-1                             amd64        Userspace interface to nouveau-specific kernel DRM services -- runtime
ii  xserver-xorg-video-nouveau                    1:1.0.15-2                           amd64        X.Org X server -- Nouveau display driver

.

lspci 
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 05)
00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] (rev 31)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)
00:1c.3 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #4 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060] (rev a1)
02:00.0 Network controller: Intel Corporation Intel Dual Band Wireless-AC 3165 Plus Bluetooth (rev 99)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
04:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961

Best Answer

You can troubleshoot your display setup using the xrandr application. When called without arguments, it shows all detected outputs and attached screens with their supported resolutions. Check if there is an output for your HDMI connector, something named HDMI-X or HDMIX (depending on the configuration, where X is a number).

If there is, you should plug in the display and see if xrandr shows any supported resolutions below that HDMI-X entry. If it shows some, but the screen is not enabled on it's own, try xrandr --output <output name> --auto to enable that screen, and xrandr --output <output name> --left-of <output-name> to place it to the left of some other output (your Laptop screen for example). --right-of works as well.

If there are no screen resolutions visible below the HDMI-X-entry, but it still says connected, then your screen (probably because of the adaptor) does not advertise its supported resolutions. In that case, try adding a supported mode manually by using xrandr's --addmode switch (see man xrandr for further information).

If you can't see either your HDMI port or it says disconnected despite your screen being plugged in, you'd probably need to fiddle with your hardware/driver configuration. Try proprietary drivers instead of the free ones, as already pointed out in the comments. Try another output if you have multiple, and see if that works.

Related Question