Статьи

Гайд по установке gentoo с графическим окружением xfce4

gentoo является одной из лучших операционных систем с открытым исходным кодом на ядре Linux. Ее основная особенность — сборка исполняемых файлов и служебных пакетов из исходных кодов. Это обеспечивает самую высокую производительность (быстродействие), безопасность и надежную работу компьютера.

Работа с gentoo требует значительно большей вовлеченности, чем при использовании систем, по умолчанию использующих готовые бинарные файлы, например, ubuntu и ее клоны. При установке gentoo и работе с ней нужно часто использовать консольные команды, обращаться к мануалам, искать решения для возникающих трудностей. Это не недостаток, а преимущество, так как благодаря этому намного быстрее происходит получение знаний и умений.

gentoo вряд ли подойдет тем, кто имеет слабые навыки работы с системами на основе Linux и не желает учиться. Любители DIY, желающие глубже погрузиться в мир компьютерного железа и программ, найдут в gentoo хороший инструмент для удовлетворения своих потребностей.

В данной статье изложен краткий авторский конспект установки gentoo на HDD компьютера с материнской платой ASUS Intel Z370A с 32GB RAM с модифицированным BIOS-ом под процессор-мутант Intel QTJ0 2.8GHz (8 ядер, 16 потоков, максимальная частота ядер 4.7GHz) с интегрированным видеоядром Intel UHD Graphics 630 плюс графический ускоритель Nvidia Tesla V100. При установке основные проблемы возникали при настройке загрузчика, конфигурировании работы гибридной видеосистемы (вывод изображения через интегрированную видеокарту и 3D-ускорение/compute-вычисления через адаптер Nvidia без видеовыходов)

Статья не претендует на полноту изложения затронутой темы и научность, является субъективным изложением мыслей автора-шпаргалкой для последующей работы.

Этапы установки операционной системы gentoo

Инсталляция gentoo может производиться отдельный накопитель с уже установленной операционной системы, например, ubuntu (xubuntu/lubuntu и т.д.) или с любого Linux Live CD. Во время установки нужно отформатировть и разметить диск, скачать, развернуть, установить и сконфигурировать ядро системы, инсталлировать необходимые служебные пакеты, фирменные прошивки, настроить загрузчик, сетевое окружение, языковые локали, временной пояс, установить подходящее графическое окружение и преодолеть все трудности, возникающие при этом.

Для установки ОС должен использоваться терминал с правами root, запущенный на уже работающей linux-системе, с настроенным выходом в интернет. Подходит, например, вариант с загрузочным носителем, созданным из образа ubuntu/xubuntu, созданного на USB-флеш программой balena etcher. По субъективному мнению автора, лучше использовать второй диск с уже установленной и настроенной системой, из под которой удобнее и быстрее провизодить манипуляции с диском, на который ставится gentoo.

На Live CD от gentoo для получения прав суперпользователя используется команда

sudo -i

В (x)ubuntu и в самой gentoo для этого достаточно выполнить команду su и ввести пароль.

Разметка диска производится без использования отдельного раздела подкачки. Он вреден для носителей SSD, NVMe и USB-HDD, имеющих ограпниченный ресурс, значительно меньший, чем у обычных HDD. При нехватке оперативной памяти можно будет создать swap-файл на основном диске. Для инсталляции gentoo не стоит использовать USB-флешки, так как они работают очень медленно и даже на мощном компьютере установка с нуля может занять несколько дней. При желании можно установить систему на HDD, а потом клонировать настроенный образ на USB-флешку.

На накопителе создаем два раздела: загрузочный и root. При наличии большого дискового пространства или дополнительного диска на нем можно создать третий раздел для каталога home. Для разбивки диска на разделы можно использовать консольные утилиты fdisk, cfdisk и им подобные, либо gparted. Чтобы иметь возможность работать с большими дисковыми накопителями нужно выбрать разметку gpt:

cfdisk /dev/sda

где sdb — диск, на который производится установка.

Для загрузочного раздела можно выделить 512M-1GB дискового пространства, EFI system. Все остальное место можно оставить для системы (диск с файловой системой Linux).

Проверка разделов диска:

lsblk

Форматирование диска:

mkfs.vfat /dev/sda1
mkfs.ext4 /dev/sda2

Монтирование корневого и загрузочного разделов:

