Первая часть: "Пара" слов о Solus 4.2 под KDE
Доброго времени!
Прошло более полугода с момента первого знакомства с Solus'ом. За это время вышло номерное обновление 4.3. Обновились ядро, многие компоненты, рабочие среды, в т.ч. KDE Plasma и т.д. Пофикшены старые баги, добавлены новые - все как обычно. О некоторых новых и не очень особенностях, багах, фиксах сегодня и пойдет речь.
История одного фризящего курсора
После очередного обновления проприетарного драйвера для Nvidia и самого KDE Plasma начали происходить "очень странные дела". При запуске тяжеловесных игр и приложений курсор мыши "зависал", начинал лагать и статтерить, пока все не прогрузится.
Поиздевавшись над всеми возможными настройками и не найдя решения, поставил второй системой Kubuntu. Там, как оказалось, все спокойно и нет даже намека на такое странное поведение.
Было проверено несколько LTS и Rolling дистрибутивов под KDE Plasma: Debian, Kubuntu, Manjaro, SalientOS. Закономерность быстро нашлась - LTS дистрибутивы такой болячкой не страдают. Но кто виноват: ядро, KDE Plasma, Nvidia или что-то еще?
Чтобы убедиться, что Solus в этом не виноват, был установлен он же, но под Mate. Заодно необходимо было решить давнюю проблему с тирингом под Mate. Стандартное "включи форс пайплайн" не помогало. Компиз так же был бесполезен. Спустя некоторое количество чашек кофе решение все же нашлось.
В xorg необходимо было добавить помимо "ForceCompositionPipeline" еще и "TripleBuffer" в значении "true". И вроде бы вот оно - тиринга нет, все окей. Тут нужна картинка с Хуаном Хойя Борха ("хохочущий испанец" или хохотун). "Хесу, GPU 1660 Ti в простое загружен на 38 процентов", дикий смех Хуана можете представить сами xD.
Решением оказалось добавление все туда же параметра "UseNvKmsCompositionPipeline" в значении "false"
Итоговое решение проблемы выглядит так
В файл /etc/X11/xorg.conf.d/00-ldm.conf добавить следующее
Option "MetaModes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
Option "UseNvKmsCompositionPipeline" "false"
Option "TripleBuffer" "true"
У меня он выглядит так
Section "Device"
Identifier "NVIDIA Card"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "TU116 [GeForce GTX 1660 Ti]"
Option "MetaModes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
Option "UseNvKmsCompositionPipeline" "false"
Option "TripleBuffer" "true"
EndSection
Важно! Команда "sudo usysconf run -f" приведет ваш 00-ldm.conf к дефолтному состоянию.
И несмотря на то что в KDE Plasma нет проблем с тирингом "из коробки", это решение помогает пофиксить лагающий курсор и в нем.
Далее несколько полезностей
Что может пригодиться
Eopkg History
Поизучав фишки eopkg Solus'а, нашлась одна из самых полезных:
sudo eopkg history - выводит в хронологическом порядке с указанием дат все действия с пакетами - установка/удаление и т.д.
Operation #3: upgrade
Date: 2021-09-11 13:47
* ilmbase 2.5.4-7-1-x86_64 is removed.
* libopenaptx 0.2.0-2-1-x86_64 is removed.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* kwallet-pam is upgraded from 5.22.2-70-1-x86_64 to 5.22.5-72-1-x86_64 with delta.
* at-spi2 is upgraded from 2.40.2-27-1-x86_64 to 2.40.3-28-1-x86_64 with delta.
Operation #2: repository update
Date: 2021-09-11 13:47
* Solus repository is updated.
Operation #1: remove
Date: 2021-09-11 13:45
* libreoffice-draw 7.1.4.2-127-1-x86_64 is removed.
* snapd 2.51-63-1-x86_64 is removed.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* libreoffice-writer 7.1.4.2-127-1-x86_64 is removed.
* libreoffice-common 7.1.4.2-127-1-x86_64 is removed.
(END)
Нетрудно заметить, что каждой группе операций присваивается номер. И это неспроста. При добавлении параметра -t <номер операции> можно откатить систему до состояния пакетов из этого номера. Пакеты, при этом, будут тех версий, которые были на тот момент. Откат до первоначального состояния будет выглядеть так
sudo eopkg history -t 1
Добавление в автозагрузку сервисов, требующих sudo
Сперва необходимо найти бинарник, который отвечает за тот или иной сервис. Обычно они располагаются в "/usr/bin/", "/usr/sbin/". Если там нет, то его можно найти поиском.
Выполняем sudo visudo для редактирования файла sudoers.
Пролистываем в самый низ и добавляем интересующий нас сервис. Например сервисы nvidia (заменяем username на свой)
username ALL=(ALL) NOPASSWD: /usr/bin/nvidia-persistenced
username ALL=(ALL) NOPASSWD: /usr/bin/nvidia-smi
Это, например, даст нам возможность работать с разгоном или уменьшением/увеличением Power limits на видеокарте. Останется поместить в автозагрузку sudo nvidia-smi -i 0 -pl 70. Это ограничит потребление энергии до 70w.
Если же добавить cpu-powersave (заменяем username на свой)
username ALL=(ALL) NOPASSWD: /usr/sbin/cpu-powersave
можно будет при запуске переключать governor'ы с ondemand по-умолчанию на performance, добавив в автозагрузку sudo cpu-powersave stop
Восстановление EFI загрузчика
Заходим с Live CD Solus'а
Ищем нужный EFI раздел
sudo fdisk -l
Устанавливаем efibootmgr
sudo eopkg it efibootmgr
Предварительно можно "прощупать" EFI раздел, чтобы уточнить по какому пути лежит systemd-bootx64.efi. Монтируем найденный EFI раздел (sdX - X изменить на свой EFI раздел)
sudo mount /dev/sdX /mnt
Просматриваем в виде "дерева"
sudo tree -a /mnt
Получаем примерно такое
/mnt
├── EFI
│ ├── Boot
│ │ └── BOOTX64.EFI
│ ├── com.solus-project
│ │ ├── initrd-com.solus-project.current.5.13.1-187
│ │ ├── initrd-com.solus-project.current.5.13.15-194
│ │ ├── kernel-com.solus-project.current.5.13.1-187
│ │ └── kernel-com.solus-project.current.5.13.15-194
│ └── systemd
│ └── systemd-bootx64.efi
└── loader
├── entries
│ ├── Solus-current-5.13.1-187.conf
│ └── Solus-current-5.13.15-194.conf
└── loader.conf
Не забываем отмонтировать
sudo umount /mnt
Выполняем следующую команду (sdX - X изменить на свой EFI раздел)
sudo efibootmgr -c -d /dev/sdX -p 1 -l "\EFI\systemd\systemd-bootx64.efi" -L "Solus"
Подробнее о параметрах efibootmgr можно прочитать по efibootmgr --help
Черный экран без мигающего курсора после чистой установки на системах с видеокартами Nvidia
Если такая неприятность произошла после чистой установки и индикатор жесткого диска на системном блоке перестал мигать т.к. система закончила загрузку, но изображения нет, можно попробовать вслепую перезагрузить ПК из терминала, нажав Ctrl + Alt + F2. Затем вводим логин, <Enter>, пароль, <Enter>, вводим reboot, <Enter>. Ну либо reset :)
Как только услышали звуковой сигнал материнской платы или появился ее логотип, удерживаем <пробел>. Выбираем строку Solus <название редакции> клавишами <вверх>/<вниз> и жмем английскую "E". Переходим в самый конец строки (можно нажать <End> на клавиатуре для быстрого перемещения). И через пробел дописываем "nomodeset" без кавычек. Нажимаем <Enter> для загрузки.
Если же и теперь загрузка завершилась черным экраном без мигающего курсора, то жмем Ctrl + Alt + F2. В режиме nomodeset должен появится терминал в низком разрешении экрана. Логинимся и выполняем обновление
sudo eopkg up
и установку проприетарного драйвера nvidia
sudo eopkg it nvidia-glx-driver-current
К последней команде можно добавить через пробел nvidia-glx-driver-32bit, если необходим 32 битный драйвер.
Перезагружаем систему командой "reboot"
Простенький графический Firewall
sudo eopkg it gufw
Запуск .jar пакетов (на примере minecraft)
Устанавливаем openjdk и openjfx (можно только последний, т.к. jdk сам установится через зависимости)
sudo eopkg it openjfx-8
Создаем sh файл java.sh следующего содержания
#! /bin/sh
cd /usr/bin/
sudo ln -sf /usr/lib64/openjdk-8/bin/java java
sudo ln -sf /usr/lib64/openjdk-8/bin/javac javac
sudo ln -sf /usr/lib64/openjdk-8/bin/java javadoc
sudo ln -sf /usr/lib64/openjdk-8/bin/javah javah
sudo ln -sf /usr/lib64/openjdk-8/bin/javap javap
sudo ln -sf /usr/lib64/openjdk-8/bin/java-rmi.cgi java-rmi.cgi
sudo ln -sf /usr/lib64/openjdk-8/bin/jar jar
sudo ln -sf /usr/lib64/openjdk-8/bin/jarsigner jarsigner
Запускаем его один раз, перейдя в папку с ним
sudo sh java.sh
Теперь можем запускать .jar пакеты так
java -jar minecraft.jar
ПК просыпается сразу после отправки его в сон
Открываем файл wakeup
sudo nano /proc/acpi/wakeup
и ищемpci устройства со статусом enabled
Идем в инфоцентр солуса Устройства -> PCI
Ищем по номеру pci устройство из файла wakeup (Chipset USB controller или USB Hub)
Пробуем отключить его
echo <имя устройства> | sudo tee /proc/acpi/wakeup
у меня эта команда выглядит так
echo PTXH | sudo tee /proc/acpi/wakeup
Убеждаемся, что все работает. Однако, так будет только до перезагрузки. Чтобы осталось насовсем, необходимо отредактировать скрипт в файле /usr/lib/systemd/system-sleep/wpa_supplicant.sh, добавив вышеупомянутую строчку в его начало. Должно получиться следующее
#!/bin/sh
echo PTXH | sudo tee /proc/acpi/wakeup
set -e
if [ "" = "suspend" ] || [ "" = "hybrid-sleep" ]; then
case "" in
pre) /sbin/wpa_cli suspend ;;
post) /sbin/wpa_cli resume ;;
esac
fi
Неточность в предыдущей статье
Чтобы установить GreenWithEnvy необходимо добавить репозиторий
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Затем установить
flatpak install flathub com.leinardi.gwe
Вместо заключения
Продолжая пользоваться Solus'ом, понимаешь как удобно реализованы многие вещи, которые в других дистрибутивах разбросаны в разных местах. Да, есть свои заморочки и минусы, но комфортность использования их перевешивает.
Хотя для себя, прыгая по дистрибутивам, я понял одну простую вещь, что в последнее время уже не имеет значения, какой дистрибутив установлен на твоем ПК или ноутбуке, главное то, сколько времени ты готов и можешь потратить на его освоение.
Всем удачи
¡Adiós Amigos!
Комментарии
14:35
14:36
Люблю ирландских Solus. Он 'особенный, 'особняковый' :).
14:40
П.С. Смотрю, даже GWE в дистр не добавили, по-прежнему скудные репозитории ?
П.П.С. Очень согласен с заключением. Поэтому у каждого свой вариант, и я такой тоже нашел
22:39
Не очень большой спрос и не нашлось мейнтейнера (там много питоновских библиотек нужно поддерживать, которые по факту только с gwe и связаны)
15:21
> sudo tree -a /mnt
$ findmnt --tree --real
15:36
Такие вещи очень даже помогают, когда наступает момент "хочу", а в подкорке юзер понимает "не знаю как!" - нужная инфа, когда она нужна, не имеет цены.
Очень нужная инфа для пользователей, нынешних или перспективных.
19:36
Дико плюсую за эту фразу!
19:52
22:37
До сих пор намба ван среди Linux (на безрыбье, я бы сказал)
Далее идёт openSUSE с YAST (по сути главной киллер-фичей, но с отвратительным интерфейсом и написанным на Ruby)
На третьем месте Fedora (есть некоторые вопросы к деятельности FESCo, например, включение btrfs по умолчанию, зато включение PipeWire очень обрадовало)
На четвёртом месте elementary (сам не пробовал: интерфейс очень не нравится. К нему недостаточно много внимания, при этом у разработчиков в целом хорошие донейтеры, которые помогают развивать дистрибутив: granite, большое количество программ и т.д. В целом считаю его курс верным, но т.к. интерфейс прибит гвоздями к определённому макету, не скоро попробую)
На пятом месте Zorin OS, основная заслуга которого сводится к пристальному вниманию к интерфейсу (по сути могли бы делать какой-нибудь rpm-дистрибутив с Cinnamon и к нему писать тему)
На шестом месте Linux Mint Cinnamon -- мне по большей части понравился, но апплеты на жаваскрипт через файрфокс 20-х годов прошлого века и отсутствие rolling'а сыграли свою роль
04:48
- Void Linux под Mate - без systemd, rolling, интересный пакетным менеджер XBPS, много пакетов, обширная вики, работает быстро, есть практически все что нужно. Поставил на старый ноут.
- SalientOS под KDE - очень компактый оптимизированный Arch без танцев с бубном. Оставил его второй системой.
Нейтральное впечатление произвели:
- Garuda - очень хорошая штука для новичков, помощник заменяет ковыряние терминала на 99%. Но перегружен лишним софтом, сервисами и т.д. от чего не сильно отзывчив.
- KaOS - очень вылизанная, хорошо оптимизированная система. Отлично подойдет для ноутов и для офисных работников. Огромнейший минус - доступны только базовые репозитории. Ни мультилиб, ни комьюнити не работают. Невозможно ни Steam поставить, ни что-то еще. А для веб серфа и офиса - лучше не придумать.
- Manjaro - очень хорош, но мне не зашел. Толще того же SalientOS. Нет "защиты от дурака" - можно поломать установкой проприетарных дров от nvidia.
05:54
08:15
16:13
10:01
Солус не пробовал.
Обзор очень понравился.
Может после этого попробую Солус...
15:15
12:40
Но есть пару вопросов . Как расширить efi раздел ,который 100мб и на котором загрузчик винды , что бы рядом поставить Solus?
И как по вашим очучениям kde на Solus работает плавнее и лучше ,чем на Mangaro?
17:45
17:49
Плюс "народные" сборки Windows в основном все идут с одним разделом 100 мб.
09:18
17:46
Еще есть замечательная программа Ventoy - один раз сделаете себе флэшку и просто будете закидывать на нее ISO образы разных дистрибутивов без переформатирования флэшки. Рекомендую так же выделить отдельный раздел на ней под ваши данные.
Предварительно скачайте и закиньте на созданную через Ventoy флэшку образ линукса и образ той виндовс, которая у вас уже установлена, на случай восстановления загрузчика. Туда же загрузочный диск Акрониса или Partition Magic, если решили через них.
А дальше просто уменьшите раздел с Windows. Освободившееся место добавьте к EFI разделу. Они обычно стоят друг за другом и проблем быть не должно. Единственное замечание: GParted и KDE Partition Manager будут побайтно переносить все файлы в разделе с Windows. Из-за этого времени на эту операцию может уйти много (зависит от объемов данных на этом разделе).
А по поводу плавности - это зависит как от личных ощущений, так и от связки железа - Nvidia, Intel или AMD. А так KDE работает плюс/минус одинаково на всех дистрибутивах. Manjaro и Solus не исключение, как по мне - одинаково. Тут больше зависит от того, каких вы дополнительных свистоперделок наустанавливали =)
PS: поискал немного про изменение раздеола EFI. Неплохой вариант через AOMEI Partition Assistant. Целая статья есть про это "Увеличение разделов восстановления, шифрованного EFI и «Зарезервировано системой» с помощью программы AOMEI Partition Assistant"
19:19
19:24
19:47
15:09
17:24
13:23
04:34
08:58
01:15
PS: В солусе не используется GRUB
17:31
21:01
22:41
01:13