Hyprland 0.50.1 fails to start on FreeBSD 14.3 with NVIDIA Quadro P2200 (nvidia-drm loaded)

Hi everyone,

I’m trying to run Hyprland 0.50.1 on FreeBSD 14.3-RELEASE using a NVIDIA Quadro P2200 GPU. I’m using the native nvidia driver along with nvidia-drm, loaded at boot. The system is configured with kern.vty=vt, and all relevant kernel modules (nvidia, nvidia-modeset, nvidia-drm, linuxkpi) are loaded correctly.

Has anyone successfully launched Hyprland with NVIDIA GPUs on FreeBSD using nvidia-drm?
Is it possible to make /dev/dri/card0 a valid KMS device on FreeBSD for Wayland?
Any working configuration or known limitations would be extremely helpful.

Thanks in advance.


freebsd-version -kru && uname -a
14.3-RELEASE
14.3-RELEASE
14.3-RELEASE
FreeBSD t640 14.3-RELEASE FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC amd64




pciconf -lv | grep -B4 display

vgapci0@pci0:94:0:0: class=0x030000 rev=0xa1 hdr=0x00
vendor = 'NVIDIA Corporation'
device = 'GP106GL [Quadro P2200]'
class = display




kldstat | grep nvidia

4 1 0xffffffff83311000 139c0 nvidia-drm.ko
10 2 0xffffffff83400000 535f868 nvidia.ko
13 1 0xffffffff88760000 1517d9 nvidia-modeset.ko




dmesg | grep -iE 'nvidia|drm|vt|gpu|error'

