Skip to content

Hardware enablement, ISO image - #189

Merged
jonringer merged 14 commits into
masterfrom
jonringer/more-hardware-enablement
Sep 17, 2026
Merged

jonringer merged 14 commits into
masterfrom
jonringer/more-hardware-enablement

Conversation

@jonringer

Copy link
Copy Markdown
Collaborator

audio, camera, fingerprint, printing (incomplete), nvidia, power, scanner, thunderbolt

@jonringer
jonringer force-pushed the jonringer/more-hardware-enablement branch 2 times, most recently from cbcb6c3 to 211e7b2 Compare September 16, 2026 13:58
Add device-matching helpers for hardware quirks: hasManufacturer,
hasProduct, isDevice, plus common presets (isFramework, isThinkPad,
isDellXps, isAsusRog, isSurface). Also add hasPciDevice, hasUsbVendor,
and isConvertibleChassis utilities for broader hardware detection.
Add facter auto-detection modules for audio/SOF, fingerprint readers,
gaming peripherals, printers, scanners, and touchscreens. Each module
detects hardware from the facter report and exposes detection flags at
hardware.facter.detected.* for downstream consumers.
Add Thunderbolt 3 device management daemon, ekaos service module at
services.hardware.bolt, and facter/thunderbolt.nix auto-detection that
enables boltd when Thunderbolt controllers are detected.
Add D-Bus power profile switching daemon, ekaos service module at
services.power-profiles-daemon, and facter/power.nix auto-detection
that enables PPD on battery-equipped bare-metal systems.
Port Intel IPU6 camera stack: firmware binaries (ipu6-camera-bins),
userspace HAL with Tiger Lake/Alder Lake/Meteor Lake variants
(ipu6-camera-hal), and Vision Sensing Controller firmware
(ivsc-firmware). Add ipu6ep-camera-hal and ipu6epmtl-camera-hal
override entries in top-level.nix.
Add hardware.ipu6 option module for Intel IPU6/MIPI camera support
with platform selection (Tiger Lake, Alder Lake, Meteor Lake). Handles
kernel driver loading, firmware installation, udev rules, and
platform-specific camera HAL. Facter auto-detects IPU6 hardware by PCI
device ID and sets the correct platform variant.
Add hardware.nvidia option module for NVIDIA proprietary driver
support: driver branch/package selection, open vs proprietary kernel
modules, modesetting, GSP firmware, power management (suspend/resume,
RTD3), PRIME hybrid GPU modes (offload/sync/reverse sync) with bus ID
configuration, and nvidia-offload convenience script.

Facter auto-detects NVIDIA GPUs, populates PRIME bus IDs from hardware
report, and enables offload mode for hybrid GPU systems. Remove
redundant nvidia-drm.modeset=1 from facter/gpu.nix as hardware.nvidia
now handles it.
Replace docbook_xml_dtd_45 and docbook_xml_dtd_412 with the real
attribute docbook-xml-dtd.{v4_5,v4_1_2} so callPackage can inject
them without relying on stdenv/aliases.nix.
Move stdenv.cc.cc lib to buildInputs so autoPatchelfHook can find
libstdc++.so.6. Disable zsh/bash completions in power-profiles-daemon
to avoid shtab Python module dependency.
Port Intel IPU7 camera stack for Lunar Lake: ipu7-camera-bins
(firmware), ipu7-camera-hal (userspace HAL with ipu7x/ipu75xa
variants), ipu7-drivers (kernel module), and jsoncpp dependency.

Add hardware.ipu7 option module with platform selection and firmware
loading. Extend facter/camera.nix to auto-detect IPU7 hardware by PCI
device ID (0x645d Lunar Lake, 0xb05d Arrow Lake) alongside existing
IPU6 detection.
Port ISO image toolchain: mtools (FAT filesystem tools), libisoburn
(xorriso ISO creator), and their dependency chain (libburn, libisofs,
libcdio, libcddb). Required for building EkaOS installation media.
Use pkgs.makeInitrd instead of kernelPackages.kernel.makeInitrd which
no longer exists after makeInitrd was moved to the kernel variant
passthru. Use kernel modules directory directly instead of the missing
pkgs.aggregateModules function.
Add a kitchen-sink hardware profile for installation media that loads
drivers for all common GPUs (Intel, AMD, nouveau), audio (HDA, SOF),
WiFi (iwlwifi, ath, rtw, mt7921, brcm), Ethernet, Bluetooth, input
devices, Thunderbolt, and IPU6 cameras. Includes nixos-facter for
post-install hardware detection.

Add ekaos/configurations/iso-generic.nix for building a generic
installer ISO: nix-build ekaos/configurations/iso-generic.nix
@jonringer
jonringer force-pushed the jonringer/more-hardware-enablement branch from 211e7b2 to 795f244 Compare September 17, 2026 22:10
@jonringer jonringer changed the title Hardware enablement Hardware enablement, ISO image Sep 17, 2026
@jonringer
jonringer merged commit 3ccadcc into master Sep 17, 2026
2 checks passed
@jonringer
jonringer deleted the jonringer/more-hardware-enablement branch September 17, 2026 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant