
Гайд по установке 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 и ввести пароль. При использовании зарузочного носителя xubuntu используем команду
sudo su
Разметка диска производиться без использования отдельного раздела подкачки. Он вреден для носителей SSD, NVMe и USB-HDD, имеющих ограпниченный ресурс, значительно меньший, чем у обычных HDD. При нехватке оперативной памяти можно будет создать swap-файл на основном диске. Для инсталляции gentoo не стоит использовать USB-флешки, так как они работают очень медленно и даже на мощном компьютере установка с нуля может занять несколько дней. При желании можно установить систему на HDD, а потом клонировать настроенный образ на USB-флешку.
На накопителе создаем два раздела: загрузочный и root. При наличии большого дискового пространства или дополнительного диска на нем можно создать третий раздел для каталога home. Для разбивки диска на разделы можно использовать консольные утилиты fdisk, cfdisk и им подобные, либо gparted. Чтобы иметь возможность работать с большими дисковыми накопителями нужно выбрать разметку gpt:
cfdisk /dev/sdb
где sdb — диск, на который производится установка.
Для загрузочного раздела можно выделить 512M-1GB дискового пространства, EFI system. Все остальное место можно оставить для системы (диск с файловой системой Linux).
Проверка разделов диска:
lsblk

Форматирование диска:
mkfs.vfat /dev/sdb1
mkfs.ext4 /dev/sdb2
Монтирование корневого и загрузочного разделов:
mkdir /mnt/gentoo
mount /dev/sdb2 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sdb1 /mnt/gentoo/boot/efi
cd /mnt/gentoo
Загрузка desktop-образа Tarball Stage 3 с сайта gentoo:

и его распаковка:
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo
Создаем файл параметров компиляции при дальнейшей установке:
nano /mnt/gentoo/etc/portage/make.conf
В него заносим следующие значения:
CFLAGS="-march=native -funroll-loops -O2 -pipe"
MAKEOPTS="--jobs 15 --load-average 9"
Число для аргумента jobs задаем или сокращенно «-j2») задается исходя из количества потоков процессора (для 16 поточного процессора Intel QTJ0 — устанавливаем значение jobs в 15-16). Параметр load-average ограничиваем для сохранения отзывчивости компьютера при компиляции.
Если на ккаком-то из этапов нужно будет прервать выполнение команд в терминале, нажимаем сочетание клавиш Ctrl+C.
Задаем разрешение на установку всех лицензий для фирменных/закрытых прошивок/программ:
ACCEPT_LICENSE="*"
При желании, вписываем адрес быстрого зеркала gentoo:
GENTOO_MIRRORS="https://mirrors.your-selected-mirror/gentoo"
Пример содержимого файла make.conf:
COMMON_FLAGS="-march=native -funroll-loops -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
MAKEOPTS="--jobs 15 --load-average 9"
ACCEPT_LICENSE="*"
RUSTFLAGS="-C target-cpu=native"
USE="X xorg dbus gtk systemd alsa pulseaudio glib nls networkmanager -nouveau"
CPU_FLAGS_X86="aes avx avx2 bmi1 bmi2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3"
VIDEO_CARDS="intel nvidia"
LC_MESSAGES=C.UTF-8
GRUB_PLATFORMS="efi-64"

Значения для строки CPU_FLAGS_X86 можно задать в файл конфигурации позже, используя программу cpuid2cpuflags и команды:
emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags
echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
Если команды, поддерживаемые процессором уже известны, их лучше сразу включить в файл make.conf.
Устанавливаем интерент соединения:
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
Монтируем разделы
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
Проверяем:
mount | grep /mnt/gentoo
Переходим в устанавливаемую систему gentoo:
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
После этого работа производиться непосредственно в устанавливаемой системе (например, в ней уже можно установить и работать с cpuid2cpuflags). При сбоях можно возобновить работу, смонтировав диски и повторив эти же команды. Вот они для удобства :
mkdir /mnt/gentoo
mount /dev/sdb2 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sdb1 /mnt/gentoo/boot/efi
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
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
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
Обновляем список репозиториев:
emerge-webrsync
Просматриваем список доступных профилей устанавливаемой системы:
eselect profile list

Задаем нужный профиль, например, для системы с графическим окружением (desktop-oriented) с менеджером systemd:
eselect profile set 4
Обновляем мир с выбранным профилем:
emerge --ask --verbose --update --deep --newuse @world
Выбираем свой часовой пояс:
tzselect

Задаем местное время, например:
ln -sf /usr/share/zoneinfo/Europe/Vatican City /etc/localtime
Выбираем языковые локали:
nano -w /etc/locale.gen
Генерируем языковые локали:
locale-gen
Просматриваем их список ,чтобы выбрать номер, соответствующий желаемому языку для приложений системы
eselect locale list
Выбираем номер нужной локали:
eselect locale set 5
Ставим шрифты:
emerge --ask media-fonts/dejavu media-fonts/liberation-fonts media-fonts/wqy-zenhei media-fonts/noto-emojiОсуществляем перезапуск окружения для применения внесенных изменений:
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
Для сборки ядра на своем компьютере используем репозиторий gentoo-sources с исходниками:
emerge --ask sys-kernel/gentoo-sources
или
emerge --ask sys-kernel/zen-sources
Смотрим, какое ядро скачано и линкуем его командой:
ln -s /usr/src/linux-6.18.12-gentoo /usr/src/linux
Устанавливаем сборщик ядра genkernel:
emerge --ask sys-kernel/genkernel
Устанавливаем пакеты с фирменными прошивками для устройств компьютера:
emerge --ask sys-kernel/linux-firmware sys-firmware/intel-microcode
Прописываем в fstab UUID файловой системы диска. Для этого в отдельном терминале (в системе, из под которой производится установка) выполняем команды:
sudo su
apt install arch-install-scripts
genfstab -U /mnt/gentoo
genfstab -U /mnt/gentoo | tee /mnt/gentoo/etc/fstab
Переходим терминал, на котором производится установка gentoo и проверяем содержимое fstab:
nano /etc/fstab

Значения UUID файловой системы можно взять из вывода команды cfdisk /dev/sdX
Запускаем генерацию ядра системы:
genkernel all
После этого настраиваем полученный «скелет» операционной системы:
Указываем имя компьютера:
nano /etc/conf.d/hostname
nano /etc/hostname
Редактируем файл hosts в соответствии с незванеим компьютера:
nano /etc/hosts
127.0.0.1 localhost 127.0.0.1 hostname
Устанавливаем сетевые утилиты:
emerge --ask net-misc/dhcpcd sys-apps/ethtool
При необходимости, для беспроводных сетей добавляем:
emerge --ask net-wireless/iw net-wireless/wpa_supplicant
Включаем сетевую службу dhcpcd с помощью менеджера systemd:
systemctl enable dhcpcd
Устанавливаем утилиты для системы и файловых систем:
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
Возможно, потребуется внести изменения в конфигурацию системы, например, с помощью
dispatch-conf
Устанавливаем GRUB:
emerge --ask --update --newuse --verbose sys-boot/grub
grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable
Конфигурируем загрузчик:
grub-mkconfig -o /boot/grub/grub.cfg
Добавляем пользователя системы в группы:
useradd -m -G users,wheel,audio,video,usb,cdrom,portage,cron -s /bin/bash имя_пользователя
Задаем пароль root и пользователя:
passwd
passwd username
Предоставляем ему привилегии sudo:
EDITOR=nano visudo
Раскомментируем строку
# %wheel ALL=(ALL:ALL) ALL

Удаляем ранее скачаный образ системы:
rm /stage3-*.tar.* у
Ставим утилиты:
emerge --ask app-admin/sudo sys-apps/portage
Обновляем файлы конфигурации:
sudo etc-update
Устанавливаем графическую оболочку xfce4 с дисплейным менеджером lightdm и другие программы:
emerge --ask x11-base/xorg-server x11-base/xorg-drivers gui-libs/display-manager-init
emerge --ask xfce-base/xfce4-meta xfce-extra/xfce4-notifyd
emerge --ask x11-misc/lightdm-gtk-greeter x11-misc/lightdm net-misc/networkmanager gnome-extra/nm-applet xfce4-terminal app-editors/mousepad xfce-extra/xfce4-screenshooter xfce-extra/xfce4-xkb-plugin xfce-extra/xfce4-taskmanager x11-themes/xfwm4-themes x11-terms/xfce4-terminal xfce-base/thunar net-p2p/qbittorrent app-arch/xarchiver xfce-extra/thunar-archive-plugin media-gfx/gimp media-video/vlc net-ftp/filezilla sys-apps/bleachbit net-misc/tigervnc sys-apps/mlocateapp-shells/bash-completion
Поддержка разных форматов архивов:
emerge --ask app-arch/p7zip app-arch/arj app-arch/lha app-arch/lzop app-arch/unrar app-arch/rar app-arch/unzip app-arch/zip
Включаем синхронизацию времени:
emerge --ask net-misc/ntp
systemctl enable ntpd
Добавляем USE flags для включения NVIDIA hardware encoding/decoding:
nano /etc/portage/package.use/nvidia
Вписываем туда:
*/* VIDEO_CARDS: -* nvidia */* nvidia vdpau nvenc
Редактируем файл display-manager для работы с lightdm:
nano -w /etc/conf.d/display-manager
DISPLAYMANAGER="lightdm"

