Привет, Хабр! Новая пятница — новые знания для начинающий специалистов! Сегодня у нас небольшая подборка инструкций по работе с командами в Linux. Пригодится будущим и начинающим системным администраторам. Как всегда, все материалы доступны бесплатно и без регистрации. Поехали!
Команда grep в Linux — снова изучаем синтаксис, знакомимся с регулярными выражениями, смотрим на примеры использования команды.
Команды kill и killall в Linux — подробная инструкция по принудительному завершению и настройке процессов, а также управлению их приоритетами.
И просто напоминание, что в Академии Selectel есть курс по системному администрированию с нуля. Он тоже бесплатный, но там все же придется зарегистрироваться, так что на ваше усмотрение.
Самый простой способ сообщить об успешном подключении по SSH
Всем привет! Вообще-то, обычно решают обратную задачу - сообщить о неудачных попытках подключения по SSH, а еще лучше - сразу заблокировать. С этим прекрасно справляет, например, Fail2ban, но, рассказ не о нем. Может оказаться полезно получать уведомления именно об успешных подключениях, особенно, в тот момент, когда сам НЕ подключаешься. Так же, хочется сделать это с наименьшими усилиями, без написания скриптов, без установки специфического ПО, что бы было легко "скопипастить" решение на множество систем. Так же, хочется знать не тoлько о подключениях, получивших shell, но и о удаленном выполнении команд, или копировании файлов по протоколу SSH.
Все есть в этом решении:
$ sudo apt install curl
$ sudo nano /etc/pam.d/sshd
оставьте, все, что было в этом файле и добавьте в конец:
Как оказалось, curl умеет отправлять почту, в сообщении будут присутствовать все подробности, кто, когда, откуда подключился, и, даже, когда отключился. Правда, в этом решении требуется корпоративный почтовый сервер (mailhub.yourcorp.ru в нашем "однострочнике"), готовый принять письмо без аутентификации. Это допустимо, если он же является конечным сервером с ящиком пользователя, или, есть разрешение пересылки писем из корпоративной сети (в этом случае можно использовать любой другой почтовый адрес, вместо yourlogin@yourcorp.ru). Однако, такой сервер не всегда имеется, и решение не годится для персонального использования.
В этом случае, предлагаю Вам вебинар , демонстрирующий решение той же задачи, с отправкой сообщений в Telegram
На этом все, спасибо, буду рад ответить на вопросы!
Linux Mint 22 - KiCad-5 с GUI и графическим ускорением на карте AMD в Docker-контейтере.
При перезде с Минт-20 на Минт-22 мне захотелось сохранить возможность полноценной работы с проектами выполнеными в KiCad-5, без конвертации их в формат KiCad-9 на который я плавно мигрирую при перезде на Минт-22. Специфика в том, что KiCad-5, в том числе в виде AppImage на Минт-22 запускаться категорически не хочет.
Из возможных вариантов выбрал для себя запуск KiCad-5 в Docker-контейтере, с пробросом графики через X11. За основу взял эту реализацию. Добавил к ней проброс графического ускорения(без него GUI будет подтормаживать) своей карты AMD, русификацию, и Firefox, для плагина InteractiveHtmlBom. В итоге получился вот такой dockerfile:
FROM linuxmintd/mint20-amd64
ENV LANG=ru_RU.UTF-8
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y nano sudo keyboard-configuration software-properties-common x11-apps xdg-utils \
locales language-pack-ru-base language-pack-ru xed xed-dbg firefox firefox-locale-ru && \
update-locale LANG=ru_RU.UTF-8
RUN add-apt-repository --yes ppa:kicad/kicad-5.1-releases && \
apt-get update && \
apt-get install --no-install-recommends -y kicad kicad-locale-ru kicad-doc-ru
# Укажите здесь используемые на вашем хост-компьютере
# имя пользователя, идентификатор пользователя и идентификатор группы.
ENV USER_NAME=vasily
ENV UID=1000
ENV GID=1000
ENV HOME=/home/${USER_NAME}
ENV XDG_RUNTIME_DIR=/tmp/runtime-${UID}
RUN mkdir -p ${HOME} && \
echo "${USER_NAME}:x:${UID}:${GID}:USER_NAME,,,:${HOME}:/bin/bash" >> /etc/passwd && \
echo "${USER_NAME}:x:${UID}:" >> /etc/group && \
echo "${USER_NAME} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/${USER_NAME} && \
chmod 0440 /etc/sudoers.d/${USER_NAME} && \
chown ${UID}:${GID} -R ${HOME}
USER ${USER_NAME}
# Раскомментируйте программу, которую вы хотите запустить в контейнере.
#ENTRYPOINT ["eeschema"]
ENTRYPOINT ["kicad"]
Обратите внимание, что значения USER_NAME, UID, GID, в строках 17, 18, 19 в dockerfile берутся из вашего аккаунта на хост-машине.
Образ создается как обычно выполненой в открытом в одной директории с dockerfile терминале командой(не забываем пробел и точку в конце команды):
docker build -t kicad5 .
Размер образа получаеться около 800 Мбайт.
Скрипт для старта контейнера на машине с графической картой AMD:
1). Создаете в Минт-22 директорию /usr/share/kicad5 и копируете туда содержимое /usr/share/kicad из Минт-20 с установленным kicad5
2). Копируете содержимое $HOME/.kicad_plugins из Минт-20 с установленным kicad5 в $HOME/.kicad_plugins в Минт-22
3). Копируете содержимое $HOME/.config/kicad/ из Минт-20 с установленным kicad5 в $HOME/.config/kicad в Минт-22
Теперь можете запускать KiCad-5 с GUI и графическим ускорением на карте AMD в Минт-22 и паралельно установить в Минт-22 KiCad-9.
Чтобы заархивировать созданный образ выполняем в терминале:
docker save -o ./my_bac_kicad5_image.tar kicad5
Чтобы развернуть заархивированый образ на другом машине выполняем в терминале, открытом в одной директории с файлом my_bac_kicad5_image.tar, на нее скопированном:
Selectel выпустил заключительную часть курса «Системный администратор Linux»
Модули курса выходили постепенно, и недавно вышел последний — теперь обучение доступно целиком. Финальная часть посвящена настройке сетей, управлению пакетами и логами, а также работе с контейнерами.
Курс полностью бесплатный и не привязан к датам — можно изучать материалы в комфортном темпе.
После завершения вы получите сертификат. Как его оформить — рассказываем в последнем уроке.
С точки зрения пользователя (в данном случае человека, отвечающего за обновления данной Linux-системы) лайвпатч — это просто модуль ядра Linux, в котором содержится как минимум следующее:
исправленный код одной или более функций из vmlinux и/или из модулей ядра,
метаданные, указывающие, как применить эти исправления к соответствующим компонентам ядра Linux.
Чтобы применить лайвпатч-обновление, нужно загрузить этот модуль ядра, например, с помощью insmod или modprobe, а затем активировать его, как правило, через sysfs.
При этом старый код ядра Linux (тот, который хотим обновить) и новый (тот, что в лайвпатч-модуле) сосуществуют в памяти системы. Это дает возможность при необходимости отменить лайвпатч-обновление в runtime: деактивировать его через sysfs, а затем выгрузить лайвпатч-модуль.
Важный момент: если используются средства для работы с лайвпатчами из mainline-ядра, то при активации и деактивации лайвпатч-обновлений работающие процессы не нужно завершать или даже останавливать на сколько-нибудь существенное время.
Примечания:
У TuxCare / KernelCare лайвпатчи поставляются в другом, проприетарном, формате, но мы его рассматривать не будем.
Для некоторых архитектур, например RISC-V, при активации и деактивации патча вызывается stop_machine(), то есть работающие процессы при этом все-таки останавливаются на некоторое время. Начиная с версии 6.16 ядра Linux, для RISC-V stop_machine() уже, вероятно, не будет использоваться в таких ситуациях.
Все, что нужно знать о лайвпатингче для ядра Linux, вы найдете в цикле статей: от подготовки лайвпатча до работы на x86, ARM и RISC-V.
Настройка КриптоПро HSM Client на Suse/RedHat/ROSA Linux
Подготовили пошаговую подробнейшую инструкцию со скриншотами для разработчиков информационных систем со встроенными СКЗИ по настройке КриптоПро HSM Client на Suse, RedHat и ROSA Linux (включая ошибки, которые позволяет обойти данное руководство) для того, чтобы использовать HSM как самостоятельный криптографический провайдер с выполнением всей математики на борту или в качестве надежного хранилища ключевого материала.
Хэндлим обработку некорректного ввода в ZSH для поднятия настроения
Сегодня хочу рассказать о том, как немного разнообразить времяпрепровождение в консоли, добавив немного юмора, если ваша командная оболочка zsh.
Все, кто работает в терминале (эмуляторе терминала, чтобы меня тут не покусали в комментариях :)), думаю, периодически сталкиваются с тем, что вводят команду неправильно. Например, есть шуточная команда sl, которая рисует движущийся поезд, если вы случайно опечатались, когда хотели набрать команду ls. Это служит некой разрядкой и поводом лишний раз улыбнуться. Вот репозиторий этой утилитки на GitHub для любознательных.
А что, если мы хотим, чтобы на ввод любой несуществующей команды, мы получали что-то аналогичное выводу команды sl? По умолчанию в ZSH в этом случае выводится сообщение “command not found”. Давайте это исправим.
Для этого нам понадобится:
непосредственно zsh в качестве командной оболочки;
cowsay - утилита командной строки, которая рисует разные фигурки, которые как бы говорят, наподобие героям комиксов.
lolcat - утилита для разукрашивания текста градиентом, добавления анимации и т.д.
В ZSH предусмотрена возможность переопределять поведение при возникновении каких-то ситуаций, в том числе, переопределение поведения при возникновении ошибок. В нашем случае нам нужно переопределить вывод, когда команда, вводимая пользователем не найдена. Для этого будем использовать метод command_not_found_handler. Добавим в .zshrc файл следующий код:
command_not_found_handler() {
cowsay -f tux "LOL! Command not found: $1" | lolcat -a -s 150
return 127
}
Немного пояснений: первая строка будет рисовать там пингвина, говорящего, что введенная нами команда не найдена, пингвин будет появляться построчно (150 - скорость появления). Более подробно с доступными параметрами lolcat можно ознакомиться, набрав man lolcat. 127 - это код, который zsh отправляет по умолчанию, сохраним это поведение.
Вот так примерно это выглядит:
Ну вот, собственно говоря, и все. Мелкие моменты, которые нас окружают в повседневности, делают нас (по крайней мере меня) чуточку счастливее :)
Isar и еще 8 систем сборки для создания дистрибутива на Linux
Isar — система сборки, представляющая собой набор скриптов для создания пакетов и дистрибутивов на базе Debian с возможностью настройки. Организация проекта Isar похожа на Yocto Project, для сборки используется Bitbake.
Перед сборкой можно настроить параметры файловой системы, ядра, модификации списка пакетов (добавление и удаление пакетов, в том числе и собственных, изменение существующих пакетов). Систему сборки разрабатывает компания ilbers GmbH.
Архитектура системы
Так как Isar основан на Bitbake, архитектура решения состоит лишь в нескольких слоях для Bitbake, реализующих сборку и установку пакетов в соответствии с конфигурацией сборки. В основе всех этих слоев и рецептов лежат утилиты Debian Build Toolchain, которые ответственны за непосредственную сборку пакетов, разрешение зависимостей и т.д.
Как проходит процесс сборки дистрибутива в Isar
Особенности решения
Аналогично Yocto требует усилий на начальных этапах для освоения инструмента.
Поддерживает загрузку готовых пакетов из репозиториев Debian.
Подходит для embedded-дистрибутивов, где необходимо сочетание Debian-экосистемы и глубокой конфигурации.
О других embedded- и desktop-решениях решениях рассказали студенты и преподаватели СПБГЭТУ «ЛЭТИ» в обзоре систем для создания Linux-дистрибутивов.
Дисклеймер: автор не несет ответственности за использование вами стороннего ПО из неофициального источника, вы устанавливаете ПО на свой страх и риск.
Введение
Всем привет, хотел бы рассказать вам о небольшом открытии для себя, а именно: установке claude-desktop на Arch Linux со всеми фичами, доступными Windows и MacOS пользователям. В принципе аналогично можно сделать для большинства других линукс дистрибутивов.
Спойлер: за нас с вами уже все сделали, нужно просто ввести пару комманд в терминале.
Все мы слышали про MCP и про то, как тулы можно интегрировать в ваши десктопные приложения такие как Claude-desktop, Cursor, Windsurf, VSCode, а также использовать в своих проектах при разработке агентных систем, значительно упрощая себе жизнь и разрешая ИИ-асситенту творить некоторые вещи с вашими данными.
Cursor достаточно интересная штука, которая позволяет это сделать проще всех остальных, как по мне, потому что он больше на слуху в ру-коммьюнити и его можно скачать без сложных схем обходов ограничений.
Пререквезиты
Claude-desktop же чуть более заморочен. Он требует от вас иностранный номер и некоторых махинаций.
Давайте представим что эти проблемы вы решили либо самостоятельно, либо обратились к знакомым, либо посмотрели решения из этой статьи: статья.
Так или иначе у вас есть работающий аккаунт и прямой доступ к claude.ai из вашего браузера
Установка
Базово Claude использует электрон и отсутствие порта на Linux, как говорят в реддите, просто лень разработчиков.
Благо в опен сорсе есть множество решений, на которые мы можем обратить внимание, пакетов в aur настолько много что разбегаются глаза и не совсем понятно какой конкретно нужно ставить, а еще большая часть из них не поддерживается , а последний коммит был условно год-полгода назад, следовательно если у вас хоть что то из этого запустится - вам повезло.
Альтернативно, имея Wine на своей системе, вы сможете скачать Claude-desktop для Windows и использовать через Wine, однако это очень криво и неудобно, а еще ужасно лагает.
для установки вам просто нужно выполнить ряд комманд:
# Clone this repository
git clone https://github.com/aaddrick/claude-desktop-arch.git
cd claude-desktop-arch
# Update checksums (needed once, or after PKGBUILD/install script changes)
updpkgsums
# Build and install the package
# This command automatically handles dependencies, builds, and installs
# Use makepkg -sci to automatically clean up build files afterwards
makepkg -si
Обязательно обновите checksums, иначе поймаете ошибку.
Профит
Скриншот с тулами
Теперь приложение Claude есть в списке доступных через ваш менеджер приложений. Учитывайте при запуске свою геолокацию и не забывайте о ней, чтобы избежать потенциальной блокировки со стороны Claude.
MCP
Доступно и работает из коробки, json для редактирования доступен в директории: ~/.config/Claude/claude_desktop_config.json
Не забудьте установить Nodejs и Uv/Python для запуска нужных вам тулов.
После обновления конфига перезаходим в Claude и смотрим на появившиеся кнопочки с новыми тулами.
Да не все будет работать так гладко, как могло бы на Windows/MacOS, например puppeteer у меня запускает изолированный браузер и проверить его работу я могу только через просьбу сделать скриншот (полагаю проблема в том, что я рукожоп), тем не менее: это работает на Linux.
Объявлено решении включить в состав выпуска GNOME 49 видеопроигрыватель Showtime, который станет поставляться под именем GNOME Video Player и будет задействован по умолчанию вместо видеопроигрывателя Totem (GNOME Videos).
Для желающих протестировать Showtime не дожидаясь осеннего релиза GNOME 49 подготовлен пакет в формате flatpak. Программа отличается минималистичным интерфейсом, отображаемым поверх содержимого и скрываемым во время просмотра. Поддерживаются типовые элементы управления, полноэкранный режим, изменение скорости воспроизведения, показ субтитров и создание скриншотов.
Недавно я задумался, а как создать systemd-timer для текущего пользователя без sudo прав, ведь c cron в этом вопросе проблем не было? Оказывается можно создавать локальные для пользователя systemd таймеры и сервисы и никакой root или sudo не нужны для создания файлов в /etc/systemd/system/ ! И как оказалось это касается не только таймеров и сервисов но и вообще всех сущьностей.
И так у меня есть задача конвертировать записи экрана сделанные с помощью Spectacle из vp9/webm в h264/mp4 и h265/mp4, так как он не умеет ещё в аппаратное энкодирование с GPU , а собственные записи в h264/mp4 крайне плохого кчества о чём был даже баг.
Много лет назад, устав от постоянных тормозов Windows, открыл для себя существование UNIX, точнее, FreeBSD. Иксовый десктоп, все программы - на том же компьютере всё летало заметно быстрее. Даже Quake (да, он тоже работал во Фре).
Куда-то пропали все тормоза. К тому же всё оказалось проще настраивать - у каждой программы свой конфиг, и если что-то где-то даже настроил не так - все остальные программы от этого работать не перестают. Да, пришлось переходить на совсем другой набор программ, далеко не все игры можно было запустить и так далее - но всё равно было быстрее и удобнее работать.
ИМХО, самое главное отличие было как раз вот в этом: в то время как в мире Windows активно продавливали идею "интегрированной среды", где всё вместе и взаимосвязано в монолит - там работал подход "одна задача - одна программа". И если программа не работает как хочется - меняется на аналог, не затрагивая всего остального. Почти любую сложную задачу можно было разбить на отдельные мелкие и подобрать набор утилит для ее решения - как кто-то метко выразился - "стройная система костылей и подпорок".
И вот прошли годы. Уже Линукс (прежде всего из-за лучшей поддержки разного железа), Убунта, которая с каждой версией становилась всё замедленнее и усложненнее.
Видимо, программисты из мира Windows принесли своё вИдение прекрасного: появились D-bus, systemd, gsettings - теперь далеко не всегда можно поправить конфиг-файл от программы XXXX, а потом смотреть в лог /var/log/xxxx.log - нет, теперь настройки хранятся где-то в скрытом месте и меняются специальными командами, а лог полагается смотреть через специальную утилиту, и запускается всё это не простым скриптом типа пошагового выполнения /etc/rc.local, а набором команд systemctl, которые сработают или не сработают, в зависимости от наличия определенных файлов в нужных местах...
А самое главное - после проведенной "интеграции" всё стало тормозить и глючить. Задумчивый Gnome медленно и печально открывает окошки - ага, с экраном повернутым на 90 градусов. Потому что новая "интересная фишка" - считывать датчик ориентации экрана, но считывается он не всегда правильно, а "просто закомментировать в конфиге" нельзя, можно только через меню, потом Сохранить, а потом настройка опять вдруг слетает после незаметного автообновления, которое как бы отключено, но не совсем... Погодите-ка, что-то это мне напоминает? Шаманство, глюки, неустранимые достоинства, "слетевшие драйвера"...
Правда, можно повыключать всё это вместе с Гномом - и всё снова быстро летает: ок, так и сделал, вернул любимый WindowMaker, всё прекрасно. Но вот обновление версии какой-то программы - а новая теперь только через flatpak, а ему теперь необходим d-bus, "если его нет можно поставить эмулятор", блаблабла...
Но зачем?! Зачем было делать из Linux такой же интегрированный сам в себя монолит, с неким "реестром" настроек и "системным журналом", в который нельзя просто так посмотреть? Для этого уже есть Windows! Зачем тащить это сюда?
⌨️ КАСТОМНЫЙ МАППИНГ КЛАВИШ В ЛИНУКС: ПРЕВРАЩАЕМ IJKL В СТРЕЛОЧКИ
Для навигации в среде разработки я использую использую маппинг ijkl на стрелочки и оказывается можно сделать этот маппинг на уровне всей ос, а не только IDE.
Маппить будем с помощью xremap (подходит для Wayland и X, простая конфигурация в yaml, написан на расте). Я буду показывать процесс настройки для федоры, но для других дистрибутивов он похожий.
🔧 Создаем конфигурационный файл, который замапит клавиши ijkl на стрелочки при зажатом капсе:
virtual_modifiers:
- CapsLock
keymap:
- remap:
CapsLock-i: Up
CapsLock-j: Left
CapsLock-k: Down
CapsLock-l: Right
CapsLock-h: Home
CapsLock-semicolon: End
CapsLock-u: PageUp
CapsLock-o: PageDown
Быстрое трудоустройство в YADRO для разработчиков на С++
У нас стартовал SPRINT OFFER в команду разработки телеком-оборудования. Для «плюсовиков» это возможность получить предложение о работе всего за несколько дней. Если хотите пропустить долгие этапы собеседований, отправляйте заявку до 9 марта.
Как все происходит
Подаете заявку — мы оперативно рассматриваем анкеты.
Проходите HR-скрининг и техническое интервью — без недель ожидания между этапами.
Получаете оффер — если все этапы успешно пройдены, предложение будет у вас в течение 3 дней.
Где предстоит работать
Дивизион телекома создает решения для мобильных сетей. Инженеры разрабатывают базовые станции GSM/LTE, полный стек телекоммуникационных протоколов, а также системы управления и мониторинга. Большую часть кода разработчики пишут на C++. В зависимости от задачи они используют как современные возможности C++20, так и низкоуровневые оптимизации для повышения производительности.
Кого мы ищем
→ Software Engineer (Telecom Platform)
Требуемый уровень: middle, senior, tech lead.
Чем предстоит заниматься:
Разработкой платформы для базовых станций LTE/GSM (middleware, high availability, node management, delivery).
Проектированием архитектуры, работа с C++/Linux.
Интеграцией с аппаратной и программной частью системы.
Оптимизацией кода и решение проблем производительности.
Разработкой API, unit-тестирование, документация.
→ Software Engineer C/C++ (LTE/GSM)
Требуемый уровень: middle, senior, tech lead.
Чем предстоит заниматься:
Разработкой программного обеспечения для базовых станций LTE.
Реализацией стека протоколов 3GPP.
Интеграцией с другими системами, оптимизация кода.
Решением задач производительности и стабильности системы.
Подробнее о вакансиях и команде читайте на странице SPRINT OFFER. Успейте подать заявку до 9 марта!
Практический курс «Системный администратор Linux с нуля»
Привет, Хабр! Selectel запускает курс по работе с серверной операционной системой. Он будет полезен начинающим администраторам, а также разработчикам и DevOps-инженерам, которые хотят погрузиться в Linux и сетевую инфраструктуру.
На курсе вы научитесь:
▫️ работать с командной строкой и основными утилитами;
▫️ управлять пользователями, файлами и правами доступа;
▫️ настраивать сети, SSH-соединения и мониторинг системы;
▫️ управлять инфраструктурой на базе Linux;
▫️ управлять пакетами и обновлениями программного обеспечения;
▫️ анализировать логи и устранять инциденты.
Занятия построены на базе SelectOS. Дополнительных знаний не требуется — достаточно базового владения компьютером и интереса к Linux.
При загрузке UEFI могут использоваться два boot-menu:
меню firmware, хранящееся в NVRAM. Можно вызвать при включении компьютера по hotkey (F8/Esc/etc). Отображается в настройках Gen 2 VM Hyper-V (при этом можно менять порядок загрузки, но не сами записи).
меню загрузчика (опционально). В Linux это меню GRUB, в Windows - bootmgr (отображается, если содержит больше одной записи). Современное ядро Linux может загружаться напрямую без GRUB.
В firmware загрузка настраивается через текстовые переменные:
Boot#### - загрузочная запись BootOrder - упорядоченный список записей Boot#### BootCurrent - запись, с которой загружена система BootNext - запись, с которой однократно будет загружена система после перезагрузки
Первоначально firmware добавляет записи Boot#### для подключенных поддерживающих загрузку устройств (DVD, HDD, USB, Network).
При загрузке с диска происходит поиск на нем GPT раздела типа EFI system partition (ESP), с которого запускается загрузчик EFI\Boot\bootx64.efi (имя файла зависит от аппаратной платформы). Обычно этот раздел отформатирован в FAT32, так как большинство прошивок UEFI не поддерживают чтение других файловых систем (хотя и могли бы).
Созданные Rufus загрузочные UEFI-флешки с Windows содержат основной NTFS раздел с дистрибутивом (FAT32 не поддерживает файлы размером больше 4Gb) и скрытый FAT32 ESP раздел с фирменным EFI загрузчиком, поддерживающим чтение NTFS.
Загрузчик ОС может добавить (и обычно добавляет) в firmware новую запись Boot####: Windows: HD(1,GPT,E935CDDD-9506-45D3-A96B-9354674BA581,0x800,0x32000)/\EFI\Microsoft\Boot\bootmgfw.efi Linux: HD(1,GPT,F3275A6A-A4B2-4AD4-A8C1-D74B9C4E9691,0x800,0x12C000)/\EFI\redos\shimx64.efi
Загрузчик shimx64.efi может быть подписан цифровой подписью для работы с Secure boot, его единственная функция - запустить grubx64.efi из текущей директории. grubx64.efi не подписан, так как его содержимое может изменяться.
В некоторых случаях при переносе диска между ПК или VM в новой системе ОС не загружается. Например, если в NVRAM старой системы была настроенная запись Boot####, а стандартный раздел EFI boot поврежден или не содержит загрузчик в стандартном расположении. В этом случае необходимо или восстановить запись утилитами bcdedit/efibootmgr, или, в случае VM, переносить ее через export/import вместе с nvram.
TLP (The Linux Power Management). Мощный инструмент, много гибких настроек для процессора, дисков, сетевых интерфейсов и т.д. Хорошая документация. TLP работает в фоновом режиме, после настройки все будет работать само. Существует удобный TLPUI, чтобы не менять конфиги руками. Автоматически переходит в режим экономии при подключении зарядки.
+ Много гибких параметров
+ Автоматическое адаптивное управление
+ Разные типы устройств
- Возможно, надо будет доп настраивать для некоторых систем (на моем Lenovo Ideapad например пришлось читать вот это, благо дока хорошая)
Автоматически управляет частотой процессора исходя из нагрузки и состояния батареи. Якобы сильно эффективнее и лучше TLP. Может работать вместе с ним, хотя и не рекомендуется.
+ Простота использования — достаточно запустить и забыть
+ Интеграция с другими инструментами
+ Постоянное обновление частоты процессора в зависимости от нагрузки
Power Profiles Daemon — три режима работы (производительность, сбалансированный, экономия), между которыми можно переключаться. По умолчанию во всех DE именно он находится в виджете "батарея". Сделан Red Hat.
+ Интеграция с системой
+ Поддержка различных профилей питания
+ Легкость использования через графический интерфейс
— Менее гибок, чем перечисленные выше
Я по итогу выбрал auto-cpufreq и tlp (только потому, что ограничивает заряд батареи) Если вам есть что сказать, с удовольствием пообщаемся в комментах :)
Все, кто переживал, что привычные к виндовым изгибам пальцы никак не научатся переключать раскладку более прямыми способами — радуйтесь, ибо оно уже здесь:
Работает начиная с KDE6
Начиная с шестых кед можно переключать раскладку вашими любимыми Ctrl+`Shift` и Alt + Shift — и комбинации с этими клавишами продолжают работать в других программах.
Переключатель альтернативный, работать будет только в пределах кед (пока запущены соответствующие службы KDE) и только начиная с шестой версии