"Бурный протест вызывает у меня ещё только одна вещь: любители нравоучений. Никто не должен считать себя вправе выступать с проповедями." Линус Торвальдс
"Бурный протест вызывает у меня ещё только одна вещь: любители нравоучений. Никто не должен считать себя вправе выступать с проповедями." Линус Торвальдс
Профиль для Plasma установливаем в разделе: "Изменяем профили"
Необходимые USE - флаги: dbus policykit udev udisks X и
"VIDEO_CARDS="intel" (для видеокарты "intel")
INPUT_DEVICES="evdev synaptics"
MAKEOPTS="-j3"
были установлены ранее.
Запускаем необходимые службы:
D-Buss:
/etc/init.d/dbus start
rc-update add dbus default
В настоящее время ConsoleKit не поддерживается.
Имеется sys-auth/elogind доступный Gentoo и получивший поддержку в KDE Plasma, Gnome, Cinnamon, MATE, Xfce, а также в большинстве других.
Профиль рабочего стола переключается с consolekit на elogind.
Пользователи sys-auth/consolekit, должны рассмотреть возможность сделать то же самое.
Устанавливаем USE = "elogind -consolekit" в make.conf.
Убеждаемся, что в /etc/portage/package.use нет мусора консольного набора:
grep -R consolekit /etc/portage/package.use
Перестраиваем всех затронутых потребителей и удаляем sys-auth/consolekit:
emerge --ask --changed-use --deep @world
emerge --depclean sys-auth/consolekit
Рекомендуется в случае возникновения проблем, таких как отсутствие перезагрузки/выключения:
rc-update add elogind boot
Для пользователей ~/.xinitrc вместо одного из поддерживаемых DM не забудьте: обновить (ck-launch-session пропала без замены).
polkit:
Убеждаемся, что в ядре установлено CONFIG_FUTEX=y. Без этой опции процесс polkit может генерировать высокую загрузку процессора.
udev:
В ядре проверяем, а если нет, устанавливаем:
General setup --->
[ ] Enable deprecated sysfs features to support old userspace tools
[*] Configure standard kernel features (expert users) --->
-*- Enable signalfd() system call
Enable the block layer --->
[*] Block layer SG support v4
Networking support --->
Networking options --->
-*- Unix domain sockets
Device Drivers --->
Generic Driver Options --->
() path to uevent helper
-*- Maintain a devtmpfs filesystem to mount at /dev
< > ATA/ATAPI/MFM/RLL support (DEPRECATED) ----
File systems --->
-*- Inotify support for userspace
Pseudo filesystems --->
-*- /proc file system support
-*- sysfs file system support
rc-update add udev sysinit
udisks:
В ядре проверяем, а если нет, устанавливаем:
General setup --->
[*] Support for paging of anonymous memory (swap)
Device Drivers --->
< > ATA/ATAPI/MFM/RLL support (DEPRECATED) ----
File Systems -->
Pseudo filesystems --->
-*- Tmpfs virtual memory file system support (former shm fs)
-*- Tmpfs POSIX Access Control Lists
Native Language Support --->
<*> NLS UTF8
Создаём группу plugdev:
groupadd plugdev
Добавляем пользователя в группу:
usermod -a -G plugdev nikolay
Устанавливаем xorg-server:
emerge --ask x11-base/xorg-server
Wayland - протокол, который является более простой заменой Xorg. В отличие от Xorg, Wayland не имеет API отрисовки. и соответственно ей не занимается. Такие среды рабочего стола как GNOME и KDE уже поддерживают Wayland. Существует Xwayland, который позволяет запускать приложения X11 в Wayland.
XWayland, обеспечивает выполнение X.Org-сервера как Wayland-клиента. В режиме под управлением Wayland без X-сервера могут быть запущены приложения, написанные с использованием поддерживающих Wayland библиотек, таких как Qt, SDL, Clutter и Gtk+. Компонент XWayland позволяет обеспечить совместимость с программами, использующими низкоуровневые библиотеки X11.
Добавляем в /etc/portag/make.conf USE флаги:
USE ...gles2 wayland...
Установка Wayland:
emerge --ask dev-libs/wayland
В данной сессии редактор Vim может выдавать ошибку:
> No protocol specified
> No protocol specified
> No protocol specified
Vim пытается подключиться к X - серверу и терпит неудачу.
Для устранения этой ошибки, один из вариантов, необходимо загрузить Vim с флагом -X.
Для удаления Wayland, пересобираем систему с флагами -gles2 -wayland.
После удаления, в Plasma 5 могут не запускаться некоторые программы, например firefox, thunderbirds и.т.д.
Если запуск, например, firefox из терминала выдаёт следующую ошибку:
$ firefox
/usr/lib64/firefox/firefox: symbol lookup error: /usr/lib64/gtk-3.0/modules/libappmenu-gtk-module.so: undefined symbol: gdk_wayland_display_get_type
необходимо добавить флаг -gtk, пересобрать систему и не забываем о чистке с помощью --depclean.
Определяем видеокарту:
lspci | grep -i VGA
Пакет x11-drivers/nvidia-drivers поддерживает ряд карт NVIDIA. Для установки доступно несколько версий, в зависимости от карт, которые есть в системе. См. официальную документацию NVIDIA «Что такое устаревший драйвер?», чтобы узнать, какую версию драйверов x11-drivers/nvidia-drivers следует использовать, через интерактивную форму, вводим графическую карту, используемую системой.
Если карта была идентифицирована как устаревшая, замаскируем более поздние выпуски x11-drivers/nvidia-drivers:
vim /etc/portage/package.mask
>x11-drivers/nvidia-drivers-391
Включаем поддержку загружаемых модулей (CONFIG_MODULES)
[*] Enable loadable module support --->
Включаем регистр диапазона типов памяти в ядре (включает /proc/mtrr) (CONFIG_MTRR):
Processor type and features --->
[*] MTRR (Memory Type Range Register) support
По крайней мере, для некоторых, если не для всех версий драйверов, также может потребоваться включить арбитраж VGA и обработчик сообщений IPMI (CONFIG_VGA_ARB):
Device Drivers --->
Graphics support --->
[*] VGA Arbitration
Включаем обработчик сообщений IPMI (CONFIG_ACPI_IPMI):
Device Drivers --->
Character devices --->
[*] IPMI top-level message handler
Для процессоров x86 и AMD64 встроенный в ядро драйвер кадрового буфера конфликтует с двоичным драйвером, предоставленным NVIDIA. При компиляции ядра для этих процессоров полностью удаляем поддержку встроенного в ядро драйвера (CONFIG_FB_NVIDIA, CONFIG_FB_RIVA):
Device Drivers --->
Graphics support --->
Frame buffer Devices --->
<*> Support for frame buffer devices --->
< > nVidia Framebuffer Support
< > nVidia Riva support
Отключить поддержку nouveau драйвера (CONFIG_DRM_NOUVEAU):
Device Drivers --->
Graphics support --->
< > Nouveau (nVidia) cards
Драйвер кадрового буфера требуется для рендеринга консоли Linux (TTY), поскольку эта функциональность не предоставляется проприетарным драйвером NVIDIA. Устанавливаем «Mark VGA/VBE/EFI FB как общий системный буфер кадра» (CONFIG_SYSFB_SIMPLEFB=y), а затем включаем драйвер буфера кадра. Общие варианты для этого - использовать либо simplefb (CONFIG_FB_SIMPLE=y), либо efifb (CONFIG_FB_EFI=y).
Включаем простой фреймбуфер (CONFIG_FB_SIMPLE) до ядра 5.15:
Bus options (PCI etc.) --->
[*] Mark VGA/VBE/EFI FB as generic system framebuffer
Device Drivers --->
Graphics support --->
Frame buffer Devices -->
<*> Support for frame buffer devices --->
<*> Simple framebuffer support
Параметр «Mark VGA/VBE/EFI FB как универсальный системный буфер кадра» перемещён в ядро 5.15 с новым именем символа для всех арок. Если не будут внесены изменения, это может привести к чёрному экрану или отсутствию прогресса после загрузки загрузчика.
Включаем простой фреймбуфер (CONFIG_FB_SIMPLE) ядро 5.15 и выше:
Device Drivers --->
Firmware Drivers --->
[*] Mark VGA/VBE/EFI FB as generic system framebuffer
Graphics support --->
Frame buffer Devices --->
<*> Support for frame buffer devices --->
<*> Simple framebuffer support
Если плагины GCC ядра включены, компиляция драйверов NVIDIA будет использовать их. Если версия компилятора, которая использовалась для компиляции плагинов, не соответствует версии компилятора nvidia-drivers, возникнет ошибка.
General architecture-dependent options --->
GCC plugins --->
Компилируем ядро:
make oldconfig && make prepare
Каждый раз после сборке ядра необходимо переустанавливать модули ядра NVIDIA:
emerge @module-rebuild
Настраиваем X Server.
Поддержка для Event интерфейса (CONFIG_INPUT_EVDEV) должна быть активирована:
Device Drivers --->
Input device support --->
<*> Event interface
Современные видеодрайверы с открытым исходным кодом полагаются на настройку режима ядра (KMS). KMS обеспечивает улучшенную графическую загрузку с меньшим мерцанием, более быстрое переключение пользователей, встроенную консоль кадрового буфера, плавное переключение с консоли на Xorg и другие функции.
Убедимся, что устаревшие драйверы кадрового буфера отключены.
KMS конфликтует с устаревшими драйверами кадрового буфера, которые должны оставаться отключенными в конфигурации ядра.
Сначала подготовим ядро для KMS. Этот шаг не зависит от того, какой видеодрайвер Xorg будет использоваться:
Device Drivers --->
Graphics support --->
Frame Buffer Devices --->
<*> Support for frame buffer devices --->
## (Отключите все драйверы, в том числе VGA, Intel, NVIDIA, и ATI, за исключением поддержки кадрового буфера на основе EFI, только если используется UEFI)
## (Включите базовую поддержку консоли. Это использует KMS.)
Console display driver support --->
<*> Framebuffer Console Support
Для карт NVIDIA доступны два варианта драйвера. Для полностью открытой системы предлагается драйвер с открытым исходным кодом под названием Nouveau. Второй вариант — драйвер NVIDIA с закрытым исходным кодом, официально поддерживаемый NVIDIA.
Устанавливаем VIDEO_CARDS="nvidia" в /etc/portage/make.conf. Во время установки X-сервера он установит правильную версию x11-drivers/nvidia-drivers.
Убедимся, что этот USE-флаг X добавлен в список USE-флагов, чтобы обеспечить совместимость X со всей системой.
Переменная INPUT_DEVICES используется для определения драйверов которые должны быть созданы для устройств ввода.
make.defaults имеет libinput в качестве драйвера устройства ввода по умолчанию.
Драйверы могут быть установлены с USE-флагом tools. Это установит nvidia-settings, удобный графический инструмент для мониторинга и настройки нескольких аспектов карты NVIDIA.
vim /etc/portage/package.use
x11-drivers/nvidia-drivers tools
После установки всех необходимых переменных и USE-флагов, устанавливаем Xorg:
emerge --ask x11-base/xorg-server
Попробуем startx для запуска X-сервер:
$ startx
Пользователей, которым требуется доступ к видеокарте, необходимо добавить в группу видео:
gpasswd -a user video
Некоторые инструменты, такие как media-video/mplayer и media-libs/xine-lib, используют локальный USE-флаг xvmc, который включает поддержку XvMCNVIDIA, что полезно при просмотре фильмов с высоким разрешением. Добавляем xvmc в переменную USE в /etc/portage/make.conf или добавляем его как флаг USE в media-video/mplayer и/или media-libs/xine-lib в /etc/portage/package.use.
Серия GeForce 8 и более поздние графические процессоры поставляются с поддержкой VDPAU, которая заменила поддержку XvMCNVIDIA.
Есть также некоторые приложения, которые используют USE-флаг nvidia, поэтому было бы неплохо добавить его в /etc/portage/make.conf.
Чтобы пересобрать приложения, запускаем:
emerge -uD --newuse @world
Встроенное ПО микроконтроллера дисплея обеспечивает поддержку расширенных графических состояний с низким энергопотреблением.
Встраиваем прошивку DMC в бинарный файл ядра (в данном случае i915/kbl_dmc_ver1_04.bin) начиная с Linux 4.18:
Device Drivers --->
Generic Driver Options --->
Firmware loader --->
-*- Firmware loading facility
(i915/kbl_dmc_ver1_04.bin) Build named firmware blobs into the kernel binary
(/lib/firmware) Firmware blobs root directory
Посмотреть можно командой:
dmesg | grep -i -E firmware
[ 0.108839] Spectre V2 : Enabling Restricted Speculation for firmware calls
[ 0.720459] Loading firmware: i915/kbl_dmc_ver1_04.bin
Для systemd:
journalctl -b 0 --dmesg | grep -i firmware
Необходимый профиль:
default/linux/amd64/17.1/desktop/plasma (stable) * был установлен ранее.
Проверяем наличие USE флагов "-minimal handbook qt kde plasma" если они есть, удаляем.
Устанавливаем Plasma:
emerge --ask kde-plasma/plasma-meta
Устанавливаем дисплей менеджер
emerge --ask gui-libs/display-manager-init
Установите display-manager в качестве менеджера дисплея по умолчанию:
vim /etc/conf.d/display-manager
CHECKVT=7
DISPLAYMANAGER="sddm"
rc-update add display-manager default
Запускаем:
rc-service display-manager start
Для systemd:
systemctl enable sddm.service
systemctl start sddm.service
Для графической конфигурации настроек системы, устанавливаем:
emerge --ask kde-plasma/sddm-kcm
systemd - это современная замена системы инициализации
SysV - подобных init и rc (run command) для Linux.
Быстрая настройка ядра, если используется gentoo-sources:
Gentoo Linux --->
Support for init systems, system and service managers --->
[ ] OpenRC, runit and other script based systems and managers
[*] systemd
Cоздаём символьную ссылку:
ln -sf /proc/self/mounts /etc/mtab
Профиль для systemd установливаем в разделе: "Изменяем профили"
Проверяем USE - флаг, systemd, если его нет, то устанавливаем и отключаем флаги -consolekit -elogind.
Обновляем систему с новыми флагами:
emerge -avDN @world
В случии проблемы с обновлением системы, пробуем решить её удалением sys-fs/udev:
emerge --deselect sys-fs/udev
Настройка GRUB2 для systemd:
vim /etc/default/grub
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
Если система всё ещё запускается с OpenRC, для grub и grub2, init может быть жёстко сконфигурирована в ядре:
Processor type and features -->
[*] Built-in kernel command line
Создаём machine ID работы журналирования:
systemd-machine-id-setup
Устанавливаем имя хоста:
hostnamectl set-hostname <HOSTNAME>
Устанавливаем дату и время.
Чтобы понять, как использовать timedatectl, запускаем:
timedatectl --help
Просмотреть список часовых поясов можно при помощи команды:
timedatectl list-timezones
Осуществляем установку нужного часового пояса:
timedatectl set-timezone <часовой пояс>
Проверяем установленные параметры:
timedatectl status
Файлы юнитов загружаются из двух мест:
/lib/systemd/system - юниты, предоставляемые пакетами при установке. Их лучьше не трогать.
/etc/systemd/system/ - юниты, устанавливаемые системным администратором.
Юниты установленые системным администратором по приоритету выше предоставляемых пакетами.
Перезагрузить systemd для поиска новых или измененных юнитов:
systemctl daemon-reload
Включаем юнит в автозагрузку:
systemctl enable юнит
Проверить, включен ли юнит в автозапуск:
systemctl is-enabled юнит
Убрать юнит из автозапуска при загрузке системы:
systemctl disable юнит
Показать состояние системы:
systemctl status
Список запущенных юнитов:
systemctl или
systemctl list-units
Список юнитов, запуск которых не удался:
systemctl --failed
Список установленных файлов юнитов:
systemctl list-unit-files
Если установлен демон syslog-ng, в файле /etc/syslog-ng/syslog-ng.conf необходимо изменить на следующее:
source src { systemd-journal(); internal(); };
Для чтения логов используется команда:
journalctl
Чтобы просматривать системные журналы от имени не root'а, пользователи должны быть в одной из трёх следующих групп: systemd-journal, adm или wheel.
Разрешаем обычному пользователю просматривать журналы используя группу systemd-journal:
gpasswd --add user systemd-journal
По умолчанию journalctl отсекает части строк, которые не вписываются в экран по ширине, и, в некоторых случаях, возможно, будет лучше использовать специальную программу-обертку. Управление этой возможностью производится посредством переменной окружения SYSTEMD_LESS, в которой содержатся опции, передаваемые в less. Например:
SYSTEMD_LESS=FRXMK journalctl
Отслеживания логов в реальном времени, предварительно также выводит последние 10 сообщений:
journalctl -f
Вывод всех сообщений с момента одной из последних загрузок:
journalctl -b # последняя загрузка
journalctl -b -1 # предыдущая загрузка
journalctl -b -N # N-я загрузка считая от последней
Просмотр информации о недавних событиях в системе:
journalctl -n
По умолчанию на консоль выводится информация о последних 10 событиях. Можно указать необходимое число событий, например:
journalctl -n 20
Во время диагностики и исправления неполадок в системе требуется просмотреть логи и выяснить, есть ли в них сообщения о критических ошибках. Для этого в journalctl предусмотрена возможность фильтрации по уровню ошибки. Просмотреть сообщения обо всех ошибках, имевших место в системе, можно с помощью опции -p:
journalctl -p err -b
Приведённая команда покажет все сообщения об ошибках, имевших место в системе.
Эти сообщения можно фильтровать по уровню.
0 - EMERG (система неработоспособна);
1 - ALERT (требуется немедленное вмешательство);
2 - CRIT (критическое состояние);
3 - ERR (ошибка);
4 - WARNING (предупреждение);
5 - NOTICE (всё нормально, но следует обратить внимание);
6 - INFO (информационное сообщение);
7 - DEBUG (отложенная печать).
Коды уровней ошибок указываются после опции -p.
По умолчанию journalctl использует для вывода сообщений логов внешнюю утилиту less. В этом случае к ним невозможно применять стандартные утилиты для обработки текстовых данных (например, grep). Для решения этой проблемы достаточно воспользоваться опцией −−no-pager, и все сообщения будут записываться в стандартный вывод:
journalctl --no-pager
После этого их можно будет передать другим утилитам для дальнейшей обработки или сохранить в текстовом файле.
Узнать объём имеющихся на текущий момент логов:
journalctl --disk-usage
Настройки ротации логов можно прописать в конфигурационном файле /еtc/systemd/journald.conf, который включает в числе прочих следующие параметры:
SystemMaxUse= максимальный объём, который логи могут занимать на диске;
SystemKeepFree= объём свободного места, которое должно оставаться на диске после сохранения логов;
SystemMaxFileSize= объём файла лога, по достижении которого он должен быть удален с диска;
RuntimeMaxUse= максимальный объём, который логи могут занимать в файловой системе /run;
RuntimeKeepFree= объём свободного места, которое должно оставаться в файловой системе /run после сохранения логов;
RuntimeMaxFileSize= объём файла лога, по достижении которого он должен быть удален из файловой системы /run.
ForwardToSyslog=no (yes) писать логи в syslog
Предварительно устанавливаем и настраиваем systemd.
Профиль default/linux/amd64/17.1/desktop/gnome/systemd (stable) *
для Gnome systemd был установлен ранее.
Необходимые переменные:
"VIDEO_CARDS="intel" (для видеокарты "intel")
INPUT_DEVICES="evdev synaptics"
MAKEOPTS="-j3"
были установлены ранее.
Дополнительно устанавливаем USE -флаги: gtk и gnome.
Настраиваем конфигурацию ядра:
Включение поддержки evdev в ядре
Device Drivers --->
Input device support --->
<*> Event interface
Отключение поддержки старого кадрового буффера и включение вместо него поддержки основного кадрового буфера для консоли
Device Drivers --->
Graphics support --->
Frame Buffer Devices --->
<*> Support for frame buffer devices --->
Отключаем все драйвера, включая VGA, Intel, nVidia и ATI, оставляем поддержку кадрового буфера EFI, только если используем UEFI.
Включаем кадровый буфер для консоли. Его использует KMS
Console display driver support --->
<*> Framebuffer Console Support
Если настройки не работают при установке пакета x11-base/xorg-drivers, проверяем все доступные варианты и выбераем те, которые применимы к системе.
emerge --ask --verbose x11-base/xorg-drivers
Устанавливаем Xorg:
emerge --ask x11-base/xorg-server
Необходимо заново инициализировать переменные окружения:
env-update
source /etc/profile
Устанавливаем "минимальный" Gnome:
emerge --ask gnome-base/gnome-light
Обновляем переменное окружение:
env-update && source /etc/profile
Проверяем, есть ли в системе группа plugdev:
getent group plugdev
plugdev:x:104:
Добавляем пользователя в группу:
usermod -a -G plugdev nikolay
Для запуска GDM во время загрузки:
systemctl enable gdm.service
Для запуска GDM сразу:
systemctl start gdm.service
Огромное спасибо! Не скажу, что нашёл статью бесполезной, как, в прочем и полезной, хотя, наверно, в большей степени она соответствует запросам современности, если не считать те незначительные моменты, где эти соответствия могли бы быть подвергнуты критике неискушённого разума, что, как мы понимаем, вряд ли возможно в виду описанного в статье объёма информации!
Николай: Хотелось бы ответ подвергнуть критике, но в соответствии с моим интелектом этого не предполагается возможным. Как Вы правильно подметили, статья конечно же не совсем бесполезна, но и пользы в ней не так уж и много. Но для меня вполне сайдёт. Предполагаю, что в данный момент таких, как я огромное множество и читать им подобное творчество не совсем уместно.
Остаётся одна надежда - признание потомков!
Николай: Не понравился сайт, хотите научить меня администрировать? Пожалуйста, с удовольствием буду учиться.
Отзывы в Вашем распоряжении!
Николай: Я знаю, у Вас уйма вопросов! На многие из них можете получить ответы прямо сейчас.