# unable to detect external monitor



## newbsduser34 (Dec 10, 2022)

Fresh install of 13.1 on AMD Ryzen laptop, with radeon vega graphics, and cannot detect external monitor. 

I pkg installed xorg, xfce, and drm-kmod. 

Monitor is connected by hdmi, but doesn't appear in xrandr.

```
root@0:~ # xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1600 x 900, current 1600 x 900, maximum 1600 x 900
default connected 1600x900+0+0 0mm x 0mm
   1600x900       0.00*
```

Totally new to bsd, so not sure where to start in troubleshooting.  From googling found that xrandr output can be helpful, and also found that drm-kmod may be required for the amd graphics. Using the xfce display manager only shows the default display for the laptop.

Thanks


----------



## T-Daemon (Dec 11, 2022)

newbsduser34 said:


> I pkg installed xorg, xfce, and *drm-kmod*.
> ...
> Monitor is connected by hdmi,
> ...
> also found that drm-kmod may be required for the amd graphics


Not may be but for sure. Without the amd graphics driver there can't be a external monitor use. Enable the driver in /etc/rc.conf and make sure the user is a member of the "video" group


```
% pkg info -D drm-510-kmod
drm-510-kmod-5.10.113_7:
On install:
The drm-510-kmod port can be *enabled for amdgpu* (for AMD
GPUs starting with the HD7000 series / Tahiti) or i915kms (for Intel
APUs starting with HD3000 / Sandy Bridge) *through kld_list in
/etc/rc.conf*. radeonkms for older AMD GPUs can be loaded and there are
some positive reports if EFI boot is NOT enabled (similar to amdgpu).

For amdgpu: *kld_list="amdgpu"*
For Intel: kld_list="i915kms"
For radeonkms: kld_list="radeonkms"

*Please ensure that all users requiring graphics are members of the
"video" group.*
```

As root run command `pw groupmod video -m <user or comma-delimited list of users>`, reboot system.


----------



## newbsduser34 (Dec 23, 2022)

Thank you. 

I had skipped the step of adding root to the video group, assuming it wasn't needed for root. I used your code to add root to the video group. Things work now. 

I do have another question, if it's not the wrong place to ask.

The manual it says to install drm-kmod through the ports system, which I did, but I didn't quite understand what it means when it talks about the "PORTS_MODULES variable". 


> "As such, it is strongly recommended that the drivers be built via the ports system via the PORTS_MODULES variable."



Maybe not important since everything is working quite well, but is that something I should address before applying patches/updates in the future? It mentions rebuilding the kernel, which I assume means updating/patching.


----------



## T-Daemon (Dec 24, 2022)

newbsduser34 said:


> I had skipped the step of adding root to the video group, assuming it wasn't needed for root. I used your code to add root to the video group.


You assumed correct, the 'root' user must not be in the 'video' group. Normal users running Xorg must be in the 'video' group, 'root' user should not run Xorg.



newbsduser34 said:


> The manual it says to install drm-kmod through the ports system, which I did, but I didn't quite understand what it means when it talks about the "PORTS_MODULES variable".


PORTS_MODULES variable applies to kernels build from source, not freebsd-update(8) binary kernels.

FreeBSD Handbook 5.4.5  Video Cards


> As such, it is strongly recommended that the drivers be built via the ports system via the PORTS_MODULES variable. *With PORTS_MODULES, every time you build the kernel*, the corresponding port(s) containing kernel modules are re-built against the updated sources. This ensures the kernel module stays in-sync with the kernel itself.



build(7)

```
PORTS_MODULES        A list of ports with kernel modules that should be
                          built and installed as part of the buildkernel and
                          installkernel process.

                                make PORTS_MODULES=emulators/virtualbox-ose-kmod kernel
```
(If you are unfamiliar with `buildkernel`, `installkernel` and `kernel` build targets, please see above manual.)

If you use freebsd-update(8):


> If you run GENERIC and use freebsd-update, you can just build the graphics/drm-kmod or x11/nvidia-driver port after each freebsd-update install invocation.


----------

