FreeBSD on the Framework Laptop

Author: Jonathan Vasquez <jon@xyinn.org>
Last Updated: 2022-11-25-1830
Currently On: FreeBSD 13.1-STABLE (stable/13-n253125-bca262f0f351/GENERIC)
Machine: Framework Laptop (Gen 1, Batch 6). Ordered on November 20, 2021.
BIOS: 3.10

Desktop (i3, XFCE, Other)

Thoughts

It's been a long journey these past few months trying to find a modern, compatible, FreeBSD laptop, and getting it to work well enough for daily use (everything except for gaming). For the past few months, I've been documenting my journey using this laptop, then I left the framework laptop and switched to a Thinkpad X260, and then a Thinkpad X1C7. This gave me perspective on what is considered "FreeBSD compatible".. After experiencing what that "compatibility" meant, and the work needed to get those machines up and running, I decided to come back to the framework laptop with that perspective, and try to get FreeBSD running on it again in a smoother capacity. I've finally succeeded! Everything isn't perfect, but it's pretty good, and will hold you until even better support comes to the machine. I can now pretty much say that you can use this laptop in a production capacity for your every day stuff.

Now with that said, I ordered this Framework Laptop on November 20, 2021 and was marked as part of Batch 6. It's currently configured with 1x USB C, and 3x USB A Expansion Cards. I also have an HDMI Expansion Card, another USB C Expansion Card (on the side in case I want to switch it up), and I've recently purchased an Ethernet Expansion Card. I use the USB C port for charging primarily but also to connect my Anker PowerExpand+ 7-in-1 Dongle, which has a variety of other ports (not all are working). This machine came with the Tempo 92HD95B Audio Codec for people that want to further identify the model.

The laptop I got came with the following configuration:

After setting everything all up on FreeBSD 13.1-STABLE, I lowered the scaling value to make the resolution bigger on the main display. I also have my main external monitor connected over my Anker Dongle's HDMI slot. The HDMI port on the framework itself isn't working for me.

