FreeBSD-12.2-RELEASE on an Itronix GoBook VR-2 laptop

2020-04-23
13 min read

The laptop

I own a Itronix GoBook VR-2 laptop I run FreeBSD on my homeserver so I wanted to run the same OS on my laptop here are the things that work:

ACPI

It does not work consistenly sometimes the laptop freezes at boot but when it works it loads cpus are enumerated. This is an extract of dmesg when it works (just acpi messages)

Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
ACPI APIC Table: <ITRXGD ITXGDTBL>
Firmware Warning (ACPI): 32/64X address mismatch in FADT/PmTimerBlock: 0x00000408/0x000000EC6C617470, using 64-bit address (20200430/tbfadt-729)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/PmTimerBlock: 32/0 (20200430/tbfadt-748)
Firmware Warning (ACPI): 32/64X address mismatch in FADT/Gpe0Block: 0x00000428/0x353D3511350834F2, using 64-bit address (20200430/tbfadt-729)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Gpe0Block: 64/52 (20200430/tbfadt-748)
Firmware Warning (ACPI): Optional FADT field Gpe1Block has valid Address but zero Length: 0x3064687035AA356F/0x0 (20200430/tbfadt-796)
Firmware Warning (ACPI): Invalid length for FADT/PmTimerBlock: 0, using default 32 (20200430/tbfadt-850)
acpi0: <ITRXGD ITXGDTBL> on motherboard
ACPI Error: Unsupported address space: 0xB6 (20200430/hwregs-319)
ACPI Error: AE_SUPPORT, Could not create GPE Block 0 (20200430/evgpeinit-256)
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
atrtc0: <AT realtime clock> port 0x70-0x77 on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed01000-0xfed013ff irq 0,8 on acpi0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 on acpi0
acpi_timer0: couldn't allocate resource (mem 0xec6c617470)
acpi_ec0: <Embedded Controller: GPE 0x17> port 0x62,0x66 on acpi0
acpi_ec0: can't install GPE handler for \134_SB_.PCI0.LPC_.EC0_ - AE_BAD_PARAMETER
device_attach: acpi_ec0 attach returned 6
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_lid0: enable wake failed
acpi_button0: <Sleep Button> on acpi0
acpi_button0: enable wake failed
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
Firmware Error (ACPI): \134_SB.PCI0._OSC: Excess arguments - ASL declared 5, ACPI requires 4 (20200430/nsarguments-309)
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0
Firmware Error (ACPI): \134_SB.PCI0._OSC: Excess arguments - ASL declared 5, ACPI requires 4 (20200430/nsarguments-309)
pci1: <ACPI PCI bus> on pcib1
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.1 on pci0
Firmware Error (ACPI): \134_SB.PCI0._OSC: Excess arguments - ASL declared 5, ACPI requires 4 (20200430/nsarguments-309)
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0
Firmware Error (ACPI): \134_SB.PCI0._OSC: Excess arguments - ASL declared 5, ACPI requires 4 (20200430/nsarguments-309)
pci3: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
Firmware Error (ACPI): \134_SB.PCI0._OSC: Excess arguments - ASL declared 5, ACPI requires 4 (20200430/nsarguments-309)
pci4: <ACPI PCI bus> on pcib4
pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci5: <ACPI PCI bus> on pcib5
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
acpi_tz2: <Thermal Zone> on acpi0
acpi_tz3: <Thermal Zone> on acpi0
acpi_syscontainer0: <System Container> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart2: <16550 or compatible> port 0x6f0-0x6f7 irq 6 on acpi0
uart3: <16550 or compatible> port 0x6f8-0x6ff irq 5 on acpi0
battery0: <ACPI Control Method Battery> on acpi0
acpi_acad0: <AC Adapter> on acpi0
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.ADP1._PSR due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.BAT0._BST due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.BAT0._BIF due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.ADP1._PSR due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.BAT0._BIF due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.ADP1._PSR due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.BAT0._BIF due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.ADP1._PSR due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.BAT0._BIF due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.ADP1._PSR due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.BAT0._BIF due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.ADP1._PSR due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: No handler for Region [RAM_] (0xfffff800033e7700) [EmbeddedControl] (20200430/evregion-288)
ACPI Error: Region EmbeddedControl (ID=3) has no handler (20200430/exfldio-428)
ACPI Error: Aborting method \134_SB.PCI0.LPC.EC0.BAT0._BIF due to previous error (AE_NOT_EXIST) (20200430/psparse-689)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)
ACPI Error: \134_SB.PCI0.LPC.EC0.BAT0: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-321)

