Howto nixos: Difference between revisions

From Vidalinux Wiki
Jump to navigation Jump to search
Line 103: Line 103:
for laptop touchpads:
for laptop touchpads:
  services.xserver.libinput.enable = true;
  services.xserver.libinput.enable = true;
load kernel modules:
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
load kernel modules on initrd:
boot.initrd.kernelModules = [ "cifs" ];
run the installer:
run the installer:
  nixos-install
  nixos-install

Revision as of 20:56, 25 June 2023

configure enviroment

download nixos installation iso:

https://channels.nixos.org/nixos-23.05/latest-nixos-minimal-x86_64-linux.iso

create usb to install on physical desktop:

yay -S ventoy-bin

or install nixos on virtual machine:

qemu-img create -f qcow2 /var/lib/libvirt/images/nixos_disk1_100G.qcow2 100G

boot with nixos iso and create partitions:

parted /dev/vda -- mklabel gpt
parted /dev/sda -- mkpart ESP fat32 1 1GB
parted /dev/sda -- mkpart primary linux-swap 1GB 8GB
parted /dev/sda -- mkpart primary ext4 8GB 100%

format partitions:

mkfs.fat -F 32 -n boot /dev/vda1
mkswap -L swap /dev/vda2
mkfs.ext4 -L nixos /dev/vda3

installing os

mount root partition on /mnt:

mount /dev/vda3 /mnt

make boot directory and mount boot partition:

mkdir /mnt/boot
mount /dev/vda1 /mnt/boot

mount swap partition:

swapon /dev/vda2

generate nixos configuration file:

nixos-generate-config --root /mnt

edit configuration file /mnt/etc/nixos/configuration.nix:

{ config, pkgs, ... }:
{
  imports =
      ./hardware-configuration.nix
    ];
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;
  time.timeZone = "America/Puerto_Rico";
  i18n.defaultLocale = "en_US.UTF-8";
  services.xserver.enable = true;
  services.xserver.layout = "us";
  sound.enable = true;
  hardware.pulseaudio.enable = true;
  users.users.linux = {
     isNormalUser = true;
     extraGroups = [ "wheel" "networkmanager" ];
     packages = with pkgs; [
      firefox
      tree
     ];
   };
  services.openssh.enable = true;
} 

configure static ip networking:

networking.networkmanager.enable = true;
networking.interfaces.eth0.ipv4.addresses = [ {
 address = "192.168.75.44";
 prefixLength = 24;
} ];

networking.defaultGateway = "192.168.75.1";
networking.nameservers = [ "4.2.2.1 4.2.2.2" ];

hostname and /etc/hosts:

networking.hostName = "nixos";
networking.extraHosts =
 
   127.0.0.1     localhost
   192.168.75.44 nixos
 ;

configure desktop gnome:

services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
programs.dconf.enable = true;
services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; 

environment.gnome.excludePackages = (with pkgs; [
  gnome-photos
  gnome-tour
]) ++ (with pkgs.gnome; [
  gnome-terminal
  gedit # text editor
  evince # document viewer
  gnome-characters
  mpv # video player
]);

system packages:

environment.systemPackages = with pkgs; [
   wget vim nano zsh file lsof
];

intel drivers:

services.xserver.videoDrivers = [ "modesetting" ];

if you experience screen tearing no matter what, this configuration was reported to resolve the issue:

services.xserver.videoDrivers = [ "intel" ];
services.xserver.deviceSection = 
  Option "DRI" "2"
  Option "TearFree" "true"
;

nvidia gpu drivers:

services.xserver.videoDrivers = [ "nvidia" ];

or nvidia gpu legacy drivers:

services.xserver.videoDrivers = [ "nvidiaLegacy390" ];
services.xserver.videoDrivers = [ "nvidiaLegacy340" ];
services.xserver.videoDrivers = [ "nvidiaLegacy304" ];

amd gpu drivers:

services.xserver.videoDrivers = [ "amdgpu-pro" ];

for laptop touchpads:

services.xserver.libinput.enable = true;

load kernel modules:

boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];

load kernel modules on initrd:

boot.initrd.kernelModules = [ "cifs" ];

run the installer:

nixos-install

references