System Console Frame Buffer (SCFB)
If an accelerated graphics driver is not available for your FreeBSD system, an alternative is to use the scfb driver. At the time of writing, this is a common option for laptops with Broadwell or Skylake chipsets from Intel with integrated graphics, until the intel DRM driver is updated to include support. Whilst the scfb driver does not provide accelerated graphics, and is missing some features like brightness adjustment and support for external displays, it works fine on built-in laptop displays for simple desktop use and even playing videos.
The system must be using the new vt(4) (aka Newcons) console for the scfb driver to work. This is the default if the system was booted with UEFI, but not if it was booted using (legacy) BIOS mode. Some laptops must be booted using UEFI mode for the scfb driver to work (booting in legacy BIOS mode but with that sysctl manually set to use vt(4) may not work).
Check which console is in use by running the following command:
$ sysctl kern.vty
Steps to setup X11 with the SCFB driver
Boot to a vt(4) console (ensure Xorg is installed as per the handbook, but not running)
- Install the x11-drivers/xf86-video-scfb port/package:
# pkg install xf86-video-scfb
- Ensure the i915 and i915kms kernel modules are not loaded:
# kldunload i915 # kldunload i915kms
- Create a file /usr/local/etc/X11/xorg.conf.d/driver-scfb.conf with the contents below. Note that it is normally no longer necessary to have a /usr/local/etc/X11/xorg.conf file. However, if you still need this file for other reasons, the above section can instead be added to that file.
Section "Device" Identifier "Card0" Driver "scfb" EndSection
- Start X and enjoy your laptop graphical display (even if it is not accelerated).
Refer to the scfb X11 framebuffer driver man page for more details about the driver.