Last active
August 26, 2025 08:58
-
-
Save williamcanin/75a1a4714296227cd5290fac18c7d540 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Arch Linux | |
# =============================================================== | |
# Installation with LVM, LUKS (in HOME /dev/sdb) and Systemd-Boot | |
# =============================================================== | |
# by: William C. Canin | |
# Note: The >>> are commands | |
>>> loadkeys br-abnt2 | |
>>> timedatectl set-timezone America/Sao_Paulo | |
>>> hwclock --systohc | |
------------------------------------------------------- | |
:: Connection Wifi (If you don't have a network cable) | |
------------------------------------------------------- | |
>>> iwctl | |
[iwd]# help | |
[iwd]# device list | |
[iwd]# device name set-property Powered on | |
[iwd]# adapter adapter set-property Powered on | |
[iwd]# station name scan | |
[iwd]# station name get-networks | |
[iwd]# station name connect SSID | |
[iwd]# quit | |
------------------------------------------------------------ | |
:: Partitioning storage for the system (IMPORTANT! Use GPT) | |
------------------------------------------------------------ | |
>>> cfdisk /dev/sda | |
/dev/sda1 (EFI System) 1G (boot) | |
/dev/sda2 (Linux LVM) Total (system) | |
--------------------------------------------------------------------- | |
:: Partitioning storage for the HOME (/dev/sdb) (IMPORTANT! Use GPT) | |
--------------------------------------------------------------------- | |
>>> cfdisk /dev/sdb | |
/dev/sdb1 (Linux filesystems) - Total | |
-------------------------------- | |
:: Encrypt the HOME partition | |
-------------------------------- | |
>>> cryptsetup -y -v luksFormat /dev/sdb1 | |
---------------------------------- | |
:: Open partition HOME encrypting | |
---------------------------------- | |
>>> cryptsetup open /dev/sdb1 home | |
>>> ls /dev/mapper/home | |
-------------------------- | |
:: Creating LVM structure | |
-------------------------- | |
>>> pvcreate /dev/sda2 | |
>>> vgcreate linux /dev/sda2 | |
>>> lvcreate -L 100G linux -n system | |
>>> lsblk -f | |
------------------------- | |
:: Formatting partitions | |
------------------------- | |
>>> mkfs.fat -F 32 /dev/sda1 | |
>>> mkfs -t ext4 /dev/mapper/linux-system | |
>>> mkfs -t ext4 /dev/mapper/home | |
----------------------- | |
:: Mounting partitions | |
----------------------- | |
>>> mount /dev/mapper/linux-system /mnt | |
>>> mount --mkdir -o rw /dev/sda1 /mnt/boot | |
>>> mount --mkdir /dev/mapper/home /mnt/home | |
----------------------- | |
:: Install base system | |
----------------------- | |
>>> reflector --verbose --country Brazil --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist | |
>>> pacman -Syy | |
>>> pacman -Sy --noconfirm archlinux-keyring | |
>>> pacman-key --populate archlinux | |
>>> pacstrap -K /mnt base base-devel linux linux-firmware linux-headers sudo vim zsh dhcpcd wireless_tools wpa_supplicant | |
--------------------- | |
:: Create /etc/fstab | |
--------------------- | |
>>> genfstab -U -p /mnt >> /mnt/etc/fstab | |
----------------------- | |
:: Entering the system | |
----------------------- | |
>>> arch-chroot /mnt /bin/bash | |
------------------------- | |
:: Add password for root | |
------------------------- | |
>>> passwd | |
----------------------------- | |
:: Setting up encrypted HOME | |
----------------------------- | |
>>> blkid | grep "crypto" | |
# Copy the UUID | |
>>> vim /etc/crypttab | |
# Add the line below in /etc/crypttab | |
home UUID=00000000-0000-0000-0000-0000000000 none discard | |
>>> blkid | grep "home" | |
# Copy the UUID | |
>>> vim /etc/fstab | |
# Add the line below in /etc/fstab | |
UUID=XXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX /home ext4 rw,relatime,data=ordered 0 2 | |
--------------------- | |
:: Configuring HOOKS | |
--------------------- | |
>>> vim /etc/mkinitcpio.conf | |
# Modules | |
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) | |
# Leave the HOOKS like this: | |
HOOKS=(base systemd autodetect keymap plymouth modconf kms keyboard sd-vconsole sd-encrypt block lvm2 filesystems fsck) | |
>>> pacman -S plymouth lvm2 | |
>>> plymouth-set-default-theme -R spinner | |
-------------------------------------------------------- | |
:: Installing and configuring Bootloader (systemd-boot) | |
-------------------------------------------------------- | |
>>> pacman -S --noconfirm efibootmgr | |
>>> bootctl --path=/boot install | |
>>> vim /boot/loader/loader.conf | |
timeout 1 | |
console-mode max | |
default arch-linux | |
>>> blkid | grep "/dev/sdb1" | |
# Copy the UUID from /dev/sdb1. E.g: UUID=11111111-1111-1111-1111-1111111111 | |
>>> blkid | grep "/dev/mapper/linux-system" | |
# Copy the UUID from /dev/mapper/linux-system. E.g: UUID=22222222-2222-2222-2222-2222222222 | |
------------------------------------------------------------------------------- | |
### Options 1 - Using Unified kernel image (UKI) - Recommended for Secure Boot | |
------------------------------------------------------------------------------- | |
>>> vim /etc/mkinitcpio.d/linux.preset | |
# Uncomment and leave it like that: | |
-> default_uki="/boot/EFI/Linux/arch-linux.efi" | |
-> efault_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp" | |
>>> vim /etc/kernel/cmdline | |
root=UUID=22222222-2222-2222-2222-2222222222 cryptdevice=UUID=11111111-1111-1111-1111-1111111111:home rw quiet splash loglevel=3 systemd.show_status=auto rd.udev.log_level=3 nvidia_drm.modset=1 nvidia_drm.fbdev=1 | |
--------------------------------------- | |
### Options 2 - Using Entries (.conf) | |
--------------------------------------- | |
>>> vim /boot/loader/entries/arch.conf | |
title Arch Linux (Default) | |
linux /vmlinuz-linux | |
initrd /initramfs-linux.img | |
options root=UUID=22222222-2222-2222-2222-2222222222 cryptdevice=UUID=11111111-1111-1111-1111-1111111111:home rw quiet splash loglevel=3 systemd.show_status=auto rd.udev.log_level=3 nvidia_drm.modset=1 nvidia_drm.fbdev=1 | |
>>> mkinitcpio -P | |
# Copying Microsoft EFI to bootloader. "/dev/sda1" is EFI Microsoft (100MB) | |
>>> mount /dev/sda1 /mnt | |
>>> cp -r /mnt/EFI/Microsoft /boot/EFI | |
---------------------------------------------------------------- | |
:: Installing and configuring Bootloader GRUB (Not recommended) | |
---------------------------------------------------------------- | |
>>> pacman -S --noconfirm grub sbctl efibootmgr | |
>>> blkid | grep "/dev/sdb1" | |
# Copy the UUID from /dev/sdb1. E.g: UUID=11111111-1111-1111-1111-1111111111 | |
>>> blkid | grep "/dev/mapper/linux-system" | |
# Copy the UUID from /dev/mapper/linux-system. E.g: UUID=22222222-2222-2222-2222-2222222222 | |
>>> vim /etc/default/grub | |
# Use configuring bellow: | |
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 splash quiet video=1920x1080" | |
GRUB_CMDLINE_LINUX="root=UUID=22222222-2222-2222-2222-2222222222 cryptdevice=UUID=11111111-1111-1111-1111-1111111111:home nvidia_drm.modeset=1" | |
GRUB_PRELOAD_MODULES="lvm part_gpt part_mdos" | |
GRUB_DISABLE_SUBMENU=y | |
GRUB_ENABLE_CRYPTODISK=y | |
>>> grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot --modules="tpm" --boot-directory=/boot --disable-shim-lock | |
>>> grub-mkconfig -o /boot/grub/grub.cfg | |
--------------------------------------------------------------- | |
:: Setting language (PtBr), hosts, keyboard and location (PtBr) | |
--------------------------------------------------------------- | |
>>> timedatectl set-timezone America/Sao_Paulo | |
>>> echo "KEYMAP=br-abnt2" > /etc/vconsole.conf | |
>>> sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen | |
>>> sed -i 's/#pt_BR.UTF-8 UTF-8/pt_BR.UTF-8 UTF-8/g' /etc/locale.gen | |
>>> locale-gen | |
>>> echo LANG=pt_BR.UTF-8 > /etc/locale.conf | |
>>> export LANG=pt_BR.UTF-8 | |
>>> rm -f /etc/localtime | |
>>> ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime | |
>>> hwclock --systohc | |
>>> echo "archlinux" > /etc/hostname | |
>>> printf "127.0.0.1 archlinux\n" >> /etc/hosts | |
>>> echo "blacklist nouveau" > /usr/lib/modprobe.d/nvidia.conf | |
----------------------------------------- | |
:: Installation of the drivers graphical | |
----------------------------------------- | |
>>> pacman -S --noconfirm xorg wayland dialog mesa lib32-mesa intel-ucode nvidia nvidia-utils lib32-nvidia-utils nvidia-settings | |
>>> systemctl set-default multi-user.target | |
------------------------------ | |
:: Installation audio drivers | |
------------------------------ | |
>>> pacman -S --noconfirm pipewire pipewire-audio pipewire-pulse pipewire-alsa pipewire-jack easyeffects lsp-plugins-lv2 mda.lv2 zam-plugins-lv2 zam-plugins-lv2 calf | |
-------------------------------------------------- | |
:: Installation of the desktop environment (XFCE) | |
-------------------------------------------------- | |
>>> pacman -S --noconfirm xfce4 xfce4-goodies appmenu-gtk-module libdbusmenu-glib lightdm lightdm-gtk-greeter | |
--------------------------------------------------- | |
:: Installation of the desktop environment (GNOME) | |
--------------------------------------------------- | |
>>> pacman -S --noconfirm gnome gnome-extra gnome-desktop gdm | |
----------------------------------------------------------------------- | |
:: Switching to ZSH and install Oh-My-ZSH + Plugins for root (optional) | |
----------------------------------------------------------------------- | |
>>> chsh -s /usr/bin/zsh | |
>>> sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | |
>>> git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions | |
>>> git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting | |
>>> vim $HOME/.zshrc | |
# Adding "zsh-autosuggestions" and "zsh-syntax-highlighting" in $HOME/.zshrc | |
---------------------- | |
:: Configuring Pacman | |
---------------------- | |
>>> vim /etc/pacman.conf | |
# Uncomment the lines below: | |
#[multilib] | |
#Include = /etc/pacman.d/mirrorlist | |
>>> pacman -Syy | |
---------------------------- | |
:: Adding new USER and GROUP | |
---------------------------- | |
>>> groupadd <GROUP_NAME> | |
>>> useradd -m -g <GROUP_NAME> -G users,tty,wheel,games,power,optical,storage,scanner,lp,audio,video,input,mail,root -s /bin/zsh <USER_NAME> | |
>>> groupadd sudo -U <USER_NAME> | |
>>> passwd <USER_NAME> | |
>>> sed -i 's/# %sudo/%sudo/g' /etc/sudoers | |
-------------------------------------------- | |
:: Installing utility packages (IMPORTANT!) | |
-------------------------------------------- | |
>>> pacman -S --needed --noconfirm pacman-contrib xdg-user-dirs networkmanager network-manager-applet ntfs-3g udisks2 dosfstools \ | |
mtools cpupower reflector samba git openssh tor virtualbox-guest-utils vlc transmission-gtk gvfs gvfs-smb ttf-dejavu \ | |
ttf-dejavu-nerd terminator zip unzip xarchiver leafpad gimp inkscape pavucontrol make cmake gcc go ruby perl tk python \ | |
nodejs npm | |
>>> pacman -Rdc bumblebee | |
------------------------------------------ | |
:: Enabling essential services at startup | |
------------------------------------------ | |
>>> systemctl enable NetworkManager.service iptables.service smb.service nmb.service tor.service | |
# If the installation is on a virtual machine (VirtualBox): | |
>>> systemctl enable vboxservice.service | |
--------------------------------------- | |
:: Complementing /etc/fstab (optional) | |
--------------------------------------- | |
>>> mkdir -p /media/cdrom0; mkdir /mnt/floppy; mkdir /mnt/windows | |
>>> ln -s /media/cdrom0 /media/cdrom | |
>>> vim /etc/fstab | |
# Add the following lines to /etc/fstab: | |
### CDROM | |
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 | |
### Floppy | |
/dev/fd0 /mnt/floppy auto defaults,user,noauto 0 0 | |
### Windows (optional) | |
#UUID=XXXXX-XXXXX-XXXXX /mnt/windows ntfs-3g defaults,user,rw,auto 0 0 | |
---------------------------- | |
:: Creating SWAP (optional) | |
---------------------------- | |
>>> fallocate -l 8G /swapfile | |
# or: dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress | |
>>> chmod 600 /swapfile | |
>>> chown root:root /swapfile | |
>>> mkswap /swapfile | |
>>> swapon /swapfile | |
>>> echo '/swapfile none swap defaults 0 0' | tee -a /etc/fstab | |
# Configurar swappiness (recomendado: 10 para SSD, 60 para HDD) | |
>>> echo 'vm.swappiness=10' | tee -a /etc/sysctl.d/99-swap.conf | |
====================================== | |
Post Install | |
====================================== | |
>>> su - <USER_NAME> | |
>>> touch ~/.zshrc | |
>>> chsh -s /usr/bin/zsh | |
>>> echo "export PATH=\$PATH:/usr/bin:\$HOME/.local/bin:/sbin:/usr/local/bin" >> $HOME/.zshrc | |
>>> zsh | |
>>> xdg-user-dirs-update | |
>>> systemctl enable --user pipewire-pulse.service | |
>>> systemctl enable --user pipewire.service | |
---------------------- | |
:: Java Configuration | |
---------------------- | |
>>> sudo archlinux-java status | |
>>> sudo archlinux-java set java-<VERSION>-openjdk | |
---------------------------------------- | |
:: Configuring Security Boot (Optional) | |
---------------------------------------- | |
# Restart the machine and in the BIOS, apply the values of "security boot=disabled" and reset/remove all keys. | |
>>> sudo pacman -S sbctl | |
>>> sudo sbctl create-keys | |
>>> sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi | |
>>> sudo sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI | |
>>> sudo sbctl sign -s /boot/EFI/Linux/arch-linux.efi | |
>>> sudo sbctl sign -s /boot/EFI/Linux/arch-linux-fallback.efi | |
>>> sudo pacman -S linux | |
>>> systemctl reboot --firmware-setup | |
# Set "security boot=enabled" in BIOS and "mode setup=user" | |
>>> sudo sbctl enroll-keys --microsoft | |
# If Microsoft EFI was added, then do: | |
>>> cd /boot/EFI/Microsoft | |
>>> sbctl verify | sed 's/✗ /sbctl sign -s /e' | |
------------------------------------------------- | |
:: Installing package manager for AUR (optional) | |
------------------------------------------------- | |
>>> git clone https://aur.archlinux.org/yay.git | |
>>> cd yay | |
>>> makepkg -si PKGBUILD | |
----------------------------------------------------- | |
:: Installing essential packages from AUR (optional) | |
----------------------------------------------------- | |
>>> yay -S upd72020x-fw timeshift pamac-aur --noconfirm | |
----------------------------------------------------- | |
:: Install Oh-My-ZSH and plugins for USER (optional) | |
----------------------------------------------------- | |
>>> sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | |
>>> git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions | |
>>> git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting | |
>>> vim $HOME/.zshrc | |
# Adding "zsh-autosuggestions" and "zsh-syntax-highlighting" in $HOME/.zshrc | |
---------------------------------------- | |
:: Automatic login using TTY (optional) | |
---------------------------------------- | |
>>> mkdir /etc/systemd/system/[email protected] | |
>>> vim /etc/systemd/system/[email protected]/skip-prompt.conf | |
[Service] | |
ExecStart= | |
ExecStart=-/usr/bin/agetty --skip-login --nonewline --noissue --autologin <USERNAME> --noclear %I $TERM | |
>>> vim $HOME/.zprofile | |
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then | |
exec startx &>/dev/null | |
fi | |
>>> vim $HOME/.xinitrc | |
exec i3 | |
# exec startxfce4 | |
# exec gnome-session | |
====================================== | |
Performance | |
====================================== | |
--------------------------- | |
:: Enable ADIOS (optional) | |
--------------------------- | |
If it improves responsiveness, why isn't it enabled by default? | |
ADIOS is still under active development and ongoing testing. While it offers significant responsiveness benefits | |
on desktops, it's not yet considered stable enough to be the default for all workloads and hardware types. In some | |
extreme cases, bugs can lead to issues such as system crashes. For this reason, it's an optional feature for users | |
who want to test and benefit from its latest improvements. | |
>>> sudo vim /etc/udev/rules.d/60-ioschedulers.rules | |
# HDD | |
ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", \ | |
ATTR{queue/scheduler}="bfq" | |
# SSD | |
ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", \ | |
ATTR{queue/scheduler}="adios" | |
# NVMe SSD | |
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", \ | |
ATTR{queue/scheduler}="adios" | |
>>> sudo udevadm control --reload-rules | |
>>> sudo udevadm trigger | |
--------------------------------------------------- | |
:: Firmware NVIDIA GSP (optional, but RECOMMENDED) | |
--------------------------------------------------- | |
NVIDIA GSP firmware can, "in some cases," lead to reduced performance. While NVIDIA driver 555.58.02 has largely | |
resolved this issue, it may persist on certain systems. If you're experiencing issues in KDE or poor performance | |
in some cases, you can disable GSP firmware with the following configuration file: | |
>>> sudo vim /etc/modprobe.d/nvidia-gsp.conf | |
options nvidia NVreg_EnableGpuFirmware=0 | |
>>> sudo mkinitcpio -P | |
----------------------------------------------- | |
:: Sysctl settings (optional, but RECOMMENDED) | |
----------------------------------------------- | |
>>> vim /usr/lib/sysctl.d/99-performance-settings.conf | |
# The sysctl swappiness parameter determines the kernel's preference for pushing anonymous pages or page cache | |
# to disk in memory-starved situations. | |
# A low value causes the kernel to prefer freeing up open files (page cache), a high value causes the kernel | |
to try to use swap space, and a value of 100 means IO cost is assumed to be equal. | |
vm.swappiness = 100 | |
# The value controls the tendency of the kernel to reclaim the memory which is used for caching of directory | |
# and inode objects (VFS cache). | |
# Lowering it from the default value of 100 makes the kernel less inclined to reclaim VFS cache (do not set it to 0, | |
# this may produce out-of-memory conditions) | |
vm.vfs_cache_pressure = 50 | |
# Contains, as bytes, the number of pages at which a process which is | |
# generating disk writes will itself start writing out dirty data. | |
vm.dirty_bytes = 268435456 | |
# page-cluster controls the number of pages up to which consecutive pages are read in from swap in a single attempt. | |
# This is the swap counterpart to page cache readahead. The mentioned consecutivity is not in terms of | |
# virtual/physical addresses, but consecutive on swap space - that means they were swapped out together. (Default is 3) | |
# increase this value to 1 or 2 if you are using physical swap (1 if ssd, 2 if hdd) | |
vm.page-cluster = 0 | |
# Contains, as bytes, the number of pages at which the background kernel | |
# flusher threads will start writing out dirty data. | |
vm.dirty_background_bytes = 67108864 | |
# The kernel flusher threads will periodically wake up and write old data out to disk. This | |
# tunable expresses the interval between those wakeups, in 100'ths of a second (Default is 500). | |
vm.dirty_writeback_centisecs = 1500 | |
# This action will speed up your boot and shutdown, because one less module is loaded. Additionally disabling watchdog | |
# timers increases performance and lowers power consumption Disable NMI watchdog | |
kernel.nmi_watchdog = 0 | |
# Enable the sysctl setting kernel.unprivileged_userns_clone to allow normal users to run unprivileged containers. | |
kernel.unprivileged_userns_clone = 1 | |
# To hide any kernel messages from the console | |
kernel.printk = 3 3 3 3 | |
# Restricting access to kernel pointers in the proc filesystem | |
kernel.kptr_restrict = 2 | |
# Disable Kexec, which allows replacing the current running kernel. | |
kernel.kexec_load_disabled = 1 | |
# Increase netdev receive queue | |
# May help prevent losing packets | |
net.core.netdev_max_backlog = 4096 | |
# Set size of file handles and inode cache | |
fs.file-max = 2097152 | |
# Disabling Split Lock Mitigate | |
# In some cases, split locking mitigation can reduce performance in some applications and games. A patch is available | |
# to disable it via sysctl. | |
kernel.split_lock_mitigate=0 | |
---------------------------------------------- | |
:: ZRAM Generator (optional, but RECOMMENDED) | |
---------------------------------------------- | |
>>> sudo vim /usr/lib/systemd/zram-generator.conf | |
[zram0] | |
compression-algorithm = zstd lz4 (type=huge) | |
zram-size = ram | |
swap-priority = 100 | |
fs-type = swap | |
--------------------------------------------------- | |
:: I/O Scheduler Rules (optional, but RECOMMENDED) | |
--------------------------------------------------- | |
Select the optimal scheduler for each drive type (HDD, SSD, NVMe) | |
>>> sudo vim /usr/lib/udev/rules.d/60-ioschedulers.rules | |
# HDD | |
ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", \ | |
ATTR{queue/scheduler}="bfq" | |
# SSD | |
ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", \ | |
ATTR{queue/scheduler}="mq-deadline" | |
# NVMe SSD | |
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", \ | |
ATTR{queue/scheduler}="none" | |
----------------------------------------------- | |
:: NVIDIA settings (optional, but RECOMMENDED) | |
----------------------------------------------- | |
>>> sudo vim /usr/lib/modprobe.d/nvidia.conf | |
# | |
# NVreg_UsePageAttributeTable=1 (Default 0) - Activating the better memory | |
# management method (PAT). The PAT method creates a partition type table at a | |
# specific address mapped inside the register and utilizes the memory | |
# architecture and instruction set more efficiently and faster. If your system | |
# can support this feature, it should improve CPU performance. | |
# | |
# NVreg_InitializeSystemMemoryAllocations=0 (Default 1) - Disables clearing | |
# system memory allocation before using it for the GPU. Potentially improves | |
# performance, but at the cost of increased security risks. Write "options | |
# nvidia NVreg_InitializeSystemMemoryAllocations=1" in | |
# /etc/modprobe.d/nvidia.conf, if you want to return the default value. Note: | |
# It is possible to use more memory (?) | |
# | |
# NVreg_DynamicPowerManagement=0x02 - Enables the use of dynamic power | |
# management for Turing generation mobile cards, allowing the dGPU to be | |
# powered down during idle time. | |
# | |
# NVreg_RegistryDwords=RMIntrLockingMode=1 (default 0) - enables experimental | |
# switch for better frame-pacing this mainly improves it for high refresh rate | |
# monitors with VRR or VR headsets. | |
# | |
# Note: This only works for PRIME configurations if your dGPU is controlling an | |
# external monitor. | |
# | |
# For example: At 240Hz each frame is expected every 4ms. But if a 1ms | |
# task—say, in the kernel or on the GSP — runs when a frame is about to be | |
# displayed, it can delay the rendering. Instead of a neat sequence at T+4ms, | |
# T+8ms, T+12ms, the frames might appear at T+4ms, T+9ms, T+12ms, etc. This | |
# shows how even small delays can shift frame timing, potentially impacting | |
# smooth display output. | |
# | |
# NVreg_EnableS0ixPowerManagement=1 (default 0) Enables S0ix for the NVIDIA GPU: | |
# lets the device enter deep, | |
# low-power idle states while the system uses s2idle (the S0 low-power idle path), | |
# reducing battery drain—especially on laptops with recent Intel/AMD | |
# platforms and Turing/Ampere/Ada GPUs | |
# | |
options nvidia NVreg_UsePageAttributeTable=1 \ | |
NVreg_InitializeSystemMemoryAllocations=0 \ | |
NVreg_DynamicPowerManagement=0x02 \ | |
NVreg_RegistryDwords=RMIntrLockingMode=1 \ | |
NVreg_EnableS0ixPowerManagement=1 | |
==================================================== | |
Exiting the system, umount partitions and reboot | |
==================================================== | |
>>> exit; exit | |
>>> cryptsetup close home | |
>>> umount -R /mnt | |
>>> systemctl reboot |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment