Fork of NixOS/nixos-hardware with some customizations.
Find a file
Bryan Gardiner fdc0812787
system76: Remove kernel param ec_sys.write_support=1.
I don't think we need this in the generic configuration.  There is a call to
`modprobe ec_sys.write_support=1` in system76-driver, only for the airplane mode
daemon (which only applies to certain models, not including darp6), and the
driver executes the modprobe call anyhow.

Also the kernel's documentation for the parameter says:

    write_support:Dangerous, reboot and removal of battery may be needed. (bool)

So let's only enable this where it's required.
2020-10-12 18:06:11 -07:00
.github/workflows replace travis with github action 2020-06-21 14:24:28 +01:00
acer/aspire/4810t treewide: mark things that have to be done 2017-12-25 22:07:47 +00:00
airis/n990 treewide: abstract away common configs into common/ 2017-12-24 23:21:05 +00:00
apple apple: Add support for MacBook Air 3,X (#91) 2019-11-12 10:36:10 +00:00
asus Add Asus TUF FX504GD 2020-08-13 21:43:19 +01:00
audio-gd treewide: mark things that have to be done 2017-12-25 22:07:47 +00:00
beagleboard/pocketbeagle beagleboard/pocketbeagle: init 2018-10-12 13:17:02 +00:00
common Moved NVIDIA config to common, and updated README. 2020-07-25 23:53:47 -04:00
dell add dell precision 5530 2020-08-30 12:00:00 +00:00
google/pixelbook google/pixelbook: init 2020-05-07 15:26:58 +00:00
inversepath/usbarmory inversepath/usbarmory: fix evaluation 2017-12-24 17:21:43 +00:00
lenovo lenovo/thinkpad/x1/7th-gen: fix evaluation 2020-08-13 15:01:48 +02:00
microsoft treewide: mark things that have to be done 2017-12-25 22:07:47 +00:00
pcengines/apu pcengines/apu: expose GRUB over serial 2019-03-24 18:48:11 +11:00
purism/librem Create separate directories for librem 13v3 and 15v3 2020-03-26 17:43:33 +01:00
raspberry-pi/2 Add parallel test runner 2020-02-23 21:29:22 +00:00
samsung/np900x3c treewide: mark things that have to be done 2017-12-25 22:07:47 +00:00
supermicro treewide: only ever set unmergable options via lib.mkDefault 2017-12-24 15:13:25 +00:00
system76 system76: Remove kernel param ec_sys.write_support=1. 2020-10-12 18:06:11 -07:00
tests tests: hide evaluation command behind verbose flag 2020-05-18 11:38:36 +01:00
toshiba/swanky toshiba/swanky: switch to default kernels 2019-07-02 10:49:23 +01:00
tuxedo/infinitybook/v4 Add InfinityBook v4 (#159) 2020-05-05 23:20:10 +01:00
.gitignore Add .gitignore adapted from NixPkgs 2016-10-20 14:28:23 -04:00
CODEOWNERS Add support for System76 hardware, specifically the Darter Pro 6. 2020-09-03 19:03:10 -07:00
CONTRIBUTING.md Suggestions for CONTRIBUTING 2018-08-31 20:16:33 +01:00
COPYING LICENSE -> COPYING 2018-08-25 13:54:23 +03:00
default.nix add dummy default.nix 2019-01-18 13:51:39 +00:00
flake.nix Add support for System76 hardware, specifically the Darter Pro 6. 2020-09-03 19:03:10 -07:00
README.md Add support for System76 hardware, specifically the Darter Pro 6. 2020-09-03 19:03:10 -07:00

NixOS profiles to optimize settings for different hardware.

Setup

Using channels

Add and update nixos-hardware channel:

$ sudo nix-channel --add https://github.com/NixOS/nixos-hardware/archive/master.tar.gz nixos-hardware
$ sudo nix-channel --update

Then import an appropriate profile path from the table below. For example, to enable ThinkPad X220 profile, your imports in /etc/nixos/configuration.nix should look like:

imports = [
  <nixos-hardware/lenovo/thinkpad/x220>
  ./hardware-configuration.nix
];

New updates to the expressions here will be fetched when you update the channel.

Using nix flakes support

There is also experimental flake support. In your /etc/nixos/flake.nix add the following:

{
  description = "NixOS configuration with flakes";
  inputs.nixos-hardware.url = github:NixOS/nixos-hardware/master;

  outputs = { self, nixpkgs, nixos-hardware }: {
    # replace <your-hostname> with your actual hostname
    nixosConfigurations.<your-hostname> = nixpkgs.lib.nixosSystem {
      # ...
      modules = [
        # ...
        # add your model from this list: https://github.com/NixOS/nixos-hardware/blob/flakes/flake.nix
        nixos-hardware.nixosModules.dell-xps-13-9380
      ];
    };
  };
}

Using fetchgit

You can fetch the git repository directly:

imports = [ 
  "${builtins.fetchgit { url = "https://github.com/NixOS/nixos-hardware.git"; }}/lenovo/thinkpad/x220"
];

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.

List of Profiles

See code for all available configurations.

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 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 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 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 E495 <nixos-hardware/lenovo/thinkpad/e495>
Lenovo ThinkPad L13 <nixos-hardware/lenovo/thinkpad/l13>
Lenovo ThinkPad P53 <nixos-hardware/lenovo/thinkpad/p53>
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 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 X140e <nixos-hardware/lenovo/thinkpad/x140e>
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>
Microsoft Surface Pro 3 <nixos-hardware/microsoft/surface-pro/3>
PC Engines APU <nixos-hardware/pcengines/apu>
Raspberry Pi 2 <nixos-hardware/raspberry-pi/2>
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>

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
  3. Run ./tests/run.py to test it. The test script script will parse all the profiles from the README.md