Solved Unable to start X on 12th Gen Alder Lake N100 with failed to load module "i915kms" while kldstat shows loaded

I am trying to get a brand-new install of FreeBSD 14-Release working with X on my GMKtec Nucbox 3 (12th Gen Alder Lake CPU with integrated Intel graphics). It fails, unable to load the i915kms driver in Xorg.

I read posts all afternoon and evening and have tried quite a few things. I installed the drm and drm-515 modules, I have tried using just the "drm-intel" driver set, the "drm-510", and "drm-515" driver packages (individually, not all at the same time).

pkg info | grep drm
drm-515-kmod-5.15.118_3 DRM drivers modules
gpu-firmware-kmod-20230210_1,1 Firmware modules for the drm-kmod drivers
libdrm-2.4.119,1 Userspace interface to kernel Direct Rendering Module services


As suggested, I added the
Code:
 kld_list="i915kms"
to the /etc/rc.conf, but the i915 driver does not load during boot (I checked in multiple reboots). Here is the last part of the rc.conf (the rest is baseline from the install):
Code:
tail /etc/rc.conf
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
powerd_enable="YES"
moused_nondefault_enable="NO"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
zfs_enable="YES"
dbus_enable="YES"
kld_list="i915kms"

I can manually load it by using sudo kldload i915kms I get a message on the console
Code:
iic0: <I2C generic I/O> on iicbus0
iic1: <I2C generic I/O> on iicbus1
This seems to me that the i915kms is attaching to the iic bus, not the drm0 devices. This is consistent. The iic device message does not show up until I issue the kldload command.

After I issue the kldload command by hand, the kldstat output shows the driver loaded:
Code:
 kldstat
Id Refs Address                Size Name
 1  108 0xffffffff80200000  1d34598 kernel
 2    1 0xffffffff81f35000   5d51c8 zfs.ko
 3    1 0xffffffff8250b000     7718 cryptodev.ko
 4    1 0xffffffff835f9000     3390 acpi_wmi.ko
 5    1 0xffffffff835fd000     3250 ichsmb.ko
 6    1 0xffffffff83601000     2178 smbus.ko
 7    1 0xffffffff83604000     5f00 ig4.ko
 8    1 0xffffffff8360a000     3360 uhid.ko
 9    1 0xffffffff8360e000     4364 ums.ko
10    1 0xffffffff83613000     33c0 usbhid.ko
11    1 0xffffffff83617000     3380 hidbus.ko
12    1 0xffffffff8361b000     3360 wmt.ko
13    1 0xffffffff8361f000     e5ac snd_uaudio.ko
14    1 0xffffffff8362e000     4d20 ng_ubt.ko
15    6 0xffffffff83633000     abb8 netgraph.ko
16    2 0xffffffff8363e000     a250 ng_hci.ko
17    4 0xffffffff83649000     2670 ng_bluetooth.ko
18    1 0xffffffff8364c000     e268 ng_l2cap.ko
19    1 0xffffffff8365b000    1bf68 ng_btsocket.ko
20    1 0xffffffff83677000     38f8 ng_socket.ko
21    1 0xffffffff8367b000     2a68 mac_ntpd.ko
28    1 0xffffffff8367e000   1b3920 i915kms.ko
29    2 0xffffffff83832000    7c050 drm.ko
30    1 0xffffffff838af000     22b8 iic.ko
31    3 0xffffffff838b2000     3080 linuxkpi_hdmi.ko
32    3 0xffffffff838b6000     6350 dmabuf.ko
33    3 0xffffffff838bd000     3378 lindebugfs.ko
34    1 0xffffffff838c1000     b360 ttm.ko

When I try to start X, it fails unable to find a screen:
Code:
 tail -20 /var/log/Xorg.0.log
[  4972.695] (--) PCI:*(0@0:2:0) 8086:46d1:0301:02f3 rev 0, Mem @ 0x6000000000/16777216, 0x4000000000/268435456, I/O @ 0x00004000/64, BIOS @ 0x????????/65536
[  4972.695] (II) LoadModule: "glx"
[  4972.695] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[  4972.696] (II) Module glx: vendor="X.Org Foundation"
[  4972.696]    compiled for 1.21.1.11, module version = 1.0.0
[  4972.696]    ABI class: X.Org Server Extension, version 10.0
[  4972.696] (II) LoadModule: "i915kms"
[  4972.696] (WW) Warning, couldn't open module i915kms
[  4972.696] (EE) Failed to load module "i915kms" (module does not exist, 0)
[  4972.696] (EE) No drivers available.
[  4972.696] (EE)
Fatal server error:
[  4972.696] (EE) no screens found(EE)
[  4972.696] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[  4972.696] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  4972.696] (EE)
[  4972.697] (EE) Server terminated with error (1). Closing log file.