mkdir /mnt/gentoo
mount /dev/sda2 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda1 /mnt/gentoo/boot/efi
mkdir -p /mnt/gentoo/{proc,sys,dev,run,boot}

Монтируем разделы (под root)

mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run

Загрузка desktop-образа Tarball Stage 3 с сайта gentoo и его распаковка:

tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo

Устанавливаем интерент соединения:

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

Переходим в устанавливаемую систему gentoo:

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"

Создаем файл параметров компиляции при дальнейшей установке:

nano /etc/portage/make.conf

В него заносим значения, соответствующие конфигурации своего компьютера (команды, поддерживаемые CPU из вывода cpuid2cpuflags, установленные видеокарты, система инициализации и т. д.), например:

COMMON_FLAGS="-march=native -mtune=native -O3 -funroll-loops -pipe"

CFLAGS="${COMMON_FLAGS}"

CXXFLAGS="${COMMON_FLAGS}"

FCFLAGS="${COMMON_FLAGS}"

FFLAGS="${COMMON_FLAGS}"

MAKEOPTS="--jobs 16 --load-average 15"

ACCEPT_LICENSE="*"

RUSTFLAGS="-C target-cpu=native"

USE="-doc -handbook -thumbnail X alsa pulseaudio sound-server dbus udev d3d12 elogind policykit glamor vdpau nvidia nvenc cuda distributed noinfo networkmanager jpeg png tiff gif svg webp truetype truetype-fonts -systemd -gnome -kde -aqua -css -wayland -nouveau -examples memefficient"

INPUT_DEVICES="libinput synaptics"

CPU_FLAGS_X86="aes avx avx2 bmi1 bmi2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3"

EMERGE_DEFAULT_OPTS="--jobs=2 --load-average=16 --with-bdeps=y --quiet-build=y"

PORTAGE_NICENESS="15"

VIDEO_CARDS="nvidia"

GRUB_PLATFORMS="efi-64"

TORCH_CUDA_ARCH_LIST="7.5 7.0 6.1"

LC_MESSAGES=C.UTF-8

Число для аргумента jobs задаем или сокращенно («-j2») исходя из количества потоков процессора (например, для 16 поточного процессора Intel QTJ0 — устанавливаем значение jobs в 15-16). Параметр load-average делаем немного меньше для сохранения отзывчивости компьютера при сборке.

Если на каком-то из этапов нужно прервать выполнение команд в терминале, нажимаем сочетание клавиш Ctrl+C.

Значения для строки CPU_FLAGS_X86 можно узнать, используя программу cpuid2cpuflags:

emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags
echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

Выбираем свой часовой пояс:

tzselect

Выбираем языковые локали:

nano -w /etc/locale.gen

Генерируем языковые локали:

locale-gen

Просматриваем их список ,чтобы выбрать номер, соответствующий желаемому языку для приложений системы

eselect locale list

Выбираем номер нужной локали:

eselect locale set 5

Перезапускоем окружение:

env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

Обновляем список репозиториев:

emerge-webrsync

Просматриваем список доступных профилей устанавливаемой системы:

eselect profile list

Задаем нужный профиль, например, для системы с графическим окружением с openrc:

eselect profile set 3

Обновляем базовый профиль:

emerge --ask --verbose --update --deep --newuse @world

Устанавливаем шрифты:

emerge --ask dev-lang/perl media-fonts/dejavu media-fonts/liberation-fonts media-fonts/wqy-zenhei media-fonts/noto-emoji media-fonts/fonts-meta media-fonts/jetbrains-mono media-fonts/noto media-fonts/noto-cjk

Прописываем в fstab разделы диска. Для этого в gentoo можно использовать утилиту sys-fs/genfstab, в ubuntu — arch-install-scripts.

Соответственно, в отдельном терминале (в системе, из под которой производится установка) выполняем команды:

для gentoo:

sudo emerge --ask sys-fs/genfstab

для ubuntu:

sudo apt install arch-install-scripts

После установки выполняем команды:

genfstab -U /mnt/gentoo
sudo genfstab -U /mnt/gentoo | tee /mnt/gentoo/etc/fstab

Переходим в терминал, на котором производится установка gentoo и проверяем содержимое fstab:

nano /etc/fstab

Устанавливаем сборщик ядра genkernel:

emerge --ask sys-kernel/gentoo-sources sys-kernel/genkernel
cd /usr/src/

