feat(aarch64): add initial configuration for NixOS on ARM
Introduced hardware and system configurations for the aarch64 NixOS system. Includes hardware setup, base system packages, and enabling key services such as Docker and Podman. This establishes the foundation for managing ARM-based systems.
This commit is contained in:
parent
f45a366528
commit
195a721d19
5 changed files with 306 additions and 97 deletions
|
@ -38,39 +38,46 @@ in
|
|||
sessionVariables = {
|
||||
PATH = "$HOME/bin";
|
||||
};
|
||||
systemPackages = with pkgs; [
|
||||
age
|
||||
bash
|
||||
cifs-utils
|
||||
clevis
|
||||
delta
|
||||
efibootmgr
|
||||
git
|
||||
git-crypt
|
||||
git-delete-merged-branches
|
||||
home-manager
|
||||
htop
|
||||
mosh
|
||||
nixpkgs-fmt
|
||||
openssl
|
||||
restic
|
||||
rrsync
|
||||
sbctl
|
||||
sops
|
||||
strace
|
||||
tmux
|
||||
tpm2-pkcs11
|
||||
tpm2-pkcs11.out
|
||||
tpm2-tools
|
||||
vim
|
||||
virt-manager
|
||||
wget
|
||||
(pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
|
||||
qemu-system-x86_64 \
|
||||
-bios ${pkgs.OVMF.fd}/FV/OVMF.fd \
|
||||
"$@"
|
||||
'')
|
||||
];
|
||||
systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
age
|
||||
bash
|
||||
cifs-utils
|
||||
clevis
|
||||
delta
|
||||
efibootmgr
|
||||
git
|
||||
git-crypt
|
||||
git-delete-merged-branches
|
||||
home-manager
|
||||
htop
|
||||
mosh
|
||||
nixpkgs-fmt
|
||||
openssl
|
||||
restic
|
||||
rrsync
|
||||
sbctl
|
||||
sops
|
||||
strace
|
||||
tmux
|
||||
vim
|
||||
virt-manager
|
||||
wget
|
||||
(pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
|
||||
qemu-system-x86_64 \
|
||||
-bios ${pkgs.OVMF.fd}/FV/OVMF.fd \
|
||||
"$@"
|
||||
'')
|
||||
]
|
||||
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
|
||||
with pkgs;
|
||||
[
|
||||
tpm2-pkcs11
|
||||
tpm2-pkcs11.out
|
||||
tpm2-tools
|
||||
]
|
||||
);
|
||||
shells = [
|
||||
pkgs.fish
|
||||
pkgs.bash
|
||||
|
@ -78,10 +85,12 @@ in
|
|||
};
|
||||
|
||||
hardware = {
|
||||
|
||||
cpu = {
|
||||
amd.updateMicrocode = lib.mkDefault true;
|
||||
intel.updateMicrocode = lib.mkDefault true;
|
||||
amd.updateMicrocode = pkgs.stdenv.targetPlatform.isx86_64;
|
||||
intel.updateMicrocode = pkgs.stdenv.targetPlatform.isx86_64;
|
||||
};
|
||||
|
||||
enableRedistributableFirmware = lib.mkDefault true;
|
||||
enableAllFirmware = true;
|
||||
};
|
||||
|
|
|
@ -65,26 +65,36 @@ in
|
|||
hardware.graphics = {
|
||||
enable = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
vpl-gpu-rt
|
||||
intel-compute-runtime
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
#intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
rocmPackages.clr.icd
|
||||
amdvlk
|
||||
];
|
||||
extraPackages =
|
||||
[ ]
|
||||
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
|
||||
with pkgs;
|
||||
[
|
||||
vpl-gpu-rt
|
||||
intel-compute-runtime
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
#intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
rocmPackages.clr.icd
|
||||
amdvlk
|
||||
]
|
||||
);
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules =
|
||||
let
|
||||
rocmEnv = pkgs.symlinkJoin {
|
||||
name = "rocm-combined";
|
||||
paths = with pkgs.rocmPackages; [
|
||||
rocblas
|
||||
hipblas
|
||||
clr
|
||||
];
|
||||
paths =
|
||||
[ ]
|
||||
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
|
||||
with pkgs.rocmPackages;
|
||||
[
|
||||
rocblas
|
||||
hipblas
|
||||
clr
|
||||
]
|
||||
);
|
||||
};
|
||||
in
|
||||
[ "L+ /opt/rocm - - - - ${rocmEnv}" ];
|
||||
|
@ -104,54 +114,61 @@ in
|
|||
enableBrowserSocket = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
#pcsctools
|
||||
bat
|
||||
cardpeek
|
||||
ccache
|
||||
chromium
|
||||
clang
|
||||
dive
|
||||
file
|
||||
firefox
|
||||
gh
|
||||
gimp
|
||||
git
|
||||
gnome-browser-connector
|
||||
cheese
|
||||
gnome-software
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.autohide-battery
|
||||
gnomeExtensions.dash-to-panel
|
||||
gnomeExtensions.hibernate-status-button
|
||||
gnomeExtensions.vitals
|
||||
gnupg
|
||||
go
|
||||
jetbrains-toolbox
|
||||
jq
|
||||
kbfs
|
||||
libu2f-host
|
||||
mosh
|
||||
mosh
|
||||
nixpkgs-fmt
|
||||
opensc
|
||||
pasystray
|
||||
pinentry-gnome3
|
||||
pkg-config
|
||||
pstree
|
||||
ripgrep
|
||||
rustup
|
||||
slack
|
||||
spotify
|
||||
statix
|
||||
thunderbird
|
||||
tmux
|
||||
vim
|
||||
wl-clipboard
|
||||
yubikey-manager-qt
|
||||
yubikey-personalization
|
||||
zellij
|
||||
];
|
||||
environment.systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
#pcsctools
|
||||
bat
|
||||
cardpeek
|
||||
ccache
|
||||
chromium
|
||||
clang
|
||||
dive
|
||||
file
|
||||
firefox
|
||||
gh
|
||||
gimp
|
||||
git
|
||||
gnome-browser-connector
|
||||
cheese
|
||||
gnome-software
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.autohide-battery
|
||||
gnomeExtensions.dash-to-panel
|
||||
gnomeExtensions.hibernate-status-button
|
||||
gnomeExtensions.vitals
|
||||
gnupg
|
||||
go
|
||||
jq
|
||||
kbfs
|
||||
libu2f-host
|
||||
mosh
|
||||
mosh
|
||||
nixpkgs-fmt
|
||||
opensc
|
||||
pasystray
|
||||
pinentry-gnome3
|
||||
pkg-config
|
||||
pstree
|
||||
ripgrep
|
||||
rustup
|
||||
statix
|
||||
thunderbird
|
||||
tmux
|
||||
vim
|
||||
wl-clipboard
|
||||
yubikey-manager-qt
|
||||
yubikey-personalization
|
||||
zellij
|
||||
]
|
||||
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
|
||||
with pkgs;
|
||||
[
|
||||
slack
|
||||
spotify
|
||||
jetbrains-toolbox
|
||||
]
|
||||
);
|
||||
|
||||
#----=[ Fonts ]=----#
|
||||
fonts = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue