I’m using a TCL tv as an external monitor for my Gigabyte Aero 15 laptop, connected over HDMI. I have Windows 11 and Fedora 37 installed in different partitions. Windows lets me set the TV to 3840x2160p at 60 Hz, but Fedora limits that resolution to 30 Hz. At 30 Hz, the mouse and typing are laggy and awkward. If I drop to a resolution that Fedora supports at 60 Hz, the lag drops, but the dual-monitor coordination is poor due to the difference in size between the laptop main monitor and the external.
Here’s a list of things I’ve tried digging into, but I’m at a loss:
- I tried updating to Fedora 37. Originally was on Fedora 35 having the same problems. No change.
- I tried Xorg, I was able to get a slightly higher resolution, but not 3840x2160p and the display settings GUI was very buggy.
- I tried checking the EDID and it looked like it matched the supposedly correct EDID listed here.
One thing I’m confused about is the EDID in Windows matches that in Fedora and doesn’t seem to say it supports 60 Hz at that resolution. But Windows clearly supports it. When I select it in Windows, the resolution is high and the mouse movement smooth.
Sorry if this is the wrong place for this question, but I’m fairly new to Fedora and very new to monitor debugging so had no idea where to get help with this.
Can you please provide us with the output of
inxi -CMGxxS --edid in preformatted or code block format?
Host: razorback Kernel: 6.1.7-200.fc37.x86_64 arch: x86_64 bits: 64
compiler: gcc v: 2.38-25.fc37
root=UUID=5c2bc994-40c5-46dd-bfa0-d3a40bb9dd62 ro rootflags=subvol=root
Desktop: GNOME v: 43.2 tk: GTK v: 3.24.36 wm: gnome-shell dm: GDM v: 43.0
Distro: Fedora release 37 (Thirty Seven)
Type: Laptop System: GIGABYTE product: AERO 15-XA v: N/A
serial: <superuser required> Chassis: type: 10 v: y.y
serial: <superuser required>
Mobo: GIGABYTE model: AERO 15-XA serial: <superuser required>
UEFI: American Megatrends v: FB09 date: 03/19/2020
Info: model: Intel Core i7-9750H bits: 64 type: MT MCP arch: Coffee Lake
gen: core 9 level: v3 note: check built: 2018 process: Intel 14nm family: 6
model-id: 0x9E (158) stepping: 0xA (10) microcode: 0xF0
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB
L3: 12 MiB desc: 1x12 MiB
Speed (MHz): avg: 2443 high: 2600 min/max: 800/4500 scaling:
driver: intel_pstate governor: powersave cores: 1: 2101 2: 2600 3: 2600
4: 2600 5: 2326 6: 2600 7: 2600 8: 2600 9: 1500 10: 2600 11: 2600 12: 2600
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Type: itlb_multihit status: KVM: VMX disabled
Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
Type: mds mitigation: Clear CPU buffers; SMT vulnerable
Type: meltdown mitigation: PTI
Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
Type: retbleed mitigation: IBRS
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
Type: spectre_v2 mitigation: IBRS, IBPB: conditional, RSB filling,
PBRSB-eIBRS: Not affected
Type: srbds mitigation: Microcode
Type: tsx_async_abort status: Not affected
Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: Gigabyte
driver: i915 v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20
ports: active: eDP-1 empty: DP-2, DP-3, HDMI-A-2, HDMI-A-3, HDMI-A-4
bus-ID: 00:02.0 chip-ID: 8086:3e9b class-ID: 0300
Device-2: NVIDIA TU106M [GeForce RTX 2070 Mobile] vendor: Gigabyte
driver: nouveau v: kernel non-free: 525.xx+ status: current (as of 2022-12)
arch: Turing code: TUxxx process: TSMC 12nm FF built: 2018-22 pcie: gen: 3
speed: 8 GT/s lanes: 16 ports: active: HDMI-A-1 empty: DP-1
bus-ID: 01:00.0 chip-ID: 10de:1f10 class-ID: 0300 temp: 49.0 C
Device-3: IMC Networks USB2.0 HD UVC WebCam type: USB driver: uvcvideo
bus-ID: 1-9:4 chip-ID: 13d3:56a2 class-ID: 0e02 serial: 0x0001
Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 22.1.7
compositor: gnome-shell driver: X: loaded: modesetting unloaded: fbdev,vesa
dri: iris,nouveau gpu: i915,nouveau display-ID: 0
Monitor-1: HDMI-A-1 model: 43S425 built: 2020 res: 3840x2160 dpi: 103
gamma: 1.2 chroma: red: x: 0.643 y: 0.333 green: x: 0.322 y: 0.624 blue:
x: 0.145 y: 0.055 white: x: 0.278 y: 0.290 size: 800x450mm (31.5x17.72")
diag: 1093mm (43") ratio: 16:9 modes: 3840x2160, 4096x2160, 1920x1080,
1680x1050, 1280x1024, 1440x900, 1280x960, 1280x800, 1152x864, 1280x720,
1024x768, 800x600, 720x480, 640x480, 720x400
EDID-Warnings: 1: parse_edid: unhandled CEA mode 95 2: parse_edid:
unhandled CEA mode 93 3: parse_edid: unhandled CEA mode 100 4: parse_edid:
unhandled CEA mode 98
Monitor-2: eDP-1 model: Samsung 0xa029 built: 2019 res: 3840x2160 dpi: 284
gamma: 1.2 chroma: red: x: 0.686 y: 0.314 green: x: 0.243 y: 0.710 blue:
x: 0.137 y: 0.055 white: x: 0.314 y: 0.329 size: 344x194mm (13.54x7.64")
diag: 395mm (15.5") ratio: 16:9 modes: 3840x2160
API: OpenGL v: 4.6 Mesa 22.3.3 renderer: Mesa Intel UHD Graphics 630 (CFL
GT2) direct render: Yes
The TCL monitor is
12Monitor-1 HDMI-A-1 12model 43S425
Those are some interesting EDID warnings. (Not sure why everything is prefixed with “12” here?).
I also noticed that you’re using the
nouveau driver for your nVidia card. It’s possible that the driver doesn’t support the full resolution where the proprietary one from RPMFusion might.
I’ll try installing the RPMFusion driver. Found a tutorial here.
(fixed the 12 prefix. Not sure where that came from, but it showed up that way in terminal too)
Okay, I installed the RPMFusion driver.
modinfo -F version nvidia gives me
But the behavior is no different from what I described above. And the EDID warning is still there.
Any idea what I could try next? I’m at a loss for how to debug this.
Actually, I just noticed as Fedora loads, it says “Nvidia kernel module missing, falling back on noveau.” Did I miss a step in the installation?
Okay, I resolved the kernel module missing warning following this page. Had to turn off safe boot in the boot menu.
But the resolution/refresh behavior is the same.
I would check for secure boot. If the nvidia modules are not signed the user must disable secure boot before they can load.
Quick check for that is
dmesg | grep -iE 'secure|nvidia' and if that shows secure boot enabled it explains the driver not loading.
2 factors involved in using nvidia with secure boot.
- sign the modules as shown here
Howto/Secure Boot - RPM Fusion
- Modules already installed will not be signed so after the steps shown in #1 are completed, then remove and reinstall the nvidia drivers.
dnf remove '*nvidia*' --exclude=nvidia-gpu-firmware
dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda
- After reinstalling the drivers wait until you get a return on
dnf list installed kmod-nvidia*
Once that shows the package installed (it gets built automatically when akmod-nvidia is installed) then reboot and the drivers should load even with secure boot enabled.
Just an FYI, the nouveau driver does not support hardware acceleration but the nvidia driver does. Anything using the nvidia GPU will normally perform better when using the nvidia driver.
Another factor that might impact resolution is the type of connection, HDMI, DP, or other. Some work better than others. Using a docking station also can affect it.
I followed these steps and the nvidia driver seems to be working but the resolution/refresh is still limited.
I’m skeptical of it being a hardware issue since 4k 60 Hz works great on Windows.
Any other ideas I could look into?
One possibility could be the hdmi cable itself. 4k@30 was the limit of the older hdmi spec. Can you try with the same hdmi cable you used for the windows machine?
You seem to be using a laptop with dual GPUs.
I would suggest you try setting the nvidia gpu as primary as indicated here
I followed that instruction and so far have no problems with my nvidia GPU. Have had mine set primary for more than 4 years.
A few notes to add to the doc.
- I added the
Option "PrimaryGPU" "Yes" into both stanzas of the nvidia.conf file after copying it over into the /etc/X11/xorg.conf.d/ directory.
- Adding that file allows the nvidia GPU to manage both the built-in screen as well as the external monitor. By default the eGPU manages the laptop screen and the external monitor is managed by the dGPU.
- This process only makes the nvidia GPU primary when logged into the xorg desktop and does not work for wayland.
- Having the nvidia GPU as primary basically idles the eGPU (intel) and prevents issues that may arise with 2 different gpus driving 2 (or more) different monitors.
I suspect that the lower refresh rate you are seeing may be affected by the dual GPUs potentially conflicting in some areas.
While there is a slightly higher power usage with the dGPU, I still get more than 2 hours on my battery with the GPU at 100% load (running cuda apps) and the CPUs at about 25% load. I use my laptop as a desktop mostly so I periodically drain the battery and recharge to maintain its life.
It worked!! Thank you so much for all your help!