nixos-x13s/README.md

96 lines
2.4 KiB
Markdown
Raw Normal View History

2024-01-22 18:48:47 +01:00
# nixos x13s
This repository aims to provide easy, shared, support for Lenovo X13s on Linux.
The support for this machine is constantly improving in mainline kernel and upstream packages. Eventually the goal is that this repository is no longer necessary.
## Binary cache
A binary cache is provided through Cachix so you can avoid re-building the kernel.
https://app.cachix.org/cache/nixos-x13s
2024-02-20 14:55:19 +01:00
Ensure you are not overriding the nixpkgs input when consuming this flake, or you may not be able to take advantages of this cache.
NixOS configuration example:
```nix
nix.settings = {
substituters = [
"https://nixos-x13s.cachix.org"
];
trusted-public-keys = [
"nixos-x13s.cachix.org-1:SzroHbidolBD3Sf6UusXp12YZ+a5ynWv0RtYF0btFos="
];
};
```
2024-01-22 18:48:47 +01:00
## Add with a flake
```nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-x13s.url = "git+https://codeberg.org/adamcstephens/nixos-x13s";
};
outputs =
{ ... }@inputs:
{
nixosConfigurations.example = inputs.nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = [
inputs.nixos-x13s.nixosModules.default
{
nixos-x13s.enable = true;
2024-03-19 15:18:36 +01:00
nixos-x13s.kernel = "jhovold"; # jhovold is default, but mainline supported
2024-02-20 14:55:19 +01:00
# install multiple kernels! note this increases eval time for each specialization
specialisation = {
2024-03-11 19:13:34 +01:00
# note that activation of each specialization is required to copy the dtb to the EFI, and thus boot
2024-02-20 14:55:19 +01:00
mainline.configuration.nixos-x13s.kernel = "mainline";
};
2024-01-22 18:48:47 +01:00
# allow unfree firmware
nixpkgs.config.allowUnfree = true;
# define your fileSystems
fileSystems."/".device = "/dev/notreal";
}
];
};
};
}
```
## Add using not a flake
Clone the repository:
```
git clone https://codeberg.org/adamcstephens/nixos-x13s /etc/nixos/nixos-x13s
```
Then reference the module in your `configuration.nix` and use the module as documented in the flake example above:
```nix
imports =
[
./nixos-x13s/module.nix
];
nixos-x13s.enable = true;
...
```
2024-05-01 17:17:21 +02:00
## UEFI Update ISO
This repository provides a package which can output the USB UEFI Update ISO. This will be updated as Lenovo releases new versions.
```
nix build .#uefi-usbiso
dd if=result/usbdisk-*.iso of=/path/to/usb/disk
```
Reboot, select USB drive from F12 boot menu, follow wizard.