VT(efifb): resolution 1024x768
VT-x: PAT, HLT, MTF, PAUSE, EPT, VPID, VID, PostIntr
apei0: <ACPI Platform Error Interface> on acpi0
hdaa0: <NVIDIA (0x10f1) HDA CODEC> at cad 0 on hdac0
pcm1: <NVIDIA (0x10f1) (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm2: <NVIDIA (0x10f1) (HDMI/DP 8ch)> at nid 7 on hdaa0
pcm3: <NVIDIA (0x10f1) (HDMI/DP 8ch)> at nid 9 on hdaa0
vgapci0: <Quadro P2200> numa-domain 0 on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 570.172.08 Tue Jul 8 17:56:05 UTC 2025
[drm] [nvidia-drm] [GPU ID 0x0000e810] Loading driver
[drm] Initialized nvidia-drm 0.0.0 20160202 for nvidia0 on minor 0




doas service devd status

devd is running as pid 2832.




doas grep kld_list /etc/rc.conf

kld_list="nvidia-drm"




ls -l /dev/dri

lrwxr-xr-x 1 root wheel 8 Aug 1 15:25 card0 -> ../drm/0
lrwxr-xr-x 1 root wheel 10 Aug 1 15:25 renderD128 -> ../drm/128




doas sysctl compat.linux

compat.linux.use_real_ifnames: 0
compat.linux.emul_path: /compat/linux
compat.linux.oss_version: 198144
compat.linux.osrelease: 5.15.0
compat.linux.osname: Linux
compat.linux.setid_allowed: 1
compat.linux.map_sched_prio: 1
compat.linux.preserve_vstatus: 1
compat.linux.ignore_ip_recverr: 1
compat.linux.dummy_limits: 0
compat.linux.default_stacksize: 8388608
compat.linux.default_openfiles: 1024
compat.linux.debug: 3




doas sysctl compat.linuxkpi

compat.linuxkpi.drm_dp_aux_i2c_transfer_size: 16
compat.linuxkpi.drm_dp_aux_i2c_speed_khz: 10
compat.linuxkpi.drm_fbdev_overalloc: 100
compat.linuxkpi.drm_fbdev_emulation: 1
compat.linuxkpi.drm_timestamp_precision_usec: 20
compat.linuxkpi.drm_vblankoffdelay: 5000
compat.linuxkpi.drm_poll: 1
compat.linuxkpi.drm_debug: 0
compat.linuxkpi.drm_edid_fixup: 6
compat.linuxkpi.skb.mem_limit: 0
compat.linuxkpi.skb.debug: 0
compat.linuxkpi.lkpi_pci_nseg1_fail: 0
compat.linuxkpi.task_struct_reserve: 3072
compat.linuxkpi.net_ratelimit: 99
compat.linuxkpi.warn_dump_stack: 0
compat.linuxkpi.rcu_debug: 0
compat.linuxkpi.debug: 0
compat.linuxkpi.80211.tkip: 0
compat.linuxkpi.80211.hw_crypto: 0




doas sysctl kern.vty

kern.vty: vt




doas sysctl hw.model

hw.model: Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz




doas dmesg | grep -iE 'drm|nvidia'

hdac0: <NVIDIA (0x10f1) HDA Controller> mem 0xb3000000-0xb3003fff at device 0.1 numa-domain 0 on pci15
hdaa0: <NVIDIA (0x0084) HDA CODEC> at cad 0 on hdac0
pcm1: <NVIDIA (0x0084) (HDMI/DP 8ch)> at nid 1 on hdaa0
pcm2: <NVIDIA (0x0084) (HDMI/DP 8ch)> at nid 4 on hdaa0
pcm3: <NVIDIA (0x0084) (HDMI/DP 8ch)> at nid 5 on hdaa0
pcm4: <NVIDIA (0x0084) (HDMI/DP 8ch)> at nid 6 on hdaa0
pcm5: <NVIDIA (0x0084) (HDMI/DP 8ch)> at nid 7 on hdaa0
pcm6: <NVIDIA (0x0084) (HDMI/DP 8ch)> at nid 8 on hdaa0
nvidia0: <Quadro P2200> numa-domain 0 on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 570.172.00 Tue Jul 8 17:56:05 UTC 2025
[drm] [nvidia-drm] [GPU ID 0x0000e500] Loading driver
[drm] Initialized nvidia-drm 0.0.0 20160202 for nvidia0 on minor 0




Hyprland -v

Hyprland 0.50.1, built from branch at commit 4e24d20862e0b32951fdc0e8ecbfbd4d41b5be8dcc ({gha} Nix: update inputs)
Date: Sat Jul 19 21:37:06 2025
Tag: v0.50.1, commits: 6291
built against:
aquamarine 0.9.2
hyprlang 0.6.3
hyprutils 0.8.1
hyprcursor 0.1.12
hyprgraphics 0.1.5

no flags were set



env HYPRLAND_LOG_WL=1 HYPRLAND_TRACE=1 Hyprland

2 [LOG] drm: Enumerated device /dev/dri/card0
3 [LOG] libseat: Device /dev/dri/card0 does not support kms
4 [ERR] drm: Skipping device /dev/dri/card0, not a KMS device
5 [ERR] drm: Found no gpus to use, cannot continue
6 [ERR] DRM Backend failed
7 [LOG] [AQ] Starting the Aquamarine backend!
8 [LOG] [AQ] Starting the Wayland backend!!
9 [ERR] [AQ] Wayland backend cannot start: wl_display_connect failed (is a wayland compositor already running?)
10 [ERR] [AQ] Requested backend (wayland) could not start, enabling fallbacks
11 [ERR] [AQ] Implementation wayland failed, erasing.
12 [CRITICAL] [AQ] Cannot open backend: no allocator available
13 [CRITICAL] m_pAqBackend couldn't start!! This usually means aquamarine could not find
a Wayland session, NOT an X11 one.
14 [CRITICAL] Critical error thrown: CBackend::create() failed!
 
Every one of my Nvidia machines refuse run Wayland as well. I get no GPUs found error. I've tried on rtx 4060, GTX 1070, Quadro 600, 850m, no success so far.
the thing is that on the same hardware I had it all working ( Hyprland ) just a week ago. Then I have upgraded to freeBSD 14.3 and now it does not work. So I am not sure if that's the version of the OS that is the problem or something else. Unfortunately, not a single config file from the previous installation survived - my fault.
 
I do not have other ideas to help You.

I remember when I wanted to check how Nvidia card works on ThinkPad W520 it was real PITA and I got back to BIOS to disable it and never enable again.
 
Do you have hw.nvidiadrm.modeset=1 line in your /boot/loader.conf? I think your error log strongly suggest it's not.

This tunable is mandatory for nvidia-drm.ko to work.
Assuming you're installing graphics/nvidia-drm-61-kmod via graphics/nvidia-drm-kmod metaport, this message should have been displayed on installation.

And as this is mandatory BEFORE /boot/modules/nvidia-drm.ko is loaded, so setting it in /etc/sysctl.conf can be too late (possibly cause race conditions between kldload and setting it). So it IS defined as tunable, not a regular sysctl.

Another pitfall is that x11/nvidia-driver* and graphics/nvidia-drm-*-kmod* are not contained in kmod repo officially introduced on, IIRC, 14.2.
Only main pkg repo has them, thus, built against (currently) 14.2 for 14.*-Release.
So you'll need to build them via ports (needs /usr/src/ tree that exactly matches the commit your kernel is built against), unless PR 288314 gets good advances. And if the approach in my WIP patch there is not accepted by kmod builder admins, it would never be fixed.

Possibly x11/nvidia-driver* works as it does NOT depend on LinuxKPI, but graphics/nvidia-drm-*-kmod* should not, as it depends on LinuxKPI, which has quite unstable KPI/KBI.
 
Do you have hw.nvidiadrm.modeset=1 line in your /boot/loader.conf? I think your error log strongly suggest it's not.

This tunable is mandatory for nvidia-drm.ko to work.
Assuming you're installing graphics/nvidia-drm-61-kmod via graphics/nvidia-drm-kmod metaport, this message should have been displayed on installation.

And as this is mandatory BEFORE /boot/modules/nvidia-drm.ko is loaded, so setting it in /etc/sysctl.conf can be too late (possibly cause race conditions between kldload and setting it). So it IS defined as tunable, not a regular sysctl.

Another pitfall is that x11/nvidia-driver* and graphics/nvidia-drm-*-kmod* are not contained in kmod repo officially introduced on, IIRC, 14.2.
Only main pkg repo has them, thus, built against (currently) 14.2 for 14.*-Release.
So you'll need to build them via ports (needs /usr/src/ tree that exactly matches the commit your kernel is built against), unless PR 288314 gets good advances. And if the approach in my WIP patch there is not accepted by kmod builder admins, it would never be fixed.

Possibly x11/nvidia-driver* works as it does NOT depend on LinuxKPI, but graphics/nvidia-drm-*-kmod* should not, as it depends on LinuxKPI, which has quite unstable KPI/KBI.

this is the contents of my /boot/loader.conf:

Bash:
kern.geom.label.disk_ident.enable="0"
kern.geom.label.gptid.enable="0"
cryptodev_load="YES"
zfs_load="YES"

linux_enable="YES"
kern.vty="vt"
hw.nvidiadrm.modeset=1
hw.nvidia.registry.EnableGpuFirmware=1

reading your WIP now. Thank you!
 
Back
Top