Development environment setup

I have chosen and I’m pretty conformtable with the following setup:

Packages installed

This is my current list of installed packages:

pkg query -e '%a = 0' %o
devel/autoconf
deskutils/autocutsel
devel/autotools
shells/bash
x11-fm/caja
deskutils/caja-extensions
devel/cmake
graphics/colord-gtk
x11-wm/cwm
audio/deadbeef
x11/dmenu
security/doas
emulators/dosbox
sysutils/dunst
editors/emacs
graphics/feh
multimedia/ffmpeg
ftp/filezilla
www/firefox
audio/fluid-soundfont
devel/git
graphics/gnome-color-manager
astro/gpsd
textproc/hs-pandoc
graphics/icc-profiles-adobe-cs4
audio/lmms
x11-fonts/meslo
multimedia/mpv
graphics/mupdf
sysutils/neofetch
editors/neovim
graphics/oyranos
ports-mgmt/pkg
devel/pkgconf
ports-mgmt/psearch
multimedia/pwcview
audio/qjackctl
audio/qsynth
net/remmina
textproc/ripgrep
audio/rosegarden
devel/rust-analyzer
x11/rxvt-unicode
x11/screenkey
graphics/scrot
accessibility/sctd
audio/surge-synthesizer-lv2
net-im/telegram-desktop
mail/thunderbird
x11/urxvt-perls
multimedia/webcamd
x11-drivers/xf86-input-synaptics
x11-drivers/xf86-video-intel
x11/xidle
x11/xorg
shells/zsh

Desktop tunning

You will need to add user to video, staff, operator, webcamd and wheel groups.

$ pw usermod <your user>  -G wheel,staff,wheel,webcamd,operator,video

after that the id command should return your groups when you login again.

$ id 
uid=1001(neirac) gid=1001(neirac) groups=1001(neirac),0(wheel),5(operator),20(staff),44(video),145(webcamd)

/etc/sysctl.conf

hw.snd.default_unit=1
hw.snd.default_auto=1
#Desktop
# Enhance shared memory X11 interface
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768

# Enhance desktop responsiveness under high CPU use (200/224)
kern.sched.preempt_thresh=224

# Bump up maximum number of open files
kern.maxfiles=200000

# Disable PC Speaker
hw.syscons.bell=0

# Shared memory for Chromium
kern.ipc.shm_allow_removed=1
vfs.usermount=1

/boot/loader.conf

cuse4bsd_load="YES"

# Boot-time kernel tuning
kern.ipc.shmseg=1024
kern.ipc.shmmni=1024
kern.maxproc=100000

# Load MMC/SD card-reader support
mmc_load="YES"
mmcsd_load="YES"
sdhci_load="YES"

# Access ATAPI devices through the CAM subsystem
atapicam_load="YES"

# Filesystems in Userspace
fuse_load="YES"

# Intel Core thermal sensors
coretemp_load="YES"

# In-memory filesystems
tmpfs_load="YES"

# Asynchronous I/O
aio_load="YES"

# Handle Unicode on removable media
libiconv_load="YES"
libmchain_load="YES"
cd9660_iconv_load="YES"
msdosfs_iconv_load="YES"

/etc/rc.conf

sendmail_enable="NONE"
hostname="gdyn"
wlans_iwn0="wlan0"
ifconfig_wlan0="WPA DHCP"
ifconfig_msk0="DHCP"
sshd_enable="YES"
moused_enable="YES"
ntpdate_enable="YES"
powerd_enable="YES"
kld_list="${kld_list} i915kms coretemp"
microcode_update_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
dbus_enable="YES"
hald_enable="YES"
mixer_enable="YES"
# Webcam daemon
webcamd_enable="YES"
devfs_system_ruleset="devfsrules_common"
webcamd_0_flags="-N Sonix-Technology-Co---Ltd--USB-2-0-Camera -S unknown"
jackd_enable="NO"
jackd_args="-r -doss -r44100 -p1024 -n3 -w16 -P /dev/dsp1.2 "

CWM setup ~/.cwmrc

#ignore termbar 
#autogroup 0 termbar 
#gap 30 0 0 0

# automatically add new windows to the current group
sticky yes
# snap windows to edges at 4 pixels distance
snapdist 4

# set font for menus
fontname "fixed:pixelsize=13:style=semicondensed"

# remove all default keybindings
unbind-key all

# KEYBINDINGS:
# 4 = mod (windows key)
# S = shift
# C = control
# M = meta (alt)

# mod + enter = new xterm
bind-key 4-Return urxvt
# ctrl + alt + L = lock screen (xlock)
bind-key CM-l lock
# mod + backspace = hide window
bind-key 4-BackSpace window-hide

# mod + down arrow = lower window's focus
bind-key 4-Down window-lower
# mod + up arrow = raise window's focus
bind-key 4-Up window-raise
# mod/alt + tab = cycle through current windows
bind-key 4-Tab window-cycle
bind-key M-Tab window-cycle
# mod/alt + shift + tab = same thing in reverse
bind-key 4S-Tab window-rcycle
bind-key MS-Tab window-rcycle
# mod + w = kill window
bind-key 4-w window-delete
# set a window's label
bind-key 4-n window-menu-label

# mod + $N = show only windows for group $N
# (you can think of this as switching to virtual desktop $N)
bind-key 4-1 group-only-1  
bind-key 4-2 group-only-2
bind-key 4-3 group-only-3
bind-key 4-4 group-only-4
bind-key 4-5 group-only-5
bind-key 4-6 group-only-6
bind-key 4-7 group-only-7
bind-key 4-8 group-only-8
bind-key 4-9 group-only-9

# mod + shift +$N = move window to group $N
bind-key 4S-1 window-movetogroup-1
bind-key 4S-2 window-movetogroup-2
bind-key 4S-3 window-movetogroup-3
bind-key 4S-4 window-movetogroup-4
bind-key 4S-5 window-movetogroup-5
bind-key 4S-6 window-movetogroup-6
bind-key 4S-7 window-movetogroup-7
bind-key 4S-8 window-movetogroup-8
bind-key 4S-9 window-movetogroup-9

# mod + A = toggle showing windows from all groups
bind-key 4-a group-toggle-all
# mod + G = toggle current window's group membership
bind-key 4-g window-group

# mod + right arrow = cycle through the window groups
# (you can think of this as switching to the next virtual desktop)
bind-key 4-Right group-cycle
# mod + left arrow = same thing in reverse
bind-key 4-Left group-rcycle
# mod + S = stick current window to be visible in all groups
bind-key 4-s window-stick

# mod + F = make current window fullscreen
bind-key 4-f window-fullscreen
# mod + M = maximize current window
bind-key 4-m window-maximize
# mod + equals = maximize window in vertical direction only
bind-key 4-equal window-vmaximize
# mod + shift + equals = maximize window in horizontal direction only
bind-key 4S-equal window-hmaximize

# mod + H,J,K,L = move window left, down, up, right 10 pixels
bind-key 4-h window-move-left-big
bind-key 4-j window-move-down-big
bind-key 4-k window-move-up-big
bind-key 4-l window-move-right-big

# mod + shift + H,J,K,L = resize window left, down, up, right by 10 pixels
bind-key 4S-h window-resize-left-big
bind-key 4S-j window-resize-down-big
bind-key 4S-k window-resize-up-big
bind-key 4S-l window-resize-right-big

# mod + V = tile windows vertically, current window to the left
bind-key 4-v window-vtile
# mod + V = tile windows horizontally, current window to the top
bind-key 4-c window-htile

# mod + / = show popup menu of current windows
bind-key 4-slash menu-window
# mod + d = show popup menu to run a command (configured below)
bind-key 4-d 'dmenu_run -fn "Mono:size=10" -nb "#282828" -nf "#ebdbb2" -sb "#1d2021" -sf "#fe8019"'

# mod + ? = show popup menu to run an arbitrary command
bind-key 4-question menu-exec
# mod + . = show popup menu of known ssh hosts to connect to
bind-key 4-period menu-ssh

# mod + shift + R = restart cwm, reloading configuration
bind-key 4S-r restart
# mod + shift + E = log out
bind-key 4S-e quit

# unbind default mouse actions
unbind-mouse M-1
unbind-mouse CM-1
unbind-mouse M-2
unbind-mouse M-3
unbind-mouse CMS-3

# mod + left click drag = move window
bind-mouse 4-1 window-move
# mod + right click drag = resize window
bind-mouse 4-3 window-resize
# mod + middle click = lower window's focus
bind-mouse 4-2 window-lower
# mod + shift + middle click = hide window
bind-mouse 4S-2 window-hide
# volume binding
bind-key C-2 "mixer  -f /dev/mixer1  -s  vol +5"
bind-key C-1 "mixer  -f /dev/mixer1  -s  vol -5"
# screenshots
bind-key M-p  "scrot -s '/home/neirac/screenshots/%Y-%m-%d_$wx$h.png' -e 'feh $f'"
# screen recording
bind-key M-r  /home/neirac/code/rscreen
bind-key M-v  /home/neirac/code/svideo

Screen recording

rscreen

I use this script to record my screen and record the audio from a mic, /dev/dsp2 is my usb microphone.

~/code/rscreen

#!/bin/sh
lockfile=/tmp/screenrecord.pid

startrecording() {
#    screenkey& 
    out="$HOME/Videos/screenrecord-$(date '+%Y-%m-%d_%H:%M:%S').mkv"
    ffmpeg -y \
        -f x11grab \
        -framerate 60 \
        -s "$(xdpyinfo | grep dimensions | awk '{print $2}')" \
        -i $DISPLAY \
        -f oss -i /dev/dsp2 \
        -r 30 \
        -c:v libx264rgb -crf 0 -preset ultrafast -c:a flac \
        "$out" >/dev/null 2>&1 &
    printf '%s' "$!" > "$lockfile"

    sleep 1
    if [ ! -f "$out" ]; then
        echo 'error: ffmpeg recording did not start' >&2
        notify-send -u CRITICAL "${0##*/}" 'ffmpeg recording did not start'
        rm -f "$lockfile"
        exit 1
    fi
}

stoprecording() {
    kill "$(cat "$lockfile")"
    rm -f "$lockfile"
    notify-send "${0##*/}" 'recording ended'
    pkill -9 screenkey
}

if [ -f "$lockfile" ]; then
    stoprecording
else
    startrecording
fi

svideo

I use this script to show my webcam as small block so it does not block the content to much and is easy to position on a corner.

~/code/svideo

#!/bin/sh -x
if pgrep pwcview ; then
    pkill pwcview
else
    nohup pwcview -q=100 -s qsif >/dev/null 2>&1 &
fi

.xinitrc

# use UTF-8 everywhere
export LANG=en_US.UTF-8

# specify location of kshrc
export ENV=$HOME/.kshrc

# load Xresources file
xrdb -merge $HOME/.Xresources

# set your background color
xsetroot -solid dimgray

# xidle will lock your display after a period of inactivity
xidle &


# disable system beep
xset b off

# use caps lock as ctrl key
setxkbmap -option caps:swapescape
feh --bg-fill -z ~/Pictures &
autocutsel -fork -selection CLIPBOARD
autocutsel -fork -selection PRIMARY
/usr/local/libexec/colord-session &
# start cwm!
exec ck-launch-session dbus-launch --exit-with-session ~/.xstart

.xstart

#!/bin/sh 

set -e

if [ -x $HOME/code/xiccd ]; then
        # xiccd, compiled from source, is present, let's start it.
        $HOME/code/xiccd &
        # It takes some time to declare all screens in colord. Wait here
        # until colord knows about the laptop's monitor.
        #
        # To know the name of the monitors, use "colormgr get-devices".
        while ! colormgr get-devices | grep -q xrandr_LVDS_1_neirac ; do 
                sleep 3 
        done 
        # Load the ICC profile for the laptop's monitor.
        #
        # To list the ICC profile IDs, use "colormgr get-profiles".
        colormgr device-add-profile  /org/freedesktop/ColorManager/devices/xrandr_LVDS_1_neirac_1001 /org/freedesktop/ColorManager/profiles/icc_5831553a498a9fe57ceb86f9469e8ca2
fi

# f.lux alternative.from https://www.gps-coordinates.net/
sctd --latitude -33.4377756 --longitude -70.6504502 &

# Start window manager.
exec cwm

.Xresources

! ~/scripts/termbar inside xterm(1) 
termbar*faceName: CodeNewRoman Nerd Font:style=Bold:size=9
termbar*geometry: 191x1+0+0 
termbar*internalBorder: 6 
termbar*saveLines: 0 
termbar*scrollBar: false 
termbar*title: termbar 
termbar*foreground: qogir_white 
termbar*background: qogir_black 
termbar*color1: qogir_red 
termbar*color3: qogir_orange
!extension
URxvt.perl-ext: default,clipboard,url-select
URxvt.keysym.M-u: perl:url-select:select_next
URxvt.url-select.underline: false
URxvt.url-select.launcher: /usr/bin/xdg-open
URxvt.url-select.autocopy: true
URxvt.clipboard.autocopy: true
URxvt.clipboard.copycmd: xsel -ib
URxvt.clipboard.pastecmd: xsel -ob
URxvt.keysym.C-v: perlđź“‹paste
URxvt.keysym.M-C-v: perlđź“‹paste_escaped
!URxvt*font: xft:terminus-font:style=Regular:size=10:hinting=full:antialias=true
!URxvt*font: xft:terminus-font:style=Regular:size=10
!dpi modes
Xft.dpi: 96
Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb
URxvt.perl-ext-common: ...,font-size
URxvt.perl-ext-common:  ...,clipboard,...
URxvt.perl-ext-common: extension_name_1,extension_name_2,...
URxvt.perl-ext-common: default,matcher
URxvt.url-launcher: /usr/bin/xdg-open
URxvt.matcher.button: 1
URxvt.matcher.rend.0: Uline Bold fg5
URxvt.perl-ext: default,url-select
URxvt.keysym.M-u: perl:url-select:select_next
URxvt.url-select.launcher: /usr/bin/xdg-open
URxvt.url-select.underline: true
!URxvt.font: xft:SourceCode Pro:pixelsize=10
URxvt.letterSpace: -1
URxvt.font: xft:Meslo LG S:pixelsize=13
URxvt.letterSpace: 0
URxvt.lineSpace: 1
URxvt.internalBorder: 30
URxvt.cursorBlink: true
URxvt.cursorUnderline: false
URxvt.scrollBar: false
URxvt.saveLines: 10000
URxvt.depth: 32
#include "/home/neirac/themes/Xresources-themes/light/PaperColor.Xresources"

/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf

Section	"InputClass"
	Identifier	"KeyboardDefaults"
	MatchIsKeyboard	"on"
	Option		"XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

/etc/devfs.conf

perm /dev/acd0 0666
perm /dev/acd1 0666
perm /dev/cd0 0666
perm /dev/cd1 0666

perm /dev/da0 0666
perm /dev/da1 0666
perm /dev/da2 0666
perm /dev/da3 0666
perm /dev/da4 0666
perm /dev/da5 0666

perm /dev/pass0 0666
perm /dev/xpt0 0666
perm /dev/uscanner0 0666
perm /dev/video0 0666
perm /dev/tuner0 0666
perm /dev/dvb/adapter0/demux0 0666
perm /dev/dvb/adapter0/dvr 0666
perm /dev/dvb/adapter0/frontend0 0666

/etc/devfs.rules

[devfsrules_common=7]
add path 'ad[0-9]*' mode 666
add path 'ada[0-9]*' mode 666
add path 'da[0-9]*' mode 666
add path 'acd[0-9]*' mode 666
add path 'cd[0-9]*' mode 666
add path 'mmcsd[0-9]*' mode 666
add path 'pass[0-9]*' mode 666
add path 'xpt[0-9]*' mode 666
add path 'ugen[0-9]*' mode 666
add path 'usbctl' mode 666
add path 'usb/*' mode 666
add path 'lpt[0-9]*' mode 666
add path 'ulpt[0-9]*' mode 666
add path 'unlpt[0-9]*' mode 666
add path 'fd[0-9]*' mode 666
add path 'uscan[0-9]*' mode 666
add path 'video[0-9]*' mode 666
add path 'tuner[0-9]*' mode 666
add path 'dvb/*' mode 666
add path 'cx88*' mode 0660
add path 'cx23885*' mode 0660
add path 'iicdev*' mode 0660
add path 'uvisor[0-9]*' mode 0660

References

https://www.c0ffee.net/blog/freebsd-on-a-laptop/
https://cooltrainer.org/a-freebsd-11-desktop-howto/
https://docs.freebsd.org/en_US.ISO8859-1/books/handbook/x-config.html
https://forums.freebsd.org/threads/icc-profiles-and-startx-on-freebsd.51153/
https://www.adamsgaard.dk/screencasts.html