Дано: есть машина с NixOS и с видеокартой Radeon R9 270. Надумал я, наконец, настроить NixOS, подружить с видеокартой и попытаться избавиться от тиринга.
Долго искал, оказалось, что в настроечном файле «/etc/nixos/configuration.nix» для значения «services.xserver.videoDrivers» можно указывать и «radeon». Хотя этого нет в руководстве «man configuration.nix». Это для того, чтобы X.org подгрузил требуемый драйвер.
Теперь по-поводу тиринга: избавиться от него помогло указание
services.xserver.deviceSection = ''
Option "TearFree" "true"
'';
Весь мой конфигурационный файл:
> cat /etc/nixos/configuration.nix
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
<home-manager/nixos>
];
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
boot.initrd.kernelModules = [ "amdgpu" ];
boot.supportedFilesystems = [ "ntfs" ];
# Enable the X11 windowing system.
services.acpid.enable = true;
services.xserver.videoDrivers = [ "radeon" ];
services.xserver.deviceSection = ''
Option "TearFree" "true"
'';
services.xserver.enable = true;
services.xserver.desktopManager.mate.enable = true;
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = true;
programs.adb.enable = true;
programs.fish.enable = true;
time.timeZone = "Europe/Moscow";
# Define a user account. Don't forget to set a password with ‘passwd’.
users.users.czan = {
isNormalUser = true;
extraGroups = [ "wheel" "adbusers"]; # Enable ‘sudo’ for the user.
shell = pkgs.fish;
packages = with pkgs; [
firefox
emacs
gcc
sakura
dmenu
xmobar
zathura
mc
mpv
qbittorrent
rustup
anki
xorg.xmodmap
gdb
minicom
openocd
usbutils
git
eltclsh
nethack
sbcl
libreoffice-qt
hunspell
hunspellDicts.ru_RU
hunspellDicts.en_US
(retroarch.override {
cores = with libretro; [
genesis-plus-gx
snes9x
beetle-psx
];
})
p7zip
unrar-wrapper
wineWowPackages.stable
winetricks
];
};
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget
jetbrains.idea-community
pavucontrol
];
system.stateVersion = "22.11"; # Did you read the comment?
}