What drivers to install to connect Raspberry Pi 4B to TV?


I’ve got a TV capable of 4K @ 60Hz, and would like to connect the Pi to that for the occasional XFCE session. (I typically run headless.)

A couple of questions:

  1. What driver do I need to install?
  2. What should the config file look like for the TV as display device?

Here’s what I have available via pacman.

$ pacman -Ss xf86
extra/libxxf86vm 1.1.4-4 [installed]
X11 XFree86 video mode extension library
extra/xf86-input-elographics 1.4.2-2 [installed]
X.org Elographics TouchScreen input driver
extra/xf86-input-evdev 2.10.6-2 (xorg-drivers)
X.org evdev input driver
extra/xf86-input-libinput 0.30.0-1 (xorg-drivers) [installed]
Generic input driver for the X.Org server based on libinput
extra/xf86-input-synaptics 1.9.1-2 (xorg-drivers)
Synaptics driver for notebook touchpads
extra/xf86-input-void 1.4.1-5 (xorg-drivers) [installed]
X.org void input driver
extra/xf86-input-wacom 0.39.0-2
X.Org Wacom tablet driver
extra/xf86-video-amdgpu 19.1.0-2 (xorg-drivers)
X.org amdgpu video driver
extra/xf86-video-dummy 0.3.8-4 (xorg-drivers) [installed]
X.org dummy video driver
extra/xf86-video-fbdev 0.5.0-2 (xorg-drivers)
X.org framebuffer video driver
extra/xf86-video-sisusb 0.9.7-3
X.org SiS USB video driver
extra/xf86-video-vesa 2.4.0-3 (xorg-drivers xorg)
X.org vesa video driver
community/xf86-video-fbturbo-git 199.f9a6ed7-4.1
X.org MALI video driver
community/xf86-video-qxl 0.1.5-8 (xorg-drivers)
Xorg X11 qxl video driver

If you just want to use the TV as a monitor then just connect a hdmi cable between the two and it should be fine or have I misunderstood what you are trying to do?

1 Like

That’s exactly what I’m trying to do. Thanks! :slight_smile:

I’m glad to know it’s supposed to be that easy.

I’m not getting an output, but I’m able to SSH in.

LightDM is enabled and running.

I’m getting this output when I check the graphics status:

$ inxi -G
Graphics: Device-1: bcm2711-vc5 driver: vc4_drm v: N/A
Device-2: bcm2711-hdmi0 driver: N/A
Device-3: bcm2711-hdmi1 driver: N/A
Display: server: X.org 1.20.9 driver: none unloaded: fbturbo tty: 255x63
Message: Advanced graphics data unavailable in console. Try -G --display

So there’s no Xorg display driver loaded. fbturbo, which I installed, is available, but isn’t being picked up.

I think it’s not autoconfiguring because I’m trying to use a wireless HDMI adapter, so it doesn’t think it’s plugged in to a monitor.

I do have the dummy driver installed and a 10-headless.conf xorg.conf file set up. Should I delete those?

Can you post the output of

inxi -Faz

Also what is make and model of the wireless tv adaptor, please.

1 Like

Thanks for your help. Here’s what I’ve got.

$ inxi -Faz
System: Host: $HOST Kernel: 5.4.61-1-MANJARO-ARM aarch64 bits: 64
parameters: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1
snd_bcm2835.enable_headphones=1 video=HDMI-A-1:1920x1080M@60 smsc95xx.macaddr=DC:A6:32:67:EC:54
vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 root=LABEL=ROOT_MNJRO rw rootwait console=ttyS0,115200
console=tty1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=ttyS0,115200
elevator=noop usbhid.mousepoll=8 snd-bcm2835.enable_compat_alsa=0
Console: tty 0 Distro: Manjaro ARM

Machine: Type: ARM Device System: Raspberry Pi 4 Model B Rev 1.1 details: BCM2835 rev: c03111 serial:

CPU: Topology: Quad Core model: N/A variant: cortex-a72 bits: 64 type: MCP family: 8 model-id: N/A stepping: 3
microcode: N/A
Speed: 600 MHz min/max: 600/2000 MHz Core speeds (MHz): 1: 600 2: 600 3: 600 4: 600
Vulnerabilities: Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: spec_store_bypass status: Vulnerable
Type: spectre_v1 mitigation: __user pointer sanitization
Type: spectre_v2 status: Vulnerable
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected

Graphics: Device-1: bcm2711-vc5 driver: vc4_drm v: N/A
Device-2: bcm2711-hdmi0 driver: N/A
Device-3: bcm2711-hdmi1 driver: N/A
Display: server: X.org 1.20.9 driver: none unloaded: fbturbo tty: 255x63
Message: Advanced graphics data unavailable in console. Try -G --display

Audio: Device-1: bcm2835-audio driver: bcm2835_audio
Device-2: bcm2711-hdmi0 driver: N/A
Device-3: bcm2711-hdmi1 driver: N/A
Sound Server: ALSA v: k5.4.61-1-MANJARO-ARM

Network: Message: No ARM data found for this feature.
IF-ID-1: br-a738a62695b2 state: up speed: N/A duplex: N/A mac:
IF-ID-2: docker0 state: down mac:
IF-ID-3: eth0 state: up speed: 1000 Mbps duplex: full mac:
IF-ID-4: vethb42d77f state: up speed: 10000 Mbps duplex: full mac:
IF-ID-5: wlan0 state: down mac:

Drives: Local Storage: total: 298.12 GiB used: 8.83 GiB (3.0%)
ID-1: /dev/mmcblk0 model: GE8QT size: 238.50 GiB block size: physical: 512 B logical: 512 B
ID-2: /dev/sdb type: USB vendor: Kingston model: Multi-Reader -1 size: 59.62 GiB block size: physical: 512 B
logical: 512 B

Partition: ID-1: / raw size: 238.26 GiB size: 234.51 GiB (98.43%) used: 8.78 GiB (3.7%) fs: ext4 dev: /dev/mmcblk0p2
ID-2: /boot raw size: 213.6 MiB size: 213.4 MiB (99.89%) used: 47.5 MiB (22.3%) fs: vfat dev: /dev/mmcblk0p1

Sensors: System Temperatures: cpu: 36.5 C mobo: N/A
Fan Speeds (RPM): N/A

Info: Processes: 158 Uptime: 45m Memory: 3.78 GiB used: 856.1 MiB (22.1%) gpu: 512.0 MiB Init: systemd Shell: bash
inxi: 3.0.37

Wireless adapter is the HyperMirror, which I know works with Raspberry Pi 4B as per ETA Prime’s video. HYPER MIRROR-0 Latency Casting Solution For Phone&NTD Switch by HYPER MIRROR — Kickstarter

Here’s a demo of it working on the Pi: https://youtu.be/kiync9jFajE?t=443

I cannot find any documentation for this adaptor and it is not wireless as we know it.

HYPER MIRROR utilizes the industrial leading mm-Wave (AKA EHF) technology that is normally found in 5G networks.

Without any documentation it’s hard to know what to do.

Searching for any reference to Raspberry Pi on the HYPER MIRROR 0 Latency Casting For Phone&NTDSwitch | Indiegogo site yields nothing.

Where did you get info about it being compatible with raspberry pi and/or linux (not Mac) ?

1 Like

The video link ( https://youtu.be/kiync9jFajE?t=443 ) shows it working on a 4B.

I did overcome the issue of fbturbo not loading. I deleted my existing 10-headless.conf file I was using for a previous dummy driver setup, and put in the default config file as 10-fbturbo.conf.

The driver loads now, at least, though it still can’t detect a display.

I’m going to try plugging the TV directly into the Pi and seeing if I can get XFCE to actually come up that way. If I can, I’ll attempt to auto-config Xorg’s conf file for the TV, and go from there.

Do you know if fbturbo is the best driver to attempt to use for a 4K TV? Should I use the vesa driver instead?

Type C interface DP protocol refers to DisplayPort technology.

This is from the Hyper Mirror site :-

And there is this

Is it possible to connect to a display port

That cable is most likely a DisplayPort - to -HDMI cable not a HDMI- to - DisplayPort cable (mind the direction). While there are DP ports able to support HMDI signals ( DisplayPort Dual-mode) HDMI does not support DP directly. Since HDMI data transmission is very different from DP there will be no simple (passive) cable that just re-routes some signal lines on the different connectors.

DisplayPort@Wikipedia : “The DisplayPort signal is not compatible with DVI or HDMI. However, Dual-mode DisplayPorts are designed to transmit a single-link DVI or HDMI 1.2/1.4 protocol across the interface through the use of an external passive adapter that selects the desired signal and converts the electrical signaling from LVDS to TMDS.” and HDMI@Wikipedia : " DisplayPort ports can be made so that they are compatible with single-link DVI and HDMI 1.4.[200] Compatibility is achieved with DisplayPort Dual-mode ports , which are marked with the ++DP logo, using attached passive adapters". So while these cables can connect a DP appliance to a HDMI display it’s not possible to connect a HDMI appliance (such as the RPi) to a DP display .

Maybe that adaptor plugged into the Pi in the video has something to do with it working, maybe?

1 Like

You have 2 options. Either install xf86-video-fbturbo-git or not have xf86-video-fbturbo-git and have the kernel KMS and mesa take over. The latter will give you V3D gpu aceleration. Bye the way since you are using fbturbo at the moment it installs /etc/X11/xorg.conf.d/99-fbturbo.conf so I do not know what you have going on with that.

The pi4 .dtb has an issue with a lot of tv’s detecting the EDID info from the tv and has to be manually configured in /boot/config.txt. The RPi folks do not have 4kp60 configured to work by default and if you do you can only have one monitor connected to the pi4 running at 4kp60. Personally I would not have mine configured to use 4kp60 with a 64 bit OS.

Try this with fbturbo enabled the necessary changes in /boot/config.txt:

Decide which tv resolution you have and replace the XX below with your resolution (97 102 107). Plug hdmi cable into the first hdmi port on the pi4 board

 97 	2160p 	        60Hz 	16:9 	        Pi 4
102 	4096x2160 	    60Hz 	256:135 	    Pi 4
107 	2160p 	        60Hz 	64:27 	        Pi 4


#Monitor config

1 Like

Thank you both for your help.

On further digging into the somewhat poorly written instructions for the HyperMirror, I see that the highest resolution it supports for wireless HDMI is 2k@60. So, 1080p60.

@Darksky, is there an advantage to using fbturbo vs. the default kernel KMS and mesa?

What exactly am I losing by not having 3D acceleration enabled?
What does the fbturbo driver do better than the default KMS/mesa?

I might eventually try to use this pi for some emulation of old consoles/8-bit computers, but I have no interest in 3D/hardware accelerated gaming.

UPDATE: It works!
UPDATE 2: It stopped working. But I’m almost certain this is something to do with the wireless transceiver losing sync, and not Manjaro. I’m reminded of trying to get old wireless NES controllers to work back in 1990…

Okay, so…I’m not entirely sure what I did differently. I was trying to reset everything to the way it was before I started jacking around.

  1. I uninstalled fbdev, tbturbo, and the dummy drivers.
  2. I backed up and then deleted all existing Xorg conf files.

I had intended to just restart the pi, and then use an actual HDMI cable to connect it to the TV so I could see what the default auto-configured Xorg conf file would be.

But then, I restarted the computer just to make sure it wasn’t going to choke after I uninstalled the drivers and removed the conf files.

It lost signal once when someone walked between the transmitter and the receiver, but given that this is 6Ghz mmWave tech, my understanding is that that’s the price you pay. Restarting the pi got me back to the login screen.
And lo, my TV came to life with the normal startup sequence for the Pi, and dropped me at the login screen.

This is what I get from inxi -G --display:

$ inxi -G --display
Graphics: Device-1: bcm2711-vc5 driver: vc4_drm v: N/A
Device-2: bcm2711-hdmi0 driver: N/A
Device-3: bcm2711-hdmi1 driver: N/A
Display: server: X.org 1.20.9 driver: modesetting tty: 255x63
Message: No advanced graphics data found on this system.

The TV is telling me the display is running at 1080p, which is what I would expect from this adapter.

However, there’s nothing in /etc/X11/xorg.conf.d, so I’m not sure where the display profile for the TV is.

1 Like