When I look at the graphics device in the system this is the output:
Code:
pciconf -lv | grep -B4 VGA
vgapci0@pci0:0:2:0:     class=0x030000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x46d1 subvendor=0x0301 subdevice=0x02f3
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake-N [UHD Graphics]'
    class      = display
    subclass   = VGA

Does anyone have any suggestions? I picked this unit because it had been around for a while (the 13th gen is out for quite a while already) and I wanted it for a very low power FreeBSD desktop. Am I going to have to wait until FreeBSD 15 or later?

If it is of any use, here is the dmesg output (long, so window scrolls):
Code:
Copyright (c) 1992-2023 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 14.0-RELEASE #0 releng/14.0-n265380-f9716eee8ab4: Fri Nov 10 05:57:23 UTC 2023
    root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)
VT(efifb): resolution 1920x1080
CPU: Intel(R) N100 (806.40-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0xb06e0  Family=0x6  Model=0xbe  Stepping=0
  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=0x239ca7eb<FSGSBASE,TSCADJ,BMI1,AVX2,FDPEXC,SMEP,BMI2,ERMS,INVPCID,NFPUSG,PQE,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,PROCTRACE,SHA>
  Structured Extended Features2=0x98c007bc<UMIP,PKU,OSPKE,WAITPKG,GFNI,VAES,VPCLMULQDQ,RDPID,MOVDIRI,MOVDIR64B>
  Structured Extended Features3=0xfc184410<FSRM,MD_CLEAR,IBT,IBPB,STIBP,L1DFL,ARCH_CAP,CORE_CAP,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  IA32_ARCH_CAPS=0x180fd6b<RDCL_NO,IBRS_ALL,SKIP_L1DFL_VME,MDS_NO,TAA_NO>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr
  TSC: P-state invariant, performance statistics
real memory  = 34358689792 (32767 MB)
avail memory = 33061076992 (31529 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <ALASKA A M I >
WARNING: L3 data cache covers more APIC IDs than a package (7 > 3)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s)
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: 3 1 2
random: entropy device external interface
kbd0 at kbdmux0
efirtc0: <EFI Realtime Clock>
efirtc0: registered as a time-of-day clock, resolution 1.000000s
smbios0: <System Management BIOS> at iomem 0x73bc1000-0x73bc101e
smbios0: Version: 3.5, BCD Revision: 3.5
aesni0: <AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS,SHA1,SHA256>
acpi0: <ALASKA A M I >
Firmware Error (ACPI): Could not resolve symbol [\134_SB.PC00.TXHC.RHUB.SS01], AE_NOT_FOUND (20221020/dswload2-315)
ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20221020/psobject-372)
Firmware Error (ACPI): Could not resolve symbol [\134_SB.PC00.TXHC.RHUB.SS02], AE_NOT_FOUND (20221020/dswload2-315)
ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20221020/psobject-372)
acpi0: Power Button (fixed)
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
Event timer "HPET1" frequency 19200000 Hz quality 440
Event timer "HPET2" frequency 19200000 Hz quality 440
Event timer "HPET3" frequency 19200000 Hz quality 440
Event timer "HPET4" frequency 19200000 Hz quality 440
atrtc1: <AT realtime clock> on acpi0
atrtc1: Warning: Couldn't map I/O.
atrtc1: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
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 0x4000-0x403f mem 0x6000000000-0x6000ffffff,0x4000000000-0x400fffffff at device 2.0 on pci0
vgapci0: Boot video device
xhci0: <XHCI (generic) USB 3.0 controller> mem 0x6001100000-0x600110ffff at device 20.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
usbus0: 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.3 (no driver attached)
pci0: <simple comms> at device 22.0 (no driver attached)
ahci0: <AHCI SATA controller> port 0x4090-0x4097,0x4080-0x4083,0x4060-0x407f mem 0x80800000-0x80801fff,0x80803000-0x808030ff,0x80802000-0x808027ff at device 23.0 on pci0
ahci0: AHCI v1.31 with 1 6Gbps ports, Port Multiplier not supported
ahcich1: <AHCI channel> at channel 1 on ahci0
sdhci_pci0: <Generic SD HCI> mem 0x6001129000-0x6001129fff at device 26.0 on pci0
sdhci_pci0: 1 slot(s) allocated
mmc0: <MMC/SD bus> on sdhci_pci0
pcib1: <ACPI PCI-PCI bridge> at device 28.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pci1: <network> at device 0.0 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> at device 29.0 on pci0
pci2: <ACPI PCI bus> on pcib2
nvme0: <Generic NVMe Device> mem 0x80600000-0x80603fff,0x80604000-0x80605fff at device 0.0 on pci2
pcib3: <ACPI PCI-PCI bridge> at device 29.2 on pci0
pci3: <ACPI PCI bus> on pcib3
igc0: <Intel(R) Ethernet Controller I225-V> mem 0x80400000-0x804fffff,0x80500000-0x80503fff at device 0.0 on pci3
igc0: Using 1024 TX descriptors and 1024 RX descriptors
igc0: Using 4 RX queues 4 TX queues
igc0: Using MSI-X interrupts with 5 vectors
igc0: Ethernet address: e0:51:d8:12:91:82
igc0: netmap queues/slots: TX 4/1024, RX 4/1024
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
hdac0: <Intel Alder Lake-N HDA Controller> mem 0x6001120000-0x6001123fff,0x6001000000-0x60010fffff at device 31.3 on pci0
pci0: <serial bus> at device 31.5 (no driver attached)
acpi_button0: <Sleep Button> on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_button1: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_syscontainer0: <System Container> on acpi0
acpi_syscontainer1: <System Container> on acpi0
atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
atrtc0: Warning: Couldn't map I/O.
atrtc0: registered as a time-of-day clock, resolution 1.000000s
atrtc0: Can't map interrupt.
atrtc0: non-PNP ISA device will be removed from GENERIC in FreeBSD 15.
ns8250: UART FCR is broken
ns8250: UART FCR is broken
uart0: <16550 or compatible> at port 0x3f8 irq 4 flags 0x10 on isa0
uart0: non-PNP ISA device will be removed from GENERIC in FreeBSD 15.
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
Timecounter "TSC" frequency 806393376 Hz quality 1000
Timecounters tick every 1.000 msec
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
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
mmc0: No compatible cards found on bus
nvme0: Allocated 64MB host memory buffer
nda0 at nvme0 bus 0 scbus1 target 0 lun 1
nda0: <SPCC M.2 PCIe SSD VC2S038E AA230711NV01KG02346>
nda0: Serial Number AA230711NV01KG02346
nda0: nvme version 1.4
nda0: 953869MB (1953525168 512 byte sectors)
Trying to mount root from zfs:zroot/ROOT/default []...
uhub0: 16 ports with 16 removable, self powered
Root mount waiting for: usbus0
ugen0.2: <Logitech USB Receiver> at usbus0
ukbd0 on uhub0
ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/12.11, addr 1> on usbus0
kbd1 at ukbd0
ugen0.3: <SIGMACHIP Usb Mouse> at usbus0
Root mount waiting for: usbus0
ugen0.4: <CSCTEK USB Audio and HID> at usbus0
ugen0.5: <Realtek Bluetooth Radio> at usbus0
ig4iic0: <Intel Alder Lake-M I2C Controller-0> at device 21.0 on pci0
ig4iic0: Using MSI
iicbus0: <Philips I2C bus (ACPI-hinted)> on ig4iic0
ig4iic1: <Intel Alder Lake-M I2C Controller-3> at device 21.3 on pci0
ig4iic1: Using MSI
iicbus1: <Philips I2C bus (ACPI-hinted)> on ig4iic1
ichsmb0: <Intel Alder Lake SMBus controller> port 0xefa0-0xefbf mem 0x6001128000-0x60011280ff at device 31.4 on pci0
smbus0: <System Management Bus> on ichsmb0
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) (20221020/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) (20221020/nsarguments-361)
lo0: link state changed to UP
ums0 on uhub0
ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.11, addr 1> on usbus0
ums0: 16 buttons and [XYZT] coordinates ID=2
uhid0 on uhub0
uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/12.11, addr 1> on usbus0
ums1 on uhub0
ums1: <SIGMACHIP Usb Mouse, class 0/0, rev 1.10/1.10, addr 2> on usbus0
ums1: 3 buttons and [XYZ] coordinates ID=0
uhid1 on uhub0
uhid1: <CSCTEK USB Audio and HID, class 0/0, rev 2.00/80.07, addr 3> on usbus0
device_attach: uhid1 attach returned 12
uhid1 on uhub0
uhid1: <CSCTEK USB Audio and HID, class 0/0, rev 2.00/80.07, addr 3> on usbus0
device_attach: uhid1 attach returned 12
uaudio0 on uhub0
uaudio0: <CSCTEK USB Audio and HID, class 0/0, rev 2.00/80.07, addr 3> on usbus0
uaudio0: Play[0]: 48000 Hz, 2 ch, 16-bit S-LE PCM format, 2x2ms buffer.
uaudio0: Play[0]: 16000 Hz, 2 ch, 16-bit S-LE PCM format, 2x2ms buffer.
uaudio0: Play[0]: 8000 Hz, 2 ch, 16-bit S-LE PCM format, 2x2ms buffer.
uaudio0: Record[0]: 48000 Hz, 1 ch, 16-bit S-LE PCM format, 2x2ms buffer.
uaudio0: Record[0]: 16000 Hz, 1 ch, 16-bit S-LE PCM format, 2x2ms buffer.
uaudio0: Record[0]: 8000 Hz, 1 ch, 16-bit S-LE PCM format, 2x2ms buffer.
uaudio0: No MIDI sequencer.
pcm0: <USB audio> on uaudio0
uaudio0: No HID volume keys found.
uhid1 on uhub0
uhid1: <CSCTEK USB Audio and HID, class 0/0, rev 2.00/80.07, addr 3> on usbus0
device_attach: uhid1 attach returned 12
uhid1 on uhub0
uhid1: <CSCTEK USB Audio and HID, class 0/0, rev 2.00/80.07, addr 3> on usbus0
device_attach: uhid1 attach returned 12
ubt0 on uhub0
ubt0: <Bluetooth Radio> on usbus0
igc0: link state changed to UP
Security policy loaded: MAC/ntpd (mac_ntpd)
iic0: <I2C generic I/O> on iicbus0
iic1: <I2C generic I/O> on iicbus1
iic0: detached
iicbus0: <unknown card> at addr 0
iic1: detached
iicbus1: <unknown card> at addr 0
Warning: memory type debugfsint leaked memory on destroy (2 allocations, 80 bytes leaked).
iic0: <I2C generic I/O> on iicbus0
iic1: <I2C generic I/O> on iicbus1
 
Why X tries to load i915kms? you have configured Xorg?
Yes, there is an xorg config file now. The base install (with no config file and no special drivers loaded) did not work. The base mode setting the intel drivers did not work. The base install with the i910kms or i915kms drivers did not work (I tried them both individually in different tests). The mode setting driver did not work. The Manual section X11 goes on to direct creating a conf file to force the correct driver to be attached by Xorg. In my digging through threads here on the forums and other sites there was quite a few that said they were able to get Alder Lake systems running using the i915kms driver to work, but these are not N100 systems with current generation integrated graphics, but appear to be mobile i3 and i5 systems with much older integrated graphics. As Shurik pointed out above, the Alder Lake-N chipset isn't supported until the drm-61-kmod driver (FreeBSD 15 only). I am going to have to figure out how to upgrade to 15.0-CURRENT. Luckily, this system is brand-new and I don't have anything on it, so if I have to reinstall and try again several times it won't be too disruptive.
 
Yes, there is an xorg config file now. The base install (with no config file and no special drivers loaded) did not work. The base mode setting the intel drivers did not work. The base install with the i910kms or i915kms drivers did not work (I tried them both individually in different tests). The mode setting driver did not work. The Manual section X11 goes on to direct creating a conf file to force the correct driver to be attached by Xorg. In my digging through threads here on the forums and other sites there was quite a few that said they were able to get Alder Lake systems running using the i915kms driver to work, but these are not N100 systems with current generation integrated graphics, but appear to be mobile i3 and i5 systems with much older integrated graphics. As Shurik pointed out above, the Alder Lake-N chipset isn't supported until the drm-61-kmod driver (FreeBSD 15 only). I am going to have to figure out how to upgrade to 15.0-CURRENT. Luckily, this system is brand-new and I don't have anything on it, so if I have to reinstall and try again several times it won't be too disruptive.
Don't try lo load i915kms, this is not a Xorg driver. Remove the config file where you put that.
 
You can use an installer or upgrade running system with git and make world/kernel procedure.
Boom! I installed the 20240125 snapshot and tried out X with no changes and it couldn't find the fb, but after I installed the drm-61-kmod, added it to the rc,conf, then used kldload to push it, X started with no problem. I appreciate all of your helpful pointers. I have become an involuntary tester for -CURRENT, but at least I know X works with the drm-61-kms drivers and once X was working to get Xfce working. I am proceeding on with my experiments. The key to the solution for me was shurik for pointing out that the drivers weren't in FreeBSD-14.
 
I am unable to edit the thread to add the "Solved" prefix. Hopefully a mod will do so since I cannot.
 
I recently purchased an Asus N100I-D D4. Intel Graphics do not work in FreeBSD 14. It works in FreeBSD 15-CURRENT, but drm errors occur. I wish I had seen this article before purchasing the N100 motherboard.
 
Back
Top