Смотрим, какое ядро скачано в каталог /usr/src/ и линкуем его командой, например:

sudo ln -s /usr/src/linux-6.18.33-gentoo-r1 /usr/src/linux

Устанавливаем пакеты с фирменными прошивками для устройств компьютера:

emerge --ask sys-kernel/linux-firmware
sys-firmware/intel-microcode

Для использования lz4-сжатия ядра устанавливаем пакет app-arch/lz4:

emerge --ask app-arch/lz4

Запускаем генерацию ядра системы с его конфигурацией через меню:

genkernel all --menuconfig

После этого настраиваем полученный «скелет» операционной системы:

Указываем имя компьютера, например, intel35:

echo "intel35" > /etc/hostname

Редактируем файл/etc/hosts, указывая вместо hostname:

nano /etc/hosts
127.0.0.1 localhost
127.0.0.1 hostname

Устанавливаем системные и другие утилиты, загрузчик grub:

emerge --ask app-admin/sudo sys-apps/portage sys-boot/grub sys-boot/os-prober sys-fs/xfsprogs sys-fs/exfat-utils sys-fs/dosfstools sys-fs/ntfs3g sys-fs/e2fsprogs dev-libs/gobject-introspection

Устанавливаем сетевые утилиты, :

emerge --ask sys-apps/ethtool net-misc/networkmanager

При необходимости, для беспроводных сетей добавляем:

emerge --ask net-wireless/iw net-wireless/wpa_supplicant

Добавляем пользователя системы в группы:

useradd -m -G users,wheel,audio,video,render,usb,cdrom,portage -s /bin/bash intel35

Задаем пароль пользователя:

#passwd username

Задаем пароль root:

passwd root

Предоставляем пользователям группы wheel привилегии sudo:

EDITOR=nano visudo

Раскомментируем строку

# %wheel ALL=(ALL:ALL) ALL

Устанавливаем grub:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable

Включаем os-prober

echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub

Конфигурируем загрузчик:

grub-mkconfig -o /boot/grub/grub.cfg

Устанавливаем графическую оболочку xfce4 с дисплейным менеджером lightdm и другие программы:

emerge --ask x11-base/xorg-server dev-libs/gobject-introspection x11-terms/xterm x11-misc/lightdm xfce-base/xfce4-meta xfce-extra/xfce4-notifyd gnome-extra/nm-applet app-editors/mousepad xfce-extra/xfce4-screenshooter xfce-extra/xfce4-xkb-plugin xfce-extra/xfce4-taskmanager sys-apps/mlocate app-shells/bash-completion

Редактируем файл display-manager для работы с lightdm:

nano -w /etc/conf.d/display-manager
DISPLAYMANAGER="lightdm"

Настройка сервисов OpenRC:

rc-update add dbus default
rc-update add elogind default
rc-update add NetworkManager default

rc-update add display-manager default

Настройка системного окружения для Xfce4:

echo XSESSION="Xfce4" > /etc/env.d/90xsession
env-update && source /etc/profile

Для автоматического входа в систему редактируем lightdm.conf:

nano /etc/lightdm/lightdm.conf

где находим раздел locate the [Seat:*]

и раскомментируем строки

autologin-user=yourusername
autologin-user-timeout=0
autologin-session=xfce

После первой загрузки выберем Xfce на экране входа, дальше он будет запускаться автоматически.

Задаем нужную версию драйвера видеокарт Nvidia (смотрим на официальном сайте), например:

nano /etc/portage/package.accept_keywords/nvidia
=x11-drivers/nvidia-drivers-580.159.04
nano /etc/portage/package.mask/nvidia
>x11-drivers/nvidia-drivers-580.159.04

Ставим драйвер Nvidia, офис, архиваторы, программы для работы со звуком, торрнетами и другие утилиты:

emerge --ask x11-drivers/nvidia-drivers media-libs/libglvnd net-p2p/qbittorrent app-arch/xarchiver xfce-extra/thunar-archive-plugin media-gfx/gimp media-video/vlc net-ftp/filezilla net-misc/tigervnc app-arch/p7zip app-arch/arj app-arch/lha app-arch/lzop app-arch/unrar app-arch/rar app-arch/unzip app-arch/zip sys-apps/lm-sensors sys-process/cronie x11-apps/mesa-progs media-sound/pavucontrol sys-block/gparted net-wireless/blueman dev-vcs/git app-eselect/eselect-repository net-misc/ntp xfce4-cpugraph-plugin sys-apps/inxi app-office/libreoffice-bin xfce-extra/xfce4-calculator-plugin --autounmask