systemctl enable lightdm
Редактируем файл xinitrc:
sudo nano ~/.xinitrc
Добавляем туда: exec dbus-launch --exit-with-session xfce4-session Обновляем и чистим систему:
sudo emerge --ask --verbose --update --deep --newuse @world
emerge --depclean
После установки sys-apps/portage пакеты gentoo синхронизируются командой:
sudo emaint --auto sync
Для автоматического входа в систему редактируем lightdm.conf:
nano /etc/lightdm/lightdm.conf
где находим раздел [Seat:*]
и раскомментируем строки
autologin-user=yourusername
autologin-user-timeout=0
Проверка, определены ли звуковые устройства в системе:
cat /proc/asound/card*/codec* | grep Codec
Установка планировщика задач:
emerge --ask sys-process/cronie
Пересборка initramfs:
genkernel --install initramfs
systemd-machine-id-setupsystemd-firstboot --promptsystemctl preset-all --preset-mode=enable-onlyhostnamectl set-hostname
Выход из текущей системы и перезагрузка
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
reboot
Ставим драйвера видеокарт:
emerge --ask x11-drivers/nvidia-drivers x11-apps/mesa-progs xf86-video-intel
Если Nvidia Tesla V100 будет использоваться для игр, то нужно ставить grid-драйвер Nvidia от Google.
Чтобы пользоваться разгоном Nvidia выполняем команду:
sudo nvidia-xconfig -a --cool-bits=31
Для Nvidia Tesla V100, которая не имеет видеовыходов, нужно установить свой файл xorg.conf в папку /etc/X11/. В нем для вывода изображения должна быть прописана интегрированная видеокарта Intel:
Section "ServerLayout" Identifier "Xorg Configured" Screen "Monitor" EndSection Section "Files" FontPath "/usr/share/fonts/corefonts" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/droid" EndSection Section "Module" Load "dri" Load "i2c" Load "bitmap" Load "ddc" Load "int10" Load "vbe" Load "glx" # OpenGL X protocol interface Load "extmod" # Misc. required extension EndSection Section "Monitor" Identifier "StandardMonitor" Option "DPMS" EndSection Section "Device" Identifier "Video" Driver "intel" Option "NoAccel" "False" Option "DRI" "True" Option "AccelMethod" "sna" EndSection Section "Screen" Identifier "Monitor" Device "Video" Monitor "StandardMonitor" DefaultDepth 24 Subsection "Display" Viewport 0 0 Depth 24 Modes "1920x1080" EndSubsection EndSection Section "DRI" Group "video" Mode 0666 EndSection Section "Extensions" Option "Composite" "On" EndSection

Для обычных видеокарт Nvidia (Ge Force) достаточно установить пакет nvidia-x11-drivers/nvidia-drivers.
Обновление системы для использования обновленных USE-флагов:
emerge -vauDU @world
emerge --ask --changed-use --deep @world
При установке программ и появлении запросов о внесении изменений в конфигурационные файлы используем команду
dispatch-conf
Применение изменений — ключ u.
Настройка звука через pipewire (после загрузки в систему):
emerge --ask media-sound/pavucontrol xfce-extra/xfce4-pulseaudio-plugin --ask media-plugins/alsa-plugins media-libs/libpulse media-video/pipewire
$ systemctl --user --now disable pulseaudio.service pulseaudio.socket
$ systemctl --user --now disable pipewire-media-session.service
$ systemctl --user --now enable pipewire.socket pipewire-pulse.socket
$ systemctl --user --force enable wireplumber.service
Вывод информации консольной утилитой screenfetch об установленной gentoo при работе в xfce4:

Вывод по команде
inxi -F



