
Гайд по установке 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/cpuid2cpuflagscpuid2cpuflagsecho "*/* $(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/ntfs3gsys-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/xtermx11-misc/lightdmxfce-base/xfce4-meta xfce-extra/xfce4-notifydgnome-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 defaultrc-update add elogind defaultrc-update add NetworkManager default
rc-update add display-manager default
Настройка системного окружения для Xfce4:
echo XSESSION="Xfce4" > /etc/env.d/90xsessionenv-update && source /etc/profileДля автоматического входа в систему редактируем lightdm.conf:
nano /etc/lightdm/lightdm.confгде находим раздел locate the [Seat:*]
и раскомментируем строки
autologin-user=yourusernameautologin-user-timeout=0autologin-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 --askx11-drivers/nvidia-driversmedia-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 --asksys-apps/bleachbit
Ставим браузер librewolf:
mkdir -p /etc/portage/repos.conf/
nano /etc/portage/repos.conf/librewolf.conf[librewolf]priority = 50location = /var/db/repos/librewolfsync-type = gitsync-uri = https://codeberg.org/librewolf/gentoo.gitauto-sync = Yes
eselect repository add librewolf git https://codeberg.org/librewolf/gentoo.gitemaint sync -r librewolfsudo 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 --autounmasksudo nano /etc/intel-undervolt.confundervolt 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 powerdaemon tjoffset
sudo intel-undervolt applysudo 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.38lon=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 = 10vm.vfs_cache_pressure = 50 #меньше памяти на кэш файловvm.dirty_background_ratio = 5 # Фоновая запись на диск раньшеvm.dirty_ratio = 10 # Максимум "грязных" страниц в RAM перед принудительной записьюvm.min_free_kbytes = 131072 # Минимум свободной памяти (128МБ)# === Сеть ===net.core.somaxconn = 4096net.core.netdev_max_backlog = 4096net.ipv4.tcp_max_syn_backlog = 2048net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216net.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


