Hardware Configuration, Audio/Video
Information on audio and video configuration of hardware.
Contents |
GPU Hardware
Here is a list of FreeBSD supported video cards, https://wiki.freebsd.org/Graphics#Hardware_Support. Check the latest compatibility information before purchasing a graphics card. Different brands of video cards generally don't work well together, but with newer software or implementation of this software, this may change.
At the time of FreeBSD 11, the VESA driver works with sc(4), and other video drivers use the vt(4) driver. Most video drivers can be selected by running make config from x11-drivers/xorg-drivers . To automate this, edit make.conf, and recompile x11-drivers/xorg-drivers . If another driver is specified and configured, removing the VESA driver is optional.
x11-drivers_xorg-drivers_UNSET=VESA
The argument to select specific driver from x11-drivers/xorg-drivers is under the respective section below.
When you set these cards, permissions must be set to allow access for them through /etc/devfs.rules:
[localrules=10] add path 'dri/*' mode 0666 group operator
Be sure this location is referenced through rc.conf:
devfs_system_ruleset="localrules"
Do not load ATI, Intel or Nvidia cards by compiling their drivers into the kernel. ATI and Intel drivers are capable of auto-loading, but setting them in rc.conf will prevent them from falling back to the VESA driver for the console. Don't load ATI and Intel drivers through /boot/loader.conf.
ATI
Many ATI Radeon cards are compatible with FreeBSD, https://wiki.freebsd.org/Graphics#AMD_.2F_Radeon_Graphics. However, not all outputs or functions may work on partially supported video cards.
Radeon cards require the ATI setting in x11-drivers/xorg-drivers , and here is how to set it through make.conf:
x11-drivers_xorg-drivers_SET=ATI
The setting AMDGPU for newer video drivers is not ready for FreeBSD 11.1 and previous versions. MACH64 and R128 are only required if you have those specific older models.
To configure the Radeon driver to load on boot-up, add the following to rc.conf:
kld_list="radeonkms"
Intel
For the status of Intel cards, see https://wiki.freebsd.org/Graphics#Intel_Graphics. To set Intel cards, start by using this argument in make.conf:
x11-drivers_xorg-drivers_SET=INTEL
To load an Intel graphics card on start up, insert into rc.conf:
kld_list="i915kms"
If this is an updated driver from the ports tree, then use the absolute path, instead of for the default from /boot/kernel/, to:
kld_list="/boot/modules/i915kms.ko"
Broadwell, Skylake and Kabylake Intel cards are expected to be function in FreeBSD 12.
Nvidia
For the status of Nvidia cards, see https://wiki.freebsd.org/Graphics#NVidia_.2F_GeForce_Graphics.
The driver for older Nvidia cards can be installed by using this argument in make.conf:
x11-drivers_xorg-drivers_SET=NV
This card is perhaps loaded through /boot/loader.conf, instead of /etc/rc.conf.
For setting up newer Nvidia cards, see FreeBSD Forums HOWTO: Setup Xorg with NVIDIA's driver.
Multiple Monitors
Use the program xrandr to be able to use and configure multiple monitors. With this program, a basic video card can use both of it's HDMI and DVI outputs for dual configured monitors, as in different outputs for each monitor.
Example of command line that can be used in the file .xinitrc:
xrandr --output DVI-0 --right-of HDMI-0
Using the gui x11/arandr is another option.
Disabling overscan
Enabling audio on HDMI can crop the edges of the display on televisions. Toggle the 'overscan' function on the remote to adjust it properly. If the TV doesn't have the overscan function, you can insert into your window manager configuration file:
xrandr --output HDMI-0 --set underscan on
If this stops working, use xrandr to adjust the resolution:
xrandr --output HDMI-0 --auto --set underscan on
To increase it's borders use:
xrandr --output HDMI-0 --set "underscan hborder" 5 --set "underscan vborder" 5
Audio Selection
See Sound card for initial set up. To check the information on which sound output is used, type:
% cat /dev/sndstat
Example of command to choose the soundcard:
sysctl hw.snd.default_unit=0
To make the selection permanent, insert into /etc/sysctl.conf:
hw.snd.default_unit=0
Radeon HDMI audio out
Partially supported Radeon video cards, linked to in the section "GPU Hardware" below, usually don't support HDMI audio out. Other Radeon cards require extra configuration.
To do this, edit the line int radeon_audio in /usr/src/sys/dev/drm2/radeon/radeon_drv.c to:
int radeon_audio=1
After this, you may rebuild the modules only or whole kernel as typical:
/usr/src/sys/modules/drm2/make clean; make; make install
See the previous section for selecting HDMI audio out, and reboot. Xorg should automatically load the Radeon driver for this to work. If working from a console, add kld_list="radeonkms" to /etc/rc.conf. You can see the loaded Radeon drivers by typing kldstat.
References
- FreeBSD related forums and documentation