mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-06-02 19:13:33 +02:00
Compare commits
No commits in common. "master" and "not-a-release" have entirely different histories.
master
...
not-a-rele
|
@ -1,48 +0,0 @@
|
|||
# EditorConfig configuration for nixpkgs
|
||||
# https://EditorConfig.org
|
||||
|
||||
# Top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file, utf-8 charset
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
charset = utf-8
|
||||
|
||||
# Ignore diffs/patches
|
||||
[*.{diff,patch}]
|
||||
end_of_line = unset
|
||||
insert_final_newline = unset
|
||||
trim_trailing_whitespace = unset
|
||||
|
||||
# see https://nixos.org/nixpkgs/manual/#chap-conventions
|
||||
|
||||
# Match json/lockfiles/markdown/nix/perl/python/ruby/shell/docbook files, set indent to spaces
|
||||
[*.{json,lock,md,nix,pl,pm,py,rb,sh,xml}]
|
||||
indent_style = space
|
||||
|
||||
# Match docbook files, set indent width of one
|
||||
[*.xml]
|
||||
indent_size = 1
|
||||
|
||||
# Match json/lockfiles/markdown/nix/ruby files, set indent width of two
|
||||
[*.{json,lock,md,nix,rb}]
|
||||
indent_size = 2
|
||||
|
||||
# Match perl/python/shell scripts, set indent width of four
|
||||
[*.{pl,pm,py,sh}]
|
||||
indent_size = 4
|
||||
|
||||
# Match gemfiles, set indent to spaces with width of two
|
||||
[Gemfile]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
# Disable file types or individual files
|
||||
# some of these files may be auto-generated and/or require significant changes
|
||||
|
||||
[*.{c,h}]
|
||||
insert_final_newline = unset
|
||||
trim_trailing_whitespace = unset
|
11
.github/PULL_REQUEST_TEMPLATE.md
vendored
11
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -1,11 +0,0 @@
|
|||
###### Description of changes
|
||||
|
||||
|
||||
###### Things done
|
||||
|
||||
<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->
|
||||
|
||||
- [ ] Tested the changes in your own NixOS Configuration
|
||||
- [ ] Tested the changes end-to-end by using your fork of `nixos-hardware` and
|
||||
importing it via `<nixos-hardware>` or Flake input
|
||||
|
6
.github/workflows/test.yml
vendored
6
.github/workflows/test.yml
vendored
|
@ -2,14 +2,12 @@ name: "Test"
|
|||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@V27
|
||||
- uses: actions/checkout@v2
|
||||
- uses: cachix/install-nix-action@v13
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- name: Show nixpkgs version
|
||||
|
|
15
.mergify.yml
15
.mergify.yml
|
@ -1,15 +0,0 @@
|
|||
queue_rules:
|
||||
- name: default
|
||||
merge_conditions:
|
||||
- check-success=tests
|
||||
defaults:
|
||||
actions:
|
||||
queue:
|
||||
merge_method: rebase
|
||||
pull_request_rules:
|
||||
- name: merge using the merge queue
|
||||
conditions:
|
||||
- base=master
|
||||
- label~=merge-queue|dependencies
|
||||
actions:
|
||||
queue: {}
|
|
@ -4,10 +4,5 @@ dell/xps/13-9380 @kalbasit
|
|||
lenovo/thinkpad/x230 @makefu @yegortimoshenko
|
||||
lenovo/thinkpad/x250 @Mic92
|
||||
pcengines/apu @yegortimoshenko
|
||||
pine64/pinebook-pro @tomfitzhenry
|
||||
pine64/rockpro64 @tomfitzhenry
|
||||
pine64/star64 @fgaz
|
||||
purism/librem/13v3 @yegortimoshenko
|
||||
system76/darp6 @khumba
|
||||
framework @emiller88
|
||||
tuxedo/pulse/15/gen2 @trueNAHO
|
||||
|
|
|
@ -1,14 +1,8 @@
|
|||
# Contributing a Device Profile
|
||||
|
||||
## 1. Writing profiles
|
||||
|
||||
Create an appropriate directory and start writing your expression.
|
||||
# Writing profiles
|
||||
|
||||
When setting an option, use `lib.mkDefault` unless:
|
||||
- The option *must* be set and the user should get an error if they try to
|
||||
override it.
|
||||
- The setting should merge with the user's settings (typical for list or set
|
||||
options).
|
||||
- The option *must* be set and the user should get an error if they try to override it.
|
||||
- The setting should merge with the user's settings (typical for list or set options).
|
||||
|
||||
For example:
|
||||
|
||||
|
@ -21,43 +15,17 @@ For example:
|
|||
}
|
||||
```
|
||||
|
||||
Where possible, use module imports to share code between similar hardware
|
||||
variants. In most cases, import:
|
||||
- a cpu module;
|
||||
- a gpu module;
|
||||
- either the pc or the laptop module;
|
||||
- either the HDD or the SSD module.
|
||||
Try to avoid "opinionated" settings relating to optional features like sound, bluetooth, choice of bootloader etc.
|
||||
|
||||
Try to avoid "opinionated" settings relating to optional features like sound,
|
||||
bluetooth, choice of bootloader etc. You can mention these in the readme.
|
||||
Where possible, use module imports to share code between similar hardware variants.
|
||||
|
||||
Profiles should favor usability and stability, so performance improvements
|
||||
should either be conservative or be guarded behind additional NixOS module
|
||||
options. If it makes sense to have a performance-focussed config, it can be
|
||||
declared in a separate profile.
|
||||
# Performance
|
||||
|
||||
## 2. Adding Entry
|
||||
Profiles should favor usability and stability, so performance improvements should either be conservative or
|
||||
be guarded behind additional NixOS module options.
|
||||
|
||||
Link the profile in the table in README.md and in flake.nix.
|
||||
If it makes sense to have a performance-focussed config, it can be declared in a separate profile.
|
||||
|
||||
## 3. Testing
|
||||
# Testing
|
||||
|
||||
Run ./tests/run.py to test building. The test script script will parse all the
|
||||
profiles from the README.md.
|
||||
|
||||
You can also just specify a single profile like this:
|
||||
|
||||
```
|
||||
./tests/run.py '<nixos-hardware/purism/librem/15v3>'
|
||||
```
|
||||
|
||||
Because profiles can only be tested with the appropriate hardware, quality
|
||||
assurance is up to *you*.
|
||||
|
||||
# For reviewers:
|
||||
|
||||
This repository has bors enabled for easier merging after a successfull build:
|
||||
|
||||
* `bors try` - check if the PR builds.
|
||||
* `bors merge` - same as `bors try` but will also merge the PR if it builds successfully.
|
||||
* https://bors.tech/documentation/
|
||||
Because profiles can only be tested with the appropriate hardware, quality assurance is up to *you*.
|
||||
|
|
375
README.md
375
README.md
|
@ -24,15 +24,14 @@ imports = [
|
|||
|
||||
New updates to the expressions here will be fetched when you update the channel.
|
||||
|
||||
### Using nix flakes support
|
||||
## Using nix flakes support
|
||||
|
||||
There is also experimental flake support. In your `/etc/nixos/flake.nix` add
|
||||
the following:
|
||||
There is also experimental flake support. In your `/etc/nixos/flake.nix` add the following:
|
||||
|
||||
```nix
|
||||
{
|
||||
description = "NixOS configuration with flakes";
|
||||
inputs.nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
inputs.nixos-hardware.url = github:NixOS/nixos-hardware/master;
|
||||
|
||||
outputs = { self, nixpkgs, nixos-hardware }: {
|
||||
# replace <your-hostname> with your actual hostname
|
||||
|
@ -48,6 +47,7 @@ the following:
|
|||
}
|
||||
```
|
||||
|
||||
|
||||
### Using fetchGit
|
||||
|
||||
You can fetch the git repository directly:
|
||||
|
@ -61,252 +61,129 @@ imports = [
|
|||
Unlike the channel, this will update the git repository on a rebuild. However,
|
||||
you can easily pin to a particular revision if you desire more stability.
|
||||
|
||||
## How to contribute a new device profile
|
||||
|
||||
See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
||||
|
||||
## List of Profiles
|
||||
|
||||
See code for all available configurations.
|
||||
|
||||
| Model | Path |
|
||||
|------------------------------------------------------------------------|---------------------------------------------------------|
|
||||
| [Acer Aspire 4810T](acer/aspire/4810t) | `<nixos-hardware/acer/aspire/4810t>` |
|
||||
| [Airis N990](airis/n990) | `<nixos-hardware/airis/n990>` |
|
||||
| [Apple MacBook Air 3,X](apple/macbook-air/3) | `<nixos-hardware/apple/macbook-air/3>` |
|
||||
| [Apple MacBook Air 4,X](apple/macbook-air/4) | `<nixos-hardware/apple/macbook-air/4>` |
|
||||
| [Apple MacBook Air 6,X](apple/macbook-air/6) | `<nixos-hardware/apple/macbook-air/6>` |
|
||||
| [Apple MacBook Pro 10,1](apple/macbook-pro/10-1) | `<nixos-hardware/apple/macbook-pro/10-1>` |
|
||||
| [Apple MacBook Pro 11,5](apple/macbook-pro/11-5) | `<nixos-hardware/apple/macbook-pro/11-5>` |
|
||||
| [Apple MacBook Pro 12,1](apple/macbook-pro/12-1) | `<nixos-hardware/apple/macbook-pro/12-1>` |
|
||||
| [Apple MacBook Pro 14,1](apple/macbook-pro/14-1) | `<nixos-hardware/apple/macbook-pro/14-1>` |
|
||||
| [Apple MacMini (2010, Intel, Nvidia)](apple/macmini/4) | `<nixos-hardware/apple/macmini/4>` |
|
||||
| [Apple Macs with a T2 Chip](apple/t2) | `<nixos-hardware/apple/t2>` |
|
||||
| [Asus Pro WS X570-ACE](asus/pro-ws-x570-ace) | `<nixos-hardware/asus/pro-ws-x570-ace>` |
|
||||
| [Asus ROG Ally RC71L (2023)](asus/ally/rc71l) | `<nixos-hardware/asus/ally/rc71l>` |
|
||||
| [Asus ROG Strix G513IM](asus/rog-strix/g513im) | `<nixos-hardware/asus/rog-strix/g513im>` |
|
||||
| [Asus ROG Strix G733QS](asus/rog-strix/g733qs) | `<nixos-hardware/asus/rog-strix/g733qs>` |
|
||||
| [Asus ROG Zephyrus G14 GA401](asus/zephyrus/ga401) | `<nixos-hardware/asus/zephyrus/ga401>` |
|
||||
| [Asus ROG Zephyrus G14 GA402](asus/zephyrus/ga402) | `<nixos-hardware/asus/zephyrus/ga402>` |
|
||||
| [Asus ROG Zephyrus G14 GA402X* (2023)](asus/zephyrus/ga402x/amdgpu) | `<nixos-hardware/asus/zephyrus/ga402x/amdgpu>` |
|
||||
| [Asus ROG Zephyrus G14 GA402X* (2023)](asus/zephyrus/ga402x/nvidia) | `<nixos-hardware/asus/zephyrus/ga402x/nvidia>` |
|
||||
| [Asus ROG Zephyrus G15 GA502](asus/zephyrus/ga502) | `<nixos-hardware/asus/zephyrus/ga502>` |
|
||||
| [Asus ROG Zephyrus G15 GA503](asus/zephyrus/ga503) | `<nixos-hardware/asus/zephyrus/ga503>` |
|
||||
| [Asus ROG Zephyrus M16 GU603H](asus/zephyrus/gu603h) | `<nixos-hardware/asus/zephyrus/gu603h>` |
|
||||
| [Asus TUF FX504GD](asus/fx504gd) | `<nixos-hardware/asus/fx504gd>` |
|
||||
| [Asus TUF FX506HM](asus/fx506hm) | `<nixos-hardware/asus/fx506hm>` |
|
||||
| [Asus TUF FA507RM](asus/fa507rm) | `<nixos-hardware/asus/fa507rm>` |
|
||||
| [Asus TUF FA507NV](asus/fa507nv) | `<nixos-hardware/asus/fa507nv>` |
|
||||
| [Asus Zenbook Flip S13 UX371](asus/zenbook/ux371/) | `<nixos-hardware/asus/zenbook/ux371>` |
|
||||
| [BeagleBoard PocketBeagle](beagleboard/pocketbeagle) | `<nixos-hardware/beagleboard/pocketbeagle>` |
|
||||
| [Deciso DEC series](deciso/dec) | `<nixos-hardware/deciso/dec>` |
|
||||
| [Dell G3 3779](dell/g3/3779) | `<nixos-hardware/dell/g3/3779>` |
|
||||
| [Dell Inspiron 14 5420](dell/inspiron/14-5420) | `<nixos-hardawre/dell/inspiron/14-5420>` |
|
||||
| [Dell Inspiron 5509](dell/inspiron/5509) | `<nixos-hardware/dell/inspiron/5509>` |
|
||||
| [Dell Inspiron 5515](dell/inspiron/5515) | `<nixos-hardware/dell/inspiron/5515>` |
|
||||
| [Dell Inspiron 7405](dell/inspiron/7405) | `<nixos-hardware/dell/inspiron/7405>` |
|
||||
| [Dell Latitude 3340](dell/latitude/3340) | `<nixos-hardware/dell/latitude/3340>` |
|
||||
| [Dell Latitude 3480](dell/latitude/3480) | `<nixos-hardware/dell/latitude/3480>` |
|
||||
| [Dell Latitude 5520](dell/latitude/5520) | `<nixos-hardware/dell/latitude/5520>` |
|
||||
| [Dell Latitude 7280](dell/latitude/7280) | `<nixos-hardware/dell/latitude/7280>` |
|
||||
| [Dell Latitude 7390](dell/latitude/7390) | `<nixos-hardware/dell/latitude/7390>` |
|
||||
| [Dell Latitude 7430](dell/latitude/7430) | `<nixos-hardware/dell/latitude/7430>` |
|
||||
| [Dell Latitude 7490](dell/latitude/7490) | `<nixos-hardware/dell/latitude/7490>` |
|
||||
| [Dell Poweredge R7515](dell/poweredge/r7515) | `<nixos-hardware/dell/poweredge/r7515>` |
|
||||
| [Dell Precision 3541](dell/precision/3541) | `<nixos-hardware/dell/precision/3541>` |
|
||||
| [Dell Precision 5530](dell/precision/5530) | `<nixos-hardware/dell/precision/5530>` |
|
||||
| [Dell Precision 7520](dell/precision/7520) | `<nixos-hardware/dell/precision/7520>` |
|
||||
| [Dell XPS 13 7390](dell/xps/13-7390) | `<nixos-hardware/dell/xps/13-7390>` |
|
||||
| [Dell XPS 13 9300](dell/xps/13-9300) | `<nixos-hardware/dell/xps/13-9300>` |
|
||||
| [Dell XPS 13 9310](dell/xps/13-9310) | `<nixos-hardware/dell/xps/13-9310>` |
|
||||
| [Dell XPS 13 9333](dell/xps/13-9333) | `<nixos-hardware/dell/xps/13-9333>` |
|
||||
| [Dell XPS 13 9343](dell/xps/13-9343) | `<nixos-hardware/dell/xps/13-9343>` |
|
||||
| [Dell XPS 13 9350](dell/xps/13-9350) | `<nixos-hardware/dell/xps/13-9350>` |
|
||||
| [Dell XPS 13 9360](dell/xps/13-9360) | `<nixos-hardware/dell/xps/13-9360>` |
|
||||
| [Dell XPS 13 9370](dell/xps/13-9370) | `<nixos-hardware/dell/xps/13-9370>` |
|
||||
| [Dell XPS 13 9380](dell/xps/13-9380) | `<nixos-hardware/dell/xps/13-9380>` |
|
||||
| [Dell XPS 15 7590, nvidia](dell/xps/15-7590/nvidia) | `<nixos-hardware/dell/xps/15-7590/nvidia>` |
|
||||
| [Dell XPS 15 7590](dell/xps/15-7590) | `<nixos-hardware/dell/xps/15-7590>` |
|
||||
| [Dell XPS 15 9500, nvidia](dell/xps/15-9500/nvidia) | `<nixos-hardware/dell/xps/15-9500/nvidia>` |
|
||||
| [Dell XPS 15 9500](dell/xps/15-9500) | `<nixos-hardware/dell/xps/15-9500>` |
|
||||
| [Dell XPS 15 9510, nvidia](dell/xps/15-9510/nvidia) | `<nixos-hardware/dell/xps/15-9510/nvidia>` |
|
||||
| [Dell XPS 15 9510](dell/xps/15-9510) | `<nixos-hardware/dell/xps/15-9510>` |
|
||||
| [Dell XPS 15 9520, nvidia](dell/xps/15-9520/nvidia) | `<nixos-hardware/dell/xps/15-9520/nvidia>` |
|
||||
| [Dell XPS 15 9520](dell/xps/15-9520) | `<nixos-hardware/dell/xps/15-9520>` |
|
||||
| [Dell XPS 15 9550, nvidia](dell/xps/15-9550/nvidia) | `<nixos-hardware/dell/xps/15-9550/nvidia>` |
|
||||
| [Dell XPS 15 9550](dell/xps/15-9550) | `<nixos-hardware/dell/xps/15-9550>` |
|
||||
| [Dell XPS 15 9560, intel only](dell/xps/15-9560/intel) | `<nixos-hardware/dell/xps/15-9560/intel>` |
|
||||
| [Dell XPS 15 9560, nvidia only](dell/xps/15-9560/nvidia) | `<nixos-hardware/dell/xps/15-9560/nvidia>` |
|
||||
| [Dell XPS 15 9560](dell/xps/15-9560) | `<nixos-hardware/dell/xps/15-9560>` |
|
||||
| [Dell XPS 15 9570, intel only](dell/xps/15-9570/intel) | `<nixos-hardware/dell/xps/15-9570/intel>` |
|
||||
| [Dell XPS 15 9570, nvidia](dell/xps/15-9570/nvidia) | `<nixos-hardware/dell/xps/15-9570/nvidia>` |
|
||||
| [Dell XPS 15 9570](dell/xps/15-9570) | `<nixos-hardware/dell/xps/15-9570>` |
|
||||
| [Dell XPS 17 9700, intel](dell/xps/17-9700/intel) | `<nixos-hardware/dell/xps/17-9700/intel` |
|
||||
| [Dell XPS 17 9700, nvidia](dell/xps/17-9700/nvidia) | `<nixos-hardware/dell/xps/17-9700/nvidia>` |
|
||||
| [Dell XPS 17 9710, intel only](dell/xps/17-9710/intel) | `<nixos-hardware/dell/xps/17-9710/intel>` |
|
||||
| [Dell XPS E7240](dell/e7240) | `<nixos-hardware/dell/e7240>` |
|
||||
| [Framework 11th Gen Intel Core](framework/13-inch/11th-gen-intel) | `<nixos-hardware/framework/13-inch/11th-gen-intel>` |
|
||||
| [Framework 12th Gen Intel Core](framework/13-inch/12th-gen-intel) | `<nixos-hardware/framework/13-inch/12th-gen-intel>` |
|
||||
| [Framework 13th Gen Intel Core](framework/13-inch/13th-gen-intel) | `<nixos-hardware/framework/13-inch/13th-gen-intel>` |
|
||||
| [Framework 13 AMD Ryzen 7040 Series](framework/13-inch/7040-amd) | `<nixos-hardware/framework/13-inch/7040-amd>` |
|
||||
| [Framework 16 AMD Ryzen 7040 Series](framework/16-inch/7040-amd) | `<nixos-hardware/framework/16-inch/7040-amd>` |
|
||||
| [FriendlyARM NanoPC-T4](friendlyarm/nanopc-t4) | `<nixos-hardware/friendlyarm/nanopc-t4>` |
|
||||
| [FriendlyARM NanoPi R5s](friendlyarm/nanopi-r5s) | `<nixos-hardware/friendlyarm/nanopi-r5s>` |
|
||||
| [Focus M2 Gen 1](focus/m2/gen1) | `<nixos-hardware/focus/m2/gen1>` |
|
||||
| [Gigabyte B550](gigabyte/b550) | `<nixos-hardware/gigabyte/b550>` |
|
||||
| [GPD MicroPC](gpd/micropc) | `<nixos-hardware/gpd/micropc>` |
|
||||
| [GPD P2 Max](gpd/p2-max) | `<nixos-hardware/gpd/p2-max>` |
|
||||
| [GPD Pocket 3](gpd/pocket-3) | `<nixos-hardware/gpd/pocket-3>` |
|
||||
| [GPD WIN 2](gpd/win-2) | `<nixos-hardware/gpd/win-2>` |
|
||||
| [GPD WIN Max 2 2023](gpd/win-max-2/2023) | `<nixos-hardware/gpd/win-max-2/2023>` |
|
||||
| [Google Pixelbook](google/pixelbook) | `<nixos-hardware/google/pixelbook>` |
|
||||
| [HP Elitebook 2560p](hp/elitebook/2560p) | `<nixos-hardware/hp/elitebook/2560p>` |
|
||||
| [HP Elitebook 830g6](hp/elitebook/830/g6) | `<nixos-hardware/hp/elitebook/830/g6>` |
|
||||
| [HP Elitebook 845g7](hp/elitebook/845/g7) | `<nixos-hardware/hp/elitebook/845/g7>` |
|
||||
| [HP Elitebook 845g8](hp/elitebook/845/g8) | `<nixos-hardware/hp/elitebook/845/g8>` |
|
||||
| [HP Elitebook 845g9](hp/elitebook/845/g9) | `<nixos-hardware/hp/elitebook/845/g9>` |
|
||||
| [HP Notebook 14-df0023](hp/notebook/14-df0023) | `<nixos-hardware/hp/notebook/14-df0023>` |
|
||||
| [Huawei Matebook X Pro (2020)](huawei/machc-wa) | `<nixos-hardware/huawei/machc-wa>` |
|
||||
| [i.MX8QuadMax Multisensory Enablement Kit](nxp/imx8qm-mek/) | `<nixos-hardware/nxp/imx8qm-mek>` |
|
||||
| [Intel NUC 8i7BEH](intel/nuc/8i7beh/) | `<nixos-hardware/intel/nuc/8i7beh>` |
|
||||
| [Lenovo IdeaPad 3 15alc6](lenovo/ideapad/15alc6) | `<nixos-hardware/lenovo/ideapad/15alc6>` |
|
||||
| [Lenovo IdeaPad Gaming 3 15arh05](lenovo/ideapad/15arh05) | `<nixos-hardware/lenovo/ideapad/15arh05>` |
|
||||
| [Lenovo IdeaPad Z510](lenovo/ideapad/z510) | `<nixos-hardware/lenovo/ideapad/z510>` |
|
||||
| [Lenovo IdeaPad Slim 5](lenovo/ideapad/slim-5) | `<nixos-hardware/lenovo/ideapad/slim-5>` |
|
||||
| [Lenovo IdeaPad S145 15api](lenovo/ideapad/s145-15api) | `<nixos-hardware/lenovo/ideapad/s145-15api>` |
|
||||
| [Lenovo Legion 5 15ach6h](lenovo/legion/15ach6h) | `<nixos-hardware/lenovo/legion/15ach6h>` |
|
||||
| [Lenovo Legion 5 15arh05h](lenovo/legion/15arh05h) | `<nixos-hardware/lenovo/legion/15arh05h>` |
|
||||
| [Lenovo Legion 7 Slim 15ach6](lenovo/legion/15ach6) | `<nixos-hardware/lenovo/legion/15ach6>` |
|
||||
| [Lenovo Legion 5 Pro 16ach6h](lenovo/legion/16ach6h) | `<nixos-hardware/lenovo/legion/16ach6h>` |
|
||||
| [Lenovo Legion 5 Pro 16ach6h (Hybrid)](lenovo/legion/16ach6h/hybrid) | `<nixos-hardware/lenovo/legion/16ach6h/hybrid>` |
|
||||
| [Lenovo Legion 5 Pro 16ach6h (Nvidia)](lenovo/legion/16ach6h/nvidia) | `<nixos-hardware/lenovo/legion/16ach6h/nvidia>` |
|
||||
| [Lenovo Legion 7 16achg6 (Hybrid)](lenovo/legion/16achg6/hybrid) | `<nixos-hardware/lenovo/legion/16achg6/hybrid>` |
|
||||
| [Lenovo Legion 7 16achg6 (Nvidia)](lenovo/legion/16achg6/nvidia) | `<nixos-hardware/lenovo/legion/16achg6/nvidia>` |
|
||||
| [Lenovo Legion 7i Pro 16irx8h (Intel)](lenovo/legion/16irx8h) | `<nixos-hardware/lenovo/legion/16irx8h>` |
|
||||
| [Lenovo Legion Slim 7 Gen 7 (AMD)](lenovo/legion/16arha7/) | `<nixos-hardware/lenovo/legion/16arha7>` |
|
||||
| [Lenovo Legion T5 AMR5](lenovo/legion/t526amr5) | `<nixos-hardware/lenovo/legion/t526amr5>` |
|
||||
| [Lenovo Legion Y530 15ICH](lenovo/legion/15ich) | `<nixos-hardware/lenovo/legion/15ich>` |
|
||||
| [Lenovo ThinkPad A475](lenovo/thinkpad/a475) | `<nixos-hardware/lenovo/thinkpad/a475>` |
|
||||
| [Lenovo ThinkPad E14 (AMD)](lenovo/thinkpad/e14/amd) | `<nixos-hardware/lenovo/thinkpad/e14/amd>` |
|
||||
| [Lenovo ThinkPad E14 (Intel)](lenovo/thinkpad/e14/intel) | `<nixos-hardware/lenovo/thinkpad/e14/intel>` |
|
||||
| [Lenovo ThinkPad E470](lenovo/thinkpad/e470) | `<nixos-hardware/lenovo/thinkpad/e470>` |
|
||||
| [Lenovo ThinkPad E495](lenovo/thinkpad/e495) | `<nixos-hardware/lenovo/thinkpad/e495>` |
|
||||
| [Lenovo ThinkPad L13 Yoga](lenovo/thinkpad/l13/yoga) | `<nixos-hardware/lenovo/thinkpad/l13/yoga>` |
|
||||
| [Lenovo ThinkPad L13](lenovo/thinkpad/l13) | `<nixos-hardware/lenovo/thinkpad/l13>` |
|
||||
| [Lenovo ThinkPad L14 (AMD)](lenovo/thinkpad/l14/amd) | `<nixos-hardware/lenovo/thinkpad/l14/amd>` |
|
||||
| [Lenovo ThinkPad L14 (Intel)](lenovo/thinkpad/l14/intel) | `<nixos-hardware/lenovo/thinkpad/l14/intel>` |
|
||||
| [Lenovo ThinkPad L480](lenovo/thinkpad/l480) | `<nixos-hardware/lenovo/thinkpad/l480>` |
|
||||
| [Lenovo ThinkPad P1 Gen 3](lenovo/thinkpad/p1/3th-gen) | `<nixos-hardware/lenovo/thinkpad/p1/3th-gen>` |
|
||||
| [Lenovo ThinkPad P14s AMD Gen 1](lenovo/thinkpad/p14s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen1>` |
|
||||
| [Lenovo ThinkPad P14s AMD Gen 2](lenovo/thinkpad/p14s/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen2>` |
|
||||
| [Lenovo ThinkPad P14s AMD Gen 3](lenovo/thinkpad/p14s/amd/gen3) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen3>` |
|
||||
| [Lenovo ThinkPad P14s AMD Gen 4](lenovo/thinkpad/p14s/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/p14s/amd/gen4>` |
|
||||
| [Lenovo ThinkPad P16s AMD Gen 1](lenovo/thinkpad/p16s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/p16s/amd/gen1>` |
|
||||
| [Lenovo ThinkPad P1](lenovo/thinkpad/p1) | `<nixos-hardware/lenovo/thinkpad/p1>` |
|
||||
| [Lenovo ThinkPad P50](lenovo/thinkpad/p50) | `<nixos-hardware/lenovo/thinkpad/p50>` |
|
||||
| [Lenovo ThinkPad P51](lenovo/thinkpad/p51) | `<nixos-hardware/lenovo/thinkpad/p51>` |
|
||||
| [Lenovo ThinkPad P52](lenovo/thinkpad/p52) | `<nixos-hardware/lenovo/thinkpad/p52>` |
|
||||
| [Lenovo ThinkPad P53](lenovo/thinkpad/p53) | `<nixos-hardware/lenovo/thinkpad/p53>` |
|
||||
| [Lenovo ThinkPad T14 AMD Gen 1](lenovo/thinkpad/t14/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen1>` |
|
||||
| [Lenovo ThinkPad T14 AMD Gen 2](lenovo/thinkpad/t14/amd/gen2) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen2>` |
|
||||
| [Lenovo ThinkPad T14 AMD Gen 3](lenovo/thinkpad/t14/amd/gen3) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen3>` |
|
||||
| [Lenovo ThinkPad T14 AMD Gen 4](lenovo/thinkpad/t14/amd/gen4) | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen4>` |
|
||||
| [Lenovo ThinkPad T14](lenovo/thinkpad/t14) | `<nixos-hardware/lenovo/thinkpad/t14>` |
|
||||
| [Lenovo ThinkPad T14s AMD Gen 1](lenovo/thinkpad/t14s/amd/gen1) | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen1>` |
|
||||
| [Lenovo ThinkPad T14s](lenovo/thinkpad/t14s) | `<nixos-hardware/lenovo/thinkpad/t14s>` |
|
||||
| [Lenovo ThinkPad T410](lenovo/thinkpad/t410) | `<nixos-hardware/lenovo/thinkpad/t410>` |
|
||||
| [Lenovo ThinkPad T420](lenovo/thinkpad/t420) | `<nixos-hardware/lenovo/thinkpad/t420>` |
|
||||
| [Lenovo ThinkPad T430](lenovo/thinkpad/t430) | `<nixos-hardware/lenovo/thinkpad/t430>` |
|
||||
| [Lenovo ThinkPad T440p](lenovo/thinkpad/t440p) | `<nixos-hardware/lenovo/thinkpad/t440p>` |
|
||||
| [Lenovo ThinkPad T440s](lenovo/thinkpad/t440s) | `<nixos-hardware/lenovo/thinkpad/t440s>` |
|
||||
| [Lenovo ThinkPad T450s](lenovo/thinkpad/t450s) | `<nixos-hardware/lenovo/thinkpad/t450s>` |
|
||||
| [Lenovo ThinkPad T460](lenovo/thinkpad/t460) | `<nixos-hardware/lenovo/thinkpad/t460>` |
|
||||
| [Lenovo ThinkPad T460p](lenovo/thinkpad/t460p) | `<nixos-hardware/lenovo/thinkpad/t460p>` |
|
||||
| [Lenovo ThinkPad T460s](lenovo/thinkpad/t460s) | `<nixos-hardware/lenovo/thinkpad/t460s>` |
|
||||
| [Lenovo ThinkPad T470s](lenovo/thinkpad/t470s) | `<nixos-hardware/lenovo/thinkpad/t470s>` |
|
||||
| [Lenovo ThinkPad T480](lenovo/thinkpad/t480) | `<nixos-hardware/lenovo/thinkpad/t480>` |
|
||||
| [Lenovo ThinkPad T480s](lenovo/thinkpad/t480s) | `<nixos-hardware/lenovo/thinkpad/t480s>` |
|
||||
| [Lenovo ThinkPad T490](lenovo/thinkpad/t490) | `<nixos-hardware/lenovo/thinkpad/t490>` |
|
||||
| [Lenovo ThinkPad T495](lenovo/thinkpad/t495) | `<nixos-hardware/lenovo/thinkpad/t495>` |
|
||||
| [Lenovo ThinkPad T520](lenovo/thinkpad/t520) | `<nixos-hardware/lenovo/thinkpad/t520>` |
|
||||
| [Lenovo ThinkPad T550](lenovo/thinkpad/t550) | `<nixos-hardware/lenovo/thinkpad/t550>` |
|
||||
| [Lenovo ThinkPad T590](lenovo/thinkpad/t590) | `<nixos-hardware/lenovo/thinkpad/t590>` |
|
||||
| [Lenovo ThinkPad W520](lenovo/thinkpad/w520) | `<nixos-hardware/lenovo/thinkpad/w520>` |
|
||||
| [Lenovo ThinkPad X1 Yoga](lenovo/thinkpad/x1/yoga) | `<nixos-hardware/lenovo/thinkpad/x1/yoga>` |
|
||||
| [Lenovo ThinkPad X1 Yoga Gen 7](lenovo/thinkpad/x1/yoga/7th-gen/) | `<nixos-hardware/lenovo/thinkpad/x1/yoga/7th-gen>` |
|
||||
| [Lenovo ThinkPad X1 (6th Gen)](lenovo/thinkpad/x1/6th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/6th-gen>` |
|
||||
| [Lenovo ThinkPad X1 (7th Gen)](lenovo/thinkpad/x1/7th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/7th-gen>` |
|
||||
| [Lenovo ThinkPad X1 (9th Gen)](lenovo/thinkpad/x1/9th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/9th-gen>` |
|
||||
| [Lenovo ThinkPad X1 (10th Gen)](lenovo/thinkpad/x1/10th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/10th-gen>` |
|
||||
| [Lenovo ThinkPad X1 (11th Gen)](lenovo/thinkpad/x1/11th-gen) | `<nixos-hardware/lenovo/thinkpad/x1/11th-gen>` |
|
||||
| [Lenovo ThinkPad X1 Extreme Gen 2](lenovo/thinkpad/x1-extreme/gen2) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen2>` |
|
||||
| [Lenovo ThinkPad X1 Extreme Gen 4](lenovo/thinkpad/x1-extreme/gen4) | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen4>` |
|
||||
| [Lenovo ThinkPad X1 Nano Gen 1](lenovo/thinkpad/x1-nano/gen1) | `<nixos-hardware/lenovo/thinkpad/x1-nano/gen1>` |
|
||||
| [Lenovo ThinkPad X13 Yoga](lenovo/thinkpad/x13/yoga) | `<nixos-hardware/lenovo/thinkpad/x13/yoga>` |
|
||||
| [Lenovo ThinkPad X13 Yoga (3th Gen)](lenovo/thinkpad/x13/yoga/3th-gen) | `<nixos-hardware/lenovo/thinkpad/x13/yoga/3th-gen>` |
|
||||
| [Lenovo ThinkPad X13 (Intel)](lenovo/thinkpad/x13/intel) | `<nixos-hardware/lenovo/thinkpad/x13/intel>` |
|
||||
| [Lenovo ThinkPad X13 (AMD)](lenovo/thinkpad/x13/amd) | `<nixos-hardware/lenovo/thinkpad/x13/amd>` |
|
||||
| [Lenovo ThinkPad X140e](lenovo/thinkpad/x140e) | `<nixos-hardware/lenovo/thinkpad/x140e>` |
|
||||
| [Lenovo ThinkPad X200s](lenovo/thinkpad/x200s) | `<nixos-hardware/lenovo/thinkpad/x200s>` |
|
||||
| [Lenovo ThinkPad X220](lenovo/thinkpad/x220) | `<nixos-hardware/lenovo/thinkpad/x220>` |
|
||||
| [Lenovo ThinkPad X230](lenovo/thinkpad/x230) | `<nixos-hardware/lenovo/thinkpad/x230>` |
|
||||
| [Lenovo ThinkPad X250](lenovo/thinkpad/x250) | `<nixos-hardware/lenovo/thinkpad/x250>` |
|
||||
| [Lenovo ThinkPad X260](lenovo/thinkpad/x260) | `<nixos-hardware/lenovo/thinkpad/x260>` |
|
||||
| [Lenovo ThinkPad X270](lenovo/thinkpad/x270) | `<nixos-hardware/lenovo/thinkpad/x270>` |
|
||||
| [Lenovo ThinkPad X280](lenovo/thinkpad/x280) | `<nixos-hardware/lenovo/thinkpad/x280>` |
|
||||
| [Lenovo ThinkPad X390](lenovo/thinkpad/x390) | `<nixos-hardware/lenovo/thinkpad/x390>` |
|
||||
| [Lenovo ThinkPad Z Series](lenovo/thinkpad/z) | `<nixos-hardware/lenovo/thinkpad/z>` |
|
||||
| [Lenovo ThinkPad Z13 Gen 1](lenovo/thinkpad/z/gen1/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen1/z13>` |
|
||||
| [Lenovo ThinkPad Z13 Gen 2](lenovo/thinkpad/z/gen2/z13) | `<nixos-hardware/lenovo/thinkpad/z/gen2/z13>` |
|
||||
| [LENOVO Yoga 6 13ALC6 82ND](lenovo/yoga/6/13ALC6) | `<nixos-hardware/lenovo/yoga/6/13ALC6>` |
|
||||
| [LENOVO Yoga Slim 7 Pro-X 14ARH7 82ND](lenovo/yoga/7/14ARH7/amdgpu) | `<nixos-hardware/lenovo/yoga/7/14ARH7/amdgpu>` |
|
||||
| [LENOVO Yoga Slim 7 Pro-X 14ARH7 82ND](lenovo/yoga/7/14ARH7/nvidia) | `<nixos-hardware/lenovo/yoga/7/14ARH7/nvidia>` |
|
||||
| [LENOVO Yoga 7 Slim Gen8](lenovo/yoga/7/slim/gen8) | `<nixos-hardware/lenovo/yoga/7/slim/gen8>` |
|
||||
| [MSI B550-A PRO](msi/b550-a-pro) | `<nixos-hardware/msi/b550-a-pro>` |
|
||||
| [MSI B350 TOMAHAWK](msi/b350-tomahawk) | `<nixos-hardware/msi/b350-tomahawk>` |
|
||||
| [MSI GS60 2QE](msi/gs60) | `<nixos-hardware/msi/gs60>` |
|
||||
| [MSI GL62/CX62](msi/gl62) | `<nixos-hardware/msi/gl62>` |
|
||||
| [Microchip Icicle Kit](microchip/icicle-kit) | `<nixos-hardware/microchip/icicle-kit>` |
|
||||
| [Microsoft Surface Go](microsoft/surface/surface-go) | `<nixos-hardware/microsoft/surface/surface-go>` |
|
||||
| [Microsoft Surface Pro (Intel)](microsoft/surface/surface-pro-intel) | `<nixos-hardware/microsoft/surface/surface-pro-intel>` |
|
||||
| [Microsoft Surface Laptop (AMD)](microsoft/surface/surface-laptop-amd) | `<nixos-hardware/microsoft/surface/surface-laptop-amd>` |
|
||||
| [Microsoft Surface Range (Common Modules)](microsoft/surface/common) | `<nixos-hardware/microsoft/surface/common>` |
|
||||
| [Microsoft Surface Pro 3](microsoft/surface-pro/3) | `<nixos-hardware/microsoft/surface-pro/3>` |
|
||||
| [Microsoft Surface Pro 9](microsoft/surface-pro/9) | `<nixos-hardware/microsoft/surface-pro/9>` |
|
||||
| [Morefine M600](morefine/m600) | `<nixos-hardware/morefine/m600>` |
|
||||
| [NXP iMX8 MPlus Evaluation Kit](nxp/imx8mp-evk) | `<nixos-hardware/nxp/imx8mp-evk>` |
|
||||
| [NXP iMX8 MQuad Evaluation Kit](nxp/imx8mq-evk) | `<nixos-hardware/nxp/imx8mq-evk>` |
|
||||
| [Hardkernel Odroid HC4](hardkernel/odroid-hc4/default.nix) | `<nixos-hardware/hardkernel/odroid-hc4>` |
|
||||
| [Hardkernel Odroid H3](hardkernel/odroid-h3/default.nix) | `<nixos-hardware/hardkernel/odroid-h3>` |
|
||||
| [Omen 15-en0010ca](omen/14-fb0798ng) | `<nixos-hardware/omen/14-fb0798ng>` |
|
||||
| [Omen 15-en0010ca](omen/15-en0010ca) | `<nixos-hardware/omen/15-en0010ca>` |
|
||||
| [Omen 16-n0005ne](omen/16-n0005ne) | `<nixos-hardware/omen/16-n0005ne>` |
|
||||
| [Omen 15-en1007sa](omen/15-en1007sa) | `<nixos-hardware/omen/15-en1007sa>` |
|
||||
| [Omen 15-en0002np](omen/15-en0002np) | `<nixos-hardware/omen/15-en0002np>` |
|
||||
| [One-Netbook OneNetbook 4](onenetbook/4) | `<nixos-hardware/onenetbook/4>` |
|
||||
| [Panasonic Let's Note CF-LX4](panasonic/letsnote/cf-lx4) | `<nixos-hardware/panasonic/letsnote/cf-lx4>` |
|
||||
| [PC Engines APU](pcengines/apu) | `<nixos-hardware/pcengines/apu>` |
|
||||
| [PINE64 Pinebook Pro](pine64/pinebook-pro/) | `<nixos-hardware/pine64/pinebook-pro>` |
|
||||
| [PINE64 RockPro64](pine64/rockpro64/) | `<nixos-hardware/pine64/rockpro64>` |
|
||||
| [PINE64 STAR64](pine64/star64/) | `<nixos-hardware/pine64/star64>` |
|
||||
| [Protectli VP4670](protectli/vp4670/) | `<nixos-hardware/protectli/vp4670>` |
|
||||
| [Purism Librem 13v3](purism/librem/13v3) | `<nixos-hardware/purism/librem/13v3>` |
|
||||
| [Purism Librem 15v3](purism/librem/13v3) | `<nixos-hardware/purism/librem/15v3>` |
|
||||
| [Purism Librem 5r4](purism/librem/5r4) | `<nixos-hardware/purism/librem/5r4>` |
|
||||
| [Raspberry Pi 2](raspberry-pi/2) | `<nixos-hardware/raspberry-pi/2>` |
|
||||
| [Raspberry Pi 4](raspberry-pi/4) | `<nixos-hardware/raspberry-pi/4>` |
|
||||
| [Raspberry Pi 5](raspberry-pi/5) | `<nixos-hardware/raspberry-pi/5>` |
|
||||
| [Samsung Series 9 NP900X3C](samsung/np900x3c) | `<nixos-hardware/samsung/np900x3c>` |
|
||||
| [StarFive VisionFive v1](starfive/visionfive/v1) | `<nixos-hardware/starfive/visionfive/v1>` |
|
||||
| [StarFive VisionFive 2](starfive/visionfive/v2) | `<nixos-hardware/starfive/visionfive/v2>` |
|
||||
| [Supermicro A1SRi-2758F](supermicro/a1sri-2758f) | `<nixos-hardware/supermicro/a1sri-2758f>` |
|
||||
| [Supermicro M11SDV-8C-LN4F](supermicro/m11sdv-8c-ln4f) | `<nixos-hardware/supermicro/m11sdv-8c-ln4f>` |
|
||||
| [Supermicro X10SLL-F](supermicro/x10sll-f) | `<nixos-hardware/supermicro/x10sll-f>` |
|
||||
| [Supermicro X12SCZ-TLN4F](supermicro/x12scz-tln4f) | `<nixos-hardware/supermicro/x12scz-tln4f>` |
|
||||
| [System76 (generic)](system76) | `<nixos-hardware/system76>` |
|
||||
| [System76 Darter Pro 6](system76/darp6) | `<nixos-hardware/system76/darp6>` |
|
||||
| [Toshiba Chromebook 2 `swanky`](toshiba/swanky) | `<nixos-hardware/toshiba/swanky>` |
|
||||
| [Tuxedo InfinityBook v4](tuxedo/infinitybook/v4) | `<nixos-hardware/tuxedo/infinitybook/v4>` |
|
||||
| [TUXEDO InfinityBook Pro 14 - Gen7](tuxedo/infinitybook/pro14/gen7) | `<nixos-hardware/tuxedo/infinitybook/pro14/gen7>` |
|
||||
| [TUXEDO Pulse 14 - Gen3](tuxedo/pulse/14/gen3) | `<nixos-hardware/tuxedo/pulse/14/gen3>` |
|
||||
| [TUXEDO Pulse 15 - Gen2](tuxedo/pulse/15/gen2) | `<nixos-hardware/tuxedo/pulse/15/gen2>` |
|
||||
| Model | Path |
|
||||
| --------------------------------- | -------------------------------------------------- |
|
||||
| [Acer Aspire 4810T][] | `<nixos-hardware/acer/aspire/4810t>` |
|
||||
| Airis N990 | `<nixos-hardware/airis/n990>` |
|
||||
| Apple MacBook Air 3,X | `<nixos-hardware/apple/macbook-air/3>` |
|
||||
| Apple MacBook Air 4,X | `<nixos-hardware/apple/macbook-air/4>` |
|
||||
| Apple MacBook Air 6,X | `<nixos-hardware/apple/macbook-air/6>` |
|
||||
| [Apple MacBook Pro 10,1][] | `<nixos-hardware/apple/macbook-pro/10-1>` |
|
||||
| Apple MacBook Pro 12,1 | `<nixos-hardware/apple/macbook-pro/12-1>` |
|
||||
| Asus TUF FX504GD | `<nixos-hardware/asus/fx504gd>` |
|
||||
| BeagleBoard PocketBeagle | `<nixos-hardware/beagleboard/pocketbeagle>` |
|
||||
| [Dell G3 3779][] | `<nixos-hardware/dell/g3/3779>` |
|
||||
| Dell Latitude 3480 | `<nixos-hardware/dell/latitude/3480>` |
|
||||
| Dell Precision 5530 | `<nixos-hardware/dell/precision/5530>` |
|
||||
| [Dell XPS E7240][] | `<nixos-hardware/dell/e7240>` |
|
||||
| [Dell XPS 13 7390][] | `<nixos-hardware/dell/xps/13-7390>` |
|
||||
| [Dell XPS 13 9310][] | `<nixos-hardware/dell/xps/13-9310>` |
|
||||
| [Dell XPS 13 9343][] | `<nixos-hardware/dell/xps/13-9343>` |
|
||||
| [Dell XPS 13 9360][] | `<nixos-hardware/dell/xps/13-9360>` |
|
||||
| [Dell XPS 13 9370][] | `<nixos-hardware/dell/xps/13-9370>` |
|
||||
| [Dell XPS 13 9380][] | `<nixos-hardware/dell/xps/13-9380>` |
|
||||
| [Dell XPS 15 7590][] | `<nixos-hardware/dell/xps/15-7590>` |
|
||||
| [Dell XPS 15 9550][] | `<nixos-hardware/dell/xps/15-9550>` |
|
||||
| [Dell XPS 15 9550, nvidia][] | `<nixos-hardware/dell/xps/15-9550/nvidia>` |
|
||||
| [Dell XPS 15 9560][] | `<nixos-hardware/dell/xps/15-9560>` |
|
||||
| [Dell XPS 15 9560, intel only][] | `<nixos-hardware/dell/xps/15-9560/intel>` |
|
||||
| [Dell XPS 15 9560, nvidia only][] | `<nixos-hardware/dell/xps/15-9560/nvidia>` |
|
||||
| [Dell XPS 15 9500][] | `<nixos-hardware/dell/xps/15-9500>` |
|
||||
| [Dell XPS 15 9500, nvidia][] | `<nixos-hardware/dell/xps/15-9500/nvidia>` |
|
||||
| [Google Pixelbook][] | `<nixos-hardware/google/pixelbook>` |
|
||||
| [Inverse Path USB armory][] | `<nixos-hardware/inversepath/usbarmory>` |
|
||||
| Lenovo IdeaPad Z510 | `<nixos-hardware/lenovo/ideapad/z510>` |
|
||||
| Lenovo ThinkPad E470 | `<nixos-hardware/lenovo/thinkpad/e470>` |
|
||||
| Lenovo ThinkPad E495 | `<nixos-hardware/lenovo/thinkpad/e495>` |
|
||||
| Lenovo ThinkPad L13 | `<nixos-hardware/lenovo/thinkpad/l13>` |
|
||||
| Lenovo ThinkPad L14 (Intel) | `<nixos-hardware/lenovo/thinkpad/l14/intel> |
|
||||
| Lenovo ThinkPad L14 (AMD) | `<nixos-hardware/lenovo/thinkpad/l14/amd> |
|
||||
| Lenovo ThinkPad P53 | `<nixos-hardware/lenovo/thinkpad/p53>` |
|
||||
| Lenovo ThinkPad T14 | `<nixos-hardware/lenovo/thinkpad/t14>` |
|
||||
| Lenovo ThinkPad T14 AMD Gen 1 | `<nixos-hardware/lenovo/thinkpad/t14/amd/gen1>` |
|
||||
| Lenovo ThinkPad T14s | `<nixos-hardware/lenovo/thinkpad/t14s>` |
|
||||
| Lenovo ThinkPad T14s AMD Gen 1 | `<nixos-hardware/lenovo/thinkpad/t14s/amd/gen1>` |
|
||||
| Lenovo ThinkPad T410 | `<nixos-hardware/lenovo/thinkpad/t410>` |
|
||||
| Lenovo ThinkPad T420 | `<nixos-hardware/lenovo/thinkpad/t420>` |
|
||||
| Lenovo ThinkPad T430 | `<nixos-hardware/lenovo/thinkpad/t430>` |
|
||||
| Lenovo ThinkPad T440s | `<nixos-hardware/lenovo/thinkpad/t440s>` |
|
||||
| Lenovo ThinkPad T440p | `<nixos-hardware/lenovo/thinkpad/t440p>` |
|
||||
| Lenovo ThinkPad T450s | `<nixos-hardware/lenovo/thinkpad/t450s>` |
|
||||
| Lenovo ThinkPad T460 | `<nixos-hardware/lenovo/thinkpad/t460>` |
|
||||
| Lenovo ThinkPad T460s | `<nixos-hardware/lenovo/thinkpad/t460s>` |
|
||||
| Lenovo ThinkPad T470s | `<nixos-hardware/lenovo/thinkpad/t470s>` |
|
||||
| Lenovo ThinkPad T480s | `<nixos-hardware/lenovo/thinkpad/t480s>` |
|
||||
| Lenovo ThinkPad T490 | `<nixos-hardware/lenovo/thinkpad/t490>` |
|
||||
| Lenovo ThinkPad T495 | `<nixos-hardware/lenovo/thinkpad/t495>` |
|
||||
| Lenovo ThinkPad X113 Yoga | `<nixos-hardware/lenovo/thinkpad/x13-yoga>` |
|
||||
| Lenovo ThinkPad X140e | `<nixos-hardware/lenovo/thinkpad/x140e>` |
|
||||
| Lenovo ThinkPad X200s | `<nixos-hardware/lenovo/thinkpad/x200s>` |
|
||||
| Lenovo ThinkPad X220 | `<nixos-hardware/lenovo/thinkpad/x220>` |
|
||||
| Lenovo ThinkPad X230 | `<nixos-hardware/lenovo/thinkpad/x230>` |
|
||||
| Lenovo ThinkPad X250 | `<nixos-hardware/lenovo/thinkpad/x250>` |
|
||||
| [Lenovo ThinkPad X260][] | `<nixos-hardware/lenovo/thinkpad/x260>` |
|
||||
| Lenovo ThinkPad X270 | `<nixos-hardware/lenovo/thinkpad/x270>` |
|
||||
| Lenovo ThinkPad X280 | `<nixos-hardware/lenovo/thinkpad/x280>` |
|
||||
| [Lenovo ThinkPad X1 (6th Gen)][] | `<nixos-hardware/lenovo/thinkpad/x1/6th-gen>` |
|
||||
| [Lenovo ThinkPad X1 (7th Gen)][] | `<nixos-hardware/lenovo/thinkpad/x1/7th-gen>` |
|
||||
| Lenovo ThinkPad X1 Extreme Gen 2 | `<nixos-hardware/lenovo/thinkpad/x1-extreme/gen2>` |
|
||||
| [Lenovo ThinkPad X13][] | `<nixos-hardware/lenovo/thinkpad/x13` |
|
||||
| [Microsoft Surface Range][] | `<nixos-hardware/microsoft/surface>` |
|
||||
| [Microsoft Surface Pro 3][] | `<nixos-hardware/microsoft/surface-pro/3>` |
|
||||
| [MSI GS60 2QE][] | `<nixos-hardware/msi/gs60>` |
|
||||
| PC Engines APU | `<nixos-hardware/pcengines/apu>` |
|
||||
| [Raspberry Pi 2][] | `<nixos-hardware/raspberry-pi/2>` |
|
||||
| [Raspberry Pi 4][] | `<nixos-hardware/raspberry-pi/4>` |
|
||||
| [Samsung Series 9 NP900X3C][] | `<nixos-hardware/samsung/np900x3c>` |
|
||||
| [Purism Librem 13v3][] | `<nixos-hardware/purism/librem/13v3>` |
|
||||
| [Purism Librem 15v3][] | `<nixos-hardware/purism/librem/15v3>` |
|
||||
| Supermicro A1SRi-2758F | `<nixos-hardware/supermicro/a1sri-2758f>` |
|
||||
| Supermicro X10SLL-F | `<nixos-hardware/supermicro/x10sll-f>` |
|
||||
| [System76 (generic)][] | `<nixos-hardware/system76>` |
|
||||
| [System76 Darter Pro 6][] | `<nixos-hardware/system76/darp6>` |
|
||||
| [Toshiba Chromebook 2 `swanky`][] | `<nixos-hardware/toshiba/swanky>` |
|
||||
| [Tuxedo InfinityBook v4][] | `<nixos-hardware/tuxedo/infinitybook/v4>` |
|
||||
|
||||
[Acer Aspire 4810T]: acer/aspire/4810t
|
||||
[Asus TUF FX504GD]: asus/fx504gd
|
||||
[Apple MacBook Pro 10,1]: apple/macbook-pro/10-1
|
||||
[Dell G3 3779]: dell/g3/3779
|
||||
[Dell XPS E7240]: dell/e7240
|
||||
[Dell XPS 13 7390]: dell/xps/13-7390
|
||||
[Dell XPS 13 9343]: dell/xps/13-9343
|
||||
[Dell XPS 13 9310]: dell/xps/13-9310
|
||||
[Dell XPS 13 9360]: dell/xps/13-9360
|
||||
[Dell XPS 13 9370]: dell/xps/13-9370
|
||||
[Dell XPS 13 9380]: dell/xps/13-9380
|
||||
[Dell XPS 15 7590]: dell/xps/15-7590
|
||||
[Dell XPS 15 9550]: dell/xps/15-9550
|
||||
[Dell XPS 15 9560]: dell/xps/15-9560
|
||||
[Dell XPS 15 9560, intel only]: dell/xps/15-9560/intel
|
||||
[Dell XPS 15 9560, nvidia only]: dell/xps/15-9560/nvidia
|
||||
[Google Pixelbook]: google/pixelbook
|
||||
[Inverse Path USB armory]: inversepath/usbarmory
|
||||
[Lenovo ThinkPad X1 (6th Gen)]: lenovo/thinkpad/x1/6th-gen
|
||||
[Lenovo ThinkPad X1 (7th Gen)]: lenovo/thinkpad/x1/7th-gen
|
||||
[Lenovo ThinkPad X13]: lenovo/thinkpad/x13
|
||||
[Lenovo ThinkPad X13 Yoga]: lenovo/thinkpad/x13-yoga
|
||||
[Lenovo ThinkPad X260]: lenovo/thinkpad/x260
|
||||
[Microsoft Surface Pro 3]: microsoft/surface-pro/3
|
||||
[MSI GS60 2QE]: msi/gs60
|
||||
[Raspberry Pi 2]: raspberry-pi/2
|
||||
[Samsung Series 9 NP900X3C]: samsung/np900x3c
|
||||
[System76 (generic)]: system76
|
||||
[System76 Darter Pro 6]: system76/darp6
|
||||
[Purism Librem 13v3]: purism/librem/13v3
|
||||
[Purism Librem 15v5]: purism/librem/15v5
|
||||
[Toshiba Chromebook 2 `swanky`]: toshiba/swanky
|
||||
[Tuxedo InfinityBook v4]: nixos-hardware/tuxedo/infinitybook/v4
|
||||
|
||||
## How to contribute a new device profile
|
||||
|
||||
1. Add your device profile expression in the appropriate directory
|
||||
2. Link it in the table in README.md and in flake.nix
|
||||
3. Run ./tests/run.py to test it. The test script script will parse all the profiles from the README.md
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../../common/pc/laptop ];
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
{ lib, ... }:
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
boot = {
|
||||
extraModulePackages = with config.boot.kernelPackages; [ mba6x_bl ];
|
||||
kernelModules = [ "mba6x_bl" ];
|
||||
|
||||
# Divides power consumption by two.
|
||||
kernelParams = [ "acpi_osi=" ];
|
||||
};
|
||||
|
||||
services.xserver.deviceSection = lib.mkDefault ''
|
||||
Option "Backlight" "mba6x_backlight"
|
||||
Option "TearFree" "true"
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../.
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
# TODO: boot loader
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# TODO: reverse compat
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
||||
|
|
|
@ -22,49 +22,11 @@ This configuration will **not** work with MacBook Pro 11,2 or 11,3 models.
|
|||
|
||||
## Graphics
|
||||
|
||||
The [MacBookPro11,4 and MacBookPro11,5](https://support.apple.com/kb/SP719) models ship with a discrete ATI/AMD graphics card (whereas MacBookPro11,2 and MacBookPro11,3 ship with NVidia cards). This is alongside the usual integrated Intel GPU.
|
||||
The [MacBookPro11,4 and MacBookPro11,5](https://support.apple.com/kb/SP719) models ship with a discrete ATI graphics card (whereas MacBookPro11,2 and MacBookPro11,3 ship with NVidia cards). This is alongside the usual integrated Intel GPU.
|
||||
|
||||
To switch from the older `radeon` driver to the newer `amdgpu` driver (via experimental `si_support`), include `nixos-hardware.nixosModules.common-gpu-amd-southern-islands` (or `${nixos-hardware}/common/gpu/amd/southern-islands`) in your configuration. This will get you vulkan support among other benefits.
|
||||
|
||||
For example, in your `flake.nix`:
|
||||
|
||||
```nix
|
||||
nixosConfigurations = {
|
||||
macbook-pro-11-5 = lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
nixos-hardware.nixosModules.apple-macbook-pro-11-5
|
||||
nixos-hardware.nixosModules.common-gpu-amd-southern-islands
|
||||
{
|
||||
# Your personal configuration
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
## Power management
|
||||
|
||||
You may also wish to look into dynamic switching between integrated and discrete graphics, but this config doesn't currently attempt it.
|
||||
See the removed [hardware.amdHybridGraphics.disable](https://github.com/NixOS/nixpkgs/pull/33915) option for an entry point.
|
||||
|
||||
## Hardware probes
|
||||
|
||||
Hardware probes generated with `nix run nixpkgs#hw-probe -- -all -upload`:
|
||||
|
||||
* Probe [#305905e674](https://linux-hardware.org/?probe=305905e674) of Apple MacBookPro11,5 (with `amdgpu` driver)
|
||||
|
||||
DRM (Direct Rendering Manager) snapshots generated with `drm_info -j | curl -d @- https://drmdb.emersion.fr/submit`:
|
||||
|
||||
* Snapshot [#e8f8076f1f1b](https://drmdb.emersion.fr/snapshots/e8f8076f1f1b) (with `amdgpu` driver)
|
||||
You may wish to look into dynamic switching between integrated and discrete graphics, but this config doesn't attempt it.
|
||||
|
||||
## Additional resources
|
||||
|
||||
* Arch linux wiki: [MacBookPro11,x](https://wiki.archlinux.org/index.php/MacBookPro11,x)
|
||||
* Kernel patches: [MacBookPro11,x](https://bugzilla.kernel.org/buglist.cgi?quicksearch=macbookpro11)
|
||||
|
||||
For more context about experimental `amdgpu` support, see:
|
||||
|
||||
* [Enabling AMDGPU by default for SI & CIK (November 2021)](https://gitlab.freedesktop.org/drm/amd/-/issues/1776)
|
||||
* [Enabling AMDGPU by default for SI & CIK (August 2020))](https://lists.freedesktop.org/archives/amd-gfx/2020-August/052243.html)
|
||||
* [Feature support matrix](https://wiki.gentoo.org/wiki/AMDGPU#Feature_support)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
|
||||
inherit (config.boot) kernelPackages;
|
||||
kernelPackages = config.boot.kernelPackages;
|
||||
|
||||
in
|
||||
|
||||
|
@ -10,10 +10,13 @@ in
|
|||
imports = [
|
||||
../.
|
||||
../../../common/pc/laptop/ssd
|
||||
<nixpkgs/nixos/modules/hardware/network/broadcom-43xx.nix>
|
||||
];
|
||||
|
||||
# Enable broadcom-43xx firmware
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
# Apparently this is currently only supported by ati_unfree drivers, not ati
|
||||
hardware.opengl.driSupport32Bit = false;
|
||||
|
||||
services.xserver.videoDrivers = [ "ati" ];
|
||||
|
||||
services.udev.extraRules =
|
||||
# Disable XHC1 wakeup signal to avoid resume getting triggered some time
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
# MacBook Pro 14,1
|
||||
|
||||
## Audio
|
||||
|
||||
Audio is a lost cause. Bribe an Apple or Cirrus engineer for the datasheet. ;)
|
||||
|
||||
## Thunderbolt
|
||||
|
||||
The thunderbolt module will oops upon system resume, and subsequently refuse to work until next reboot.
|
||||
|
||||
## Suspend/Resume
|
||||
|
||||
The d3cold state needs to be disabled on the NVME controller for it to wake up.
|
||||
|
||||
## Bluetooth
|
||||
The Bluetooth UART (/dev/ttyS0) is created and then deleted by udev in early boot.
|
||||
Hack around it by reloading the 8250_dw module, causing it to be re-created.
|
|
@ -1,38 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
##
|
||||
# For some reason /dev/ttyS0 is created, and then removed by udev. We need this
|
||||
# for bluetooth, and the only way to get it again is to reload 8502_dw. Do so.
|
||||
##
|
||||
|
||||
|
||||
##
|
||||
# /sys/devices/pci0000:00/0000:00:1e.0/driver -> intel-lpss
|
||||
# /sys/bus/pci/devices/0000:00:1e.0
|
||||
# /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:8a/BCM2E7C:00
|
||||
##
|
||||
|
||||
# udevadm info --query=all --path=/sys/bus/serial/devices/serial0-0
|
||||
# P: /devices/pci0000:00/0000:00:1e.0/dw-apb-uart.2/serial0/serial0-0
|
||||
# M: serial0-0
|
||||
# R: 0
|
||||
# U: serial
|
||||
# E: DEVPATH=/devices/pci0000:00/0000:00:1e.0/dw-apb-uart.2/serial0/serial0-0
|
||||
# E: SUBSYSTEM=serial
|
||||
# E: MODALIAS=acpi:BCM2E7C:APPLE-UART-BLTH:
|
||||
# E: USEC_INITIALIZED=12406199
|
||||
# E: PATH=/nix/store/56jhf2k9q31gwvhjxmm2akkkhi4a8nz1-udev-path/bin:/nix/store/56jhf2k9q31gwvhjxmm2akkkhi4a8nz1-udev-path/sbin
|
||||
# E: ID_VENDOR_FROM_DATABASE=Broadcom
|
||||
|
||||
|
||||
if [[ ! -e "/sys/devices/pci0000:00/0000:00:1e.0/dw-apb-uart.2/tty/ttyS0" ]]; then
|
||||
if [[ -e /sys/module/8250_dw ]]; then
|
||||
rmmod 8250_dw
|
||||
fi
|
||||
|
||||
modprobe 8250_dw
|
||||
fi
|
||||
|
||||
exec btattach --protocol=h4 --bredr=/dev/ttyS0 --speed=3000000
|
|
@ -1,51 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../.
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
##
|
||||
# Make the keyboard work in stage1
|
||||
# https://www.kernelconfig.io/config_keyboard_applespi
|
||||
##
|
||||
boot.initrd.kernelModules = [ "applespi" "spi_pxa2xx_platform" "intel_lpss_pci" "applesmc" ];
|
||||
|
||||
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.0") pkgs.linuxPackages_latest;
|
||||
|
||||
##
|
||||
# Disable d3cold on the NVME controller so the machine can actually
|
||||
# wake up.
|
||||
# https://github.com/Dunedan/mbp-2016-linux
|
||||
##
|
||||
systemd.services.disable-nvme-d3cold = {
|
||||
description = "Disables d3cold on the NVME controller";
|
||||
before = [ "suspend.target" ];
|
||||
path = [ pkgs.bash pkgs.coreutils ];
|
||||
|
||||
serviceConfig.Type = "oneshot";
|
||||
serviceConfig.ExecStart = "${./disable-nvme-d3cold.sh}";
|
||||
serviceConfig.TimeoutSec = 0;
|
||||
|
||||
wantedBy = [ "multi-user.target" "suspend.target" ];
|
||||
};
|
||||
|
||||
##
|
||||
# For some reason /dev/ttyS0 is created, and then removed by udev. We need this
|
||||
# for bluetooth, and the only way to get it again is to reload 8502_dw. Luckily,
|
||||
# nothing else uses it.
|
||||
##
|
||||
systemd.services.btattach-bcm2e7c = lib.mkIf config.hardware.bluetooth.enable {
|
||||
before = [ "bluetooth.target" ];
|
||||
|
||||
# Hacky, as it's a different device, but this always comes after ttyS0
|
||||
after = [ "sys-devices-platform-serial8250-tty-ttyS1.device" ];
|
||||
path = [ pkgs.bash pkgs.kmod pkgs.bluez ];
|
||||
|
||||
serviceConfig.Type = "simple";
|
||||
serviceConfig.ExecStart = "${./btfix.sh}";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
driver_path=/sys/bus/pci/devices/0000:01:00.0
|
||||
|
||||
if [[ ! -e "$driver_path" ]]; then
|
||||
echo "$driver_path does not exist, exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
driver=$(basename $(readlink "$driver_path/driver"))
|
||||
|
||||
if [[ "$driver" -ne "nvme" ]]; then
|
||||
echo "$driver_path is not an NVME device, got $driver, exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 0 > "$driver_path/d3cold_allowed"
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkDefault;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../.
|
||||
];
|
||||
|
||||
services.xserver.videoDrivers = mkDefault [ "nvidiaLegacy340" ];
|
||||
|
||||
hardware.opengl = {
|
||||
enable = mkDefault true;
|
||||
driSupport = mkDefault true;
|
||||
driSupport32Bit = mkDefault true;
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = mkDefault true;
|
||||
powerManagement.enable = mkDefault false;
|
||||
powerManagement.finegrained = mkDefault false;
|
||||
open = mkDefault false;
|
||||
nvidiaSettings = mkDefault true;
|
||||
};
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
../.
|
||||
../../common/cpu/intel
|
||||
];
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
# NixOS on T2 Macs
|
||||
|
||||
This is the `nixos-hardware` module of the [T2 Linux Project](https://t2linux.org).
|
||||
|
||||
Overall, most features (WiFi, bluetooth, audio, touchbar, ...) of Macs are supported, [see this page](https://wiki.t2linux.org/state/) for a detailed list of things that work and things that don't/partially work.
|
||||
|
||||
Following [this guide](https://wiki.t2linux.org/distributions/nixos/installation/) is the recommended way to install, as it incudes the extra things you have to do on a T2 Mac.
|
||||
|
||||
You can consult the [wiki](https://wiki.t2linux.org/) for information specific to T2 Macs.
|
||||
|
||||
## Unlocking Internal iGPU
|
||||
|
||||
The `apple-set-os-loader-installer` module serves as an installer for the [`apple-set-os-loader`](https://github.com/Redecorating/apple_set_os-loader). This tool is designed to unlock the internal integrated GPU (iGPU) on certain MacBooks. See https://wiki.t2linux.org/guides/hybrid-graphics/ for more details.
|
||||
|
||||
### What it Does:
|
||||
|
||||
Upon activation, this module performs the following:
|
||||
|
||||
- Renames the existing `BOOTX64.EFI` file to `bootx64_original.efi`.
|
||||
- Installs the `apple-set-os-loader` hook in its place as `bootx64.efi`.
|
||||
- Before the system boots the hook unlocks the iGPU and subsequently calls the original `bootx64_original.efi`.
|
||||
- Enables the iGPU by default.
|
||||
|
||||
### How to Implement:
|
||||
|
||||
1. Add this into your `configuration.nix`:
|
||||
```
|
||||
hardware.apple-t2.enableAppleSetOsLoader = true;
|
||||
```
|
||||
|
||||
2. **Rebuild your system**:
|
||||
```
|
||||
sudo nixos-rebuild switch
|
||||
```
|
||||
|
||||
> **Note**: Always ensure compatibility and make backups of your data before making any system changes.
|
|
@ -1,119 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
audioFiles = pkgs.fetchFromGitHub {
|
||||
owner = "kekrby";
|
||||
repo = "t2-better-audio";
|
||||
rev = "e46839a28963e2f7d364020518b9dac98236bcae";
|
||||
hash = "sha256-x7K0qa++P1e1vuCGxnsFxL1d9+nwMtZUJ6Kd9e27TFs=";
|
||||
};
|
||||
|
||||
audioFilesUdevRules = pkgs.runCommand "audio-files-udev-rules" {} ''
|
||||
mkdir -p $out/lib/udev/rules.d
|
||||
cp ${audioFiles}/files/*.rules $out/lib/udev/rules.d
|
||||
substituteInPlace $out/lib/udev/rules.d/*.rules --replace "/usr/bin/sed" "${pkgs.gnused}/bin/sed"
|
||||
'';
|
||||
|
||||
overrideAudioFiles = package: pluginsPath:
|
||||
package.overrideAttrs (new: old: {
|
||||
preConfigurePhases = old.preConfigurePhases or [ ] ++ [ "postPatchPhase" ];
|
||||
postPatchPhase = ''
|
||||
cp -r ${audioFiles}/files/{profile-sets,paths} ${pluginsPath}/alsa/mixer/
|
||||
'';
|
||||
});
|
||||
|
||||
pipewirePackage = overrideAudioFiles pkgs.pipewire "spa/plugins/";
|
||||
|
||||
tiny-dfrPackage = pkgs.callPackage ./pkgs/tiny-dfr.nix { };
|
||||
|
||||
apple-set-os-loader-installer = pkgs.stdenv.mkDerivation {
|
||||
name = "apple-set-os-loader-installer-1.0";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Redecorating";
|
||||
repo = "apple_set_os-loader";
|
||||
rev = "r33.9856dc4";
|
||||
sha256 = "hvwqfoF989PfDRrwU0BMi69nFjPeOmSaD6vR6jIRK2Y=";
|
||||
};
|
||||
buildInputs = [ pkgs.gnu-efi ];
|
||||
buildPhase = ''
|
||||
substituteInPlace Makefile --replace "/usr" '$(GNU_EFI)'
|
||||
export GNU_EFI=${pkgs.gnu-efi}
|
||||
make
|
||||
'';
|
||||
installPhase = ''
|
||||
install -D bootx64_silent.efi $out/bootx64.efi
|
||||
'';
|
||||
};
|
||||
|
||||
t2Cfg = config.hardware.apple-t2;
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
hardware.apple-t2.enableAppleSetOsLoader = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
description = "Whether to enable the appleSetOsLoader activation script.";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
# For keyboard and touchbar
|
||||
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.callPackage ./pkgs/linux-t2.nix { });
|
||||
boot.initrd.kernelModules = [ "apple-bce" ];
|
||||
|
||||
services.udev.packages = [ audioFilesUdevRules tiny-dfrPackage ];
|
||||
|
||||
# For audio
|
||||
boot.kernelParams = [ "pcie_ports=compat" "intel_iommu=on" "iommu=pt" ];
|
||||
|
||||
hardware.pulseaudio.package = overrideAudioFiles pkgs.pulseaudio "src/modules/";
|
||||
|
||||
services.pipewire.package = pipewirePackage;
|
||||
services.pipewire.wireplumber.package = pkgs.wireplumber.override {
|
||||
pipewire = pipewirePackage;
|
||||
};
|
||||
|
||||
# For tiny-dfr
|
||||
systemd.services.tiny-dfr = {
|
||||
enable = true;
|
||||
description = "Tiny Apple silicon touch bar daemon";
|
||||
after = [ "systemd-user-sessions.service" "getty@tty1.service" "plymouth-quit.service" "systemd-logind.service" ];
|
||||
bindsTo = [ "dev-tiny_dfr_display.device" "dev-tiny_dfr_backlight.device" ];
|
||||
startLimitIntervalSec = 30;
|
||||
startLimitBurst = 2;
|
||||
script = "${tiny-dfrPackage}/bin/tiny-dfr";
|
||||
restartTriggers = [ tiny-dfrPackage ];
|
||||
};
|
||||
|
||||
environment.etc."tiny-dfr/config.toml" = {
|
||||
source = "${tiny-dfrPackage}/share/tiny-dfr/config.toml";
|
||||
};
|
||||
|
||||
# Make sure post-resume.service exists
|
||||
powerManagement.enable = true;
|
||||
|
||||
# Activation script to install apple-set-os-loader in order to unlock the iGPU
|
||||
system.activationScripts.appleSetOsLoader = lib.optionalString t2Cfg.enableAppleSetOsLoader ''
|
||||
if [[ -e /boot/efi/efi/boot/bootx64_original.efi ]]; then
|
||||
true # It's already installed, no action required
|
||||
elif [[ -e /boot/efi/efi/boot/bootx64.efi ]]; then
|
||||
# Copy the new bootloader to a temporary location
|
||||
cp ${apple-set-os-loader-installer}/bootx64.efi /boot/efi/efi/boot/bootx64_temp.efi
|
||||
|
||||
# Rename the original bootloader
|
||||
mv /boot/efi/efi/boot/bootx64.efi /boot/efi/efi/boot/bootx64_original.efi
|
||||
|
||||
# Move the new bootloader to the final destination
|
||||
mv /boot/efi/efi/boot/bootx64_temp.efi /boot/efi/efi/boot/bootx64.efi
|
||||
else
|
||||
echo "Error: /boot/efi/efi/boot/bootx64.efi is missing" >&2
|
||||
fi
|
||||
'';
|
||||
|
||||
# Enable the iGPU by default if present
|
||||
environment.etc."modprobe.d/apple-gmux.conf".text = lib.optionalString t2Cfg.enableAppleSetOsLoader ''
|
||||
options apple-gmux force_igd=y
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
{ lib, buildLinux, fetchFromGitHub, fetchzip, runCommand
|
||||
, ... } @ args:
|
||||
|
||||
let
|
||||
patchRepo = fetchFromGitHub {
|
||||
owner = "t2linux";
|
||||
repo = "linux-t2-patches";
|
||||
rev = "8b0e51ea87f170c559c9e2f437f85367838c2fad";
|
||||
hash = "sha256-4YFaLW4WTKdFysIJHnshEaqoiKBFegnZiw4Kv88LjIA=";
|
||||
};
|
||||
|
||||
version = "6.9";
|
||||
majorVersion = with lib; (elemAt (take 1 (splitVersion version)) 0);
|
||||
in
|
||||
buildLinux (args // {
|
||||
inherit version;
|
||||
|
||||
pname = "linux-t2";
|
||||
# Snippet from nixpkgs
|
||||
modDirVersion = with lib; "${concatStringsSep "." (take 3 (splitVersion "${version}.0"))}";
|
||||
|
||||
src = runCommand "patched-source" {} ''
|
||||
cp -r ${fetchzip {
|
||||
url = "mirror://kernel/linux/kernel/v${majorVersion}.x/linux-${version}.tar.xz";
|
||||
hash = "sha256-RIxLyvF5kw/to8MjAUq2iQ4X0bGk7FY+ovE3zd0eKxM=";
|
||||
}} $out
|
||||
chmod -R u+w $out
|
||||
cd $out
|
||||
while read -r patch; do
|
||||
echo "Applying patch $patch";
|
||||
patch -p1 < $patch;
|
||||
done < <(find ${patchRepo} -type f -name "*.patch" | sort)
|
||||
'';
|
||||
|
||||
structuredExtraConfig = with lib.kernel; {
|
||||
APPLE_BCE = module;
|
||||
APPLE_GMUX = module;
|
||||
BRCMFMAC = module;
|
||||
BT_BCM = module;
|
||||
BT_HCIBCM4377 = module;
|
||||
BT_HCIUART_BCM = yes;
|
||||
BT_HCIUART = module;
|
||||
HID_APPLETB_BL = module;
|
||||
HID_APPLETB_KBD = module;
|
||||
HID_APPLE = module;
|
||||
DRM_APPLETBDRM = module;
|
||||
HID_APPLE_MAGIC_BACKLIGHT = module;
|
||||
HID_SENSOR_ALS = module;
|
||||
SND_PCM = module;
|
||||
STAGING = yes;
|
||||
};
|
||||
|
||||
kernelPatches = [];
|
||||
} // (args.argsOverride or {}))
|
|
@ -1,51 +0,0 @@
|
|||
{ pkgs, fetchFromGitHub, rustPlatform, ... }:
|
||||
|
||||
let
|
||||
repo = fetchFromGitHub {
|
||||
owner = "kekrby";
|
||||
repo = "tiny-dfr";
|
||||
rev = "8a5d413cb1dbe2a25b77a9e7f3cb5b9c88ef3ffb";
|
||||
hash = "sha256-l4D7aePz/CYpkRorrvsgIYrvSzoZl59OGcFGJqqJftk=";
|
||||
};
|
||||
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "tiny-dfr";
|
||||
version = repo.rev;
|
||||
|
||||
src = repo;
|
||||
|
||||
cargoLock.lockFile = "${src}/Cargo.lock";
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
udev
|
||||
glib
|
||||
pango
|
||||
cairo
|
||||
gdk-pixbuf
|
||||
libxml2
|
||||
libinput
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/main.rs --replace "/usr/share/tiny-dfr/" "$out/share/tiny-dfr/"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/etc $out/share
|
||||
|
||||
cp -r etc/udev $out/etc/
|
||||
cp -r share/tiny-dfr $out/share/
|
||||
'';
|
||||
|
||||
meta = with pkgs.lib; {
|
||||
description = "The most basic dynamic function row daemon possible";
|
||||
homepage = "https://github.com/kekrby/tiny-dfr";
|
||||
license = with licenses; [ asl20 bsd3 cc0 isc lgpl21Plus mit mpl20 unicode-dfs-2016 asl20 asl20-llvm mit unlicense ];
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
# [ROG Ally (2023)](https://rog.asus.com/gaming-handhelds/rog-ally/rog-ally-2023/)
|
||||
|
||||
## BIOS
|
||||
|
||||
The ROG Ally has a troublesome history with different BIOS versions creating different issues.
|
||||
At the time of writing, the current BIOS version 330 allows for working audio without further kernel patches.
|
||||
|
||||
## Further resources
|
||||
|
||||
- The steam module from https://github.com/Jovian-Experiments/Jovian-NixOS can be used to boot into the Steam Deck UI
|
|
@ -1,15 +0,0 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/cpu/amd/pstate.nix
|
||||
../../../common/gpu/amd
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
../../battery.nix
|
||||
];
|
||||
|
||||
# 6.5 adds many fixes and improvements for the Ally
|
||||
# This includes for example performance, audio and bluetooth
|
||||
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.5") (lib.mkDefault pkgs.linuxPackages_latest);
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
p = pkgs.writeScriptBin "charge-upto" ''
|
||||
echo ''${0:-100} > /sys/class/power_supply/BAT?/charge_control_end_threshold
|
||||
'';
|
||||
cfg = config.hardware.asus.battery;
|
||||
in
|
||||
|
||||
{
|
||||
options.hardware.asus.battery = {
|
||||
chargeUpto = lib.mkOption {
|
||||
description = "Maximum level of charge for your battery, as a percentage.";
|
||||
default = 100;
|
||||
type = lib.types.int;
|
||||
};
|
||||
enableChargeUptoScript = lib.mkOption {
|
||||
description = "Whether to add charge-upto to environment.systemPackages. `charge-upto 75` temporarily sets the charge limit to 75%.";
|
||||
default = true;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
config = {
|
||||
environment.systemPackages = lib.mkIf cfg.enableChargeUptoScript [ p ];
|
||||
systemd.services.battery-charge-threshold = {
|
||||
wantedBy = [ "local-fs.target" "suspend.target" ];
|
||||
after = [ "local-fs.target" "suspend.target" ];
|
||||
description = "Set the battery charge threshold to ${toString cfg.chargeUpto}%";
|
||||
startLimitBurst = 5;
|
||||
startLimitIntervalSec = 1;
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Restart = "on-failure";
|
||||
ExecStart = "${pkgs.runtimeShell} -c 'echo ${toString cfg.chargeUpto} > /sys/class/power_supply/BAT?/charge_control_end_threshold'";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
# ASUS TUF A15 FA507NV
|
||||
As Nvidia offload is not available for AMD CPU, nvidia prime is using sync. Additionally the kernel is set to the latest stable release(using boot.kernelPackages = pkgs.linuxPackages_latest) as the keyboard and wireless drivers does not work in the default NixOS kernel which is the LTS kernel.
|
|
@ -1,47 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../common/cpu/amd
|
||||
../../common/cpu/amd/raphael/igpu.nix
|
||||
../../common/cpu/amd/pstate.nix
|
||||
../../common/gpu/nvidia
|
||||
../../common/gpu/nvidia/prime.nix
|
||||
../../common/hidpi.nix
|
||||
../../common/pc/laptop
|
||||
../../common/pc/ssd
|
||||
../battery.nix
|
||||
];
|
||||
|
||||
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.6") pkgs.linuxPackages_latest;
|
||||
|
||||
# The bottom 2 parts are taken from the framework 16-inch laptops configurations.
|
||||
# Workaround for SuspendThenHibernate: https://lore.kernel.org/linux-kernel/20231106162310.85711-1-mario.limonciello@amd.com/
|
||||
boot.kernelParams = lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") ["rtc_cmos.use_acpi_alarm=1"];
|
||||
|
||||
# AMD has better battery life with PPD over TLP:
|
||||
# https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13
|
||||
services.power-profiles-daemon.enable = lib.mkDefault true;
|
||||
|
||||
# Adds the missing asus functionality to Linux.
|
||||
# https://asus-linux.org/manual/asusctl-manual/
|
||||
services = {
|
||||
asusd = {
|
||||
enable = lib.mkDefault true;
|
||||
enableUserService = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = lib.mkDefault true;
|
||||
open = lib.mkDefault false;
|
||||
nvidiaSettings = lib.mkDefault true;
|
||||
prime = {
|
||||
amdgpuBusId = "PCI:54:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../common/cpu/amd
|
||||
../../common/gpu/nvidia/prime.nix
|
||||
../../common/pc/laptop
|
||||
../../common/pc/ssd
|
||||
];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
amdgpuBusId = "PCI:5:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
<!-- vim: set fenc=utf-8 ts=2 sw=2 sts=-1 sr et si tw=0 fdm=marker fmr={{{,}}}: -->
|
||||
# [ASUS TUF Gaming F15 FX506HM (2021)](https://www.asus.com/laptops/for-gaming/tuf-gaming/2021-asus-tuf-gaming-f15/)
|
||||
|
||||
This imports common modules for the Intel CPU and iGPU, Nvidia and PRIME render offloading, basic laptop configs, basic SSD configs and configs for ASUS batteries.
|
||||
|
||||
On top of that, it sets the right PCI bus IDs for the iGPU and dGPU to make PRIME work well and enables modesetting.
|
||||
|
||||
## Useful other things to consider in your configuration
|
||||
### Battery charging limit
|
||||
Due to the common module for ASUS batteries, you can make your battery only charge up to a certain percentage to improve its life. You can place something similar to the following in your configuration to enable it:
|
||||
|
||||
```nix
|
||||
hardware.asus.battery =
|
||||
{
|
||||
chargeUpto = 85; # Maximum level of charge for your battery, as a percentage.
|
||||
enableChargeUptoScript = true; # Whether to add charge-upto to environment.systemPackages. `charge-upto 85` temporarily sets the charge limit to 85%.
|
||||
};
|
||||
```
|
||||
|
||||
### OpenRGB
|
||||
You can use OpenRGB to control the RGB keyboard on this laptop. There's also plugins for it to get some extra RGB lighting modes if you wish. You can place the following in your configuration to enable it:
|
||||
|
||||
```nix
|
||||
boot.kernelModules = [ "i2c-dev" ];
|
||||
hardware.i2c.enable = true;
|
||||
services.udev.packages = [ pkgs.openrgb ];
|
||||
services.hardware.openrgb.enable = true;
|
||||
```
|
|
@ -1,24 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
../../common/cpu/intel
|
||||
../../common/gpu/nvidia
|
||||
../../common/gpu/nvidia/prime.nix
|
||||
../../common/pc/laptop
|
||||
../../common/pc/ssd
|
||||
../battery.nix
|
||||
];
|
||||
|
||||
hardware.nvidia =
|
||||
{
|
||||
modesetting.enable = lib.mkDefault true;
|
||||
|
||||
prime =
|
||||
{
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
= ASUS Pro WS X570-ACE =
|
||||
|
||||
== Firmware issues ==
|
||||
|
||||
=== BIOS ===
|
||||
|
||||
BIOS version 4805 (and possibly older) has broken <code>X2APIC</code> mode, which in turn breaks <code>amd-pstate</code> support.
|
||||
Other possible config values for <code>APIC</code> are <code>Compatibility</code>, <code>Auto</code> and <code>XAPIC</code>; best results were observed with <code>XAPIC</code>.
|
||||
|
||||
This is the error in dmesg when <code>X2APIC</code> is enabled:
|
||||
|
||||
<code>
|
||||
amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
|
||||
</code>
|
||||
|
||||
=== IPMI ===
|
||||
|
||||
The IPMI is half-baked and for the most part unusable in a pure Linux environment, see https://forum.level1techs.com/t/remote-management-on-the-asus-pro-ws-x570-ace-under-linux
|
||||
|
||||
== Firmware features ==
|
||||
|
||||
=== IOMMU ===
|
||||
|
||||
The groups are great, it's a good board for VFIO.
|
||||
|
||||
=== ECC Memory ===
|
||||
|
||||
As stated on the product page, it works; explicitly enabling in BIOS might be required.
|
||||
Tested with <code>M391A2K43BB1-CTD</code>.
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
../../common/pc
|
||||
../../common/pc/ssd
|
||||
../../common/cpu/amd/pstate.nix
|
||||
];
|
||||
|
||||
boot.kernelModules = [
|
||||
# Nuvoton NCT6798D - temperature, voltage and RPM
|
||||
"nct6775"
|
||||
|
||||
# a single "temp1" sensor, always at "+31.9°C"
|
||||
# commented because it's not useful, but left here for reference
|
||||
# Bus `SMBus PIIX4 adapter port 1 at 0b20'
|
||||
# Busdriver `i2c_piix4', I2C address 0x4f
|
||||
# Chip `ds75'
|
||||
# "lm75"
|
||||
];
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/cpu/amd/pstate.nix
|
||||
../../../common/gpu/nvidia
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
../../battery.nix
|
||||
];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
amdgpuBusId = "PCI:05:00:0";
|
||||
nvidiaBusId = "PCI:01:00:0";
|
||||
};
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd/pstate.nix
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
../../battery.nix
|
||||
];
|
||||
|
||||
# fixing audio by overriding pins as suggested in
|
||||
# https://www.reddit.com/r/ASUS/comments/mfokva/asus_strix_scar_17_g733qs_and_linux/
|
||||
hardware.firmware = [
|
||||
(pkgs.runCommand "jack-retask" { } ''
|
||||
install -D ${./hda-jack-retask.fw} $out/lib/firmware/hda-jack-retask.fw
|
||||
'')
|
||||
];
|
||||
boot.extraModprobeConfig = ''
|
||||
options snd-hda-intel patch=hda-jack-retask.fw
|
||||
'';
|
||||
# before 5.12 it would interpret every keystroke as the power button
|
||||
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.12") (lib.mkDefault pkgs.linuxPackages_latest);
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
amdgpuBusId = "PCI:5:0:0";
|
||||
nvidiaBusId = "PCI:1:0:1";
|
||||
};
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
[codec]
|
||||
0x10ec0285 0x10431e6e 0
|
||||
|
||||
[pincfg]
|
||||
0x12 0x90a60140
|
||||
0x13 0x40000000
|
||||
0x14 0x90170152
|
||||
0x16 0x411111f0
|
||||
0x17 0x90170110
|
||||
0x18 0x411111f0
|
||||
0x19 0x03a19020
|
||||
0x1a 0x411111f0
|
||||
0x1b 0x411111f0
|
||||
0x1d 0x40663a45
|
||||
0x1e 0x90170151
|
||||
0x21 0x03211020
|
|
@ -1,47 +0,0 @@
|
|||
# Asus Zenbook Flip S13
|
||||
|
||||
This is tested on an [UX371](https://www.asus.com/laptops/for-home/zenbook/zenbook-flip-s-ux371-11th-gen-intel/).
|
||||
|
||||
## Tested Hardware
|
||||
|
||||
```bash
|
||||
lspci -nn
|
||||
0000:00:00.0 Host bridge [0600]: Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers [8086:9a14] (rev 01)
|
||||
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01)
|
||||
0000:00:04.0 Signal processing controller [1180]: Intel Corporation TigerLake-LP Dynamic Tuning Processor Participant [8086:9a03] (rev 01)
|
||||
0000:00:07.0 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #0 [8086:9a23] (rev 01)
|
||||
0000:00:07.1 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #1 [8086:9a25] (rev 01)
|
||||
0000:00:08.0 System peripheral [0880]: Intel Corporation GNA Scoring Accelerator module [8086:9a11] (rev 01)
|
||||
0000:00:0a.0 Signal processing controller [1180]: Intel Corporation Tigerlake Telemetry Aggregator Driver [8086:9a0d] (rev 01)
|
||||
0000:00:0d.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 USB Controller [8086:9a13] (rev 01)
|
||||
0000:00:0d.2 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 NHI #0 [8086:9a1b] (rev 01)
|
||||
0000:00:0e.0 RAID bus controller [0104]: Intel Corporation Volume Management Device NVMe RAID Controller [8086:9a0b]
|
||||
0000:00:12.0 Serial controller [0700]: Intel Corporation Tiger Lake-LP Integrated Sensor Hub [8086:a0fc] (rev 20)
|
||||
0000:00:14.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller [8086:a0ed] (rev 20)
|
||||
0000:00:14.2 RAM memory [0500]: Intel Corporation Tiger Lake-LP Shared SRAM [8086:a0ef] (rev 20)
|
||||
0000:00:14.3 Network controller [0280]: Intel Corporation Wi-Fi 6 AX201 [8086:a0f0] (rev 20)
|
||||
0000:00:15.0 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #0 [8086:a0e8] (rev 20)
|
||||
0000:00:15.1 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #1 [8086:a0e9] (rev 20)
|
||||
0000:00:16.0 Communication controller [0780]: Intel Corporation Tiger Lake-LP Management Engine Interface [8086:a0e0] (rev 20)
|
||||
0000:00:1d.0 System peripheral [0880]: Intel Corporation RST VMD Managed Controller [8086:09ab]
|
||||
0000:00:1f.0 ISA bridge [0601]: Intel Corporation Tiger Lake-LP LPC Controller [8086:a082] (rev 20)
|
||||
0000:00:1f.3 Multimedia audio controller [0401]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 20)
|
||||
0000:00:1f.4 SMBus [0c05]: Intel Corporation Tiger Lake-LP SMBus Controller [8086:a0a3] (rev 20)
|
||||
0000:00:1f.5 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP SPI Controller [8086:a0a4] (rev 20)
|
||||
10000:e0:1d.0 PCI bridge [0604]: Intel Corporation Tiger Lake-LP PCI Express Root Port #9 [8086:a0b0] (rev 20)
|
||||
10000:e1:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black SN750 / PC SN730 / Red SN700 NVMe SSD [15b7:5006]
|
||||
```
|
||||
|
||||
## Updating Firmware
|
||||
|
||||
First enable `fwupd` in your config
|
||||
|
||||
```nix
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
Then run
|
||||
|
||||
```bash
|
||||
$ fwupdmgr update
|
||||
```
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel/tiger-lake
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
../../battery.nix
|
||||
];
|
||||
|
||||
boot.kernelParams = lib.mkIf (config.hardware.intelgpu.driver == "xe") [
|
||||
"i915.force_probe=!9a49"
|
||||
"xe.force_probe=9a49"
|
||||
];
|
||||
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/cpu/amd/pstate.nix
|
||||
../../../common/gpu/amd
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
hardware.nvidia = {
|
||||
# Enable DRM kernel mode setting
|
||||
# This will also cause "PCI-Express Runtime D3 Power Management" to be enabled by default
|
||||
modesetting.enable = lib.mkDefault true;
|
||||
|
||||
dynamicBoost.enable = lib.mkDefault true;
|
||||
|
||||
prime = {
|
||||
amdgpuBusId = "PCI:4:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
asusd.enable = lib.mkDefault true;
|
||||
|
||||
udev.extraHwdb = ''
|
||||
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
||||
KEYBOARD_KEY_ff31007c=f20 # fixes mic mute button
|
||||
KEYBOARD_KEY_ff3100b2=home # Set fn+LeftArrow as Home
|
||||
KEYBOARD_KEY_ff3100b3=end # Set fn+RightArrow as End
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/cpu/amd/pstate.nix
|
||||
../../../common/gpu/amd
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
services = {
|
||||
asusd.enable = lib.mkDefault true;
|
||||
|
||||
# fixes mic mute button
|
||||
udev.extraHwdb = ''
|
||||
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
||||
KEYBOARD_KEY_ff31007c=f20
|
||||
'';
|
||||
};
|
||||
|
||||
boot = {
|
||||
kernelParams = [ "pcie_aspm.policy=powersupersave" ];
|
||||
};
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion = (lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.2");
|
||||
message = "The ga402 requires kernel version >=6.2 to ensure that fans are correctly managed. Please upgrade nixpkgs for this system.";
|
||||
}
|
||||
];
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
{ config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) mkDefault mkEnableOption mkIf mkMerge;
|
||||
cfg = config.hardware.asus.zephyrus.ga402x;
|
||||
|
||||
in {
|
||||
imports = [
|
||||
../shared.nix
|
||||
];
|
||||
|
||||
options.hardware.asus.zephyrus.ga402x.amdgpu = {
|
||||
recovery.enable = (mkEnableOption "Enable amdgpu.gpu_recovery kernel boot param") // { default = false; };
|
||||
sg_display.enable = (mkEnableOption "Enable amdgpu.gpu_recovery kernel boot param") // { default = true; };
|
||||
psr.enable = (mkEnableOption "Enable amdgpu.dcdebugmask=0x10 kernel boot param") // { default = true; };
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
{
|
||||
# AMD RX680
|
||||
services.xserver.videoDrivers = mkDefault [ "amdgpu" ];
|
||||
|
||||
hardware = {
|
||||
amdgpu.loadInInitrd = true;
|
||||
opengl.extraPackages = with pkgs; [
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
(mkIf cfg.amdgpu.recovery.enable {
|
||||
# Hopefully fixes for where the kernel sometimes hangs when suspending or hibernating
|
||||
# (Though, I'm very suspicious of the Mediatek Wifi...)
|
||||
boot.kernelParams = [
|
||||
"amdgpu.gpu_recovery=1"
|
||||
];
|
||||
})
|
||||
|
||||
(mkIf (!cfg.amdgpu.sg_display.enable) {
|
||||
# Can help solve flickering/glitching display issues since Scatter/Gather code was reenabled
|
||||
boot.kernelParams = [
|
||||
"amdgpu.sg_display=0"
|
||||
];
|
||||
})
|
||||
|
||||
(mkIf (!cfg.amdgpu.psr.enable) {
|
||||
# Can help solve flickering/glitching display issues since Scatter/Gather code was reenabled
|
||||
boot.kernelParams = [
|
||||
"amdgpu.dcdebugmask=0x10"
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
## When using from a Flake, you can access these via imports of the attr key, e.g:
|
||||
#
|
||||
# imports = [
|
||||
# nixos-hardware.nixosModules.asus-zephyrus-ga402x.amdgpu
|
||||
# ];
|
||||
#
|
||||
## or:
|
||||
# imports = [
|
||||
# nixos-hardware.nixosModules.asus-zephyrus-ga402x.nvidia
|
||||
# ];
|
||||
|
||||
{
|
||||
amdgpu = import ./amdgpu;
|
||||
nvidia = import ./nvidia;
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
{ lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) mkDefault;
|
||||
|
||||
in {
|
||||
imports = [
|
||||
../shared.nix
|
||||
## "prime.nix" loads this, aleady:
|
||||
# ../../../common/gpu/nvidia
|
||||
../../../../common/gpu/nvidia/prime.nix
|
||||
];
|
||||
|
||||
# NVIDIA GeForce RTX 4060 Mobile
|
||||
|
||||
boot = {
|
||||
blacklistedKernelModules = [ "nouveau" ];
|
||||
};
|
||||
|
||||
# Also in nvidia/default.nix
|
||||
services.xserver.videoDrivers = mkDefault [ "nvidia" ];
|
||||
|
||||
hardware = {
|
||||
## Enable the Nvidia card, as well as Prime and Offload:
|
||||
amdgpu.loadInInitrd = true;
|
||||
opengl.extraPackages = with pkgs; [
|
||||
# Also in nvidia/default.nix
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
];
|
||||
|
||||
nvidia = {
|
||||
modesetting.enable = true;
|
||||
nvidiaSettings = true;
|
||||
|
||||
prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
amdgpuBusId = "PCI:101:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
|
||||
powerManagement = {
|
||||
# This is unreliable on the 4060; works a few times, then hangs:
|
||||
# enable = true;
|
||||
# finegrained = true
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
{ config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) mkDefault mkIf mkMerge version versionOlder;
|
||||
in {
|
||||
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
# Better power-savings from AMD PState:
|
||||
../../../common/cpu/amd/pstate.nix
|
||||
../../../common/gpu/amd
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/acpi_call.nix
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
config = mkMerge [
|
||||
{
|
||||
# Configure basic system settings:
|
||||
boot = {
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
kernelParams = [
|
||||
"mem_sleep_default=deep"
|
||||
"pcie_aspm.policy=powersupersave"
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
asusd = {
|
||||
enable = mkDefault true;
|
||||
enableUserService = mkDefault true;
|
||||
};
|
||||
|
||||
supergfxd.enable = true;
|
||||
|
||||
udev = {
|
||||
extraHwdb = ''
|
||||
# Fixes mic mute button
|
||||
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
||||
KEYBOARD_KEY_ff31007c=f20
|
||||
'';
|
||||
extraRules = ''
|
||||
# Disable auto-suspend for the ASUS N-KEY Device, i.e. USB Keyboard
|
||||
# Otherwise, it will tend to take 1-2 key-presses to wake-up after suspending
|
||||
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/autosuspend", ATTR{idVendor}=="0b05", ATTR{idProduct}=="19b6", ATTR{power/autosuspend}="-1"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
(mkIf (versionOlder version "23.11") {
|
||||
# See https://asus-linux.org/wiki/nixos/ for info about some problems
|
||||
# detecting the dGPU:
|
||||
systemd.services.supergfxd.path = [ pkgs.pciutils ];
|
||||
})
|
||||
|
||||
(mkIf (config.networking.wireless.iwd.enable && config.networking.wireless.scanOnLowSignal) {
|
||||
# Meditek doesn't seem to be quite sensitive enough on the default roaming settings:
|
||||
# https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
|
||||
# https://wiki.archlinux.org/title/Iwd#iwd_keeps_roaming
|
||||
#
|
||||
# But NixOS doesn't have the tweaks for IWD, yet.
|
||||
networking.wireless.iwd.settings = {
|
||||
General = {
|
||||
RoamThreshold = -75;
|
||||
RoamThreshold5G = -80;
|
||||
RoamRetryInterval = 20;
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
amdgpuBusId = "PCI:6:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
|
||||
# fixes mic mute button
|
||||
services.udev.extraHwdb = ''
|
||||
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
||||
KEYBOARD_KEY_ff31007c=f20
|
||||
'';
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
amdgpuBusId = "PCI:7:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
|
||||
# fixes mic mute button
|
||||
services.udev.extraHwdb = ''
|
||||
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
||||
KEYBOARD_KEY_ff31007c=f20
|
||||
'';
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{ lib, config, ... }:
|
||||
let
|
||||
kver = config.boot.kernelPackages.kernel.version;
|
||||
in
|
||||
{
|
||||
# Enables the amd cpu scaling https://www.kernel.org/doc/html/latest/admin-guide/pm/amd-pstate.html
|
||||
# On recent AMD CPUs this can be more energy efficient.
|
||||
|
||||
imports = [ ./. ];
|
||||
boot = lib.mkMerge [
|
||||
(lib.mkIf
|
||||
(
|
||||
(lib.versionAtLeast kver "5.17")
|
||||
&& (lib.versionOlder kver "6.1")
|
||||
)
|
||||
{
|
||||
kernelParams = [ "initcall_blacklist=acpi_cpufreq_init" ];
|
||||
kernelModules = [ "amd-pstate" ];
|
||||
})
|
||||
(lib.mkIf
|
||||
(
|
||||
(lib.versionAtLeast kver "6.1")
|
||||
&& (lib.versionOlder kver "6.3")
|
||||
)
|
||||
{
|
||||
kernelParams = [ "amd_pstate=passive" ];
|
||||
})
|
||||
(lib.mkIf (lib.versionAtLeast kver "6.3") {
|
||||
kernelParams = [ "amd_pstate=active" ];
|
||||
})
|
||||
];
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
{
|
||||
# Sets the kernel version to the latest kernel to make the usage of the iGPU possible if your kernel version is too old
|
||||
# Disables scatter/gather which was introduced with kernel version 6.2
|
||||
# It produces completely white or flashing screens when enabled while using the iGPU of Ryzen 7000-series CPUs (Raphael)
|
||||
|
||||
imports = [ ../. ];
|
||||
|
||||
boot = lib.mkMerge [
|
||||
(lib.mkIf (lib.versionOlder pkgs.linux.version "6.1") {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
})
|
||||
|
||||
(lib.mkIf (lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.2") {
|
||||
kernelParams = ["amdgpu.sg_display=0"];
|
||||
})
|
||||
];
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
# Enables the zenpower sensor in lieu of the k10temp sensor on Zen CPUs https://git.exozy.me/a/zenpower3
|
||||
# On Zen CPUs zenpower produces much more data entries
|
||||
|
||||
imports = [ ./. ];
|
||||
boot.blacklistedKernelModules = [ "k10temp" ];
|
||||
boot.extraModulePackages = [ config.boot.kernelPackages.zenpower ];
|
||||
boot.kernelModules = [ "zenpower" ];
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
boot.kernelParams = [
|
||||
"i915.enable_guc=2"
|
||||
];
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
|
@ -1,6 +1,15 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./cpu-only.nix
|
||||
../../gpu/intel
|
||||
boot.initrd.kernelModules = [ "i915" ];
|
||||
|
||||
hardware.cpu.intel.updateMicrocode =
|
||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
intel-media-driver
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
boot.kernelParams = [
|
||||
"i915.enable_guc=2"
|
||||
];
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
boot.kernelParams = [
|
||||
"i915.enable_guc=2"
|
||||
];
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
imports = [ ../. ];
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf (lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8") {
|
||||
hardware.intelgpu.driver = "xe";
|
||||
})
|
||||
(lib.mkIf (config.hardware.intelgpu.driver == "i915") {
|
||||
boot.kernelParams = [ "i915.enable_guc=3" ];
|
||||
})
|
||||
];
|
||||
}
|
|
@ -1,46 +1,17 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.hardware.amdgpu.loadInInitrd = lib.mkEnableOption (lib.mdDoc
|
||||
"loading `amdgpu` kernelModule at stage 1. (Add `amdgpu` to `boot.initrd.kernelModules`)"
|
||||
) // {
|
||||
default = true;
|
||||
};
|
||||
options.hardware.amdgpu.amdvlk = lib.mkEnableOption (lib.mdDoc
|
||||
"use amdvlk drivers instead mesa radv drivers"
|
||||
);
|
||||
options.hardware.amdgpu.opencl = lib.mkEnableOption (lib.mdDoc
|
||||
"rocm opencl runtime (Install rocmPackages.clr and rocmPackages.clr.icd)"
|
||||
) // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
{
|
||||
services.xserver.videoDrivers = lib.mkDefault [ "modesetting" ];
|
||||
|
||||
hardware.opengl = {
|
||||
driSupport = lib.mkDefault true;
|
||||
driSupport32Bit = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
(lib.mkIf config.hardware.amdgpu.loadInInitrd {
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
})
|
||||
(lib.mkIf config.hardware.amdgpu.amdvlk {
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
];
|
||||
|
||||
hardware.opengl.extraPackages32 = with pkgs; [
|
||||
driversi686Linux.amdvlk
|
||||
];
|
||||
})
|
||||
(lib.mkIf config.hardware.amdgpu.opencl {
|
||||
hardware.opengl.extraPackages =
|
||||
if pkgs ? rocmPackages.clr
|
||||
then with pkgs.rocmPackages; [ clr clr.icd ]
|
||||
else with pkgs; [ rocm-opencl-icd rocm-opencl-runtime ];
|
||||
})
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
rocm-opencl-icd
|
||||
rocm-opencl-runtime
|
||||
amdvlk
|
||||
];
|
||||
}
|
||||
|
||||
hardware.opengl = {
|
||||
driSupport = lib.mkDefault true;
|
||||
driSupport32Bit = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
imports = [ ./intel ];
|
||||
|
||||
warnings = [
|
||||
''
|
||||
DEPRECATED: The <nixos-hardware/common/gpu/intel.nix> module has been deprecated.
|
||||
|
||||
Switch to using <nixos-hardware/common/gpu/intel> instead.
|
||||
''
|
||||
];
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.hardware.intelgpu.driver = lib.mkOption {
|
||||
description = "Intel GPU driver to use";
|
||||
type = lib.types.enum [
|
||||
"i915"
|
||||
"xe"
|
||||
];
|
||||
default = "i915";
|
||||
};
|
||||
|
||||
options.hardware.intelgpu.loadInInitrd =
|
||||
lib.mkEnableOption (
|
||||
lib.mdDoc "Load the Intel GPU kernel module at stage 1 boot. (Added to `boot.initrd.kernelModules`)"
|
||||
)
|
||||
// {
|
||||
default = true;
|
||||
};
|
||||
|
||||
config = {
|
||||
boot.initrd.kernelModules = [ config.hardware.intelgpu.driver ];
|
||||
|
||||
environment.variables = {
|
||||
VDPAU_DRIVER = lib.mkIf config.hardware.opengl.enable (lib.mkDefault "va_gl");
|
||||
};
|
||||
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
(
|
||||
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
|
||||
vaapiIntel
|
||||
else
|
||||
intel-vaapi-driver
|
||||
)
|
||||
libvdpau-va-gl
|
||||
intel-media-driver
|
||||
];
|
||||
|
||||
hardware.opengl.extraPackages32 = with pkgs.driversi686Linux; [
|
||||
(
|
||||
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
|
||||
vaapiIntel
|
||||
else
|
||||
intel-vaapi-driver
|
||||
)
|
||||
libvdpau-va-gl
|
||||
intel-media-driver
|
||||
];
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion = (
|
||||
config.hardware.intelgpu.driver != "xe"
|
||||
|| lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8"
|
||||
);
|
||||
message = "Intel Xe GPU driver is not supported on kernels earlier than 6.8. Update or use the i915 driver.";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
boot.blacklistedKernelModules = lib.mkDefault [ "i915" ];
|
||||
# KMS will load the module, regardless of blacklisting
|
||||
boot.kernelParams = lib.mkDefault [ "i915.modeset=0" ];
|
||||
}
|
|
@ -1,11 +1,10 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./nvidia/disable.nix ];
|
||||
# This runs only Intel and nvidia does not drain power.
|
||||
|
||||
warnings = [
|
||||
''
|
||||
DEPRECATED: The <nixos-hardware/common/gpu/nvidia-disable.nix> module has been deprecated.
|
||||
|
||||
Switch to using <nixos-hardware/common/gpu/nvidia/disable.nix> instead.
|
||||
''
|
||||
];
|
||||
##### disable nvidia, very nice battery life.
|
||||
hardware.nvidiaOptimus.disable = lib.mkDefault true;
|
||||
boot.blacklistedKernelModules = lib.mkDefault [ "nouveau" "nvidia" ];
|
||||
services.xserver.videoDrivers = lib.mkDefault [ "intel" ];
|
||||
}
|
||||
|
|
|
@ -1,12 +1,22 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
# This creates a new 'nvidia-offload' program that runs the application passed to it on the GPU
|
||||
# As per https://nixos.wiki/wiki/Nvidia
|
||||
let
|
||||
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
export __VK_LAYER_NV_optimus=NVIDIA_only
|
||||
exec -a "$0" "$@"
|
||||
'';
|
||||
in
|
||||
{
|
||||
imports = [ ./nvidia/prime.nix ];
|
||||
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
|
||||
environment.systemPackages = [ nvidia-offload ];
|
||||
|
||||
warnings = [
|
||||
''
|
||||
DEPRECATED: The <nixos-hardware/common/gpu/nvidia.nix> module has been deprecated.
|
||||
|
||||
Switch to using <nixos-hardware/common/gpu/nvidia/prime.nix> instead if you use prime offloading.
|
||||
If you are using this without prime, consider switching to <nixos-hardware/common/gpu/nvidia> instead.
|
||||
''
|
||||
];
|
||||
hardware.nvidia.prime = {
|
||||
offload.enable = lib.mkDefault true;
|
||||
# Hardware should specify the bus ID for intel/nvidia devices
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
vaapiVdpau
|
||||
];
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
# This runs only intel/amdgpu igpus and nvidia dgpus do not drain power.
|
||||
|
||||
##### disable nvidia, very nice battery life.
|
||||
boot.extraModprobeConfig = ''
|
||||
blacklist nouveau
|
||||
options nouveau modeset=0
|
||||
'';
|
||||
|
||||
services.udev.extraRules = ''
|
||||
# Remove NVIDIA USB xHCI Host Controller devices, if present
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
|
||||
# Remove NVIDIA USB Type-C UCSI devices, if present
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
|
||||
# Remove NVIDIA Audio devices, if present
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
|
||||
# Remove NVIDIA VGA/3D controller devices
|
||||
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||
'';
|
||||
boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ];
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./. ];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
# For people who want to use sync instead of offload. Especially for AMD CPU users
|
||||
sync.enable = lib.mkOverride 990 true;
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./. ];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
offload = {
|
||||
enable = lib.mkOverride 990 true;
|
||||
enableOffloadCmd = lib.mkIf config.hardware.nvidia.prime.offload.enable true; # Provides `nvidia-offload` command.
|
||||
};
|
||||
# Hardware should specify the bus ID for intel/nvidia devices
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{ lib, pkgs, ... }:
|
||||
let
|
||||
# This option is removed from NixOS 23.05 and up
|
||||
nixosVersion = lib.versions.majorMinor lib.version;
|
||||
config = if lib.versionOlder nixosVersion "23.05" then {
|
||||
hardware.video.hidpi.enable = lib.mkDefault true;
|
||||
} else {
|
||||
# Just set the console font, don't mess with the font settings
|
||||
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
|
||||
console.earlySetup = lib.mkDefault true;
|
||||
};
|
||||
in config
|
|
@ -4,4 +4,6 @@
|
|||
boot.blacklistedKernelModules = lib.optionals (!config.hardware.enableRedistributableFirmware) [
|
||||
"ath3k"
|
||||
];
|
||||
|
||||
services.xserver.libinput.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
|
@ -1 +1,7 @@
|
|||
{}
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
"vm.swappiness" = lib.mkDefault 10;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# acpi_call makes tlp work for newer thinkpads
|
||||
|
||||
{ config, lib, ... }:
|
||||
{ config, ... }:
|
||||
|
||||
{
|
||||
boot = lib.mkIf config.services.tlp.enable {
|
||||
boot = {
|
||||
kernelModules = [ "acpi_call" ];
|
||||
extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];
|
||||
};
|
||||
|
|
|
@ -3,9 +3,5 @@
|
|||
{
|
||||
imports = [ ../. ];
|
||||
|
||||
# Gnome 40 introduced a new way of managing power, without tlp.
|
||||
# However, these 2 services clash when enabled simultaneously.
|
||||
# https://github.com/NixOS/nixos-hardware/issues/260
|
||||
services.tlp.enable = lib.mkDefault ((lib.versionOlder (lib.versions.majorMinor lib.version) "21.05")
|
||||
|| !config.services.power-profiles-daemon.enable);
|
||||
services.tlp.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
"vm.swappiness" = lib.mkDefault 1;
|
||||
};
|
||||
|
||||
services.fstrim.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
boot.kernelParams = [ "console=ttyS0,115200n8" ];
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../common/cpu/intel
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{ lib, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/gpu/nvidia.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
# Dell Inspiron 14 5420
|
||||
|
||||
### Hardware
|
||||
- CPU: Intel® Core™ i7-1260P Processor
|
||||
- GPU: Intel® Iris® Xe Graphics
|
||||
|
||||
### Other Info
|
||||
`fwupd` is used to receive firmware updates from vendors. This device is in its [supported devices list](https://fwupd.org/lvfs/devices/)
|
||||
|
||||
`thermald` is used to achieve better thermal behaviour
|
||||
|
||||
##### TLP
|
||||
TLP is a battery power optimizer for laptops. It is enabled by default, however, since it conflicts with power-profiles-daemon which is GNOME's power management system, TLP will not be installed with if power-profiles-daemon or a recent version of GNOME is present.
|
|
@ -1,22 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
hardware = {
|
||||
enableRedistributableFirmware = lib.mkDefault true;
|
||||
};
|
||||
|
||||
services = {
|
||||
fwupd = {
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
thermald = {
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
## Dell Inspiron 5509
|
||||
|
||||
### Tested Hardware
|
||||
``` shellsession
|
||||
$ lspci -nn
|
||||
00:00.0 Host bridge [0600]: Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers [8086:9a14] (rev 01)
|
||||
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01)
|
||||
00:04.0 Signal processing controller [1180]: Intel Corporation TigerLake-LP Dynamic Tuning Processor Participant [8086:9a03] (rev 01)
|
||||
00:06.0 PCI bridge [0604]: Intel Corporation 11th Gen Core Processor PCIe Controller [8086:9a09] (rev 01)
|
||||
00:07.0 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #0 [8086:9a23] (rev 01)
|
||||
00:0a.0 Signal processing controller [1180]: Intel Corporation Tigerlake Telemetry Aggregator Driver [8086:9a0d] (rev 01)
|
||||
00:0d.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 USB Controller [8086:9a13] (rev 01)
|
||||
00:0d.2 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 NHI #0 [8086:9a1b] (rev 01)
|
||||
00:12.0 Serial controller [0700]: Intel Corporation Tiger Lake-LP Integrated Sensor Hub [8086:a0fc] (rev 20)
|
||||
00:14.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller [8086:a0ed] (rev 20)
|
||||
00:14.2 RAM memory [0500]: Intel Corporation Tiger Lake-LP Shared SRAM [8086:a0ef] (rev 20)
|
||||
00:15.0 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #0 [8086:a0e8] (rev 20)
|
||||
00:15.1 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #1 [8086:a0e9] (rev 20)
|
||||
00:16.0 Communication controller [0780]: Intel Corporation Tiger Lake-LP Management Engine Interface [8086:a0e0] (rev 20)
|
||||
00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:a0be] (rev 20)
|
||||
00:1f.0 ISA bridge [0601]: Intel Corporation Tiger Lake-LP LPC Controller [8086:a082] (rev 20)
|
||||
00:1f.3 Multimedia audio controller [0401]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 20)
|
||||
00:1f.4 SMBus [0c05]: Intel Corporation Tiger Lake-LP SMBus Controller [8086:a0a3] (rev 20)
|
||||
00:1f.5 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP SPI Controller [8086:a0a4] (rev 20)
|
||||
01:00.0 Non-Volatile memory controller [0108]: SK hynix Device [1c5c:174a]
|
||||
2c:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)
|
||||
```
|
||||
|
||||
### Before Installation
|
||||
|
||||
These settings are needed both for booting the final install, and
|
||||
installer itself. Therefore, they must be done first:
|
||||
|
||||
+ Disable *Secure* Boot (but keep **UEFI** Boot)
|
||||
+ Disable *RAID* and use **AHCI**
|
||||
|
||||
### Firmware Upgrades
|
||||
|
||||
Note that this device is supported by [fwupd](https://fwupd.org).
|
||||
To perform firmware upgrades just activate the service:
|
||||
|
||||
```
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
Then use `fwupdmgr` to perform updates
|
|
@ -1,21 +0,0 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/gpu/intel
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
# Essential Firmware
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
|
||||
# Cooling Management
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
|
||||
# Touchpad
|
||||
services.xserver = {
|
||||
libinput.touchpad.tapping = true;
|
||||
libinput.touchpad.tappingDragLock = true;
|
||||
};
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
## Dell Inspiron 5509
|
||||
|
||||
### Tested Hardware
|
||||
``` shellsession
|
||||
$ lspci -nn
|
||||
00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Root Complex [1022:1630]
|
||||
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Renoir IOMMU [1022:1631]
|
||||
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
|
||||
00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
|
||||
00:02.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge [1022:1634]
|
||||
00:02.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge [1022:1634]
|
||||
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
|
||||
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus [1022:1635]
|
||||
00:08.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus [1022:1635]
|
||||
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 51)
|
||||
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
|
||||
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 0 [1022:1448]
|
||||
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 1 [1022:1449]
|
||||
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 2 [1022:144a]
|
||||
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 3 [1022:144b]
|
||||
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 4 [1022:144c]
|
||||
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 5 [1022:144d]
|
||||
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 6 [1022:144e]
|
||||
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 7 [1022:144f]
|
||||
01:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
|
||||
02:00.0 Non-Volatile memory controller [0108]: KIOXIA Corporation Device [1e0f:0001]
|
||||
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Lucienne [1002:164c] (rev c1)
|
||||
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:1637]
|
||||
03:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor [1022:15df]
|
||||
03:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 [1022:1639]
|
||||
03:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 [1022:1639]
|
||||
03:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor [1022:15e2] (rev 01)
|
||||
03:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller [1022:15e3]
|
||||
04:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 81)
|
||||
04:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 81)
|
||||
```
|
||||
|
||||
### Before Installation
|
||||
|
||||
These settings are needed both for booting the final install, and
|
||||
installer itself. Therefore, they must be done first:
|
||||
|
||||
+ Disable *Secure* Boot (but keep **UEFI** Boot)
|
||||
+ Disable *RAID* and use **AHCI**
|
||||
|
||||
### Firmware Upgrades
|
||||
|
||||
Note that this device is supported by [fwupd](https://fwupd.org).
|
||||
To perform firmware upgrades just activate the service:
|
||||
|
||||
```
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
Then use `fwupdmgr` to perform updates
|
|
@ -1,37 +0,0 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/ssd
|
||||
];
|
||||
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
|
||||
# touchpad identifies itself as DELL0A78:00 27C6:0D42 Touchpad in xinput list
|
||||
# it sometimes fails to register (ps2 mouse emulation works, but not scrolling)
|
||||
# hack around it by unloading and reloading module i2c_hid
|
||||
systemd.services.fix-touchpad = {
|
||||
path = [ pkgs.kmod ];
|
||||
serviceConfig.ExecStart = ''${pkgs.systemd}/bin/systemd-inhibit --what=sleep --why="fixing touchpad must finish before sleep" --mode=delay ${./fix_touchpad.sh}'';
|
||||
serviceConfig.Type = "oneshot";
|
||||
description = "reload touchpad driver";
|
||||
# must run at boot (and not too early), and after suspend
|
||||
wantedBy = [ "display-manager.service" "post-resume.target" ];
|
||||
# prevent running before suspend
|
||||
after = [ "post-resume.target" ];
|
||||
};
|
||||
|
||||
# so that post-resume.service exists
|
||||
powerManagement.enable = true;
|
||||
|
||||
|
||||
# fix suspend
|
||||
# https://bbs.archlinux.org/viewtopic.php?id=266108 says linux >= 5.12 required
|
||||
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.12") pkgs.linuxPackages_latest;
|
||||
|
||||
# sometimes boots to a black screen, and pressing alt+sysrq+k makes the
|
||||
# display manager start
|
||||
# fixed by early kernel modesetting
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eux
|
||||
|
||||
unload () {
|
||||
if modprobe -r "$1" 2>&1;
|
||||
then echo ok
|
||||
else echo fail
|
||||
fi
|
||||
}
|
||||
|
||||
wait_unload() {
|
||||
while sleep 1; do
|
||||
output="$(unload "$1")"
|
||||
case "$output" in
|
||||
*is\ in\ use*) :;;
|
||||
*ok*) return 0;;
|
||||
*) echo "modprobe said: $output"; echo giving up; return 1;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
wait_unload i2c_hid_acpi
|
||||
wait_unload i2c_hid
|
||||
modprobe i2c_hid
|
||||
modprobe i2c_hid_acpi
|
|
@ -1,49 +0,0 @@
|
|||
## Dell Inspiron 7405
|
||||
|
||||
### Tested Hardware
|
||||
|
||||
``` shellsession
|
||||
$ lspci -nn
|
||||
00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex [1022:1630]
|
||||
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU [1022:1631]
|
||||
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
|
||||
00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
|
||||
00:02.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge [1022:1634]
|
||||
00:02.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge [1022:1634]
|
||||
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge [1022:1632]
|
||||
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus [1022:1635]
|
||||
00:08.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus [1022:1635]
|
||||
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 51)
|
||||
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
|
||||
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 0 [1022:1448]
|
||||
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 1 [1022:1449]
|
||||
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 2 [1022:144a]
|
||||
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 3 [1022:144b]
|
||||
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 4 [1022:144c]
|
||||
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 5 [1022:144d]
|
||||
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 6 [1022:144e]
|
||||
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 7 [1022:144f]
|
||||
01:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
|
||||
02:00.0 Non-Volatile memory controller [0108]: SK hynix BC511 [1c5c:1339]
|
||||
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c2)
|
||||
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller [1002:1637]
|
||||
03:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor [1022:15df]
|
||||
03:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 [1022:1639]
|
||||
03:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 [1022:1639]
|
||||
03:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor [1022:15e2] (rev 01)
|
||||
03:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
|
||||
03:00.7 Signal processing controller [1180]: Advanced Micro Devices, Inc. [AMD] Sensor Fusion Hub [1022:15e4]
|
||||
04:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 81)
|
||||
04:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 81)
|
||||
```
|
||||
|
||||
### Extra Configuration
|
||||
|
||||
#### Bluetooth
|
||||
|
||||
To enable bluetooth support, set `hardware.bluetooth.enable = true;`.
|
||||
|
||||
#### Firmware Upgrades
|
||||
|
||||
This device is partially supported by [fwupd](https://fwupd.org).\
|
||||
To perform firmware upgrades, add `services.fwupd.enable = true;`, then use `fwupdmgr` to perform updates.
|
|
@ -1,17 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/gpu/amd
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
# TSC is unstable
|
||||
boot.kernelParams = [ "notsc" "trace_clock=local" ];
|
||||
|
||||
hardware.enableRedistributableFirmware = mkDefault true;
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
# Dell Latitude 5520
|
||||
|
||||
## Hardware
|
||||
|
||||
- 11th Gen Intel® Core™ i7-1185G7, vPro® (12 MB cache, 4 cores, 8 threads, 3.00 to 4.80 GHz Turbo)
|
||||
- Intel® Iris® Xe Graphics Capable with Thunderbolt for i7-1185G7 vPro® processor
|
||||
- 15.6" FHD (1920x1080) Non-Touch, Anti-Glare, 250nits
|
||||
- 16 GB, 1 x 16 GB, DDR4, 3200 MHz
|
||||
- 512 GB, M.2, PCIe NVMe, SSD, Class 35
|
||||
- Dimensions
|
||||
- Height: 0.78 in. (19.87 mm)
|
||||
- Width: 14.09 in. (357.8 mm)
|
||||
- Depth: 9.19 in. (233.3 mm)
|
||||
- Weight: 3.50 lbs. (1.59 kg)
|
||||
- Power
|
||||
- 4 Cell, 63 Wh, ExpressCharge™ Capable
|
||||
- 65W Type-C EPEAT Adapter
|
||||
- Ports
|
||||
- 1 RJ-45 Ethernet port
|
||||
- 1 USB 3.2 Gen 1 port
|
||||
- 1 USB 3.2 Gen 1 port with PowerShare
|
||||
- 2 Thunderbolt 4 ports with DisplayPort Alt Mode/USB4/Power Delivery for 11th Generation Intel® Core™ i3/i5/i7 processors
|
||||
- 1 HDMI 2.0 port for 11th Generation Intel® Core™ i3/i5/i7 processors
|
||||
- 1 Universal audio port
|
||||
|
||||
```shellsession
|
||||
↳ lspci -nn
|
||||
00:00.0 Host bridge [0600]: Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers [8086:9a14] (rev 01)
|
||||
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01)
|
||||
00:04.0 Signal processing controller [1180]: Intel Corporation TigerLake-LP Dynamic Tuning Processor Participant [8086:9a03] (rev 01)
|
||||
00:07.0 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #0 [8086:9a23] (rev 01)
|
||||
00:07.1 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #1 [8086:9a25] (rev 01)
|
||||
00:0d.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 USB Controller [8086:9a13] (rev 01)
|
||||
00:0d.2 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 NHI #0 [8086:9a1b] (rev 01)
|
||||
00:12.0 Serial controller [0700]: Intel Corporation Tiger Lake-LP Integrated Sensor Hub [8086:a0fc] (rev 20)
|
||||
00:14.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller [8086:a0ed] (rev 20)
|
||||
00:14.2 RAM memory [0500]: Intel Corporation Tiger Lake-LP Shared SRAM [8086:a0ef] (rev 20)
|
||||
00:14.3 Network controller [0280]: Intel Corporation Wi-Fi 6 AX201 [8086:a0f0] (rev 20)
|
||||
00:15.0 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #0 [8086:a0e8] (rev 20)
|
||||
00:15.1 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #1 [8086:a0e9] (rev 20)
|
||||
00:16.0 Communication controller [0780]: Intel Corporation Tiger Lake-LP Management Engine Interface [8086:a0e0] (rev 20)
|
||||
00:16.3 Serial controller [0700]: Intel Corporation Device [8086:a0e3] (rev 20)
|
||||
00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:a0be] (rev 20)
|
||||
00:1d.0 PCI bridge [0604]: Intel Corporation Tiger Lake-LP PCI Express Root Port #9 [8086:a0b0] (rev 20)
|
||||
00:1f.0 ISA bridge [0601]: Intel Corporation Tiger Lake-LP LPC Controller [8086:a082] (rev 20)
|
||||
00:1f.3 Audio device [0403]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 20)
|
||||
00:1f.4 SMBus [0c05]: Intel Corporation Tiger Lake-LP SMBus Controller [8086:a0a3] (rev 20)
|
||||
00:1f.5 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP SPI Controller [8086:a0a4] (rev 20)
|
||||
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (13) I219-LM [8086:15fb] (rev 20)
|
||||
71:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader [10ec:525a] (rev 01)
|
||||
72:00.0 Non-Volatile memory controller [0108]: SK hynix Device [1c5c:174a]
|
||||
```
|
||||
|
||||
## Firmware Upgrade Manager
|
||||
|
||||
_Dell Latitude 5520_ seems to be supported by [fwupd](https://fwupd.org), as it is found in the [device list](https://fwupd.org/lvfs/devices/). Use `fwupdmgr` to perform updates.
|
||||
|
||||
## Other Stuff
|
||||
|
||||
Here I list a few useful things from other configs. As I don't fully understand the implications I didn't enable them.
|
||||
|
||||
- `services.throttled.enable`: a fix for Intel CPU throttling
|
||||
- `boot.blacklistedKernelModules = [ "psmouse" ];`: "touchpad goes over i2c" (whatever that means)
|
||||
- `boot.blacklistedKernelModules = [ "firewire_ohci" ];`: fix for SD card reader (from the [Arch Wiki](https://wiki.archlinux.org/title/Dell_Latitude_E5520))
|
||||
- `boot.kernelParams = [ "mem_sleep_default=deep" ];`: Force S3 sleep mode to preserve battery during sleep
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
# Essential Firmware
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
|
||||
# Cooling Management
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
|
||||
# Enable fwupd
|
||||
services.fwupd.enable = lib.mkDefault true;
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop
|
||||
];
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
boot.kernelParams = [
|
||||
# needed for Intel Iris Xe
|
||||
"i915.force_probe=46a8"
|
||||
"i915.enable_guc=3"
|
||||
"i915.fastboot=1"
|
||||
# needed for keyboard
|
||||
"i8042.dumbkbd=1"
|
||||
"i8042.nopnp=1"
|
||||
];
|
||||
|
||||
services.xserver.videoDrivers = lib.mkDefault [ "intel" ];
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
= Dell Latitude 7490 =
|
||||
|
||||
== Tested Hardware ==
|
||||
|
||||
``` shellsession
|
||||
$ lspci -nn
|
||||
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
|
||||
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
|
||||
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
|
||||
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
|
||||
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
|
||||
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
|
||||
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
|
||||
00:15.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 (rev 21)
|
||||
00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
|
||||
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
|
||||
00:16.3 Serial controller: Intel Corporation Sunrise Point-LP Active Management Technology - SOL (rev 21)
|
||||
00:17.0 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 21)
|
||||
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
|
||||
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #3 (rev f1)
|
||||
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
|
||||
00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC Controller/eSPI Controller (rev 21)
|
||||
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
|
||||
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
|
||||
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
|
||||
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (4) I219-LM (rev 21)
|
||||
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
|
||||
02:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
|
||||
```
|
||||
|
||||
=== Before installation ===
|
||||
|
||||
These settings are needed both for booting the final install, and
|
||||
installer itself. Therefore, they must be done first.
|
||||
|
||||
- ''Disable Secure Boot (but keep UEFI Boot).''
|
|
@ -1,10 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop
|
||||
];
|
||||
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
[Dell Poweredge R7515](https://www.dell.com/en-us/work/shop/productdetailstxn/poweredge-r7515#techspecs_section)
|
||||
|
||||
## Install bios update via UEFI
|
||||
|
||||
UEFI updates cannot be updated via the iDrac since it only supports BIOS
|
||||
firmware files. If you use systemd boot you can however download the EFI
|
||||
firmware file and put it in `/boot/EFI/Dell/bios-update.efi`.
|
||||
|
||||
Also write the following efi boot entry file as
|
||||
`/boot/loader/entries/z-efi-update.conf`:
|
||||
|
||||
```
|
||||
title EFI update
|
||||
efi /efi/Dell/bios-update.efi
|
||||
```
|
|
@ -1,6 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
];
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./intel
|
||||
];
|
||||
|
||||
# Boot loader
|
||||
boot.kernelParams = [
|
||||
# fix lspci hanging with nouveau
|
||||
# source https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1803179/comments/149
|
||||
"acpi_rev_override=1"
|
||||
"acpi_osi=Linux"
|
||||
"nouveau.modeset=0"
|
||||
"pcie_aspm=force"
|
||||
"drm.vblankoffdelay=1"
|
||||
"nouveau.runpm=0"
|
||||
"mem_sleep_default=deep"
|
||||
# fix flicker
|
||||
# source https://wiki.archlinux.org/index.php/Intel_graphics#Screen_flickering
|
||||
"i915.enable_psr=0"
|
||||
];
|
||||
|
||||
boot.kernelModules = lib.mkDefault [ "kvm-intel" ];
|
||||
|
||||
# Recommended in NixOS/nixos-hardware#127
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
../../../../common/cpu/intel
|
||||
../../../../common/pc/laptop
|
||||
../../../../common/gpu/nvidia/disable.nix
|
||||
];
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
|
@ -5,18 +7,16 @@
|
|||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
|
||||
# https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1803179/comments/149
|
||||
# fix lspci hanging with nouveau
|
||||
boot.kernelParams = [
|
||||
# fix lspci hanging with nouveau
|
||||
# source https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1803179/comments/149
|
||||
"acpi_rev_override=1"
|
||||
"acpi_osi=Linux"
|
||||
"nouveau.modeset=0"
|
||||
"pcie_aspm=force"
|
||||
"drm.vblankoffdelay=1"
|
||||
"scsi_mod.use_blk_mq=1"
|
||||
"nouveau.runpm=0"
|
||||
"mem_sleep_default=deep"
|
||||
# fix flicker
|
||||
# source https://wiki.archlinux.org/index.php/Intel_graphics#Screen_flickering
|
||||
"i915.enable_psr=0"
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
# Dell Precision 7520
|
||||
|
||||
This configuration opts to use the non-free nvidia driver, as UI glitching was often observed with `nouveau` when using
|
||||
a compositor.
|
||||
|
||||
## Device Details
|
||||
|
||||
- Dell Precision 7520 (07B0)
|
||||
- Intel Core i7-7820HQ CPU (Kaby Lake)
|
||||
- 32GB RAM
|
||||
- SK hynix SC311 SATA 1TB
|
||||
- Intel HD Graphics 630 (Coffee Lake)
|
||||
- NVIDIA GM206GLM [Quadro M2200 Mobile]
|
||||
|
||||
## Tested Hardware
|
||||
|
||||
```bash
|
||||
❯ lspci -nn
|
||||
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5910] (rev 05)
|
||||
00:01.0 PCI bridge [0604]: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 05)
|
||||
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 630 [8086:591b] (rev 04)
|
||||
00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 05)
|
||||
00:14.0 USB controller [0c03]: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller [8086:a12f] (rev 31)
|
||||
00:14.2 Signal processing controller [1180]: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem [8086:a131] (rev 31)
|
||||
00:15.0 Signal processing controller [1180]: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #0 [8086:a160] (rev 31)
|
||||
00:15.1 Signal processing controller [1180]: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #1 [8086:a161] (rev 31)
|
||||
00:16.0 Communication controller [0780]: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 [8086:a13a] (rev 31)
|
||||
00:17.0 RAID bus controller [0104]: Intel Corporation SATA Controller [RAID mode] [8086:2822] (rev 31)
|
||||
00:1c.0 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #2 [8086:a111] (rev f1)
|
||||
00:1c.2 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #3 [8086:a112] (rev f1)
|
||||
00:1c.4 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 [8086:a114] (rev f1)
|
||||
00:1f.0 ISA bridge [0601]: Intel Corporation CM238 Chipset LPC/eSPI Controller [8086:a154] (rev 31)
|
||||
00:1f.2 Memory controller [0580]: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller [8086:a121] (rev 31)
|
||||
00:1f.3 Audio device [0403]: Intel Corporation CM238 HD Audio Controller [8086:a171] (rev 31)
|
||||
00:1f.4 SMBus [0c05]: Intel Corporation 100 Series/C230 Series Chipset Family SMBus [8086:a123] (rev 31)
|
||||
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (5) I219-LM [8086:15e3] (rev 31)
|
||||
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM206GLM [Quadro M2200 Mobile] [10de:1436] (rev a1)
|
||||
01:00.1 Audio device [0403]: NVIDIA Corporation GM206 High Definition Audio Controller [10de:0fba] (rev a1)
|
||||
02:00.0 Network controller [0280]: Intel Corporation Wireless 8265 / 8275 [8086:24fd] (rev 78)
|
||||
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader [10ec:525a] (rev 01)
|
||||
04:00.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02)
|
||||
05:00.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02)
|
||||
05:01.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02)
|
||||
05:02.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02)
|
||||
3c:00.0 USB controller [0c03]: Intel Corporation JHL6340 Thunderbolt 3 USB 3.1 Controller (C step) [Alpine Ridge 2C 2016] [8086:15db] (rev 02)
|
||||
```
|
||||
|
||||
## Doesn't work
|
||||
|
||||
- External monitor for luks passphrase entry
|
||||
|
||||
## Firmware Upgrades
|
||||
|
||||
Note that this device is supported by fwupd. To perform firmware upgrades just activate the service:
|
||||
|
||||
```nix
|
||||
services.fwupd.enable = true;
|
||||
```
|
||||
|
||||
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.
|
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../../common/cpu/intel/kaby-lake
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
../../../common/gpu/nvidia
|
||||
];
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
||||
|
||||
boot = {
|
||||
kernelModules = ["kvm-intel"];
|
||||
blacklistedKernelModules = ["nouveau"];
|
||||
};
|
||||
boot.kernelParams = ["i915.modeset=1"];
|
||||
|
||||
hardware.nvidia = {
|
||||
package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
|
||||
nvidiaSettings = lib.mkDefault true;
|
||||
modesetting.enable = lib.mkDefault true;
|
||||
open = lib.mkDefault false;
|
||||
prime = {
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
hardware.opengl = {
|
||||
enable = lib.mkDefault true;
|
||||
driSupport = lib.mkDefault true;
|
||||
driSupport32Bit = lib.mkDefault true;
|
||||
};
|
||||
|
||||
# Override the intel gpu driver setting imported above
|
||||
environment.variables = {
|
||||
VDPAU_DRIVER = lib.mkIf config.hardware.opengl.enable (lib.mkOverride 990 "nvidia");
|
||||
};
|
||||
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
|
||||
# available cpufreq governors: performance powersave
|
||||
# The powersave mode locks the cpu to a 900mhz frequency which is not ideal
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||
}
|
|
@ -4,17 +4,13 @@
|
|||
|
||||
You need to disable RAID and use AHCI instead as described [https://wiki.ubuntu.com/Dell/XPS/XPS-13-7390-2-in-1 here].
|
||||
|
||||
== Known Issues ==
|
||||
|
||||
If your BIOS version is greater than or equal to 1.0.13, you may need to add
|
||||
|
||||
<code>
|
||||
systemd.sleep.extraConfig = "SuspendState=freeze";
|
||||
</code>
|
||||
|
||||
to your <code>configuration.nix</code> if you cannot wake from "Sleep". See reference [https://askubuntu.com/a/1194128 here].
|
||||
|
||||
== Firmware upgrades ==
|
||||
|
||||
Note that this device is supported by [https://fwupd.org/ fwupd].
|
||||
To perform updates, simply use <code>fwupdmgr</code>.
|
||||
To perform firmware upgrades just activate the service
|
||||
|
||||
<code>
|
||||
services.fwupd.enable = true;
|
||||
</code>
|
||||
|
||||
Then use <code>fwupdmgr</code> to perform updates.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user