При установке программ и появлении запросов о внесении изменений в конфигурационные файлы используем команду

dispatch-conf

Применение изменений — ключ u.

nano /etc/portage/package.use/bleachbit

пишем туда:

sys-apps/bleachbit python_single_target_python3_13
emerge --ask sys-apps/bleachbit

Ставим браузер librewolf:

mkdir -p /etc/portage/repos.conf/
nano /etc/portage/repos.conf/librewolf.conf
[librewolf]

priority = 50

location = /var/db/repos/librewolf

sync-type = git

sync-uri = https://codeberg.org/librewolf/gentoo.git

auto-sync = Yes
eselect repository add librewolf git https://codeberg.org/librewolf/gentoo.git
emaint sync -r librewolf
sudo emerge --ask www-client/librewolf --autounmask

Ставим утилиты для работы с nvidia:

sudo emerge --ask dev-libs/cudnn dev-util/nvidia-cuda-toolkit dev-ruby/git app-portage/gentoolkit sys-process/nvtop

Ставим программу для снижения вольтажа на процессоре:

sudo emerge --ask sys-power/intel-undervolt --autounmask
sudo nano /etc/intel-undervolt.conf
undervolt 0 'CPU' -105

undervolt 1 'GPU' -105

undervolt 2 'CPU Cache' -105

undervolt 3 'System Agent' -80

undervolt 4 'Analog I/O' -80

tjoffset -20

power package 65 45 # PL2 (short) 65W, PL1 (long) 45W

interval 5000

daemon undervolt:once

daemon power

daemon tjoffset
sudo intel-undervolt apply
sudo intel-undervolt read

Для автозапуска intel-undervolt создаем файл /etc/init.d/intel-undervolt:

sudo nano /etc/init.d/intel-undervolt

вставляем туда текст:

#!/sbin/openrc-run

description="Apply intel-undervolt settings (one-shot)"

depend() {

need localmount

after dbus

after display-manager

}

start() {

ebegin "Applying intel-undervolt settings"

sleep 5

/usr/bin/intel-undervolt apply < /etc/intel-undervolt.conf || {

eend 1 "Failed to apply intel-undervolt settings"

return 1
}
eend 0
}

Ставим дополнительные браузеры

sudo emerge --ask www-client/firefox
sudo emerge --ask www-client/vivaldi

Ставим улучшайзер для глаз redshift:

sudo emerge --ask x11-misc/redshift

Делаем для него файл конфигурации со своим географическим положением:

nano ~/.config/redshift.conf
[redshift]

location-provider=manual

[manual]

lat=50.38

lon=30.44

Редактируем grub:

sudo nano /etc/default/grub
hugepagesz=1GB hugepages=3 noresume preempt=none nowatchdog audit=0 split_lock_detect=off page_alloc.shuffle=1 split_lock_detect=off pci=pcie_bus_perf raid=noautodetect rootfstype=ext4 selinux=0 plymouth.enable=0 msr.allow_writes=on lpj=9333090 pcie_aspm=off

значение lpj берем отсюда:

sudo dmesg | grep "lpj="
sudo grub-mkconfig -o /boot/grub/grub.cfg

Оптимизируем быстродействие:

sudo mkdir -p /etc/sysctl.d
sudo nano /etc/sysctl.d/99-custom.conf
# === Управление памятью (VM) ===
vm.swappiness = 10
vm.vfs_cache_pressure = 50  # меньше памяти на кэш файлов
vm.dirty_background_ratio = 5       # Фоновая запись на диск раньше
vm.dirty_ratio = 10                 # Максимум "грязных" страниц в RAM перед принудительной записью
vm.min_free_kbytes = 131072          # Минимум свободной памяти (128 МБ)
# === Сеть ===
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_timestamps = 0

Обновляем и чистим систему:

emerge --update --newuse --deep --with-bdeps=y @world && emerge --depclean

Выход из текущей системы и перезагрузка

exit

cd

umount -l /mnt/gentoo/dev{/shm,/pts,}

umount -R /mnt/gentoo

reboot

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *