diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f58d888..ac55dd2a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,13 +9,13 @@ jobs: nixfmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: cachix/install-nix-action@v31 - run: cd tests && nix fmt .. -- --fail-on-change tests: needs: nixfmt runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: cachix/install-nix-action@v31 - run: nix run ./tests#run . \ No newline at end of file diff --git a/README.md b/README.md index a064978f..a0c5d094 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ See code for all available configurations. | [Apple MacBook Pro 8,1](apple/macbook-pro/8-1) | `` | `apple-macbook-pro-8-1` | | [Apple MacBook Pro 10,1](apple/macbook-pro/10-1) | `` | `apple-macbook-pro-10-1` | | [Apple MacBook Pro 11,1](apple/macbook-pro/11-1) | `` | `apple-macbook-pro-11-1` | +| [Apple MacBook Pro 11,4](apple/macbook-pro/11-4) | `` | `apple-macbook-pro-11-4` | | [Apple MacBook Pro 11,5](apple/macbook-pro/11-5) | `` | `apple-macbook-pro-11-5` | | [Apple MacBook Pro 12,1](apple/macbook-pro/12-1) | `` | `apple-macbook-pro-12-1` | | [Apple MacBook Pro 14,1](apple/macbook-pro/14-1) | `` | `apple-macbook-pro-14-1` | @@ -109,6 +110,7 @@ See code for all available configurations. | [Asus ROG Flow X13 GV302X\* (2023)](asus/flow/gv302x/nvidia) | `` | `asus-flow-gv302x-nvidia` | | [Asus ROG Strix G513IM](asus/rog-strix/g513im) | `` | `asus-rog-strix-g513im` | | [Asus ROG Strix G533ZW](asus/rog-strix/g533zw) | `` | `asus-rog-strix-g533zw` | +| [Asus ROG Strix G533Q](asus/rog-strix/g533q) | `` | `asus-rog-strix-g533zw` | | [Asus ROG Strix G713IE](asus/rog-strix/g713ie) | `` | `asus-rog-strix-g713ie` | | [Asus ROG Strix G733QS](asus/rog-strix/g733qs) | `` | `asus-rog-strix-g733qs` | | [Asus ROG Strix X570-E GAMING](asus/rog-strix/x570e) | `` | `asus-rog-strix-x570e` | @@ -223,6 +225,7 @@ See code for all available configurations. | [HP Probook 440G5](hp/probook/440g5) | `` | `hp-probook-440G5` | | [Huawei Matebook X Pro (2020)](huawei/machc-wa) | `` | `huawei-machc-wa` | | [i.MX8QuadMax Multisensory Enablement Kit](nxp/imx8qm-mek/) | `` | `nxp-imx8qm-mek` | +| [Intel NUC 5i5RYB](intel/nuc/5i5ryb/) | `` | `intel-nuc-5i5ryb` | | [Intel NUC 8i7BEH](intel/nuc/8i7beh/) | `` | `intel-nuc-8i7beh` | | [Lenovo IdeaCentre K330](lenovo/ideacentre/k330) | `` | `lenovo-ideacentre-k330` | | [Lenovo IdeaPad 3 15alc6](lenovo/ideapad/15alc6) | `` | `lenovo-ideapad-15alc6` | @@ -236,6 +239,8 @@ See code for all available configurations. | [Lenovo IdeaPad 2-in-1 16ahp9](lenovo/ideapad/16ahp9) | `` | `lenovo-ideapad-16ahp9` | | [Lenovo IdeaPad S145 15api](lenovo/ideapad/s145-15api) | `` | `lenovo-ideapad-s145-15api` | | [Lenovo Legion 5 15ach6h](lenovo/legion/15ach6h) | `` | `lenovo-legion-15ach6h` | +| [Lenovo Legion 5 15ach6h (Hybrid)](lenovo/legion/15ach6h/hybrid) | `` | `lenovo-legion-15ach6h-hybrid` | +| [Lenovo Legion 5 15ach6h (Nvidia)](lenovo/legion/15ach6h/hybrid) | `` | `lenovo-legion-15ach6h-nvidia` | | [Lenovo Legion 5 15arh05h](lenovo/legion/15arh05h) | `` | `lenovo-legion-15arh05h` | | [Lenovo Legion 7 Slim 15ach6](lenovo/legion/15ach6) | `` | `lenovo-legion-15ach6` | | [Lenovo Legion 5 Pro 16ach6h](lenovo/legion/16ach6h) | `` | `lenovo-legion-16ach6h` | @@ -274,6 +279,7 @@ See code for all available configurations. | [Lenovo ThinkPad P14s Intel Gen 5](lenovo/thinkpad/p14s/intel/gen5) | `` | `lenovo-thinkpad-p14s-intel-gen5`| | [Lenovo ThinkPad P16s AMD Gen 1](lenovo/thinkpad/p16s/amd/gen1) | `` | `lenovo-thinkpad-p16s-amd-gen1` | | [Lenovo ThinkPad P16s AMD Gen 2](lenovo/thinkpad/p16s/amd/gen2) | `` | `lenovo-thinkpad-p16s-amd-gen2` | +| [Lenovo ThinkPad P16s AMD Gen 4](lenovo/thinkpad/p16s/amd/gen4) | `` | `lenovo-thinkpad-p16s-amd-gen4` | | [Lenovo ThinkPad P16s Intel Gen 2](lenovo/thinkpad/p16s/intel/gen2) | `` | `lenovo-thinkpad-p16s-intel-gen2`| | [Lenovo ThinkPad P1](lenovo/thinkpad/p1) | `` | `lenovo-thinkpad-p1` | | [Lenovo ThinkPad P43s](lenovo/thinkpad/p43s) | `` | `lenovo-thinkpad-p43s` | @@ -287,6 +293,7 @@ See code for all available configurations. | [Lenovo ThinkPad T14 AMD Gen 4](lenovo/thinkpad/t14/amd/gen4) | `` | `lenovo-thinkpad-t14-amd-gen4` | | [Lenovo ThinkPad T14 AMD Gen 5](lenovo/thinkpad/t14/amd/gen5) | `` | `lenovo-thinkpad-t14-amd-gen5` | | [Lenovo ThinkPad T14](lenovo/thinkpad/t14) | `` | `lenovo-thinkpad-t14` | +| [Lenovo ThinkPad T14 Intel Gen 6](lenovo/thinkpad/t14/intel/gen6) | `` | `lenovo-thinkpad-t14-intel-gen6` | | [Lenovo ThinkPad T14s AMD Gen 1](lenovo/thinkpad/t14s/amd/gen1) | `` | `lenovo-thinkpad-t14s-amd-gen1` | | [Lenovo ThinkPad T14s AMD Gen 4](lenovo/thinkpad/t14s/amd/gen4) | `` | `lenovo-thinkpad-t14s-amd-gen4` | | [Lenovo ThinkPad T14s](lenovo/thinkpad/t14s) | `` | `lenovo-thinkpad-t14s` | @@ -363,6 +370,7 @@ See code for all available configurations. | [Microsoft Surface Pro 9](microsoft/surface-pro/9) | `` | `microsoft-surface-pro-9` | | [Morefine M600](morefine/m600) | `` | `morefine-m600` | | [Minisforum V3](minisforum/v3) | `` | `minisforum-v3` | +| [MECHREVO Yilong15Pro](mechrevo/GM5HG0A) | `` | `mechrevo-gm5hg0a` | | [NXP iMX8 MPlus Evaluation Kit](nxp/imx8mp-evk) | `` | `nxp-imx8mp-evk` | | [NXP iMX8 MQuad Evaluation Kit](nxp/imx8mq-evk) | `` | `nxp-imx8mq-evk` | | [Hardkernel Odroid HC4](hardkernel/odroid-hc4/default.nix) | `` | `hardkernel-odroid-hc4` | diff --git a/apple/default.nix b/apple/default.nix index 5663cfeb..8ba93fdf 100644 --- a/apple/default.nix +++ b/apple/default.nix @@ -1,10 +1,6 @@ { config, lib, ... }: { - boot.kernelParams = [ - "hid_apple.iso_layout=0" - ]; - hardware.facetimehd.enable = lib.mkDefault (config.nixpkgs.config.allowUnfree or false); services.mbpfan.enable = lib.mkDefault true; diff --git a/apple/macbook-pro/11-4/README.md b/apple/macbook-pro/11-4/README.md new file mode 100644 index 00000000..dc0a17c8 --- /dev/null +++ b/apple/macbook-pro/11-4/README.md @@ -0,0 +1,42 @@ +# Apple MacBookPro11,4 + +[Product page](https://support.apple.com/en-us/111955) + + +## Tested Hardware +```console +foo@bar:~$ lspci -nn +00:00.0 Host bridge [0600]: Intel Corporation Crystal Well DRAM Controller [8086:0d04] (rev 08) +00:01.0 PCI bridge [0604]: Intel Corporation Crystal Well PCI Express x16 Controller [8086:0d01] (rev 08) +00:01.1 PCI bridge [0604]: Intel Corporation Crystal Well PCI Express x8 Controller [8086:0d05] (rev 08) +00:02.0 VGA compatible controller [0300]: Intel Corporation Crystal Well Integrated Graphics Controller [8086:0d26] (rev 08) +00:03.0 Audio device [0403]: Intel Corporation Crystal Well HD Audio Controller [8086:0d0c] (rev 08) +00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI [8086:8c31] (rev 05) +00:16.0 Communication controller [0780]: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 [8086:8c3a] (rev 04) +00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 05) +00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 [8086:8c10] (rev d5) +00:1c.2 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 [8086:8c14] (rev d5) +00:1c.3 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 [8086:8c16] (rev d5) +00:1f.0 ISA bridge [0601]: Intel Corporation HM87 Express LPC Controller [8086:8c4b] (rev 05) +00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller [8086:8c22] (rev 05) +00:1f.6 Signal processing controller [1180]: Intel Corporation 8 Series Chipset Family Thermal Management Controller [8086:8c24] (rev 05) +01:00.0 SATA controller [0106]: Samsung Electronics Co Ltd S4LN058A01[SSUBX] AHCI SSD Controller (Apple slot) [144d:a801] (rev 01) +03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01) +04:00.0 Multimedia controller [0480]: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570] +05:00.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d] +06:00.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d] +06:03.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d] +06:04.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d] +06:05.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d] +06:06.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d] +07:00.0 System peripheral [0880]: Intel Corporation DSL5520 Thunderbolt 2 NHI [Falcon Ridge 4C 2013] [8086:156c] +``` + +## Tested Nix Configuration + - system: `"x86_64-linux"` + - host os: `Linux 6.12.36, NixOS, 25.11 (Xantusia), 25.11.20250708.9807714` + - multi-user?: `yes` + - sandbox: `yes` + - version: `nix-env (Nix) 2.28.4` + - channels(root): `"nixos"` + - nixpkgs: `/nix/store/bgl6ldj5ihbwcq8p42z3a0qzgqafgk2b-source` diff --git a/apple/macbook-pro/11-4/default.nix b/apple/macbook-pro/11-4/default.nix new file mode 100644 index 00000000..611ac0b4 --- /dev/null +++ b/apple/macbook-pro/11-4/default.nix @@ -0,0 +1,17 @@ +{ + lib, + config, + pkgs, + modulesPath, + ... +}: +{ + imports = [ + ../. + ../../../common/cpu/intel/haswell + ../../../common/pc/ssd + "${modulesPath}/hardware/network/broadcom-43xx.nix" + ]; + + hardware.graphics.enable = lib.mkDefault true; +} diff --git a/apple/macbook-pro/12-1/README.md b/apple/macbook-pro/12-1/README.md index 6618dc9e..84055a95 100644 --- a/apple/macbook-pro/12-1/README.md +++ b/apple/macbook-pro/12-1/README.md @@ -9,7 +9,6 @@ This means it might be required to restart your wifi deamon i.e. wpa_supplicant: powerManagement.powerUpCommands = '' ${pkgs.systemd}/bin/systemctl restart wpa_supplicant.service ''; -}; ``` You can apply this to your network management software of choice. diff --git a/apple/macbook-pro/8-1/README.md b/apple/macbook-pro/8-1/README.md index 723df2e8..57d897fc 100644 --- a/apple/macbook-pro/8-1/README.md +++ b/apple/macbook-pro/8-1/README.md @@ -12,7 +12,6 @@ "b43-firmware" ]; } - ``` ### For all packages diff --git a/apple/t2/pkgs/linux-t2/latest.json b/apple/t2/pkgs/linux-t2/latest.json index 629d74d2..09dc89b3 100644 --- a/apple/t2/pkgs/linux-t2/latest.json +++ b/apple/t2/pkgs/linux-t2/latest.json @@ -1,5 +1,5 @@ { - "base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/8ec11f3aaa314d25e18842851a2124c0031e2e3f/", + "base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/6b41c3fd65913e0fa3592ad16ff4a3a5b01efc7a/", "patches": [ { "name": "1001-Add-apple-bce-driver.patch", @@ -37,29 +37,9 @@ "name": "1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch", "hash": "sha256-dIzEOj89D2rIEc2/mjq3TkIfI3ZHzu0VRDQQOzp+Snc=" }, - { - "name": "1013-lib-vsprintf-Add-support-for-generic-FourCCs-by-exte.patch", - "hash": "sha256-g8M3j1ZPND10/LtPD/txaSoJGV9Lp+g5bgn+vQc56p4=" - }, - { - "name": "1014-printf-add-tests-for-generic-FourCCs.patch", - "hash": "sha256-5Z4cFBMAY695OEU/CxiGQkUz68zmKdxssD+yp1DCYgs=" - }, - { - "name": "1015-drm-appletbdrm-use-p4cl-instead-of-p4cc.patch", - "hash": "sha256-rZej0ZbpPv+8NROuYnf4Jpu9scCsmbKWyz7yf5A3G3s=" - }, - { - "name": "1016-vsprintf-Use-p4chR-instead-of-p4cn-for-reading-data-.patch", - "hash": "sha256-/Ork2CmYk6SG213Owk+nGsw7KTEVDLRzQTeWcKrPZGw=" - }, - { - "name": "1017-checkpatch-remove-p4cn.patch", - "hash": "sha256-lnMnjnMiR9WSNf/XYsiOwFdC9xKv8zSluWiR584xFPU=" - }, { "name": "2008-i915-4-lane-quirk-for-mbp15-1.patch", - "hash": "sha256-Ui9tK4IGSWfEscmD92emX/NfulO0m8zwLc9ivIClCFQ=" + "hash": "sha256-PjMVt4u505PXnKFpojov0Uwhj0KxZas1E4NYJGI6lQ4=" }, { "name": "2009-apple-gmux-allow-switching-to-igpu-at-probe.patch", @@ -103,7 +83,7 @@ }, { "name": "4001-asahi-trackpad.patch", - "hash": "sha256-QM/FtDft4N4imJBuEHg6cH3e8vEyMPLt0alDhugLPy8=" + "hash": "sha256-nOpQ3t+QQXco6p7C03fM5EZ3ZfnzwC6UCFwHQd1EnGE=" }, { "name": "4002-HID-quirks-remove-T2-devices-from-hid_mouse_ignore_l.patch", @@ -115,7 +95,7 @@ }, { "name": "4004-HID-magicmouse-Add-support-for-trackpads-found-on-T2.patch", - "hash": "sha256-HcPX7gY3hnlwM/tY06pbtXnch04AqwHgC596E8ZqGY8=" + "hash": "sha256-dNrpDlIE9SaQUOntVQHMOyj7T/dsuRemN56yskKWue0=" }, { "name": "4005-HID-apple-Add-necessary-IDs-and-support-for-replacem.patch", @@ -123,15 +103,15 @@ }, { "name": "4006-HID-magicmouse-Add-MacBookPro15-1-replacement-trackp.patch", - "hash": "sha256-uAlT/4ADwYyKvbuPQaGwqCjZ2/myruC63etVV6cfFLk=" + "hash": "sha256-mMqHhxig+Z9eVPaa1qfcNVCRX16B6/KuEd1KnSZMLLk=" }, { "name": "7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch", - "hash": "sha256-O6RHFxmKZn7aCq1D+r5z2T3jLt0r5+01EABD9rs0E5M=" + "hash": "sha256-/EKN7JsAxcpAgfJFtPp2NLYaGqQ0kl8wjJEXifSzJpY=" }, { "name": "8001-Add-APFS-driver.patch", - "hash": "sha256-io17Kk6FDscDoDshddK9TqSPuXVFTzjvRUwOGTl5cjM=" + "hash": "sha256-uR5hg75SFFWzfrKyU5UnzPL4U7LkjqGs44rkxM7ur8o=" }, { "name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch", diff --git a/apple/t2/pkgs/linux-t2/latest.nix b/apple/t2/pkgs/linux-t2/latest.nix index 747db71e..bba508ba 100644 --- a/apple/t2/pkgs/linux-t2/latest.nix +++ b/apple/t2/pkgs/linux-t2/latest.nix @@ -1,6 +1,6 @@ -{ callPackage, linux_6_15, ... }@args: +{ callPackage, linux_6_16, ... }@args: callPackage ./generic.nix args { - kernel = linux_6_15; + kernel = linux_6_16; patchesFile = ./latest.json; } diff --git a/apple/t2/pkgs/linux-t2/stable.json b/apple/t2/pkgs/linux-t2/stable.json index 325f42e4..f70de9dc 100644 --- a/apple/t2/pkgs/linux-t2/stable.json +++ b/apple/t2/pkgs/linux-t2/stable.json @@ -1,5 +1,5 @@ { - "base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/e08a76e1f1234885b9b68be6c843bf91833e8b0a/", + "base_url": "https://raw.githubusercontent.com/t2linux/linux-t2-patches/5eaf1261d069bbc67aba7fe2737a5fe981e05a9e/", "patches": [ { "name": "1001-Add-apple-bce-driver.patch", @@ -49,10 +49,6 @@ "name": "1013-lib-vsprintf-Add-support-for-generic-FourCCs-by-exte.patch", "hash": "sha256-h3gxaKtvdm/GSd+AP1sPC9avWHOsceUxTmoua/3rIf4=" }, - { - "name": "1014-drm-format-helper-Add-conversion-from-XRGB8888-to-BG.patch", - "hash": "sha256-Ky19+cCiYDaHBh2o5IhZO8J1ExDT7o8K9cgPz+AL8Cg=" - }, { "name": "1015-drm-tiny-add-driver-for-Apple-Touch-Bars-in-x86-Macs.patch", "hash": "sha256-tDjK/VipVQbuNOURW38gssqeRLy3s8I+DVq0+4zGnHs=" @@ -103,7 +99,7 @@ }, { "name": "4001-asahi-trackpad.patch", - "hash": "sha256-NOuGgUxDQEfFPlij/EnhWmgqeG3/l+j+r2T1YJG7raY=" + "hash": "sha256-kfAYVovukZLD5ocHQxhoHJSa9c5XAJ1GhH1RlzGkS+k=" }, { "name": "4002-HID-quirks-remove-T2-devices-from-hid_mouse_ignore_l.patch", @@ -131,7 +127,7 @@ }, { "name": "8001-Add-APFS-driver.patch", - "hash": "sha256-O3RNtpeZQENPEfyYi/0ZTLhAWBAw6pmxMS30NUxOTdk=" + "hash": "sha256-QpIPsMjWNPOkw6rSKn7rW0Fmx9HUwJaiGy3pZeT5Fd0=" }, { "name": "8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch", diff --git a/asus/battery.nix b/asus/battery.nix index 4bdf6b64..4639baa4 100644 --- a/asus/battery.nix +++ b/asus/battery.nix @@ -6,7 +6,8 @@ }: let p = pkgs.writeScriptBin "charge-upto" '' - echo ''${0:-100} > /sys/class/power_supply/BAT?/charge_control_end_threshold + #!${pkgs.bash}/bin/bash + echo ''${1:-100} > /sys/class/power_supply/BAT?/charge_control_end_threshold ''; cfg = config.hardware.asus.battery; in diff --git a/asus/fa507nv/default.nix b/asus/fa507nv/default.nix index 01fafbb2..43ff7133 100644 --- a/asus/fa507nv/default.nix +++ b/asus/fa507nv/default.nix @@ -39,6 +39,7 @@ }; hardware.nvidia = { + powerManagement.enable = lib.mkDefault true; modesetting.enable = lib.mkDefault true; open = lib.mkDefault false; nvidiaSettings = lib.mkDefault true; diff --git a/asus/rog-strix/g533q/default.nix b/asus/rog-strix/g533q/default.nix new file mode 100644 index 00000000..be3acbfa --- /dev/null +++ b/asus/rog-strix/g533q/default.nix @@ -0,0 +1,18 @@ +{ ... }: + +{ + imports = [ + ../../../common/cpu/amd + ../../../common/cpu/amd/pstate.nix + ../../../common/gpu/nvidia/prime.nix + ../../../common/gpu/nvidia/ampere + ../../../common/pc/laptop + ../../../common/pc/ssd + ../../battery.nix + ]; + + hardware.nvidia.prime = { + amdgpuBusId = "PCI:6:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; +} diff --git a/dell/precision/7520/README.md b/dell/precision/7520/README.md index b5c0946c..2c58d84e 100644 --- a/dell/precision/7520/README.md +++ b/dell/precision/7520/README.md @@ -61,7 +61,10 @@ Then use `fwupdmgr` to perform updates ## Nvidia Driver -The choice of the `legacy_390` driver is based on looking for PCI Device ID `10de:1436`. On the [nvidia driver site](https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/) which should indicate the -driver, the exact device isn't listed. However, we can see -[here](https://linux-hardware.org/?id=pci:10de-1436-103c-1909) has nvidia driver "375.82 and newer" listed. Since the -newest nvidia drivers don't support legacy devices, the closest version newer than 375.82 was chosen. +The choice of the `stable` driver is based on looking at the family of the card on [nouveau wiki's code names page](https://nouveau.freedesktop.org/CodeNames.html) obtained with: + +```bash +$ lspci -k -d ::03xx +``` + +Both `Quadro M2200 Mobile (GM206GLM)` and `Quadro M1200 Mobile (GM107GLM)` belong to the **Maxwell** family which is still supported by the stable driver. diff --git a/dell/precision/7520/default.nix b/dell/precision/7520/default.nix index 4742afb3..8ddc312e 100644 --- a/dell/precision/7520/default.nix +++ b/dell/precision/7520/default.nix @@ -32,7 +32,7 @@ enable32Bit = lib.mkDefault true; }; nvidia = { - package = config.boot.kernelPackages.nvidiaPackages.legacy_390; + package = config.boot.kernelPackages.nvidiaPackages.stable; nvidiaSettings = lib.mkDefault true; modesetting.enable = lib.mkDefault true; open = lib.mkDefault false; diff --git a/flake.lock b/flake.lock index 8f2f2e35..5999137c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,26 +1,6 @@ { "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1751290770, - "narHash": "sha256-u4s8yKAqTzPGY3vTcDyAIet11uXaNCM//93/0O0NlbA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0620a50e9a847851bf802c59a4202552ed79b821", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } + "root": {} }, "root": "root", "version": 7 diff --git a/flake.nix b/flake.nix index a0ac1fb8..729729dc 100644 --- a/flake.nix +++ b/flake.nix @@ -26,6 +26,7 @@ apple-macbook-pro-8-1 = import ./apple/macbook-pro/8-1; apple-macbook-pro-10-1 = import ./apple/macbook-pro/10-1; apple-macbook-pro-11-1 = import ./apple/macbook-pro/11-1; + apple-macbook-pro-11-4 = import ./apple/macbook-pro/11-4; apple-macbook-pro-11-5 = import ./apple/macbook-pro/11-5; apple-macbook-pro-12-1 = import ./apple/macbook-pro/12-1; apple-macbook-pro-14-1 = import ./apple/macbook-pro/14-1; @@ -43,6 +44,7 @@ asus-pro-ws-x570-ace = import ./asus/pro-ws-x570-ace; asus-rog-strix-g513im = import ./asus/rog-strix/g513im; asus-rog-strix-g533zw = import ./asus/rog-strix/g533zw; + asus-rog-strix-g533q = import ./asus/rog-strix/g533q; asus-rog-strix-g713ie = import ./asus/rog-strix/g713ie; asus-rog-strix-g733qs = import ./asus/rog-strix/g733qs; asus-rog-strix-x570e = import ./asus/rog-strix/x570e; @@ -65,6 +67,7 @@ dell-e7240 = deprecated "1326" "dell-e7240" (import ./dell/e7240); dell-g3-3779 = import ./dell/g3/3779; dell-g3-3579 = import ./dell/g3/3579; + dell-inspiron-3442 = import ./dell/inspiron/3442; dell-inspiron-14-5420 = import ./dell/inspiron/14-5420; dell-inspiron-5509 = import ./dell/inspiron/5509; dell-inspiron-5515 = import ./dell/inspiron/5515; @@ -132,6 +135,7 @@ framework-13-7040-amd = import ./framework/13-inch/7040-amd; framework-amd-ai-300-series = import ./framework/13-inch/amd-ai-300-series; framework-16-7040-amd = import ./framework/16-inch/7040-amd; + framework-desktop-amd-ai-max-300-series = import ./framework/desktop/amd-ai-max-300-series; friendlyarm-nanopc-t4 = import ./friendlyarm/nanopc-t4; friendlyarm-nanopi-r5s = import ./friendlyarm/nanopi-r5s; focus-m2-gen1 = import ./focus/m2/gen1; @@ -155,6 +159,7 @@ hp-laptop-14s-dq2024nf = import ./hp/laptop/14s-dq2024nf; huawei-machc-wa = import ./huawei/machc-wa; hp-notebook-14-df0023 = import ./hp/notebook/14-df0023; + intel-nuc-5i5ryb = import ./intel/nuc/5i5ryb; intel-nuc-8i7beh = import ./intel/nuc/8i7beh; lenovo-ideacentre-k330 = import ./lenovo/ideacentre/k330; lenovo-ideapad-14imh9 = import ./lenovo/ideapad/14imh9; @@ -163,11 +168,14 @@ lenovo-ideapad-15ach6 = import ./lenovo/ideapad/15ach6; lenovo-ideapad-16ach6 = import ./lenovo/ideapad/16ach6; lenovo-ideapad-16ahp9 = import ./lenovo/ideapad/16ahp9; + lenovo-ideapad-s5-16iah8 = import ./lenovo/ideapad/16iah8; lenovo-ideapad-z510 = import ./lenovo/ideapad/z510; lenovo-ideapad-slim-5 = import ./lenovo/ideapad/slim-5; lenovo-ideapad-s145-15api = import ./lenovo/ideapad/s145-15api; lenovo-legion-15ach6 = import ./lenovo/legion/15ach6; lenovo-legion-15ach6h = import ./lenovo/legion/15ach6h; + lenovo-legion-15ach6h-hybrid = import ./lenovo/legion/15ach6h/hybrid; + lenovo-legion-15ach6h-nvidia = import ./lenovo/legion/15ach6h/nvidia; lenovo-legion-15arh05h = import ./lenovo/legion/15arh05h; lenovo-legion-16ach6h = import ./lenovo/legion/16ach6h; lenovo-legion-16ach6h-hybrid = import ./lenovo/legion/16ach6h/hybrid; @@ -208,6 +216,7 @@ lenovo-thinkpad-p14s-intel-gen5 = import ./lenovo/thinkpad/p14s/intel/gen5; lenovo-thinkpad-p16s-amd-gen1 = import ./lenovo/thinkpad/p16s/amd/gen1; lenovo-thinkpad-p16s-amd-gen2 = import ./lenovo/thinkpad/p16s/amd/gen2; + lenovo-thinkpad-p16s-amd-gen4 = import ./lenovo/thinkpad/p16s/amd/gen4; lenovo-thinkpad-p16s-intel-gen2 = import ./lenovo/thinkpad/p16s/intel/gen2; lenovo-thinkpad-p43s = import ./lenovo/thinkpad/p43s; lenovo-thinkpad-p50 = import ./lenovo/thinkpad/p50; @@ -220,6 +229,7 @@ lenovo-thinkpad-t14-amd-gen3 = import ./lenovo/thinkpad/t14/amd/gen3; lenovo-thinkpad-t14-amd-gen4 = import ./lenovo/thinkpad/t14/amd/gen4; lenovo-thinkpad-t14-amd-gen5 = import ./lenovo/thinkpad/t14/amd/gen5; + lenovo-thinkpad-t14-intel-gen6 = import ./lenovo/thinkpad/t14/intel/gen6; lenovo-thinkpad-t14s = import ./lenovo/thinkpad/t14s; lenovo-thinkpad-t14s-amd-gen1 = import ./lenovo/thinkpad/t14s/amd/gen1; lenovo-thinkpad-t14s-amd-gen4 = import ./lenovo/thinkpad/t14s/amd/gen4; @@ -287,6 +297,7 @@ lenovo-yoga-7-slim-gen8 = import ./lenovo/yoga/7/slim/gen8; letsnote-cf-lx4 = import ./panasonic/letsnote/cf-lx4; malibal-aon-s1-intel = import ./malibal/aon/s1; + mechrevo-gm5hg0a = import ./mechrevo/GM5HG0A; microchip-icicle-kit = import ./microchip/icicle-kit; microsoft-surface-go = import ./microsoft/surface/surface-go; microsoft-surface-pro-intel = import ./microsoft/surface/surface-pro-intel; diff --git a/framework/12-inch/13th-gen-intel/README.md b/framework/12-inch/13th-gen-intel/README.md index 6d35825f..4d9ecdb5 100644 --- a/framework/12-inch/13th-gen-intel/README.md +++ b/framework/12-inch/13th-gen-intel/README.md @@ -2,16 +2,13 @@ ## Updating Firmware -First put enable `fwupd` +Everything is updateable through fwupd, so it's enabled by default. -```nix -services.fwupd.enable = true; -``` - -Then run +To get the latest firmware, run: ```sh - $ fwupdmgr update +$ fwupdmgr refresh +$ fwupdmgr update ``` - [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop12.RPL.BIOS.firmware) diff --git a/framework/12-inch/13th-gen-intel/default.nix b/framework/12-inch/13th-gen-intel/default.nix index 6431338a..7a3e1de4 100644 --- a/framework/12-inch/13th-gen-intel/default.nix +++ b/framework/12-inch/13th-gen-intel/default.nix @@ -4,4 +4,10 @@ ../common ../../../common/cpu/intel ]; + + # If this module isn't built into the kernel, we need to make sure it loads + # before soc_button_array. Otherwise the tablet mode gpio doesn't work. + # If correctly loaded, dmesg should show + # input: gpio-keys as /devices/platform/INT33D3:00 + boot.initrd.kernelModules = [ "pinctrl_tigerlake" ]; } diff --git a/framework/12-inch/common/default.nix b/framework/12-inch/common/default.nix index 88195ea6..5e8aa81f 100644 --- a/framework/12-inch/common/default.nix +++ b/framework/12-inch/common/default.nix @@ -16,4 +16,7 @@ # Needed for desktop environments to detect display orientation hardware.sensor.iio.enable = lib.mkDefault true; + + # Everything is updateable through fwupd + services.fwupd.enable = true; } diff --git a/framework/13-inch/7040-amd/README.md b/framework/13-inch/7040-amd/README.md index abaef603..76b0db1a 100644 --- a/framework/13-inch/7040-amd/README.md +++ b/framework/13-inch/7040-amd/README.md @@ -2,16 +2,13 @@ ## Updating Firmware -First put enable `fwupd` +Everything is updateable through fwupd, so it's enabled by default. -```nix -services.fwupd.enable = true; -``` - -Then run +To get the latest firmware, run: ```sh - $ fwupdmgr update +$ fwupdmgr refresh +$ fwupdmgr update ``` - [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.Ryzen7040.BIOS.firmware) diff --git a/framework/13-inch/7040-amd/default.nix b/framework/13-inch/7040-amd/default.nix index 2cd21f60..65b71749 100644 --- a/framework/13-inch/7040-amd/default.nix +++ b/framework/13-inch/7040-amd/default.nix @@ -14,7 +14,6 @@ in ../common/amd.nix ../../../common/cpu/amd/raphael/igpu.nix ]; - options = { hardware.framework.amd-7040.preventWakeOnAC = lib.mkOption { type = lib.types.bool; @@ -30,6 +29,8 @@ in }; config = { + services.fwupd.enable = true; + # Workaround applied upstream in Linux >=6.7 (on BIOS 03.03) # https://github.com/torvalds/linux/commit/a55bdad5dfd1efd4ed9ffe518897a21ca8e4e193 services.udev.extraRules = diff --git a/framework/13-inch/amd-ai-300-series/README.md b/framework/13-inch/amd-ai-300-series/README.md index 8f3b7a42..a01b177b 100644 --- a/framework/13-inch/amd-ai-300-series/README.md +++ b/framework/13-inch/amd-ai-300-series/README.md @@ -2,14 +2,13 @@ ## Updating Firmware -First put enable `fwupd` +Everything is updateable through fwupd, so it's enabled by default. -```nix -services.fwupd.enable = true; -``` - -Then run +To get the latest firmware, run: ```sh - $ fwupdmgr update +$ fwupdmgr refresh +$ fwupdmgr update ``` + +- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.RyzenAI300.BIOS.firmware) diff --git a/framework/13-inch/amd-ai-300-series/default.nix b/framework/13-inch/amd-ai-300-series/default.nix index 5eecb38b..c0a479a8 100644 --- a/framework/13-inch/amd-ai-300-series/default.nix +++ b/framework/13-inch/amd-ai-300-series/default.nix @@ -10,6 +10,17 @@ ../common ../common/amd.nix ]; - config.hardware.framework.laptop13.audioEnhancement.rawDeviceName = - lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; + + config = { + # Everything is updateable through fwupd + services.fwupd.enable = true; + + hardware.framework.laptop13.audioEnhancement.rawDeviceName = + lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; + + # suspend works with 6.15 + boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.15") ( + lib.mkDefault pkgs.linuxPackages_latest + ); + }; } diff --git a/framework/13-inch/intel-core-ultra-series1/README.md b/framework/13-inch/intel-core-ultra-series1/README.md index 8f3b7a42..7f0902e4 100644 --- a/framework/13-inch/intel-core-ultra-series1/README.md +++ b/framework/13-inch/intel-core-ultra-series1/README.md @@ -2,14 +2,13 @@ ## Updating Firmware -First put enable `fwupd` +Everything is updateable through fwupd, so it's enabled by default. -```nix -services.fwupd.enable = true; -``` - -Then run +To get the latest firmware, run: ```sh - $ fwupdmgr update +$ fwupdmgr refresh +$ fwupdmgr update ``` + +- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop.MTL.BIOS.firmware) diff --git a/framework/13-inch/intel-core-ultra-series1/default.nix b/framework/13-inch/intel-core-ultra-series1/default.nix index 4851d54f..7553e687 100644 --- a/framework/13-inch/intel-core-ultra-series1/default.nix +++ b/framework/13-inch/intel-core-ultra-series1/default.nix @@ -11,6 +11,9 @@ ../common/intel.nix ]; + # Everything is updateable through fwupd + services.fwupd.enable = true; + # Need at least 6.9 to make suspend properly # Specifically this patch: https://github.com/torvalds/linux/commit/073237281a508ac80ec025872ad7de50cfb5a28a boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.9") ( @@ -41,4 +44,6 @@ ''For Intel NPU support, set the option: hardware.enableRedistributableFirmware = true;'' ]; + hardware.framework.laptop13.audioEnhancement.rawDeviceName = + lib.mkDefault "alsa_output.pci-0000_00_1f.3.analog-stereo"; } diff --git a/framework/16-inch/7040-amd/README.md b/framework/16-inch/7040-amd/README.md index 0ce3dbe8..0e994c6e 100644 --- a/framework/16-inch/7040-amd/README.md +++ b/framework/16-inch/7040-amd/README.md @@ -1,4 +1,14 @@ # [Framework Laptop 16](https://frame.work/) ## Updating Firmware -The Framework Laptop 16 uses LVFS, so it can be updated via fwupd; see https://wiki.nixos.org/wiki/Fwupd for details + +Everything is updateable through fwupd, so it's enabled by default. + +To get the latest firmware, run: + +```sh +$ fwupdmgr refresh +$ fwupdmgr update +``` + +- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Laptop16.Ryzen7040.BIOS.firmware) diff --git a/framework/16-inch/7040-amd/default.nix b/framework/16-inch/7040-amd/default.nix index 70275e69..b3bd0333 100644 --- a/framework/16-inch/7040-amd/default.nix +++ b/framework/16-inch/7040-amd/default.nix @@ -12,4 +12,6 @@ ../../../common/cpu/amd/raphael/igpu.nix ]; + # Everything is updateable through fwupd + services.fwupd.enable = true; } diff --git a/framework/16-inch/common/default.nix b/framework/16-inch/common/default.nix index 8443e401..59f736d4 100644 --- a/framework/16-inch/common/default.nix +++ b/framework/16-inch/common/default.nix @@ -8,12 +8,6 @@ ../../framework-tool.nix ]; - # Fix TRRS headphones missing a mic - # https://community.frame.work/t/headset-microphone-on-linux/12387/3 - boot.extraModprobeConfig = lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "6.6.8") '' - options snd-hda-intel model=dell-headset-multi - ''; - # For fingerprint support services.fprintd.enable = lib.mkDefault true; @@ -50,4 +44,7 @@ MatchDMIModalias=dmi:*svnFramework:pnLaptop16* AttrKeyboardIntegration=internal ''; + + # Everything is updateable through fwupd + services.fwupd.enable = true; } diff --git a/framework/desktop/amd-ai-max-300-series/README.md b/framework/desktop/amd-ai-max-300-series/README.md new file mode 100644 index 00000000..e9c274e7 --- /dev/null +++ b/framework/desktop/amd-ai-max-300-series/README.md @@ -0,0 +1,23 @@ +# [Framework Desktop](https://frame.work/desktop) + +## Kernel version + +The recommended version is 6.15 or newer, it has good GPU and also EC firmware support (for sensors and ARGB). +The lowest recommended version is 6.14. It has good GPU support already. +The absolute lowest that runs okay on headless systems is 6.11, but the GPU is not fully supported yet. + +## Updating Firmware + +First put enable `fwupd` + +```nix +services.fwupd.enable = true; +``` + +Then run + +```sh + $ fwupdmgr update +``` + +- [Latest Update](https://fwupd.org/lvfs/devices/work.frame.Desktop.RyzenAIMax300.BIOS.firmware) diff --git a/framework/desktop/amd-ai-max-300-series/default.nix b/framework/desktop/amd-ai-max-300-series/default.nix new file mode 100644 index 00000000..60fc6216 --- /dev/null +++ b/framework/desktop/amd-ai-max-300-series/default.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + imports = [ + ../../../common/cpu/amd + ../../../common/cpu/amd/pstate.nix + ../../../common/gpu/amd + ../../../common/pc/ssd + ../../framework-tool.nix + ]; + + # 6.14 and above have good GPU support + boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.14") ( + lib.mkDefault pkgs.linuxPackages_latest + ); +} diff --git a/intel/nuc/5i5ryb/default.nix b/intel/nuc/5i5ryb/default.nix new file mode 100644 index 00000000..7ff80dd2 --- /dev/null +++ b/intel/nuc/5i5ryb/default.nix @@ -0,0 +1,11 @@ +{ lib, ... }: + +{ + imports = [ + ../../../common/cpu/intel/broadwell + ../../../common/pc + ../../../common/pc/ssd + ]; + + services.thermald.enable = lib.mkDefault true; +} diff --git a/lenovo/ideapad/14imh9/default.nix b/lenovo/ideapad/14imh9/default.nix index f2bb0f52..c8bb71c9 100644 --- a/lenovo/ideapad/14imh9/default.nix +++ b/lenovo/ideapad/14imh9/default.nix @@ -26,6 +26,10 @@ # See https://wiki.archlinux.org/title/Dell_XPS_16_(9640)#Random_freezes "iommu.strict=1" "iommu.passthrough=1" + + # Workaround: i915 0000:00:02.0: [drm] *ERROR* [CRTC:82:pipe A] flip_done timed out + # See https://github.com/pop-os/pop/issues/3130 + "i915.dmc_firmware_path=\"\"" ]; }; diff --git a/lenovo/thinkpad/p16s/amd/gen4/default.nix b/lenovo/thinkpad/p16s/amd/gen4/default.nix new file mode 100644 index 00000000..665d3d41 --- /dev/null +++ b/lenovo/thinkpad/p16s/amd/gen4/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ../. + ]; +} diff --git a/lenovo/thinkpad/t14/intel/default.nix b/lenovo/thinkpad/t14/intel/default.nix new file mode 100644 index 00000000..330ecd3e --- /dev/null +++ b/lenovo/thinkpad/t14/intel/default.nix @@ -0,0 +1,9 @@ +{ lib, pkgs, ... }: + +{ + imports = [ + ../. + ../../../../common/cpu/intel + ../../../../common/gpu/intel + ]; +} diff --git a/lenovo/thinkpad/t14/intel/gen6/default.nix b/lenovo/thinkpad/t14/intel/gen6/default.nix new file mode 100644 index 00000000..e6e6a5f4 --- /dev/null +++ b/lenovo/thinkpad/t14/intel/gen6/default.nix @@ -0,0 +1,60 @@ +{ + lib, + pkgs, + config, + ... +}: + +{ + imports = [ + ../../. + ../../../../../common/cpu/intel/lunar-lake + ]; + + # T14 Gen 6 uses Intel Core Ultra processors (Lunar Lake architecture) + # with integrated Intel Arc graphics + # The lunar-lake module already includes appropriate GPU support + + # Ensure modern kernel for full Lunar Lake support + boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.8") pkgs.linuxPackages_latest; + + # TODO: Looking for feedback on these kernel parameters for T14 Gen 6 + # Force use of the thinkpad_acpi driver for backlight control + # This allows the backlight save/load systemd service to work + boot.kernelParams = [ + "acpi_backlight=native" + # TODO: Looking for feedback - touchpad fix needed for proper click registration on some T14 models + "psmouse.synaptics_intertouch=0" + ]; + + # TODO: Looking for feedback - modern Intel CPUs don't typically need throttled service + # which can interfere with newer power management on Lunar Lake + services.throttled.enable = lib.mkDefault false; + + # Enable fingerprint reader support + # NOTE: PAM configuration should be done in host config to avoid login issues + # See: https://github.com/NixOS/nixpkgs/issues/171136 + services.fprintd.enable = lib.mkDefault true; + + # For complete fingerprint authentication in GNOME, add the following to your host config: + # + # security.pam.services = { + # # Enable fingerprint authentication for sudo + # sudo.fprintAuth = lib.mkDefault true; + # + # # Enable fingerprint authentication for su + # su.fprintAuth = lib.mkDefault true; + # + # # Enable fingerprint authentication for screen unlock + # xscreensaver.fprintAuth = lib.mkDefault true; + # + # # WARNING: login.fprintAuth may break GDM password authentication + # # Only enable if you understand the risks: + # # login.fprintAuth = lib.mkDefault true; + # }; + # + # After configuration: + # 1. Rebuild your system + # 2. Enroll fingerprint: sudo fprintd-enroll $USER + # 3. Test sudo and screen unlock with fingerprint +} diff --git a/lenovo/yoga/7/14ILL10/default.nix b/lenovo/yoga/7/14ILL10/default.nix index 9c9ca25e..6db6b47f 100644 --- a/lenovo/yoga/7/14ILL10/default.nix +++ b/lenovo/yoga/7/14ILL10/default.nix @@ -6,8 +6,8 @@ ../../../../common/pc/ssd ]; - # touchpad, wifi, and bluetooth do not work before 6.12 - config.boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.12") ( + # device will not boot in kernel versions older than 6.15 + config.boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.15") ( lib.mkDefault pkgs.linuxPackages_latest ); } diff --git a/mechrevo/GM5HG0A/default.nix b/mechrevo/GM5HG0A/default.nix new file mode 100644 index 00000000..6a9e2a9f --- /dev/null +++ b/mechrevo/GM5HG0A/default.nix @@ -0,0 +1,35 @@ +{ + lib, + pkgs, + config, + ... +}: +{ + imports = [ + ../../common/cpu/amd + ../../common/cpu/amd/pstate.nix + ../../common/cpu/amd/zenpower.nix + ../../common/cpu/amd/raphael/igpu.nix + ../../common/gpu/amd + ../../common/gpu/nvidia + ../../common/gpu/nvidia/ada-lovelace + ../../common/gpu/nvidia/prime.nix + ../../common/hidpi.nix + ../../common/pc/laptop + ../../common/pc/ssd + ]; + + # Resolve the issue of sleep mode being awakened by GPIO 6. + # https://nova.gal/blog/%E6%9C%BA%E6%A2%B0%E9%9D%A9%E5%91%BD%E7%BF%BC%E9%BE%99-15Pro-%E8%BF%81%E7%A7%BB-Linux-%E9%81%87%E5%88%B0%E7%9A%84%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98#%E6%97%A0%E6%B3%95%E4%BC%91%E7%9C%A0 + # https://lore.kernel.org/all/20221012221028.4817-1-mario.limonciello@amd.com/T/ + boot.kernelParams = [ "gpiolib_acpi.ignore_interrupt=AMDI0030:00@6" ]; + + hardware.nvidia = { + primeBatterySaverSpecialisation = lib.mkDefault true; + modesetting.enable = lib.mkDefault true; + prime = { + amdgpuBusId = "PCI:6:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; +} diff --git a/microsoft/surface/README.md b/microsoft/surface/README.md index 7fc5675c..3f99001c 100644 --- a/microsoft/surface/README.md +++ b/microsoft/surface/README.md @@ -103,6 +103,23 @@ with the `ath10k` QCA6174 Wifi device. This was fixed in Nov 2021: - https://github.com/linux-surface/linux-surface/issues/542#issuecomment-976995453 +## Troubleshooting IPU6 + +While the camera patches are applied in `common`, camera functionality is still WIP for several devices (see [https://github.com/linux-surface/linux-surface/wiki/Camera-Support](https://github.com/linux-surface/linux-surface/wiki/Camera-Support)). As a result they may break some userspace tools on unsupported devices, notably such as Wireplumber. An example fix for such userspace issues is shown below. +``` +services.pipewire.wireplumber.extraConfig = { + "50-surface-disable-libcamera.conf" = '' + monitor.libcamera = { enabled = false } + wireplumber.profiles = { + main = { + monitor.libcamera = disabled + hardware.video-capture = disabled + } + } + ''; +}; +``` + ### Background: With the older firmware, you would see messages like "Can't ping firmware". diff --git a/microsoft/surface/common/default.nix b/microsoft/surface/common/default.nix index a4defb61..1fe46fee 100644 --- a/microsoft/surface/common/default.nix +++ b/microsoft/surface/common/default.nix @@ -19,7 +19,7 @@ let if kernelVersion == "longterm" then "6.12.19" else if kernelVersion == "stable" then - "6.15.3" + "6.15.9" else abort "Invalid kernel version: ${kernelVersion}"; @@ -28,7 +28,7 @@ let if kernelVersion == "longterm" then "sha256-1zvwV77ARDSxadG2FkGTb30Ml865I6KB8y413U3MZTE=" else if kernelVersion == "stable" then - "sha256-ErUMiZJUONnNc4WgyvycQz5lYqxd8AohiJ/On1SNZbA=" + "sha256-6U86+FSSMC96gZRBRY+AvKCtmRLlpMg8aZ/zxjxSlX0=" else abort "Invalid kernel version: ${kernelVersion}"; diff --git a/microsoft/surface/common/kernel/6.12/patches.nix b/microsoft/surface/common/kernel/6.12/patches.nix index d5cc8ccc..fd48cb7e 100644 --- a/microsoft/surface/common/kernel/6.12/patches.nix +++ b/microsoft/surface/common/kernel/6.12/patches.nix @@ -9,7 +9,7 @@ { name = "microsoft-surface-patches-linux-${version}"; patch = null; - extraStructuredConfig = with kernel; { + structuredExtraConfig = with kernel; { STAGING_MEDIA = yes; ## diff --git a/microsoft/surface/common/kernel/6.15/patches.nix b/microsoft/surface/common/kernel/6.15/patches.nix index 6f685ee4..e4245046 100644 --- a/microsoft/surface/common/kernel/6.15/patches.nix +++ b/microsoft/surface/common/kernel/6.15/patches.nix @@ -9,7 +9,7 @@ { name = "microsoft-surface-patches-linux-${version}"; patch = null; - extraStructuredConfig = with kernel; { + structuredExtraConfig = with kernel; { STAGING_MEDIA = yes; ## ## Surface Aggregator Module diff --git a/raspberry-pi/4/default.nix b/raspberry-pi/4/default.nix index e02ba0b3..d862a2e7 100644 --- a/raspberry-pi/4/default.nix +++ b/raspberry-pi/4/default.nix @@ -37,6 +37,9 @@ "reset-raspberrypi" # required for vl805 firmware to load ]; + # Allow building kernel + initrd.systemd.tpm2.enable = false; + loader = { grub.enable = lib.mkDefault false; generic-extlinux-compatible.enable = lib.mkDefault true; diff --git a/raspberry-pi/4/tc358743.nix b/raspberry-pi/4/tc358743.nix index 117d9aa4..6dc9f76d 100644 --- a/raspberry-pi/4/tc358743.nix +++ b/raspberry-pi/4/tc358743.nix @@ -23,10 +23,16 @@ in Number of CSI lanes available ''; }; + media-controller = lib.mkEnableOption '' + Enable support for the Media Controller API. + + See https://forums.raspberrypi.com/viewtopic.php?t=322076 for details + ''; }; }; config = lib.mkIf cfg.enable { + hardware.deviceTree.filter = "bcm2711-rpi-4*.dtb"; hardware.deviceTree.overlays = [ { name = "tc358743-overlay"; @@ -71,6 +77,15 @@ in __overlay__ { status = "okay"; + ${ + if cfg.media-controller then + "" + else + '' + compatible = "brcm,bcm2835-unicam-legacy"; + '' + } + port { endpoint { diff --git a/system76/gaze18/default.nix b/system76/gaze18/default.nix index 61b3f92f..51caa436 100644 --- a/system76/gaze18/default.nix +++ b/system76/gaze18/default.nix @@ -9,9 +9,16 @@ ../. ../../common/gpu/nvidia/prime.nix ../../common/gpu/nvidia/ampere + ../../common/cpu/intel/raptor-lake + ../../common/pc/laptop + ../../common/pc/ssd ]; - boot.initrd.kernelModules = [ "nvidia" ]; + # For offloading, `modesetting` is needed + services.xserver.videoDrivers = [ + "modesetting" + "nvidia" + ]; hardware.graphics = { enable = lib.mkDefault true; @@ -20,8 +27,6 @@ hardware.nvidia = { - # modesetting.enable = lib.mkDefault true; - powerManagement.finegrained = lib.mkDefault true; prime = {