This is my xrandr configuration when in dual mode (I have slight variations of this depending if I want to use just my laptop screen, or if I want to just use my external monitor (and maybe close the framework lid. These are applied automatically when i3 launches via autorandr -c or upon a key press I've configured in my i3 config):

xrandr --output DP-4 --mode 2560x1440 --left-of eDP-1 --primary --output eDP-1 --mode 2256x1504 --scale 0.5

A combination of 2560x1440 @ 100% for my External HDMI monitor and 2256x1504 @ 200% for the internal display, is the sweet spot. I've heard X11 doesn't support per display scaling (Wayland does), but the above xrandr command is working for me.. and that leaves my external monitor at the normal scale 1, while the framework laptop is set to scale 0.5.

On another note, it takes me about 1h10m ~ to compile FreeBSD 13.1-STABLE with -j9. Intel P-States also hasn't been causing any issues and seems to be working correctly. I don't have powerd running but I can see the frequency dynamically changing with sysctl -a | grep freq:. The battery life seems to be lasting a long time as well so that also helps me confirm the p-state driver's benefit.

System Status Overview

Definitions

Test Report Results

Status Functionality Bug Report Remarks
Graphics Works This works (including 3D acceleration) but you'll need to compile graphics/drm-510-kmod. The quirks page mentions you need 5.5 or greater.
WiFi

Works (wifibox)

Unstable (if_iwlwifi)

263613 The native if_iwlwifi driver is unstable and will cause crashes when you resume from sleep, and some other situations. However, if you want to help with testing, it's definitely usable. If not, then I recommend using wifibox until the native driver is fully developed and stabilized. Make sure to apply the tweaks at the bottom of my wifibox page (resume from sleep, and increase bhyve VM memory).
HDMI Fails 263761 The HDMI Expansion card is detected but I can't output anything to it even though xrandr detected the DP-3 port. The supported resolutions detected in xrandr for this display are also incorrect. The same monitor works via the Anker Dongle through its HDMI slot with the correct resolution. I also saw this error which didn't appear when using the Anker dongle's HDMI port without the HDMI expansion card connected: [drm ERROR :intel_dp_get_link_train_fallback_values] Link Training Unsuccessful.
Ethernet Works 253374 The Ethernet Expansion card is detected and works "fine" providing a stable ethernet connection. However, due to limitations with the XHCI driver (and lack of Thunderbolt support) the performance is limited. I get 10 MiB down on a fresh Syncthing sync, where as on Linux I get 99 MiB down on a fresh Syncthing sync. Same hardware.
Sound (Speakers) Works
Sound (Headset via 3.5mm jack) Works Connecting the Razer Headset directly via the 3.5mm jack worked and sound was properly redirected away from the internal speakers.
Sound (Headset via USB Adapter) Works Plugging in the Razer Headset via the 3.5 mm -> USB connector it came with worked fine as well. You just need to set your default device to target pcm3 or whatever it was enumerated as on your system.
Microphone Works This includes the physical kill switch. You won't see activity in dmesg though. I tested this using OBS. However, due note that OBS doesn't support OSS and only includes support for the following audio backends: jack, pulseaudio, and sndio. Make sure you start the appropriate backend before starting OBS, or you won't see any of your devices in it. For a quick test, you can run pulseaudio in one of your terminals, and then start OBS to see if it detects it.
Camera Works You need to have webcamd running, have the cuse kernel module loaded, and the user should be part of the webcamd group (I'm also in wheel). Once that's done, you'll need to add the particular camera device to your webcamd start up flags or webcamd won't create the required /dev/video[01] devices. You can do webcamd -l as root to see the available devices. For me, I added the following to /etc/rc.conf: webcamd_0_flags="-N Generic-Laptop-Camera -S 200901010001". Flicking the camera killswitch did yield correct responses from dmesg for ugen1.4: <Generic Laptop Camera> at usbus1.
Sleep Works Sleep works fine if you don't use the if_iwlwifi driver. See the above Wi-Fi section for info on using wifibox instead. You'll still have the battery drain issues that affect Windows and Linux though. If you are on an OS that supports hibernation, use that instead.
Hibernation Untested I know this is a weird one even on Linux, but I've read FreeBSD doesn't have hibernation support: S4.
Bluetooth Fails Not supported at the moment as per quirks.
Fingerprint Reader Untested I don't really use this anyways.

via Anker PowerExpand+ 7-in-1 USB-C PD Ethernet Hub

Status Device Bug Report Remarks
Ethernet (Gigabit) Unstable 255251 Ethernet over Type-C connections are highly unstable. It's so slow it's unusable.
USB Ports (Wireless Keyboard & Mouse) Works
HDMI Works I was able to get multi monitor support working via xrandr and sway.
SD Slot Untested
Micro SD Slot Fails

Issues / Workarounds / Misc

Graphics

This works well once you compile the graphics/drm-510-kmod. If using autorandr and a compositor (like compton), you'll want to make sure that you set your resolutions with xrandr without compton running. Having compton running when using the native modesetting driver caused me a lot of issues with tearing (it actually causes me rendering issues in other situations as well but I've mitigated them with minor sleeps and careful ordering of executables). Once you set up all of your resolutions and workflows and saved them with autorandr, you can then start autorandr and compton and it will work fine. For example, since I'm using i3, I have the following in my ~/.i3/config:

# Autorandr / Compton / Nitrogen
set $startup_progs "killall compton; autorandr -c && sleep 1 && nitrogen --restore && compton -f --backend glx --vsync opengl-swc"
bindsym $mod+Delete exec --no-startup-id $startup_progs
exec_always --no-startup-id $startup_progs

The xf86-video-intel driver seemed to behave better in some situations when using compton, but we don't really need to use that driver anymore. If you still do, you'll probably want to add this to your /usr/local/etc/X11/xorg.conf.d/10-video.conf (Adjust PCI devices accordingly):

Section "Device"
        Identifier  "Card0"
        Driver      "intel"
        BusID       "PCI:0:2:0"
        Option      "AccelMethod" "SNA"
        Option      "TearFree" "true"
EndSection

Keep in mind that if you have the xf86-video-intel package installed, Xorg will automatically choose it. If you can avoid it, just don't install that package and let it use modesetting automatically.

Careful with kscreen

If you are using KDE, make sure to disable kscreen or you will experience massive lag. If using the fully accelerated driver still gives you issues, you can try to switch to software rendering which will still yield a fast desktop, but you'll lose some eye candy (and maybe other features). In KDE, "Wobbly Windows", "Translucency" will no longer be available, but you'll still get high framerates in glxgears.

To disable kscreen, you can either open System Settings and go to Startup and Shutdown -> Background Services. Uncheck KScreen 2, and relog. You also have the option of opening ~/.config/kded5rc and adding the following (or substitute one if it already exists):

[Module-kscreen]
autoload=false

To switch to software rendering (don't do this if the fully accelerated driver is working for you), add the following to /usr/local/etc/X11/xorg.conf.d/10-video.conf (The magic line being Option "AccelMethod" "SNA"):

Section "Device"
        Identifier  "Card0"
        Driver      "modesetting"
        BusID       "PCI:0:2:0"
        Option      "AccelMethod"       "SNA"
EndSection

Once those lines are added, you should see your graphics type switch from Mesa Intel Xe Graphics to llvmpipe.

Touchpad (Tapping / Scrolling / Right Click)

Losing gesture support after resuming from sleep

TLDR: Disable PS/2 Emulation in the BIOS.

There was an issue I was experiencing where the machine's touchpad would lose various gesture support (like scrolling, right clicks, middle clicks, etc). On Linux, this would happen after I resumed from sleep, and would require me to reload the hid-multitouch driver (via a script of course ;D). On FreeBSD, this also seems to happen but in my case I was simply rebooting sway a few times and my touchpad lost support. Doing a kldunload hmt caused the module to be unloaded by the kernel, and I noticed the kernel automatically reloaded it back, in this case, saving me a load call. After that the touchpad started working again. I re-investigated the issue and found this community thread and a post by framework.

Activating more gesture support (tapping, etc) in libinput

The second issue is that you still need to get the gestures (two finger tap (right click), tap to click, etc). I was able to do this by placing the following test into /usr/local/etc/X11/xorg.conf.d/40-libinput.conf:

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchDriver "libinput"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "Tapping" "on"
        #Option "AccelSpeed" "0.2"
EndSection
sway w/ Wayland

This is the sway equivalent of the above. Place in your sway.conf:

input type:touchpad {
       dwt enabled
       tap enabled
       middle_emulation enable
       tap_button_map lrm
       scroll_method two_finger
}

All USB ports just stopped working

It seems there is a bug somewhere where all my USB ports just stop working. This means that my wireless keyboard / mouse that are connected to my Anker Dongle (running on Type-C) stop working, and any other USB ports on the framework laptop itself also stops working. I can still use the keyboard/touchpad on the framework itself. However, at the moment the only way for me to use my USB ports again is to reboot the machine. I want to see if there is a kernel module I can reload to get it working again without rebooting. This same bug may be what's causing the Ethernet over the Type-C dongle to also keep switching state, and also the limited performance of the Ethernet Expansion Card.

Output

dmesg

Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
    The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.1-STABLE #5 stable/13-n253125-bca262f0f351: Sun Nov 20 21:38:33 EST 2022
    root@leslie:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
VT(efifb): resolution 2256x1504
CPU: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz (2803.20-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x806c1  Family=0x6  Model=0x8c  Stepping=1
  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>
  Features2=0x7ffafbbf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended Features=0xf3bfa7eb<FSGSBASE,TSCADJ,BMI1,AVX2,FDPEXC,SMEP,BMI2,ERMS,INVPCID,NFPUSG,PQE,AVX512F,AVX512DQ,RDSEED,ADX,SMAP,AVX512IFMA,CLFLUSHOPT,CLWB,PROCTRACE,AVX512CD,SHA,AVX512BW,AVX512VL>
  Structured Extended Features2=0x18c05fde<AVX512VBMI,UMIP,PKU,OSPKE,AVX512VBMI2,GFNI,VAES,VPCLMULQDQ,AVX512VNNI,AVX512BITALG,AVX512VPOPCNTDQ,RDPID,MOVDIRI,MOVDIR64B>
  Structured Extended Features3=0xfc100510<FSRM,AVX512VP2INTERSECT,MD_CLEAR,IBT,IBPB,STIBP,L1DFL,ARCH_CAP,CORE_CAP,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  IA32_ARCH_CAPS=0x6b<RDCL_NO,IBRS_ALL,SKIP_L1DFL_VME,MDS_NO>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr
  TSC: P-state invariant, performance statistics
real memory  = 34359738368 (32768 MB)
avail memory = 33080729600 (31548 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <INSYDE TGL-ULT>
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 hardware threads
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
random: unblocking device.
ioapic0 <Version 2.0> irqs 0-119
Launching APs: 1 6 7 2 3 4 5
random: entropy device external interface
kbd1 at kbdmux0
efirtc0: <EFI Realtime Clock>
efirtc0: registered as a time-of-day clock, resolution 1.000000s
smbios0: <System Management BIOS> at iomem 0x439e3000-0x439e301e
smbios0: Version: 3.3, BCD Revision: 3.3
aesni0: <AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS,SHA1,SHA256>
acpi0: <INSYDE TGL-ULT>
acpi_ec1: <Embedded Controller: GPE 0x6e, ECDT> port 0x62,0x66 on acpi0
cpu0: <ACPI CPU> on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 19200000 Hz quality 950
Event timer "HPET" frequency 19200000 Hz quality 550
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0x3000-0x303f mem 0x605c000000-0x605cffffff,0x4000000000-0x400fffffff at device 2.0 on pci0
vgapci0: Boot video device
pcib1: <ACPI PCI-PCI bridge> at device 6.0 on pci0
pci1: <ACPI PCI bus> on pcib1
nvme0: <Generic NVMe Device> mem 0x7a300000-0x7a303fff at device 0.0 on pci1
pcib2: <ACPI PCI-PCI bridge> at device 7.0 on pci0
pcib3: <ACPI PCI-PCI bridge> at device 7.1 on pci0
pcib4: <ACPI PCI-PCI bridge> at device 7.2 on pci0
pcib5: <ACPI PCI-PCI bridge> at device 7.3 on pci0
xhci0: <Intel Tiger Lake-LP Thunderbolt 4 USB controller> mem 0x605d1b0000-0x605d1bffff at device 13.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
pci0: <serial bus, USB> at device 13.2 (no driver attached)
pci0: <serial bus, USB> at device 13.3 (no driver attached)
pci0: <simple comms, UART> at device 18.0 (no driver attached)
xhci1: <Intel Tiger Lake-LP USB 3.2 controller> mem 0x7a400000-0x7a40ffff at device 20.0 on pci0
xhci1: 32 bytes context size, 64-bit DMA
usbus1: waiting for BIOS to give up control
xhci_interrupt: host controller halted
usbus1 on xhci1
usbus1: 5.0Gbps Super Speed USB v3.0
pci0: <memory, RAM> at device 20.2 (no driver attached)
pci0: <serial bus> at device 21.0 (no driver attached)
pci0: <serial bus> at device 21.1 (no driver attached)
pci0: <serial bus> at device 21.3 (no driver attached)
pci0: <simple comms> at device 22.0 (no driver attached)
pcib6: <ACPI PCI-PCI bridge> at device 29.0 on pci0
pci2: <ACPI PCI bus> on pcib6
pci2: <network> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
hdac0: <Intel Tiger Lake HDA Controller> mem 0x605d1c8000-0x605d1cbfff,0x605d000000-0x605d0fffff at device 31.3 on pci0
pci0: <serial bus> at device 31.5 (no driver attached)
acpi_button0: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz0: _CRT value is absurd, ignored (210.1C)
acpi_acad0: <AC Adapter> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
WARNING: Device "psm" is Giant locked and may be deleted before FreeBSD 14.0.
psm0: model IntelliMouse Explorer, device ID 4
battery0: <ACPI Control Method Battery> on acpi0
acpi_syscontainer0: <System Container> on acpi0
acpi_syscontainer1: <System Container> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
atrtc0: non-PNP ISA device will be removed from GENERIC in FreeBSD 14.
attimer0: <AT timer> at port 0x40 on isa0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
attimer0: non-PNP ISA device will be removed from GENERIC in FreeBSD 14.
hwpstate_intel0: <Intel Speed Shift> on cpu0
hwpstate_intel1: <Intel Speed Shift> on cpu1
hwpstate_intel2: <Intel Speed Shift> on cpu2
hwpstate_intel3: <Intel Speed Shift> on cpu3
hwpstate_intel4: <Intel Speed Shift> on cpu4
hwpstate_intel5: <Intel Speed Shift> on cpu5
hwpstate_intel6: <Intel Speed Shift> on cpu6
hwpstate_intel7: <Intel Speed Shift> on cpu7
Timecounter "TSC-low" frequency 1401602594 Hz quality 1000
Timecounters tick every 1.000 msec
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
ugen1.1: <Intel XHCI root HUB> at usbus1
ugen0.1: <Intel XHCI root HUB> at usbus0
uhub0 on usbus0
uhub0: <Intel XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
uhub1 on usbus1
uhub1: <Intel XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus1
nvd0: <WDS100T1X0E-00AFY0> NVMe namespace
nvd0: 953869MB (1953525168 512 byte sectors)
hdacc0: <Tempo 92HD95B HDA CODEC> at cad 0 on hdac0
GEOM_ELI: Device nvd0p3.eli created.
hdaa0: <Tempo 92HD95B Audio Function Group>GEOM_ELI: Encryption: AES-XTS 128
GEOM_ELI:     Crypto: accelerated software
 at nid 1 on hdacc0
pcm0: <Tempo 92HD95B (Analog 2.0+HP/2.0)> at nid 13,10 and 14,11 on hdaa0
hdacc1: <Intel Tiger Lake HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel Tiger Lake Audio Function Group> at nid 1 on hdacc1
pcm1: <Intel Tiger Lake (HDMI/DP 8ch)> at nid 4 on hdaa1
Trying to mount root from zfs:tank/os/main []...
uhub0: 5 ports with 5 removable, self powered
ugen0.2: <Anker Anker USB-C Hub Device> at usbus0
uhub2 on uhub0
uhub2: <Anker Anker USB-C Hub Device, class 9/0, rev 3.10/4.33, addr 1> on usbus0
uhub1: 16 ports with 16 removable, self powered
Root mount waiting for: usbus0 usbus1
ugen1.2: <Anker Anker USB-C Hub Device> at usbus1
uhub3 on uhub1
uhub3: <Anker Anker USB-C Hub Device, class 9/0, rev 2.10/4.33, addr 1> on usbus1
uhub3: MTT enabled
Root mount waiting for: usbus0 usbus1
uhub2: 4 ports with 4 removable, self powered
ugen0.3: <Realtek USB 10/100/1000 LAN> at usbus0
Root mount waiting for: usbus0 usbus1
uhub3: 5 ports with 4 removable, self powered
ugen1.3: <Logitech USB Receiver> at usbus1
ukbd0 on uhub3
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/24.11, addr 2> on usbus1
kbd2 at ukbd0
Root mount waiting for: usbus0 usbus1
usb_msc_auto_quirk: UQ_MSC_NO_TEST_UNIT_READY set for USB mass storage device Generic USB3.0 Card Reader (0x05e3:0x0749)
usb_msc_auto_quirk: UQ_MSC_NO_PREVENT_ALLOW set for USB mass storage device Generic USB3.0 Card Reader (0x05e3:0x0749)
usb_msc_auto_quirk: UQ_MSC_NO_SYNC_CACHE set for USB mass storage device Generic USB3.0 Card Reader (0x05e3:0x0749)
ugen0.4: <Generic USB3.0 Card Reader> at usbus0
umass0 on uhub2
umass0: <Generic USB3.0 Card Reader, class 0/0, rev 3.20/15.39, addr 3> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0xc001
umass0:0:0: Attached to scbus0
(probe0:umass-sim0:0:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI status: Check Condition
(probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present)
(probe0:umass-sim0:0:0:0): Error 6, Unretryable error
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <Generic MassStorageClass 1539> Removable Direct Access SPC-4 SCSI device
da0: Serial Number 000000001539
da0: 400.000MB/s transfers
da0: Attempt to query device size failed: NOT READY, Medium not present
da0: quirks=0x2<NO_6_BYTE>
ugen1.4: <Logitech USB Receiver> at usbus1
ukbd1 on uhub3
ukbd1: <Logitech USB Receiver, class 0/0, rev 2.00/5.01, addr 3> on usbus1
kbd3 at ukbd1
da1 at umass-sim0 bus 0 scbus0 target 0 lun 1
da1: <Generic MassStorageClass 1539> Removable Direct Access SPC-4 SCSI device
da1: Serial Number 000000001539
da1: 400.000MB/s transfers
da1: Attempt to query device size failed: NOT READY, Medium not present
da1: quirks=0x2<NO_6_BYTE>
ugen1.5: <Anker Anker> at usbus1
ugen1.6: <Goodix Technology Co., Ltd. Goodix USB2.0 MISC> at usbus1
ugen1.7: <vendor 0x8087 product 0x0032> at usbus1
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] Unable to create a private tmpfs mount, hugepage support will be disabled(-19).
[drm] Got stolen memory base 0x0, size 0x0
lkpi_iic0: <LinuxKPI I2C> on drmn0
iicbus0: <Philips I2C bus> on lkpi_iic0
iic0: <I2C generic I/O> on iicbus0
lkpi_iic1: <LinuxKPI I2C> on drmn0
iicbus1: <Philips I2C bus> on lkpi_iic1
iic1: <I2C generic I/O> on iicbus1
lkpi_iic2: <LinuxKPI I2C> on drmn0
iicbus2: <Philips I2C bus> on lkpi_iic2
iic2: <I2C generic I/O> on iicbus2
lkpi_iic3: <LinuxKPI I2C> on drmn0
iicbus3: <Philips I2C bus> on lkpi_iic3
iic3: <I2C generic I/O> on iicbus3
lkpi_iic4: <LinuxKPI I2C> on drmn0
iicbus4: <Philips I2C bus> on lkpi_iic4
iic4: <I2C generic I/O> on iicbus4
lkpi_iic5: <LinuxKPI I2C> on drmn0
iicbus5: <Philips I2C bus> on lkpi_iic5
iic5: <I2C generic I/O> on iicbus5
lkpi_iic6: <LinuxKPI I2C> on drmn0
iicbus6: <Philips I2C bus> on lkpi_iic6
iic6: <I2C generic I/O> on iicbus6
lkpi_iic7: <LinuxKPI I2C> on drmn0
iicbus7: <Philips I2C bus> on lkpi_iic7
iic7: <I2C generic I/O> on iicbus7
lkpi_iic8: <LinuxKPI I2C> on drmn0
iicbus8: <Philips I2C bus> on lkpi_iic8
iic8: <I2C generic I/O> on iicbus8
drmn0: successfully loaded firmware image 'i915/tgl_dmc_ver2_08.bin'
drmn0: [drm] Finished loading DMC firmware i915/tgl_dmc_ver2_08.bin (v2.8)
sysctl_warn_reuse: can't re-use a leaf (hw.dri.debug)!
lkpi_iic9: <LinuxKPI I2C> on drm1
iicbus9: <Philips I2C bus> on lkpi_iic9
iic9: <I2C generic I/O> on iicbus9
lkpi_iic10: <LinuxKPI I2C> on drm2
iicbus10: <Philips I2C bus> on lkpi_iic10
iic10: <I2C generic I/O> on iicbus10
lkpi_iic11: <LinuxKPI I2C> on drm3
iicbus11: <Philips I2C bus> on lkpi_iic11
iic11: <I2C generic I/O> on iicbus11
lkpi_iic12: <LinuxKPI I2C> on drm4
iicbus12: <Philips I2C bus> on lkpi_iic12
iic12: <I2C generic I/O> on iicbus12
lkpi_iic13: <LinuxKPI I2C> on drm5
iicbus13: <Philips I2C bus> on lkpi_iic13
iic13: <I2C generic I/O> on iicbus13
[drm] Initialized i915 1.6.0 20200917 for drmn0 on minor 0
VT: Replacing driver "efifb" with new "fb".
start FB_INFO:
type=11 height=1440 width=2256 depth=32
pbase=0x4000040000 vbase=0xfffffe0145040000
name=drmn0 flags=0x0 stride=10240 bpp=32
end FB_INFO
Intel(R) Wireless WiFi based driver for FreeBSD
ig4iic0: <Intel Tiger Lake-LP I2C Controller-4> at device 21.0 on pci0
ig4iic0: Using MSI
iicbus14: <Philips I2C bus (ACPI-hinted)> on ig4iic0
iic14: <I2C generic I/O> on iicbus14
ig4iic1: <Intel Tiger Lake-LP I2C Controller-5> at device 21.1 on pci0
ig4iic1: Using MSI
iicbus15: <Philips I2C bus (ACPI-hinted)> on ig4iic1
iicbus15: <unknown card> at addr 0x50
iic15: <I2C generic I/O> on iicbus15
ig4iic2: <Intel Tiger Lake-LP I2C Controller-7> at device 21.3 on pci0
ig4iic2: Using MSI
iicbus16: <Philips I2C bus (ACPI-hinted)> on ig4iic2
iicbus16: <unknown card> at addr 0x2c
iicbus16: <unknown card> at addr 0x37
iic16: <I2C generic I/O> on iicbus16
ichsmb0: <Intel Tiger Lake SMBus controller> port 0xefa0-0xefbf mem 0x605d1d0000-0x605d1d00ff at device 31.4 on pci0
smbus0: <System Management Bus> on ichsmb0
iwlwifi0: <iwlwifi> mem 0x7a200000-0x7a203fff at device 0.0 on pci2
iwlwifi0: successfully loaded firmware image 'iwlwifi-ty-a0-gf-a0-73.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.36
iwlwifi0: loaded firmware version 73.35c0a2c6.0 ty-a0-gf-a0-73.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420
iwlwifi0: successfully loaded firmware image 'iwlwifi-ty-a0-gf-a0.pnvm'
iwlwifi0: loaded PNVM version 881c99e1
iwlwifi0: Detected RF GF, rfid=0x10d000
iwlwifi0: base HW address: c4:bd:e5:1b:47:02
acpi_wmi0: <ACPI-WMI mapping> on acpi0
acpi_wmi0: cannot find EC device
acpi_wmi0: Embedded MOF found
ACPI: \134_SB.WFDE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
acpi_wmi1: <ACPI-WMI mapping> on acpi0
acpi_wmi1: cannot find EC device
acpi_wmi1: Embedded MOF found
ACPI: \134_SB.WFTE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20201113/nsarguments-361)
wlan0: Ethernet address: c4:bd:e5:1b:47:02
lo0: link state changed to UP
wlan0: link state changed to UP
ure0 on uhub2
ure0: <Realtek USB 10/100/1000 LAN, class 0/0, rev 3.00/30.00, addr 2> on usbus0
ums0 on uhub3
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/24.11, addr 2> on usbus1
ums0: 16 buttons and [XYZT] coordinates ID=2
uhid0 on uhub3
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/24.11, addr 2> on usbus1
ums1 on uhub3
ums1: <Logitech USB Receiver, class 0/0, rev 2.00/5.01, addr 3> on usbus1
ums1: 16 buttons and [XYZT] coordinates ID=2
uhid1 on uhub3
uhid1: <Logitech USB Receiver, class 0/0, rev 2.00/5.01, addr 3> on usbus1
miibus0: <MII bus> on ure0
rgephy0: <RTL8251/8153 1000BASE-T media interface> PHY 0 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
ue0: <USB Ethernet> on ure0
ue0: Ethernet address: a0:ce:c8:d3:ca:0a
iichid0: <FRMW0001:01 32AC:0006 I2C HID device> at addr 0x50 on iicbus15
iichid0: Interrupt setup failed. Fallback to sampling
hidbus0: <HID bus> on iichid0
iichid1: <PIXA3854:01 093A:0274 I2C HID device> at addr 0x2c on iicbus16
iichid1: Interrupt setup failed. Fallback to sampling
hidbus1: <HID bus> on iichid1
ue0: link state changed to DOWN
hcons0: <FRMW0001:01 32AC:0006 Consumer Control> on hidbus0
hms0: <PIXA3854:01 093A:0274 Mouse> on hidbus1
hms0: 2 buttons and [XY] coordinates ID=2
hmt0: <PIXA3854:01 093A:0274 TouchPad> on hidbus1
hconf0: <PIXA3854:01 093A:0274 Configuration> on hidbus1
hmt0: Multitouch touchpad with 2 external buttons, click-pad
hmt0: 5 contacts with [C] properties. Report range [0:0] - [1337:876]
pflog0: promiscuous mode enabled
wg0: link state changed to UP

pciconf -lv

hostb0@pci0:0:0:0:  class=0x060000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a14 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = '11th Gen Core Processor Host Bridge/DRAM Registers'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0: class=0x030000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a49 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'TigerLake-LP GT2 [Iris Xe Graphics]'
    class      = display
    subclass   = VGA
none0@pci0:0:4:0:   class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a03 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'TigerLake-LP Dynamic Tuning Processor Participant'
    class      = dasp
pcib1@pci0:0:6:0:   class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x9a09 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = '11th Gen Core Processor PCIe Controller'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:7:0:   class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x9a23 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Thunderbolt 4 PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:0:7:1:   class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x9a25 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Thunderbolt 4 PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
pcib4@pci0:0:7:2:   class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x9a27 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Thunderbolt 4 PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
pcib5@pci0:0:7:3:   class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x9a29 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Thunderbolt 4 PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
none1@pci0:0:8:0:   class=0x088000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a11 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'GNA Scoring Accelerator module'
    class      = base peripheral
none2@pci0:0:10:0:  class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a0d subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tigerlake Telemetry Aggregator Driver'
    class      = dasp
xhci0@pci0:0:13:0:  class=0x0c0330 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a13 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Thunderbolt 4 USB Controller'
    class      = serial bus
    subclass   = USB
none3@pci0:0:13:2:  class=0x0c0340 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a1b subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Thunderbolt 4 NHI'
    class      = serial bus
    subclass   = USB
none4@pci0:0:13:3:  class=0x0c0340 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a1d subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Thunderbolt 4 NHI'
    class      = serial bus
    subclass   = USB
none5@pci0:0:18:0:  class=0x070000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0fc subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Integrated Sensor Hub'
    class      = simple comms
    subclass   = UART
xhci1@pci0:0:20:0:  class=0x0c0330 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0ed subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller'
    class      = serial bus
    subclass   = USB
none6@pci0:0:20:2:  class=0x050000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0ef subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Shared SRAM'
    class      = memory
    subclass   = RAM
ig4iic0@pci0:0:21:0:    class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0e8 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Serial IO I2C Controller'
    class      = serial bus
ig4iic1@pci0:0:21:1:    class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0e9 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Serial IO I2C Controller'
    class      = serial bus
ig4iic2@pci0:0:21:3:    class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0eb subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Serial IO I2C Controller'
    class      = serial bus
none7@pci0:0:22:0:  class=0x078000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0e0 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Management Engine Interface'
    class      = simple comms
pcib6@pci0:0:29:0:  class=0x060400 rev=0x20 hdr=0x01 vendor=0x8086 device=0xa0b1 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
isab0@pci0:0:31:0:  class=0x060100 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa082 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
hdac0@pci0:0:31:3:  class=0x040380 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0c8 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Smart Sound Technology Audio Controller'
    class      = multimedia
    subclass   = HDA
ichsmb0@pci0:0:31:4:    class=0x0c0500 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0a3 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP SMBus Controller'
    class      = serial bus
    subclass   = SMBus
none8@pci0:0:31:5:  class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0a4 subvendor=0xf111 subdevice=0x0001
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP SPI Controller'
    class      = serial bus
nvme0@pci0:1:0:0:   class=0x010802 rev=0x01 hdr=0x00 vendor=0x15b7 device=0x5011 subvendor=0x15b7 subdevice=0x5011
    vendor     = 'Sandisk Corp'
    device     = 'WD PC SN810 / Black SN850 NVMe SSD'
    class      = mass storage
    subclass   = NVM
ppt0@pci0:170:0:0:  class=0x028000 rev=0x1a hdr=0x00 vendor=0x8086 device=0x2725 subvendor=0x8086 subdevice=0x0024
    vendor     = 'Intel Corporation'
    device     = 'Wi-Fi 6 AX210/AX211/AX411 160MHz'
    class      = network