<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все посты подряд / Настройка Linux / Хабр]]></title>
    <link>https://habr.com/ru/hubs/linux/posts/</link>
    <description><![CDATA[Настройка Linux – вечный кайф]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Mon, 04 May 2026 03:48:43 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  
  <item>
    <title><![CDATA[Пост @Lomserman — Настройка Linux (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1027086/</guid>
    <link>https://habr.com/ru/posts/1027086/?utm_campaign=1027086&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Третья раскладка в Linux Mint<br><br>Задача:<br>1. чтобы раскладки <code>us</code> и <code>ru</code> переключались как обычно, а <code>rs</code> - по требованию.<br>2. Чтобы при попытке переключить раскладку - мы возвращались в привычный цикл <code>us</code> <code>ru</code><br><br>Зачем:<br>Третья раскладка бывает полезна, но зачастую она не нужна во время работы и конфликтует с мышечной памятью, которая за 30+ лет перед клавиатурой выучила, что есть только две раскладки :)<br><br>Что же делать:<br>На примере - добавим раскладку сербской латиницы, причём - вариант QWERTY, где Z и Y сидят на привычных местах.</p><ol><li><p>Добавляем в систему раскладку сербской латиницы в варианте Qwerty, делается это через  Keyboard -&gt; Layouts</p></li><li><p>Заходим в терминал и пишем: <code>setxkbmap -query</code><br>Видим примерно такое:</p><pre><code class="powershell">rules:      evdev
model:      pc105
layout:     us,ru,rs
variant:    ,,latinyz
options:    grp:win_space_toggle,terminate:ctrl_alt_bksp,grp:caps_toggle</code></pre><p>Внимание на <code>us,ru,rs</code> и вариант - <code>latinyz</code></p></li><li><p>Пилим исполняемый shell скрипт, например в <code>~/use_default_layout.sh</code><br>Этот скрипт будет временно убирать сербскую раскладку, чтобы не мешалась.</p><pre><code class="powershell">#!/bin/bash
current_layouts=$(setxkbmap -query | grep layout | awk '{print $2}')

if [[ "$current_layouts" != "us,ru" ]]; then
    setxkbmap -layout "us,ru"
fi</code></pre></li><li><p>Идём в Keyboard, добавляем кастомные сочетания клавиш:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/ca6/001/f63/ca6001f63e32b29017f12d43fdca3ea9.png" alt="Картинка на случай, если кто-то ни разу этим не пользовался." title="Картинка на случай, если кто-то ни разу этим не пользовался." width="804" height="481"><div><figcaption>Картинка на случай, если кто-то ни разу этим не пользовался.</figcaption></div></figure><p>Я переключаю раскладку с помощью <strong>Caps Lock</strong>, поэтому рассказываю как удобно мне. Вы делайте на те клавиши, которые удобны вам (иначе какой смысл).<br><br>- Переключение на сербскую раскладку: <strong>CTRL+Caps Lock</strong>, команда:<br><code>setxkbmap -layout rs -variant latinyz</code><br><br>- Отмена сербской раскладки: просто <code>Caps Lock</code>, который зовёт скрипт <code>use_default_layout.sh</code> из пункта 3.</p></li></ol><p>Готово, вы великолепны.</p> <a href="https://habr.com/ru/posts/1027086/?utm_campaign=1027086&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 23 Apr 2026 14:25:51 GMT</pubDate>
    <dc:creator><![CDATA[Lomserman]]></dc:creator>
      
      <category><![CDATA[раскладка клавиатуры]]></category><category><![CDATA[linux mint]]></category><category><![CDATA[сербский язык]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Assador — Текстовые редакторы и IDE (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1024892/</guid>
    <link>https://habr.com/ru/posts/1024892/?utm_campaign=1024892&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Пока везут в&nbsp;Zed нативный diff выделенных кусков кода, с&nbsp;подсветкой, преферансом и&nbsp;барышнями, мы будем пить то, что&nbsp;есть&nbsp;😁</p><p>Скрипт намбер&nbsp;ван:</p><pre><code class="bash">#!/bin/bash

FILE1="/tmp/clp.saved"

# xclip -o -selection primary &gt; "$FILE1"
wl-paste --primary &gt; "$FILE1"
notify-send "Diff" "Первый фрагмент сохранён"</code></pre><p>вешаем на&nbsp;одно сочетание клавиш (у&nbsp;меня, например, для&nbsp;удобства, <code>Alt+Shift+1</code>)<br> (выбираем на&nbsp;вкус для X11 или Wayland)</p><p>Скрипт намбер&nbsp;ту:</p><pre><code class="bash">#!/bin/bash

FILE1="/tmp/clp.saved"
FILE2=$(mktemp /tmp/clp.XXXXXX)

trap 'rm -f "$FILE2"' EXIT

# xclip -o -selection primary &gt; "$FILE2"
wl-paste --primary &gt; "$FILE2"

if [ ! -s "$FILE1" ] || [ ! -s "$FILE2" ]; then
	notify-send "Ошибка" "Нет текста для сравнения"
	exit 1
fi

meld "$FILE1" "$FILE2"</code></pre><p>вешаем на&nbsp;другое сочетание клавиш (у&nbsp;меня, например, <code>Alt+Shift+2</code>)</p><p>Изолента и&nbsp;реактивный двигатель&nbsp;— вот&nbsp;всё, что нам нужно. Лучше, чем&nbsp;ничего, по&nbsp;крайней мере…<br> Первый скрипт сохраняет выделенный текст во&nbsp;временный файл <code>/tmp/clp.saved</code>.<br> Второй скрипт сохраняет выделенный текст в&nbsp;другой временный файл <code>/tmp/clp.XXXXXX</code>, открывает&nbsp;их оба в&nbsp;нашем любимом <strong>Meld</strong>, мы на всё это дело любуемся, сравниваем, закрываем Meld, после чего скрипт удаляет этот второй временный файл со&nbsp;случайным постфиксом, чтобы не&nbsp;болтался зря. Первый, <code>/tmp/clp.saved</code> пока остаётся, чтобы было удобно с&nbsp;одним и&nbsp;тем&nbsp;же «первовыделенным» сравнивать несколько вариантов, и&nbsp;его всегда можно переопределить первым скриптом.</p><p><strong>Итого</strong>: Выделили кусок, <code>Alt+Shift+1</code>, выделили другой кусок, <code>Alt+Shift+2</code>&nbsp;— смотрим, радуемся!&nbsp;😁</p> <a href="https://habr.com/ru/posts/1024892/?utm_campaign=1024892&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 18 Apr 2026 08:10:30 GMT</pubDate>
    <dc:creator><![CDATA[Assador]]></dc:creator>
      
      <category><![CDATA[zed]]></category><category><![CDATA[meld]]></category><category><![CDATA[bash]]></category><category><![CDATA[лайфхаки]]></category><category><![CDATA[инструменты]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @zersh — Сетевые технологии (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1016382/</guid>
    <link>https://habr.com/ru/posts/1016382/?utm_campaign=1016382&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Постер: Очереди и метрики TCP в Linux (Linux TCP Queues and Metrics)</p><p>Полная схема, которая наглядно показывает весь путь TCP-соединения в ядре Linux.</p><p>Описаны:</p><ul><li><p>все основные очереди (SYN-queue, Accept-queue, Send-Q, RX/TX-буферы);</p></li><li><p>точки возможных дропов пакетов;</p></li><li><p>места тюнинга ключевых параметров (tcp_max_syn_backlog, somaxconn, netdev_max_backlog, tcp_mem и другие);</p></li><li><p>наиболее важные метрики TcpExt_*.</p></li></ul><p>Если открывается сжатая картинка, то полную можно найти в <a href="https://github.com/zersh01/linux-tcp-queues-and-metrics" rel="noopener noreferrer nofollow">гите</a><br></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/5a0/346/78d/5a034678d162bdc735153454645862e7.png" alt="Linux TCP Queues and Metrics (RU)" title="Linux TCP Queues and Metrics (RU)" width="4282" height="5762"><div><figcaption>Linux TCP Queues and Metrics (RU)</figcaption></div></figure> <a href="https://habr.com/ru/posts/1016382/?utm_campaign=1016382&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 30 Mar 2026 04:02:18 GMT</pubDate>
    <dc:creator><![CDATA[zersh]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[linux kernel]]></category><category><![CDATA[tcp]]></category><category><![CDATA[sysctl]]></category><category><![CDATA[network]]></category><category><![CDATA[ip]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Alchemmist — Linux (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1015028/</guid>
    <link>https://habr.com/ru/posts/1015028/?utm_campaign=1015028&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/0f8/b39/8dd/0f8b398dd4092130db8a3fc13d9b30c7.png" width="1876" height="1373"></figure><div class="floating-image"><p><strong>lazy-tmux — быстрый и «ленивый» менеджер сессий tmux</strong></p><p>Весь мой рабочий процесс происходит внутри сессий tmux. Долгое время я использовал <code>tmux-resurrect</code> + <code>tmux-continuum</code>. Они работали… но с нюансами. Иногда терялись все сохранённые сессии, а при множестве активных сессий всё оставалось загружено в память, в частности, запущенные nvim процессы, которые поднимаю lsp, что со временем отъедало все больше и больше ОЗУ.</p></div><p>Я мне нужен был инструмент, который показывает все сессии в виде дерева, но загружает их только когда я впервые перейдёте в одну из них.</p><p>Так родился <strong><a href="https://lazy-tmux.xyz?utm_source=habr" rel="noopener noreferrer nofollow">lazy-tmux</a></strong>, написанный на Go. Ключевые фичи:</p><ul><li><p>Сохраняет текущую сессию, конкретную сессию или все сессии целиком. Снимки сохраняют окна, панели, layout, команды (например, npm, docker-compose, редакторы) и опционально scrollback историю шела.</p></li><li><p>Ленивое восстановление: поднимается только выбранная сессия. RAM не расходуется на всё сразу. </p></li><li><p>Интерактивный TUI браузер с деревом сессий, окон и панелей, таблицей с активными командами, временем последнего снимка, количеством окон/панелей и статусом сессии. Поддержка fuzzy search для быстрого поиска. </p></li><li><p>Навигация и полное управление сессиями и окнами с клавиатуры в TUI браузере сессий. </p></li><li><p>Гибкая сортировка сессий и окон через флаги --session-sort и --window-sort </p></li><li><p> Можно заменить встроенный TUI на fzf, использую облегчённый бинарник. </p></li><li><p> Автосейв через фоновый демон, периодически снимающий все сессии на диск. </p></li><li><p> Восстановление при старте tmux для автоматизации workflow. </p></li></ul><p>Проект ещё молодой, но буду рад любой помощи и идеям по улучшению: <a href="https://github.com/alchemmist/lazy-tmux/issues" rel="noopener noreferrer nofollow">GitHub issues</a></p><p>За моими новостями можно следить в <a href="https://t.me/alchemmist_blog" rel="noopener noreferrer nofollow">Telegram-канале</a></p> <a href="https://habr.com/ru/posts/1015028/?utm_campaign=1015028&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 26 Mar 2026 02:02:00 GMT</pubDate>
    <dc:creator><![CDATA[Alchemmist]]></dc:creator>
      
      <category><![CDATA[tmux]]></category><category><![CDATA[lazy-tmux]]></category><category><![CDATA[terminal]]></category><category><![CDATA[open-source]]></category><category><![CDATA[go]]></category><category><![CDATA[cli]]></category><category><![CDATA[golang]]></category><category><![CDATA[linux]]></category><category><![CDATA[tools]]></category><category><![CDATA[dev-tools]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Open source (+4) — 21.03.2026 07:18]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1012972/</guid>
    <link>https://habr.com/ru/posts/1012972/?utm_campaign=1012972&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Команда проекта ReactOS <a href="https://x.com/reactos/status/2031439000708202743" rel="noopener noreferrer nofollow">сообщила</a> о&nbsp;значительном прогрессе в&nbsp;обеспечении совместимости с&nbsp;проприетарными видеодрайверами. Благодаря <a href="https://github.com/reactos/reactos/issues?q=is%3Apr%20author%3ADarkFire01%20label%3Adrivers%20sort%3Acreated-desc%20closed%3A%3E2025-06-01" rel="noopener noreferrer nofollow">серии исправлений</a> и <a href="https://reactos.org/blogs/investigating-wddm/" rel="noopener noreferrer nofollow">внедрению</a> подсистем KMDF (Kernel‑Mode Driver Framework) и WDDM (Windows Display Driver Model) удалось реализовать поддержку примерно 90% драйверов GPU для&nbsp;Windows XP и Windows Server 2003. До&nbsp;внесения изменений запуск многих фирменных драйверов&nbsp;либо заканчивался сбоем,&nbsp;либо работал нестабильно. Теперь&nbsp;же в&nbsp;свежих <a href="https://reactos.org/getbuilds/" rel="noopener noreferrer nofollow">ночных сборках</a> ветки 0.4.16&nbsp;наблюдается устойчивая работа драйверов от&nbsp;различных производителей, включая Intel, NVIDIA и AMD. </p><p>Среди прочего, <a href="https://x.com/reactos/status/2029284725051806137" rel="noopener noreferrer nofollow">продемонстрирована</a> работа ReactOS на&nbsp;реальном оборудовании и загрузка с&nbsp;установленными драйверами для&nbsp;видеокарт уровня Intel GMA 945, Nvidia GeForce 8800&nbsp;GTS и GTX 750&nbsp;Ti и AMD Radeon HD 7530G. Отдельно отмечается успешный запуск на&nbsp;мобильной графике, например Nvidia Quadro 1000M, где помимо 2D/3D‑ускорения также функционируют звук и сетевые подключения. В&nbsp;дополнительных тестах также подтверждена работа на&nbsp;более редких и устаревших конфигурациях, включая ноутбук с&nbsp;Radeon Xpress 1100, а&nbsp;также на&nbsp;высокопроизводительных видеокартах, таких как&nbsp;Nvidia GTX Titan X. </p><p>Особую роль сыграл принятый в&nbsp;основную ветку проекта <a href="https://github.com/reactos/reactos/pull/8613" rel="noopener noreferrer nofollow">патч</a> для&nbsp;подсистемы управления памятью, который повысил стабильность работы драйверов и снизил количество сбоев при&nbsp;инициализации графических адаптеров. </p><figure class=""><img src="https://habrastorage.org/getpro/habr/upload_files/fc7/3fb/2d9/fc73fb2d991e4935a9c15374c529c75d.png" width="494" height="696"></figure> <a href="https://habr.com/ru/posts/1012972/?utm_campaign=1012972&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 21 Mar 2026 04:18:48 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[ReactOS]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Искусственный интеллект (+4) — 19.03.2026 21:11]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1012436/</guid>
    <link>https://habr.com/ru/posts/1012436/?utm_campaign=1012436&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Разработчик <a href="https://github.com/rgushchin" rel="noopener noreferrer nofollow">Роман Гущин</a> (Roman Gushchin) из команды мейнтейнеров ядра Linux в Google <a href="https://www.phoronix.com/news/Sashiko-Linux-AI-Code-Review" rel="noopener noreferrer nofollow">объявил</a> о доступности новой ИИ-системы <a href="https://sashiko.dev/" rel="noopener noreferrer nofollow">Sashiko</a> для проверки кода с помощью искусственного интеллекта. Внутри Google она уже используется для выявления проблем, и теперь она доступна публично и охватывает все сообщения, отправленные в список рассылки ядра Linux. Гущин <a href="https://www.linkedin.com/posts/roman-gushchin-1a95658_im-happy-to-share-the-project-i-was-working-activity-7439736656360005632-M-cb/" rel="noopener noreferrer nofollow">пояснил</a>, что <a href="https://github.com/sashiko-dev/sashiko" rel="noopener noreferrer nofollow">Sashiko</a> смогла обнаружить около 53% ошибок на основе неотфильтрованного набора из 1000 недавних проблем ядра Linux с меткой «Исправления:».</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/68d/b59/c10/68db59c10f812448eb0e6f54a8eb3a6e.png" width="1920" height="1080"></figure> <a href="https://habr.com/ru/posts/1012436/?utm_campaign=1012436&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 19 Mar 2026 18:11:08 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[Sashiko]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @FaryaRos — Linux (+3) — 16.03.2026 19:22]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1010982/</guid>
    <link>https://habr.com/ru/posts/1010982/?utm_campaign=1010982&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>NixOS: идея, до&nbsp;которой индустрия доросла только сейчас.</strong></p><p>Кажется, NixOS наконец выходит из&nbsp;категории системы «для своих» и становится все заметнее в&nbsp;инженерной среде. Это закономерно: он очень точно попал в&nbsp;проблемы, с&nbsp;которыми команды массово столкнулись только в&nbsp;последние годы.</p><p>История началась в 2003&nbsp;году, когда исследователь Элко Долстра и его коллеги в&nbsp;Утрехтском университете запустили проект Nix. Это исследовательский проект, который включал пакетный менеджер и собственный декларативный язык. Идея&nbsp;была сделать так, чтобы пакеты и зависимости собирались предсказуемо, не&nbsp;конфликтовали между собой и не&nbsp;превращали систему в&nbsp;хаос после очередного обновления. Чуть позже из&nbsp;этой логики вырос NixOS, где тот&nbsp;же подход применили уже ко всей операционной системе.</p><p>В&nbsp;этом и&nbsp;был главный поворот. Nix с&nbsp;самого начала смотрел на&nbsp;систему не&nbsp;как&nbsp;на&nbsp;набор вручную настроенных файлов и команд, а&nbsp;как&nbsp;на&nbsp;то, что&nbsp;можно описать целиком. Пакеты хранятся изолированно, разные версии могут спокойно жить рядом, а&nbsp;состояние машины задается через конфиг. За&nbsp;счет этого обновления становятся атомарными.</p><p>Это особенно интересно на&nbsp;фоне обычных Linux‑дистрибутивов. Там текущее состояние системы часто является результатом длинной цепочки действий: что‑то поставили, что‑то удалили, где‑то поправили конфиг, где‑то забыли. В&nbsp;NixOS логика другая: ты описываешь&nbsp;желаемое состояние, а&nbsp;система приводит машину именно к&nbsp;нему. Если новая конфигурация не&nbsp;взлетела, предыдущее состояние никуда не&nbsp;исчезает.</p><p>😏 Почему NixOS набирает популярность именно сейчас? Потому что&nbsp;индустрия наконец доросла до&nbsp;его сильных сторон. Чем больше у&nbsp;команды окружений, CI/CD, инфраструктуры как&nbsp;кода и цены ошибки, тем важнее воспроизводимость и предсказуемость. То, что&nbsp;раньше выглядело как&nbsp;нишевая экзотика, сегодня все чаще выглядит как&nbsp;очень здравый инженерный выбор.</p><p><strong>Многие современные immutable‑системы по&nbsp;сути идут в&nbsp;ту&nbsp;же сторону, куда NixOS пошел еще много лет назад.</strong></p><p>А&nbsp;если хочется не&nbsp;просто прочитать про&nbsp;Nix, а&nbsp;разобраться, как&nbsp;он работает на&nbsp;практике, приходите на&nbsp;наш открытый воркшоп.</p><p>📹 Открытый воркшоп в&nbsp;рамках ИнженеркаТех Плюс, <strong>18&nbsp;марта в 19:00&nbsp;по&nbsp;МСК. </strong>Александр Сергеев из&nbsp;сообщества RULKC, Russian Linux Kernel Community, расскажет про&nbsp;Nix и функциональный подход к&nbsp;пакетам и сборке.</p><p>Если вы хотите получить полный контроль над окружением и наконец закрыть вопрос воспроизводимых сборок, этот воркшоп для&nbsp;вас. Разберем ключевые концепции Nix и наглядно покажем, чем он отличается от&nbsp;привычных систем управления пакетами.</p><p>Зарегистрироваться <a href="https://t.me/inz_infra_bot" rel="noopener noreferrer nofollow">тут</a></p> <a href="https://habr.com/ru/posts/1010982/?utm_campaign=1010982&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 16 Mar 2026 16:22:43 GMT</pubDate>
    <dc:creator><![CDATA[FaryaRos]]></dc:creator>
      
      <category><![CDATA[nix]]></category><category><![CDATA[nixos]]></category><category><![CDATA[linux]]></category><category><![CDATA[linux kernel]]></category><category><![CDATA[linux kernel development]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @wl2776 — Linux — 24.02.2026 16:14]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1003100/</guid>
    <link>https://habr.com/ru/posts/1003100/?utm_campaign=1003100&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Запуск USB-сканера отпечатков пальцев Chipsailing CS9711 на Linux.</p><p>Эти сканеры продаются на маркетплейсах по цене 1-2 т.р. Команда lsusb опознаёт их как<br><code>ID 2541:0236 Chipsailing CS9711Fingprint</code>. Мейнстримный fprintd этот сканер не поддерживает. Как видно из <a href="https://gitlab.freedesktop.org/libfprint/libfprint/-/merge_requests/530" rel="noopener noreferrer nofollow">комментариев</a> к MR, разработчики не могут оценить точность нового алгоритма sigfm для сравнения отпечатков, потому не спешат (а дефолтному уже 15 лет, и он довольно плохо работает с низким разрешением сканера).</p><p>На Arch драйвер должен ставиться <a href="https://aur.archlinux.org/packages/libfprint-cs9711-git" rel="noopener noreferrer nofollow">из AUR</a>, рецепт для Fedora <a href="https://github.com/ddlsmurf/libfprint-CS9711/issues/7" rel="noopener noreferrer nofollow">тут</a>, далее - рецепт для Ubuntu.</p><p>TL;DR: аккуратно подменяем системную библиотеку libfprint-2.so версией из форка.</p><p><strong>1. Скачать и скомпилировать форк libfprint-2 с поддержкой сканера</strong></p><pre><code>git clone https://github.com/archeYR/libfprint-CS9711
cd libfprint-CS9711
meson setup build</code></pre><p>Последняя команда может выдать ошибку, не найдя в системе пакетов с нужными библиотеками (libgusb-dev, libopencv-dev и т.п.). Надо их поставить и выполнить её снова.</p><p>Компилируем:</p><pre><code class="bash">ninja -C build</code></pre><p>Для проверки позапускаем примеры:</p><pre><code class="bash">cd build/examples
sudo ./enroll
sudo ./verify</code></pre><p>Установить библиотеку, если всё хорошо (<em>действовать с острожностью</em>! <em>обратите внимание на комментарии к посту</em>)</p><pre><code class="bash">cd ..              # предполагаю, что из build/examples никуда не уходили
sudo ninja install</code></pre><p>В итоге  должен появиться файл <code>/usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0</code> (и еще другие, тоже в <code>/usr/local</code>, но они не важны)</p><p><strong>2. Установить пакет с демоном распознавания по отпечатку пальца</strong></p><pre><code class="bash">sudo apt install fprintd</code></pre><p>Эта команда установит также пакеты с libfprint-2 из системных репозиториев, без поддержки нашего сканера. </p><p><strong>3. Подменить библиотеку <code>libfprint-2</code></strong></p><p>Варианты: </p><ul><li><p>указать ld.so читать нужную библиотеку перед запуском fprintd</p></li><li><p>создать в <code>/usr/lib/x86_64-linux-gnu/</code> симлинк на правильный файл</p></li><li><p>перезаписать библиотеку в <code>/usr/lib/x86_64-linux-gnu</code></p></li><li><p>PPA</p></li></ul><p>У каждого есть плюсы и минусы, последние два рассмотрены не будут.</p><p><strong>3.1.&nbsp;Предзагрузка нужной <code>libfprint-2</code></strong></p><pre><code class="bash">sudo systemctl edit fprintd</code></pre><p>Откроется окно редактора; добавить две строки (там сказано, куда)</p><pre><code class="python">[Service]
Environment="LD_PRELOAD=/usr/local/lib/x86_64-linux-gnu/libfprint-2.so"</code></pre><p>сохранить файл, закрыть редактор.</p><p><strong>3.2. Установка правильной символической ссылки</strong></p><pre><code class="bash">sudo update-alternatives --install\
  /usr/lib/x86_64-linux-gnu/libfprint-2.so.2\
  libfprint\
  /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0 100</code></pre><p>В комментах под постом написано, что должна выдать команда <code>ls -l</code>, если всё сделано правильно.</p><p>После любой из манипуляций перезапустить fprintd и проверить, что он не выдаёт ошибок.</p><pre><code class="bash">sudo systemctl restart fprintd
sudo systemctl status fprintd</code></pre><p>Ожидаемый вывод:</p><pre><code class="bash">● fprintd.service - Fingerprint Authentication Daemon
     Loaded: loaded (/usr/lib/systemd/system/fprintd.service; static)
    Drop-In: /etc/systemd/system/fprintd.service.d
             └─override.conf
     Active: active (running) since Tue 2026-02-24 16:02:45 MSK; 1s ago
          ...
фев 24 16:02:45 machine-name systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
фев 24 16:02:45 machine-name systemd[1]: Started fprintd.service - Fingerprint Authentication Daemon.
</code></pre><p><strong>4. Зарегистрировать пальцы командой </strong><code>fprintd-enroll</code></p><p>По умолчанию регистрируется правый указательный, остальное написано в <code>man fprintd-enroll</code></p><p><strong>5. Включить вход по отпечатку</strong></p><pre><code class="bash">sudo pam-auth-update</code></pre><p>поставить звёздочку на Fingerprint Authentication и нажать Ok. </p><p>Это вот так поменяет файл <code>/etc/pam.d/common-auth</code>:</p><pre><code class="diff">-auth   [success=1 default=ignore]      pam_unix.so nullok
+auth   [success=2 default=ignore]      pam_fprintd.so max-tries=5 timeout=10 # debug
+auth   [success=1 default=ignore]      pam_unix.so nullok try_first_pass</code></pre><p>Проверено на Kubuntu 24.04.4 LTS.</p><p>Ссылки по теме: <br><a href="https://man7.org/linux/man-pages/man8/ld.so.8.html" rel="noopener noreferrer nofollow">https://man7.org/linux/man-pages/man8/ld.so.8.html</a><br><a href="https://manpages.ubuntu.com/manpages/noble/man5/pam.conf.5.html" rel="noopener noreferrer nofollow">https://manpages.ubuntu.com/manpages/noble/man5/pam.conf.5.html</a></p> <a href="https://habr.com/ru/posts/1003100/?utm_campaign=1003100&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 24 Feb 2026 13:14:25 GMT</pubDate>
    <dc:creator><![CDATA[wl2776]]></dc:creator>
      
      <category><![CDATA[fprintd]]></category><category><![CDATA[fingerprint]]></category><category><![CDATA[драйвер для cs9711]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @LinuxCertifiedInstructor — Блог компании ГК ЛАНИТ (+2) — 12.02.2026 14:58]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/lanit/posts/995814/</guid>
    <link>https://habr.com/ru/companies/lanit/posts/995814/?utm_campaign=995814&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Обновил <a href="https://habr.com/ru/companies/lanit/articles/683638/" rel="noopener noreferrer nofollow">"</a><strong><a href="https://habr.com/ru/companies/lanit/articles/683638/" rel="noopener noreferrer nofollow">Краткий справочник по «всем-всем» командам Linux</a></strong><a href="https://habr.com/ru/companies/lanit/articles/683638/" rel="noopener noreferrer nofollow">"</a> - добавил еще ~100 команд - предыдущее обновление было практически год назад.</p><p>Итого стало: <strong>1335 команд </strong>😲</p><p>Немного статистики "Было --&gt; Стало" команд, начинающихся c ...:</p><p> <a href="https://habr.com/ru/companies/lanit/articles/683638/#links" rel="noopener noreferrer nofollow">&gt;</a>:  10⚖️ -&gt; 10<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#a" rel="noopener noreferrer nofollow">A</a>:  67➕➕➕➕➕➕➕➕ -&gt; 75<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#b" rel="noopener noreferrer nofollow">B</a>:  43⚖️ -&gt; 43<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#c" rel="noopener noreferrer nofollow">C</a>:  67➕➕➕➕➕➕➕➕➕ -&gt; 76<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#d" rel="noopener noreferrer nofollow">D</a>:  61➕ -&gt; 62<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#e" rel="noopener noreferrer nofollow">E</a>:  32➕➕➕ -&gt; 35<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#f" rel="noopener noreferrer nofollow">F</a>: 104➕➕➕ -&gt; 107<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#g" rel="noopener noreferrer nofollow">G</a>:  72➕ -&gt; 73<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#h" rel="noopener noreferrer nofollow">H</a>:  28➕ -&gt; 29<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#i" rel="noopener noreferrer nofollow">I</a>:    42➕➕➕➕ -&gt; 46<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#j" rel="noopener noreferrer nofollow">J</a>:     8⚖️ -&gt; 8<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#k" rel="noopener noreferrer nofollow">K</a>:   25➕➕ -&gt; 27<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#l" rel="noopener noreferrer nofollow">L</a>:   72➕➕ -&gt; 74<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#m" rel="noopener noreferrer nofollow">M</a>:  69➕ -&gt; 70<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#n" rel="noopener noreferrer nofollow">N</a>:  45➕➕➕➕ -&gt; 49<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#o" rel="noopener noreferrer nofollow">O</a>:  37⚖️ -&gt; 37<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#p" rel="noopener noreferrer nofollow">P</a>:  84➕➕➕➕➕➕➕➕➕➕ -&gt; 94<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#q" rel="noopener noreferrer nofollow">Q</a>:  15➕ -&gt; 16<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#r" rel="noopener noreferrer nofollow">R</a>:  44⚖️ -&gt; 44<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#s" rel="noopener noreferrer nofollow">S</a>: 134➕➕➕➕➕➕➕➕➕➕➕➕➕➕ -&gt; 148<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#t" rel="noopener noreferrer nofollow">T</a>:   45⚖️ -&gt; 45<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#u" rel="noopener noreferrer nofollow">U</a>:  37➕➕➕➕ -&gt; 41<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#v" rel="noopener noreferrer nofollow">V</a>:  33⚖️ -&gt; 33<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#w" rel="noopener noreferrer nofollow">W</a>: 24➕ -&gt; 25<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#x" rel="noopener noreferrer nofollow">X</a>:  41➕➕➕➕ -&gt; 45<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#y" rel="noopener noreferrer nofollow">Y</a>:    8➕ -&gt; 9<br> <a href="https://habr.com/ru/companies/lanit/articles/683638/#z" rel="noopener noreferrer nofollow">Z</a>:  13➕ -&gt; 14</p><p>Ну и немного статистики по категориям команд:</p><blockquote><p>   🔵 <em>881 - пользовательские</em><br> &nbsp; 🔴 <em>396 - админские</em><br> &nbsp; ⚫   <em>58 - встроенные в bash</em></p><p> &nbsp; ☑️   <em>88 - TUI-приложение</em><br> &nbsp; ✅ <em>302 - GUI-приложение</em><br> &nbsp; ➡️   <em>40 - команды-фильтры</em><br><br> &nbsp; 📁 <em>253 - дополнительно устанавливаемые</em><br> &nbsp; 🧰   <em>87 - прикладное ПО</em><br> &nbsp; 🏢   <em>86 - серверные службы</em><br> &nbsp; 📈 <em>187 - мониторинг</em><br> &nbsp; 🎚️ <em>163 - конфигуратор</em><br> &nbsp; 🕙   <em>34 - устаревающее</em></p><p>   💿 <em>178 - дистрибутиво-специфичные:</em><br>          77 - ⊚AstraLinux<br>          39 - ⊚ALT<br>          21 - ⊚Debian<br>          16 - ⊚RedHat<br>          15 - ⊚SUSE<br>          13 - ⊚RedOS<br>          12 - другие (Ubuntu, Kali, Arch, Mageia, ...)</p></blockquote><p>Вот🤔</p> <a href="https://habr.com/ru/posts/995814/?utm_campaign=995814&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 12 Feb 2026 11:58:33 GMT</pubDate>
    <dc:creator><![CDATA[LinuxCertifiedInstructor (ГК ЛАНИТ)]]></dc:creator>
      
      <category><![CDATA[команды]]></category><category><![CDATA[linux]]></category><category><![CDATA[bash]]></category><category><![CDATA[cli]]></category><category><![CDATA[справочник]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @atomlib — Linux (+4) — 10.02.2026 10:32]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/994744/</guid>
    <link>https://habr.com/ru/posts/994744/?utm_campaign=994744&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Искусственный интеллект&nbsp;— это настолько крупное событие, что на клавиатурах сразу и везде нужна отдельная клавиша для вызова Copilot. По крайней мере, таким мир ПК <a href="https://blogs.windows.com/windowsexperience/2024/01/04/introducing-a-new-copilot-key-to-kick-off-the-year-of-ai-powered-windows-pcs/" rel="noopener noreferrer nofollow">хотела бы</a> видеть сама Microsoft. Хотя среди формальных требований для сертификации компьютеров под Windows&nbsp;11 наличия клавиши Copilot <a href="https://www.drwindows.de/news/copilot-taste-auf-neuen-windows-pcs-ist-keine-pflicht-platzierung-kann-frei-gewaehlt-werden" rel="noopener noreferrer nofollow">нет</a>, уже в 2024&nbsp;году пользователи <a href="https://www.axios.com/2024/01/04/microsoft-copilot-ai-button-windows" rel="noopener noreferrer nofollow">начали замечать</a> клавиатурную новинку.</p><p>Вот только никто не сказал, что делать всем остальным, кто на эти компьютеры будет ставить Linux или FreeBSD.</p><p>Подобным вопросом задался Дэниэль Колашоне, специализирующийся на производительном системном софте инженер программного обеспечения. Колашоне&nbsp;— известный разработчик; он <a href="https://tracingsummit.org/ts/2018/dctv/" rel="noopener noreferrer nofollow">работал</a> в Google и Microsoft, где занимался производительностью ядер, соответственно, Android и Windows&nbsp;Phone. Дэниэль активно коммитит в open source, к примеру, в рендеринг Emacs он <a href="https://www.theregister.com/2016/10/31/google_man_drags_emacs_into_the_1990s/" rel="noopener noreferrer nofollow">добавил</a> плавность и убрал мерцание.</p><p>Благодаря гарантийной программе Колашоне <a href="https://x.com/dcolascione/status/2019936377408811319" rel="noopener noreferrer nofollow">заменили</a> ноутбук на ThinkPad&nbsp;X1 Carbon. На клавиатуре чуда техники компании Lenovo красовалась клавиша Copilot. Дэниэль возжелал иметь на этом ThinkPad правый Ctrl вместо новой клавиши и решил переназначить клавишу программно. Тут-то разработчик и наткнулся на проблемы.</p><figure class=""><img src="https://habrastorage.org/webt/cm/z_/e5/cmz_e52wqcsua7xywlnrsah4kvq.jpeg" alt="Клавиатура нового ноутбука Дэниэля Колашоне. @dcolascione" title="Клавиатура нового ноутбука Дэниэля Колашоне. @dcolascione"><div><figcaption>Клавиатура нового ноутбука Дэниэля Колашоне. <a href="https://x.com/dcolascione/status/2019936377408811319" rel="noopener noreferrer nofollow">@dcolascione</a></figcaption></div></figure><p>Дело в том, что в IBM-совместимых компьютерах нажатия клавиш клавиатуры отслеживает контроллер клавиатуры, который отсылает в специальный порт <code>60h</code> скан-коды нажатых клавиш, и лишь после этого в дело вступает операционная система. Как выяснил Дэниэль, нажатие клавиши Copilot издаёт скан-коды зажатия левой клавиши Meta, зажатия левой клавиши Shift и зажатия клавиши F23, затем отпускания трёх клавиш в обратном порядке. Говоря проще, для операционки клавиша Copilot выглядит как быстро выстреливаемый макрос Windows&nbsp;+ Shift&nbsp;+ F23.</p><p>Из-за выбранных компонентов комбинации переназначить клавишу Copilot невозможно. Этот изъян <a href="https://github.com/randyrants/sharpkeys/issues/560" rel="noopener noreferrer nofollow">уже известен</a> и много обсуждался. Для решения проблемы надо перехватить и нейтрализовать нажатия Meta и Shift, что сделать не так-то просто.</p><p>Колашоне тоже столкнулся с этой проблемой, но для начала ему пришлось пропатчить Linux. Как рассказал разработчик, скан-код <code>0x6e</code> (клавиша F23) настолько необычен, что иначе операционка его не распознавала. Затем, чтобы при нажатии на новую клавишу вызывался Ctrl, он настроил Wayland следующим образом: когда поступает нажатие левой Meta или левой Shift, нужно подождать несколько миллисекунд, будет ли нажатие F23. Если да, то будет синтезировано нажатие правой клавиши Ctrl, нет&nbsp;— модификаторы будут переданы как есть.</p><p>Выкрутиться удалось, пусть и ценой ненужной обработки нажатий клавиш клавиатуры и дополнительной задержки ввода. И всё ради клавиши Copilot, для которой могло бы хватить уже и без того редкой и необычной F23, замечает Колашоне.</p> <a href="https://habr.com/ru/posts/994744/?utm_campaign=994744&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 10 Feb 2026 07:32:20 GMT</pubDate>
    <dc:creator><![CDATA[atomlib]]></dc:creator>
      
      <category><![CDATA[Linux]]></category><category><![CDATA[Microsoft]]></category><category><![CDATA[Wayland]]></category><category><![CDATA[клавиатуры]]></category><category><![CDATA[Дэниэль Колашоне]]></category><category><![CDATA[комбинации клавиш]]></category><category><![CDATA[Copilot]]></category><category><![CDATA[Windows Copilot]]></category><category><![CDATA[Windows]]></category><category><![CDATA[костыли]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @itcaat — Linux (+2) — 27.01.2026 22:22]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/989724/</guid>
    <link>https://habr.com/ru/posts/989724/?utm_campaign=989724&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Иногда самые полезные вещи - это вовсе не большие системы и не новые фреймворки, а маленькие утилиты, которые внезапно делают жизнь проще. На днях вспомнил про одну такую находку и решил поделиться.</p><p>Наверняка знакомо ощущение: смотришь логи через <code>tail -f</code>, делаешь какое-то действие - рестарт сервиса, деплой, правку конфига - и потом пытаешься глазами понять, где закончился старый вывод и началось новое. Спойлер: это не всегда просто.</p><p>Для таких случаев существует крошечная, но очень полезная утилита <br> <strong><code>spacer</code></strong>: <a href="https://github.com/samwho/spacer" rel="noopener noreferrer nofollow">https://github.com/samwho/spacer</a></p><p>Она вставляет визуальные разделители прямо в поток вывода и отлично работает в реальном времени. Без магии, без лишних настроек - просто аккуратно отделяет "было" от "стало".</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/5f4/313/99b/5f431399bdc7e627f48e50730b55f0eb.gif" width="985" height="588"></figure><p>В итоге это неожиданно удобно:</p><ul><li><p>при отладке,</p></li><li><p>при сопровождении сервисов,</p></li><li><p>при поиске изменений в логах после конкретных действий.</p></li></ul><p>Отдельный плюс - минимализм. Никаких зависимостей, ничего лишнего: скачал, поставил, используешь. Именно тот случай, когда инструмент делает ровно одну вещь - и делает её хорошо.</p><p>_________________</p><p>Хватит читать DevOps-статьи от людей&nbsp;<strong>без продакшена</strong>. Я рассказываю про свой реальный опыт в своем Telegram-канале&nbsp;<a href="https://t.me/devopsbrain" rel="noopener noreferrer nofollow">DevOps Brain</a>&nbsp;🧠 ↩</p> <a href="https://habr.com/ru/posts/989724/?utm_campaign=989724&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 27 Jan 2026 19:22:10 GMT</pubDate>
    <dc:creator><![CDATA[itcaat]]></dc:creator>
      
      <category><![CDATA[spacer]]></category><category><![CDATA[tools]]></category><category><![CDATA[linux]]></category><category><![CDATA[diagnostics]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @ArturGukasov — Веб-разработка (+4) — 27.01.2026 17:07]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/989612/</guid>
    <link>https://habr.com/ru/posts/989612/?utm_campaign=989612&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Пост о наболевшем. Clawd и как же им пользоваться.</strong></p><p>В общем два дня уже потратил на то чтобы развернуть Clawd bot, естественно в бесплатном формате, по началу шло все хорошо, развернул бота на локальном компе Linux Mint 22.2, создал бота в Телеграмме, привязал к нему Clawdbot. </p><p>Так как у clawd нет своей нейронки, ему нужно прикрутить свои мозги. Сначала запросил API ключ в Gemini. Обычная модель, даже самая простая не запускалась. Затем тыкнул в Google Antigravity, который как оказалось имитирует думающую модель Claude 4.5 пуская один и тот же запрос в себя по кругу. Эта штука быстро отвалилось, но успел немного поразвлекаться с ней. </p><p>Перебрал половину представленных в списке Clawd моделей, например тот же Deepseek дает API только разработчикам, но в него можно получить доступ через такие сервисы (из списка Clawd), как Openrouter. Openrouter в свою очередь выдал ключ, но выбирая из списка модели, даже с пометкой free ничего не взлетало. На этом я уже устал если честно, поэтому обращаюсь к хабру, дабы развернуть актуальную дискусиию, может накидаете вариантов решения или альтернатив Clawd, а то уж очень захотелось поиграть в агента.<br></p><p>Успел спросить у него, с мозгом Google Antigravity, что он может:</p><blockquote><p>🔧 Код и файлы<br> — Читать, писать, редактировать код и документы<br> — Запускать команды в терминале, работать с git</p><p>🌐 Интернет<br> — Искать в вебе, парсить страницы<br> — Управлять браузером (автоматизация, скрейпинг)</p><p>📅 Организация<br> — Напоминания и cron-задачи<br> — Вести заметки, память между сессиями</p><p>💬 Коммуникация<br> — Telegram (вот тут и сидим), можно подключить другие каналы<br> — Могу отправлять сообщения, реагировать</p><p>🏠 Умный дом / устройства<br> — Если подключишь ноды — камеры, уведомления на телефон</p><p>🤖 Сложные задачи<br> — Могу запускать саб-агентов на длинные задачи в фоне</p><p>По сути — твой персональный ассистент-разработчик, который живёт в терминале и мессенджерах.</p></blockquote><p>И соответсвенно мой список вопросов:<br>Стоит ли брать платную модель? И какую брать если, уж брать?<br>Насколько я понимаю штука супер небезопасная, а если запускать из песочницы, то все равно прийдется давать какие-то доступы?<br>Какие есть альтернативы? Уж очень понравился способ взаимодействия через ТГ<br></p> <a href="https://habr.com/ru/posts/989612/?utm_campaign=989612&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 27 Jan 2026 14:07:07 GMT</pubDate>
    <dc:creator><![CDATA[ArturGukasov]]></dc:creator>
      
      <category><![CDATA[вайб-кодинг]]></category><category><![CDATA[вайбкодинг]]></category><category><![CDATA[вайб-программирование]]></category><category><![CDATA[вайб-код]]></category><category><![CDATA[ии]]></category><category><![CDATA[ии-агенты]]></category><category><![CDATA[ии и машинное обучение]]></category><category><![CDATA[ии-ассистент]]></category><category><![CDATA[ии чат-бот]]></category><category><![CDATA[clawdbot]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @itcaat — Linux (+2) — 27.01.2026 10:10]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/989364/</guid>
    <link>https://habr.com/ru/posts/989364/?utm_campaign=989364&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>“Наши руки не для скуки” (с). Я давно хотел накидать скрипт <strong>для супер быстрой диагностики Linux</strong>. Конечно, это не замена полноценному мониторингу. Это&nbsp; <strong>дополнительный инструмент</strong>, который вы можете использовать в своем арсенале чтобы упростить себе жизнь. Самое главное что он <strong>сэкономит кучу времени</strong>.</p><p><strong>В отчете вы получите:</strong></p><ul><li><p><strong>Системную информацию</strong> - версия ОС, ядро, архитектура, uptime, внешний IP</p></li><li><p><strong>Аппаратные ресурсы</strong> - CPU, RAM, Swap, температура процессоров</p></li><li><p><strong>Дисковое пространство</strong> - занятое место, inodes, SMART статус</p></li><li><p><strong>Тест скорости дисков</strong> - скорость записи/чтения (100MB тест)</p></li><li><p><strong>Сетевые интерфейсы</strong> - статус, ошибки, активные соединения</p></li><li><p><strong>Тест сети</strong> - ping до шлюза, <a href="http://ya.ru" rel="noopener noreferrer nofollow">ya.ru</a> и 8.8.8.8 (по 10 пакетов каждый), скорость интернета</p></li><li><p><strong>Процессы</strong> - топ по CPU и памяти, zombie процессы</p></li><li><p><strong>Системные логи</strong> - критические ошибки, OOM события, kernel warnings</p></li><li><p><strong>Системные службы</strong> - проверка упавших служб</p></li><li><p><strong>Безопасность</strong> - неудачные входы, активные SSH сессии</p></li><li><p><strong>Docker</strong> - статус контейнеров и их ресурсы</p></li></ul><p>Пример запуска (можно без sudo - но там не будет всех показателей):</p><pre><code>curl -o ~/linux-diag-script.sh https://gist.githubusercontent.com/itcaat/45edeaf15f2d508bee766daa9a97400c/raw/linux-diag-script.sh
chmod +x ./linux-diag-script.sh
sudo ./linux-diag-script.sh

# Одной командой
curl https://gist.githubusercontent.com/itcaat/45edeaf15f2d508bee766daa9a97400c/raw/linux-diag-script.sh | sudo bash</code></pre><p><strong>Бонусом</strong> в скрипте встроена возможность получать <strong>Telegram уведомления и сам отчет</strong> при обнаружении проблем. Для этого надо создать бота и добавить в выполнение скрипта в cron.</p><ol><li><p>Найди [@BotFather](<a href="https://t.me/BotFather" rel="noopener noreferrer nofollow">https://t.me/BotFather</a>) в Telegram</p></li><li><p>Отправь команду /newbot</p></li><li><p>Следуй инструкциям и получи токен бота (например: <code>123456789:ABCdefGHIjklMNOpqrsTUVwxyz</code>)</p></li><li><p>Получи Chat ID:</p><p>&nbsp; &nbsp; - Отправь сообщение боту</p><p>&nbsp; &nbsp; - Откройте:&nbsp; <a href="https://api.telegram.org/bot&lt;YOUR_BOT_TOKEN&gt;/getUpdates" rel="noopener noreferrer nofollow">https://api.telegram.org/bot&lt;YOUR_BOT_TOKEN&gt;/getUpdates</a></p><p>&nbsp; &nbsp; - Найди "chat":{"id": - это твой Chat ID</p></li></ol><p>Теперь можешь <strong>добавить в cron</strong> (подставь свой botToken и chatId) и будешь получать <strong>уведомление в telegram</strong> если будет обнаружена какая то проблема.</p><pre><code># Проверка каждые 6 часов
0 */6 * * * root TELEGRAM_BOT_TOKEN="your_token" TELEGRAM_CHAT_ID="your_chat_id" /usr/local/bin/linux-diag-script.sh &gt;/dev/null 2&gt;&amp;1</code></pre><p>Актуальная версия скрипты доступна на <a href="https://gist.github.com/itcaat/45edeaf15f2d508bee766daa9a97400c" rel="noopener noreferrer nofollow">GitHub Gist</a>.&nbsp; Вы можете модифицировать его под свои нужды, добавлять новые проверки или как то интегрировать в runbook-и.</p><p>Пишите что еще можно добавить - я добавлю.</p><p>---</p><p>Хватит читать DevOps-статьи от людей&nbsp;<strong>без продакшена</strong>. Я рассказываю про свой реальный опыт в своем Telegram-канале&nbsp;<a href="https://t.me/devopsbrain" rel="noopener noreferrer nofollow">DevOps Brain</a>&nbsp;🧠 ↩</p> <a href="https://habr.com/ru/posts/989364/?utm_campaign=989364&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 27 Jan 2026 07:10:58 GMT</pubDate>
    <dc:creator><![CDATA[itcaat]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[диагностика linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @itcaat — Linux (+2) — 26.01.2026 18:58]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/989236/</guid>
    <link>https://habr.com/ru/posts/989236/?utm_campaign=989236&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Делюсь находкой...<br><br>Если тебе надо быстро потыкать что-то из Linux / контейнеров / сетей / namespaces / cgroups, но при этом не хочется поднимать VM, ставить Docker, ковырять окружение, то <a href="https://labs.iximiuz.com/playgrounds" rel="noopener noreferrer nofollow">iximiuz labs playgrounds</a> - это прям топ штука.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/c73/f79/f9c/c73f79f9cb86943f896cae387c4dfc80.png" width="2748" height="1836"></figure><p>Это набор готовых интерактивных лаб, где ты заходишь в браузере и просто:</p><ul><li><p>запускаешь контейнеры</p></li><li><p>смотришь namespace’ы</p></li><li><p>играешься с сетью</p></li></ul><p>Причём самое классное, что там не “прочитай статью”, а прям сценарий + терминал + что делать. То есть зашёл → запустил → увидел результат → понял, как оно работает.</p><p>---</p><p>Хватит читать DevOps-статьи от людей&nbsp;<strong>без продакшена</strong>. Я рассказываю про свой реальный опыт в своем Telegram-канале&nbsp;<a href="https://t.me/devopsbrain" rel="noopener noreferrer nofollow">DevOps Brain</a>&nbsp;🧠 ↩</p><p><br><br></p> <a href="https://habr.com/ru/posts/989236/?utm_campaign=989236&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 26 Jan 2026 15:58:05 GMT</pubDate>
    <dc:creator><![CDATA[itcaat]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Open source (+4) — 17.01.2026 16:17]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/986132/</guid>
    <link>https://habr.com/ru/posts/986132/?utm_campaign=986132&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><a href="https://www.reddit.com/r/linux_gaming/comments/1qdgd73/i_made_adobe_cc_installers_work_on_linux_pr_in/" rel="noopener noreferrer nofollow">Устранена</a> проблему, из-за которой установщики Adobe Creative Cloud для Windows не могли работать в Linux через Wine из-за некоторых несовместимостей Wine с MSXML3 и MSHTML. После этого <a href="https://github.com/PhialsBasement/wine-photoshop-installers/releases/tag/fix-adobe" rel="noopener noreferrer nofollow">открытого фикса</a> Adobe Photoshop 2021 и Photoshop 2025 могут быть установлены и запущены в Linux через Wine.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/69f/f77/5f4/69ff775f4cfecf87177914645516a93f.png" width="732" height="412"></figure> <a href="https://habr.com/ru/posts/986132/?utm_campaign=986132&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 17 Jan 2026 13:17:09 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[Photoshop 2025]]></category><category><![CDATA[Photoshop 2021]]></category><category><![CDATA[wine]]></category><category><![CDATA[linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @YourChief — Настройка Linux (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/982670/</guid>
    <link>https://habr.com/ru/posts/982670/?utm_campaign=982670&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Как установить HTTP прокси с TLS на свежий сервер с Linux одной командой:</p><pre><code class="bash">curl https://raw.githubusercontent.com/SenseUnit/easy-dp/refs/heads/master/easy-dp.sh | bash -s</code></pre><p>Вывод будет примерно таким:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/3c1/bd5/e1f/3c1bd5e1fab206b575bf0c6274a1d9c4.png" alt="Вывод скрипта после установки" title="Вывод скрипта после установки" width="782" height="578"><div><figcaption>Вывод скрипта после установки</figcaption></div></figure><p>Всё, готово - можно пользоваться!</p><p>Скрипт устанавливает и настраивает dumbproxy c TLS-сертификатами от LetsEncrypt, выпущенными прямо на IP-адрес сервера, без домена.</p><p>Настройка браузеров и прочих клиентов уже <a href="https://habr.com/ru/articles/687512/#:~:text=%D0%93%D0%BE%D1%82%D0%BE%D0%B2%D0%BE!-,%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%BE%D0%B2,-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8%20%D0%B4%D0%BB%D1%8F" rel="noopener noreferrer nofollow">обсуждалась</a> в одной из предыдущих статей. Добавлю только, что на сегодняшний день в качестве клиента для Android я бы выбрал NekoBox.</p><p>На этом всё!</p> <a href="https://habr.com/ru/posts/982670/?utm_campaign=982670&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 04 Jan 2026 00:12:04 GMT</pubDate>
    <dc:creator><![CDATA[YourChief]]></dc:creator>
      
      <category><![CDATA[dumbproxy]]></category><category><![CDATA[http proxy]]></category><category><![CDATA[https proxy]]></category><category><![CDATA[installer]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Настройка Linux (+2) — 26.12.2025 15:21]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/980890/</guid>
    <link>https://habr.com/ru/posts/980890/?utm_campaign=980890&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Геймер <a href="https://www.instagram.com/p/DSppJpcDPsP/" rel="noopener noreferrer nofollow">спрятал</a> ПК в конструктиве 50-килограммовой викторианской батареи отопления. Это сделано для экстремального охлаждения компьютера. Никакого корпуса не нужно - чугунный радиатор XIX века работает как гигантский пассивный теплоотвод. Снизу батареи поместилась материнская плата, видеокарта и блок питания. Энтузиаст даже аккуратно спрятал проводку и сохранил «антикварный» внешний вид. </p><iframe id="694e7d92bd24f6785c4c714a" src="https://embedd.srv.habr.com/iframe/694e7d92bd24f6785c4c714a" class="embed_video embed__content" allowfullscreen="true"></iframe> <a href="https://habr.com/ru/posts/980890/?utm_campaign=980890&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 26 Dec 2025 12:21:32 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[пк]]></category><category><![CDATA[батарея]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @polar_yogi — Linux (+2) — 21.12.2025 18:10]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/979072/</guid>
    <link>https://habr.com/ru/posts/979072/?utm_campaign=979072&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p> Еще один вариант маршрутизации трафика через два сетевых интерфейса на основе списка  доменных имен. </p><p>Сразу оговорюсь: все лучшие и хорошие варианты решения этой проблемы уже были рассмотрены на Хабре. Но для тех, кто использует linux и кого существующие варианты почему-либо не устраивают, предлагаю рассмотреть еще один. </p><p>Краткое содержание: ставим локальный dns resolver с плагином на python, который, при разрешении имени в адрес, устанавливает маршрут через альтернативный интерфейс, если адрес соответствует  регулярному выражению. Для использования решения требуется умение сконфигурировать и запустить сервис в вашем любимом дистрибутиве/сервис-менеджере, готового пакета для установки нет. </p><p>При написании кода использовалась статья <a href="https://habr.com/ru/articles/346098/" rel="noopener noreferrer nofollow">Составляем DNS-запрос вручную</a>, огромное спасибо автору и переводчику. </p><p>Для реализации идеи нужен ДНС сервер, который позволяет достаточно просто писать плагины/хуки. Первым попавшимся на глаза был <a href="https://www.powerdns.com/powerdns-recursor" rel="noopener noreferrer nofollow">PowerDNS Recursor</a>,  который позволяет писать <a href="https://doc.powerdns.com/recursor/lua-scripting/hooks.html" rel="noopener noreferrer nofollow">плагины на lua</a>. И первая реализация была для него. Но lua это больше про компактность, чем про удобство, например, поддержку регулярных выражений можно так назвать только из вежливости. Тем не менее, всё работало как предполагалось, и достаточно надежно, пока не был найден <a href="https://nlnetlabs.nl/projects/unbound/about/" rel="noopener noreferrer nofollow">Unbound DNS</a>  который позволяет писать <a href="https://unbound.docs.nlnetlabs.nl/en/latest/developer/python-modules.html" rel="noopener noreferrer nofollow">плагины на python</a>, и, в итоге, был написан аналог на питоне, который и предлагаю вашему вниманию. </p><p>Все файлы <a href="https://github.com/a902dda77/unbound_reroute" rel="noopener noreferrer nofollow">доступны на github</a>. Файлов всего 5 и все достаточно короткие. </p><p>Файл <code>reroute.conf</code>: пример файла конфигурации ДНС сервера. <code>192.168.0.1</code> и <code>172.16.17.1</code> — это адреса маршрутизаторов для первого и второго интерфейсов, соответственно. <code>/etc/unbound/reroute.py</code> — собственно плагин выполняющий основную работу. Из существенных моментов: <code>chroot</code> необходимо отключить, чтобы могли нормально работать скрипты на python и сервис должен работать от root чтобы добавлять маршруты. </p><p>Файл <code>reroute.py</code> — плагин, который выполняет необходимые дествия, <code>reroute_conf.py</code> — файл конфигурации для плагина, можно записать оба параметра прямо в плагин и обойтись без него. Вся работа выполняется в функции do_reroute, весь остальной код взят, практически без изменений, из документации unbound dns. </p><p>Файл <code>rrdomains.txt</code> — список регулярных выражений в формате python regex, при совпадении с которыми для всех ip-адресов разрешаемого доменного имени выполняется установка альтернативного маршрута.<br><br>Файл <code>bashrc</code> содержит определение функции reroute. Если во время работы наткнулись на сайт, для которого необходима маршрутизация через второй интерфейс, можно воспользоваться быстрым перенаправлением с помощью  команды reroute в терминале. Или  добавить доменное имя или регулярное выражение для него в rrdomains.txt и перезапустить dns сервер.<br><br>На этом всё, успешного маршрутизирования!</p> <a href="https://habr.com/ru/posts/979072/?utm_campaign=979072&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 21 Dec 2025 15:10:19 GMT</pubDate>
    <dc:creator><![CDATA[polar_yogi]]></dc:creator>
      
      <category><![CDATA[dns]]></category><category><![CDATA[python]]></category><category><![CDATA[vpn]]></category><category><![CDATA[маршрутизация]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @NickDoom — *nix (+3) — 12.12.2025 00:00]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/975912/</guid>
    <link>https://habr.com/ru/posts/975912/?utm_campaign=975912&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><a class="mention" href="/users/regnar">@Regnar</a>, навеяло <a href="https://habr.com/ru/articles/974608/" rel="noopener noreferrer nofollow">статьёй</a>…</p><p>Свалился на меня «последний из 32-битных могикан», но машинка прямо финал возможностей архитектуры — насколько я понял, видит спокойно 8 гигов рамы (PAE во все поля?), слотов не пожалели, в общем, в такое чудо бы камень хотя бы на 2 ядра, но, увы…</p><p>Я его практически не смотрел ещё и ХЗ когда посмотрю (вроде не совсем мёртвая), но превентивно задам вопрос. Допустим, поставил я туда 32-битный BunsenLabs. Допустим, я хочу запустить какое-нибудь 64-битное приложение, которое в 32 битах давно уже не обновляется. Допустим, мне пофиг, что там в плане скорости (очень важное допущение, потому что оно как бы понятно, что там будет).</p><p>Насколько это реально — настроить для него резервативию… презервацию… короче, специально обученный загон с софтовой эмуляцией 64 бит? Существуют ли решения? Чтобы их установить и отконфигурировать, обязательно пройти все круги ада, как в той статье?</p><p>Практического смысла это по понятной причине не несёт — просто пятничное.</p> <a href="https://habr.com/ru/posts/975912/?utm_campaign=975912&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 11 Dec 2025 21:00:12 GMT</pubDate>
    <dc:creator><![CDATA[NickDoom]]></dc:creator>
      
      <category><![CDATA[эмуляция x64]]></category><category><![CDATA[пятница]]></category><category><![CDATA[пятничное]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @El_Gato_Grande — Блог компании Selectel (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/selectel/posts/973574/</guid>
    <link>https://habr.com/ru/companies/selectel/posts/973574/?utm_campaign=973574&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, Хабр! Наступила очередная пятница, поэтому я несу полезные материалы на выходные для тех, кто хочет получше освоить Ubuntu. Информация по ссылкам довольно базовая, для начинающих. Все бесплатно, без регистрации и смс. Поехали!</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/b8c/42e/406/b8c42e406d07ddaed4d44274c83eb39b.jpg" width="1024" height="576"></figure><ul><li><p><a href="https://selectel.ru/blog/tutorials/how-to-configure-firewall-with-ufw-on-ubuntu-20/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_ubuntuguides_051225_content" rel="noopener noreferrer nofollow">Настройка файрвола в Ubuntu с помощью утилиты UFW</a> — что за утилита, зачем она нужна, какие есть основные команды и правила работы, как подключить/отключить и так далее.  </p></li><li><p><a href="https://selectel.ru/blog/tutorials/ftp-ubuntu/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_ubuntuguides_051225_content" rel="noopener noreferrer nofollow">Установка и настройка FTP-сервера на Ubuntu</a> — разбираемся с установкой, настройкой, созданием пользователей, настройкой SSL/TLS и проверками подключений. Все разбираем на примере VSFTPD (Very Secure FTP Daemon).</p></li><li><p><a href="https://selectel.ru/blog/tutorials/how-to-install-and-configure-3proxy-proxy-servers-on-ubuntu/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_ubuntuguides_051225_content" rel="noopener noreferrer nofollow">Установка и настройка прокси-сервера 3proxy на Debian/Ubuntu</a> — пошаговая инструкция на случай, если вам нужен маленький и простой прокси-сервер.</p></li><li><p><a href="https://selectel.ru/blog/tutorials/how-to-install-and-set-up-jitsi-meet-on-ubuntu/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_ubuntuguides_051225_content" rel="noopener noreferrer nofollow">Установка и настройка Jitsi Meet на Ubuntu 22.04</a> — рассмотрим настройку публичного сервера видеоконференций Jitsi Meet, доступного из&nbsp;интернета, с выпуском TLS-сертификата и обязательной авторизацией.</p></li><li><p><a href="https://selectel.ru/blog/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_ubuntuguides_051225_content" rel="noopener noreferrer nofollow">Установка и использование PostgreSQL в Ubuntu 22.04</a> — 10-минутный гайд по тому, как как развернуть PostgreSQL на&nbsp;виртуальной машине и&nbsp;научиться работать с&nbsp;базовыми функциями сервиса.</p></li></ul> <a href="https://habr.com/ru/posts/973574/?utm_campaign=973574&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 05 Dec 2025 09:00:27 GMT</pubDate>
    <dc:creator><![CDATA[El_Gato_Grande (Selectel)]]></dc:creator>
      
      <category><![CDATA[selectel]]></category><category><![CDATA[linux]]></category><category><![CDATA[ubuntu]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @arthurpro — *nix (+1) — 01.12.2025 02:24]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/971862/</guid>
    <link>https://habr.com/ru/posts/971862/?utm_campaign=971862&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Домашняя лаба на ARM64 с Incus на Ubuntu</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/ca9/6ed/4a6/ca96ed4a683ba2e64d528d4d656d60db.png" width="1200" height="896"></figure><p>Я постепенно перевожу свою домашнюю лабораторию с x86 на ARM последние несколько месяцев. Причины простые: на ежедневной машине у меня Mac на Apple Silicon, так что разработка под ARM64 воспринимается естественно; инстансы на Graviton обычно дешевле; и ARM64 машины намного экономичнее по энергопотреблению, что делает круглосуточную домашнюю лабораторию дешевле по электричеству и выделяет значительно меньше тепла. После нескольких лет работы с мини‑ПК Shuttle на Intel я решил перейти всерьёз и сразу после релиза заказал два Minisforum MS‑R1 - в каждом 12‑ядерный ARM64 SoC и 64 ГБ ОЗУ.</p><p>Машины приехали 29 ноября. В тот же день вышел Incus 6.19. Я хотел как можно быстрее поднять хотя бы одну коробку, поэтому установил Ubuntu 24.04.3 (arm64), поставил Incus 6.19 и потратил пару часов, чтобы контейнеры запускались и вели себя как надо. Для повседневной работы с контейнерами переход оказался удивительно плавным.</p><p>Но железо редко ведёт себя с первого раза так, как ожидаешь. MS‑R1 идет с двумя RTL8127 10‑Gbit сетевыми картами, и из коробки стандартное ядро Ubuntu их не увидело. Первой мыслью было поставить mainline ядро - я установил 6.16, драйверы RTL появились, начали мигать сетевые индикаторы, и я с облегчением выдохнул.</p><p>Это облегчение оказалось недолгим. Используемое мной mainline ядро устроено так, что опция MODULES в kernel не включена, чтобы DKMS смог собрать модуль ZFS, который мне нужен для Incus. Пересобирать всё ядро показалось чрезмерным, пока я не обнаружил, что у Zabbly (разработчик Incus) есть собственный репозиторий кастомных ядер для Ubuntu и соответствующие пакеты ZFS. Переход на ядро от Zabbly решил 2 проблемы: драйвер RTL8127 и пакеты ZFS, которые устанавливаются через DKMS. В этот момент Incus, сеть и ZFS pool заработали нормально.</p><p>Остались две проблемы - обе странные, обе упрямые и обе порождают больше вопросов, чем ответов.</p><p>Первая касается локального дисплея. После загрузки с ядром Zabbly система жива и доступна по SSH, но подключённый HDMI‑монитор не обновляется дальше стартового изображения BIOS. Экран зависает на заставке BIOS, в то время как ядро и userspace тихо продолжают загрузку в фоне. Пока не нашёл явных сообщений об ошибках в привычных логах, которые указывали бы на конкретный драйвер.</p><p>Вторая проблема - с виртуальной машиной Windows 11. Я попытался поставить Windows 11 ARM64 под Incus по тем же шагам, что и на x86‑64 хостах. Процесс VM стартует, но зависает на экране BIOS/UEFI и не доходит до инсталлятора. Моя первая гипотеза - отсутствует или неправильно сконфигурирована aarch64 UEFI прошивка, либо нужна какая‑то конкретная опция machine/cpu для Windows on ARM. Но ещё не пришёл к выводу, падает ли прошивка молча или она просто ждёт чего‑то, чего я не передал.</p><p>Что пробовал уже - практично, но пока не окончательно. Установка mainline ядра решила проблему с NIC; переход на ядро Zabbly решил и NIC, и ZFS. Могу подключиться по SSH к хосту при зависшем дисплее, значит это не полная паника ядра. Для ВМ вижу процесс qemu, но экран не двигается дальше BIOS.</p><p>Если кто‑то сталкивался с подобным, буду признателен за опыт и решения. Несколько конкретных вопросов, по которым надеюсь на помощь сообщества:</p><ul><li><p>Кто‑нибудь видел ситуацию, когда HDMI‑дисплей после переключения на кастомное ядро arm64 "замораживается" на заставке BIOS и не обновляется дальше, хотя ОС при этом загружается?</p></li><li><p>Что я упустил для запуска Windows 11 (aarch64) под Incus/QEMU на Ubuntu?</p></li></ul><p>Помогите, если есть опыт!</p> <a href="https://habr.com/ru/posts/971862/?utm_campaign=971862&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 30 Nov 2025 23:24:20 GMT</pubDate>
    <dc:creator><![CDATA[arthurpro]]></dc:creator>
      
      <category><![CDATA[incus]]></category><category><![CDATA[arm64]]></category><category><![CDATA[ubuntu]]></category><category><![CDATA[kernel]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @El_Gato_Grande — Блог компании Selectel (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/selectel/posts/970354/</guid>
    <link>https://habr.com/ru/companies/selectel/posts/970354/?utm_campaign=970354&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, Хабр! Новая пятница — новые знания для начинающий специалистов! Сегодня у нас небольшая подборка инструкций по работе с командами в Linux. Пригодится будущим и начинающим системным администраторам. Как всегда, все материалы доступны бесплатно и без регистрации. Поехали!</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/50d/834/09b/50d83409b9a7fb3e8c579eeb17dcc904.jpg" width="1191" height="669"></figure><ul><li><p><a href="https://selectel.ru/blog/tutorials/what-the-chmod-command-does-and-how-to-use-it-in-linux/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_commandslinux_281125_content" rel="noopener noreferrer nofollow">Что делает команда <code>chmod</code> и&nbsp;как ее&nbsp;использовать в&nbsp;Linux</a> — разбираем синтаксис команды, ее параметры и ключи, а также основные методы изменения прав доступа.</p></li><li><p><a href="https://selectel.ru/blog/tutorials/grep-command-in-linux/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_commandslinux_281125_content" rel="noopener noreferrer nofollow">Команда <code>grep</code> в&nbsp;Linux</a> — снова изучаем синтаксис, знакомимся с регулярными выражениями, смотрим на примеры использования команды.</p></li><li><p><a href="https://selectel.ru/blog/tutorials/kill-and-killall-commands-in-linux/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_commandslinux_281125_content" rel="noopener noreferrer nofollow">Команды <code>kill</code> и&nbsp;<code>killall</code> в&nbsp;Linux</a> — подробная инструкция по принудительному завершению и настройке процессов, а также управлению их приоритетами.</p></li></ul><p>И просто напоминание, что в Академии Selectel есть <a href="https://study.selectel.ru/admincourse/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=study_post_commandslinux_281125_content" rel="noopener noreferrer nofollow">курс по системному администрированию с нуля</a>. Он тоже бесплатный, но там все же придется зарегистрироваться, так что на ваше усмотрение.</p> <a href="https://habr.com/ru/posts/970354/?utm_campaign=970354&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 28 Nov 2025 11:00:27 GMT</pubDate>
    <dc:creator><![CDATA[El_Gato_Grande (Selectel)]]></dc:creator>
      
      <category><![CDATA[selectel]]></category><category><![CDATA[linux]]></category><category><![CDATA[системное администрирование]]></category><category><![CDATA[обучение]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @valvalva — Linux (+2) — 30.10.2025 11:53]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/961564/</guid>
    <link>https://habr.com/ru/posts/961564/?utm_campaign=961564&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Самый простой способ сообщить об успешном подключении по SSH</p><p>Всем привет! Вообще-то, обычно решают обратную задачу - сообщить о неудачных попытках подключения по SSH, а еще лучше - сразу заблокировать. С этим прекрасно справляет, например, Fail2ban, но, рассказ не о нем. Может оказаться полезно получать уведомления именно об успешных подключениях, особенно, в тот момент, когда сам НЕ подключаешься. Так же, хочется сделать это с наименьшими усилиями, без написания скриптов, без установки специфического ПО, что бы было легко "скопипастить" решение на множество систем. Так же, хочется знать не тoлько о подключениях, получивших shell, но и о удаленном выполнении команд, или копировании файлов по протоколу SSH.</p><p>Все есть в этом решении:</p><p>$ sudo apt install curl</p><p>$ sudo nano /etc/pam.d/sshd</p><p>оставьте, все, что было в этом файле и добавьте в конец:</p><pre><code class="bash">session optional pam_exec.so /bin/bash -c (echo${IFS}Subject:ssh-${PAM_USER}@$(hostname)-${PAM_RHOST};/usr/bin/env)|/usr/bin/curl${IFS}smtp://mailhub.yourcorp.ru${IFS}--mail-from${IFS}noc@yourcorp.ru${IFS}--mail-rcpt${IFS}yourlogin@yourcorp.ru${IFS}--upload-file${IFS}-</code></pre><p>Да, этого достаточно!</p><p>Как оказалось, curl умеет отправлять почту, в сообщении будут присутствовать все подробности, кто, когда, откуда подключился, и, даже, когда отключился. Правда, в этом решении требуется корпоративный почтовый сервер (<a href="http://mailhub.yourcorp.ru" rel="noopener noreferrer nofollow">mailhub.yourcorp.ru</a> в нашем "однострочнике"), готовый принять письмо без аутентификации. Это допустимо, если он же является конечным сервером с ящиком пользователя, или, есть разрешение пересылки писем из корпоративной сети (в этом случае можно использовать любой другой почтовый адрес, вместо <a href="mailto:yourlogin@yourcorp.ru" rel="noopener noreferrer nofollow">yourlogin@yourcorp.ru</a>). Однако, такой сервер не всегда имеется, и решение не годится для персонального использования.</p><p>В этом случае, <a href="https://rutube.ru/video/private/f018b7c8047e8d2b53c168e0912f2c79/" rel="noopener noreferrer nofollow">предлагаю Вам вебинар</a> , демонстрирующий решение той же задачи, с отправкой сообщений в Telegram</p><p>На этом все, спасибо, буду рад ответить на вопросы!</p> <a href="https://habr.com/ru/posts/961564/?utm_campaign=961564&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Oct 2025 08:53:34 GMT</pubDate>
    <dc:creator><![CDATA[valvalva]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[pam]]></category><category><![CDATA[ssh]]></category><category><![CDATA[email]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @aax — Схемотехника (+2) — 25.08.2025 11:20]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/940418/</guid>
    <link>https://habr.com/ru/posts/940418/?utm_campaign=940418&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Linux Mint 22</strong> - <strong>KiCad-5 с GUI и графическим ускорением на карте AMD в Docker-контейтере.</strong> </p><p>При перезде с Минт-20 на Минт-22 мне захотелось сохранить возможность полноценной работы с проектами выполнеными в KiCad-5, без конвертации их в формат KiCad-9 на который я плавно мигрирую при перезде на Минт-22. Специфика в том, что  KiCad-5, в том числе в виде AppImage на Минт-22 запускаться категорически не хочет.</p><p>Из возможных вариантов выбрал для себя запуск KiCad-5 в Docker-контейтере, с пробросом графики через X11. За основу взял <a href="https://forum.kicad.info/t/running-kicad-5-with-docker/37705" rel="noopener noreferrer nofollow">эту реализацию</a>. Добавил к ней проброс графического ускорения(без него GUI будет подтормаживать) своей карты AMD, русификацию, и Firefox, для плагина InteractiveHtmlBom. В итоге получился вот такой dockerfile:</p><pre><code class="bash">FROM linuxmintd/mint20-amd64

ENV LANG=ru_RU.UTF-8

RUN apt-get update &amp;&amp; \
    apt-get upgrade -y &amp;&amp; \
    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 &amp;&amp; \
    update-locale LANG=ru_RU.UTF-8

RUN add-apt-repository --yes ppa:kicad/kicad-5.1-releases &amp;&amp; \
    apt-get update &amp;&amp; \
    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} &amp;&amp; \
    echo "${USER_NAME}:x:${UID}:${GID}:USER_NAME,,,:${HOME}:/bin/bash" &gt;&gt; /etc/passwd &amp;&amp; \
    echo "${USER_NAME}:x:${UID}:" &gt;&gt; /etc/group &amp;&amp; \
    echo "${USER_NAME} ALL=(ALL) NOPASSWD: ALL" &gt; /etc/sudoers.d/${USER_NAME} &amp;&amp; \
    chmod 0440 /etc/sudoers.d/${USER_NAME} &amp;&amp; \
    chown ${UID}:${GID} -R ${HOME}

USER ${USER_NAME}

# Раскомментируйте программу, которую вы хотите запустить в контейнере.
#ENTRYPOINT ["eeschema"]
ENTRYPOINT ["kicad"]</code></pre><p>Обратите внимание, что значения USER_NAME, UID, GID, в строках 17, 18, 19 в dockerfile берутся из вашего аккаунта на хост-машине.</p><p>Образ создается как обычно выполненой в открытом в одной директории с dockerfile терминале командой(не забываем пробел и точку в конце команды):</p><pre><code class="bash">docker build -t kicad5 .</code></pre><p>Размер образа получаеться около 800 Мбайт. </p><p>Скрипт для старта контейнера на машине с графической картой AMD:</p><pre><code class="bash">#! /usr/bin/env bash

docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /usr/share/kicad5:/usr/share/kicad -v $HOME:$HOME --device=/dev/dri:/dev/dri kicad5</code></pre><p>До первого запуска контейнера:</p><p>1). Создаете в Минт-22 директорию /usr/share/kicad5 и копируете туда содержимое /usr/share/kicad из Минт-20 с установленным kicad5</p><p>2). Копируете содержимое $HOME/.kicad_plugins из Минт-20 с установленным kicad5 в $HOME/.kicad_plugins в Минт-22</p><p>3).  Копируете содержимое $HOME/.config/kicad/ из Минт-20 с установленным kicad5 в $HOME/.config/kicad в Минт-22</p><p>Теперь можете запускать KiCad-5 с GUI и графическим ускорением на карте AMD в Минт-22 и паралельно установить в Минт-22 KiCad-9.</p><p>Чтобы заархивировать созданный образ выполняем в терминале:</p><pre><code class="bash">docker save -o ./my_bac_kicad5_image.tar kicad5</code></pre><p>Чтобы развернуть заархивированый образ на другом машине выполняем в терминале, открытом в одной директории с файлом my_bac_kicad5_image.tar, на нее скопированном:</p><pre><code class="bash">docker load -i ./my_bac_kicad5_image.tar</code></pre> <a href="https://habr.com/ru/posts/940418/?utm_campaign=940418&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 25 Aug 2025 08:20:05 GMT</pubDate>
    <dc:creator><![CDATA[aax]]></dc:creator>
      
      <category><![CDATA[kicad]]></category><category><![CDATA[docker]]></category><category><![CDATA[linux mint 22]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @SofiaShpak — Блог компании Selectel (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/selectel/posts/937494/</guid>
    <link>https://habr.com/ru/companies/selectel/posts/937494/?utm_campaign=937494&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Selectel выпустил заключительную часть курса «Системный администратор Linux»</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/197/aab/f99/197aabf991b8d0d99deffd39378fd0ea.png" width="1344" height="638"></figure><p>Модули курса выходили постепенно, и недавно вышел последний — теперь обучение доступно целиком. <a href="https://study.selectel.ru/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_linuxcourse_150825_content" rel="noopener noreferrer nofollow">Финальная часть</a> посвящена настройке сетей, управлению пакетами и логами, а также работе с контейнерами. </p><p>Курс полностью бесплатный и не привязан к датам — можно изучать материалы в комфортном темпе. </p><p>После завершения вы получите сертификат. Как его оформить — рассказываем в последнем уроке.&nbsp;</p><p>Начните изучение <a href="https://study.selectel.ru/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=academy_post_linuxcourse_150825_content" rel="noopener noreferrer nofollow">по ссылке</a> ➡️</p> <a href="https://habr.com/ru/posts/937494/?utm_campaign=937494&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 15 Aug 2025 10:19:50 GMT</pubDate>
    <dc:creator><![CDATA[SofiaShpak (Selectel)]]></dc:creator>
      
      <category><![CDATA[selectel]]></category><category><![CDATA[linux]]></category><category><![CDATA[системное администрирование]]></category><category><![CDATA[обучение]]></category><category><![CDATA[учебный курс]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @yadro_team — Блог компании YADRO (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/yadro/posts/932056/</guid>
    <link>https://habr.com/ru/companies/yadro/posts/932056/?utm_campaign=932056&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Как устроен livepatch-модуль для ядра Linux</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/ac2/a58/9d5/ac2a589d5ae3e81439d2db2d99e68f94.png" width="603" height="653"></figure><p>С точки зрения пользователя (в данном случае человека, отвечающего за обновления данной Linux-системы) лайвпатч — это просто модуль ядра Linux, в котором содержится как минимум следующее:&nbsp;</p><ul><li><p>исправленный код одной или более функций из vmlinux и/или из модулей ядра,</p></li><li><p>метаданные, указывающие, как применить эти исправления к соответствующим компонентам ядра Linux.&nbsp;</p></li></ul><p>Чтобы применить лайвпатч-обновление, нужно загрузить этот модуль ядра, например, с помощью&nbsp;<code>insmod</code>&nbsp;или&nbsp;<code>modprobe</code>, а затем активировать его, как правило, через sysfs.&nbsp;</p><p>При этом старый код ядра Linux (тот, который хотим обновить) и новый (тот, что в лайвпатч-модуле)&nbsp;<strong>сосуществуют</strong>&nbsp;в памяти системы. Это дает возможность при необходимости отменить лайвпатч-обновление в runtime: деактивировать его через sysfs, а затем выгрузить лайвпатч-модуль.</p><p>Важный момент: если используются средства для работы с лайвпатчами из mainline-ядра, то при активации и деактивации лайвпатч-обновлений работающие процессы не нужно завершать или даже останавливать на сколько-нибудь существенное время.</p><p>Примечания:</p><ul><li><p>У TuxCare / KernelCare лайвпатчи поставляются в другом, проприетарном, формате, но мы его рассматривать не будем.</p></li><li><p>Для некоторых архитектур, например RISC-V, при активации и деактивации патча вызывается&nbsp;<code>stop_machine()</code>, то есть работающие процессы при этом все-таки останавливаются на некоторое время. Начиная с версии 6.16 ядра Linux, для RISC-V&nbsp;<code>stop_machine()</code>&nbsp;уже, вероятно, не будет использоваться в таких ситуациях.</p></li></ul><blockquote><p><strong>Все, что нужно знать о лайвпатингче для ядра Linux, вы найдете в цикле статей: от подготовки лайвпатча до работы на x86, ARM и RISC-V.</strong></p><p><a href="https://habr.com/ru/companies/yadro/articles/928444/" rel="noopener noreferrer nofollow">Читать первую часть →</a></p><p><a href="https://habr.com/ru/companies/yadro/articles/930150/" rel="noopener noreferrer nofollow">Читать вторую часть →</a></p></blockquote> <a href="https://habr.com/ru/posts/932056/?utm_campaign=932056&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 29 Jul 2025 11:27:30 GMT</pubDate>
    <dc:creator><![CDATA[yadro_team (YADRO)]]></dc:creator>
      
      <category><![CDATA[livepatch]]></category><category><![CDATA[linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @AlfaTeam — Блог компании Альфа-Банк (+4) — 24.06.2025 11:03]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/alfa/posts/921260/</guid>
    <link>https://habr.com/ru/companies/alfa/posts/921260/?utm_campaign=921260&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Настройка КриптоПро HSM Client на&nbsp;Suse/RedHat/ROSA Linux</strong></p><p>Подготовили пошаговую <a href="https://habr.com/ru/companies/alfa/articles/917198/" rel="noopener noreferrer nofollow">подробнейшую инструкцию</a> со скриншотами для разработчиков информационных систем со встроенными СКЗИ по настройке КриптоПро HSM Client на&nbsp;Suse, RedHat и ROSA Linux (включая ошибки, которые позволяет обойти данное руководство) для того, чтобы использовать HSM как самостоятельный криптографический провайдер с выполнением всей математики на борту или в качестве надежного хранилища ключевого материала.</p><p>Заходите, читайте, сохраняйте в закладках.</p> <a href="https://habr.com/ru/posts/921260/?utm_campaign=921260&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 24 Jun 2025 08:03:32 GMT</pubDate>
    <dc:creator><![CDATA[AlfaTeam (Альфа-Банк)]]></dc:creator>
      
      <category><![CDATA[криптопро]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[системное администрирование]]></category><category><![CDATA[криптография]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @shoytov — Linux (+3) — 18.06.2025 14:36]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/919532/</guid>
    <link>https://habr.com/ru/posts/919532/?utm_campaign=919532&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Хэндлим обработку некорректного ввода в ZSH для поднятия настроения</p><p>Сегодня хочу рассказать о том, как немного разнообразить времяпрепровождение в консоли, добавив немного юмора, если ваша командная оболочка zsh.</p><p>Все, кто работает в терминале (эмуляторе терминала, чтобы меня тут не покусали в комментариях :)), думаю, периодически сталкиваются с тем, что вводят команду неправильно. Например, есть шуточная команда <code>sl</code>, которая рисует движущийся поезд, если вы случайно опечатались, когда хотели набрать команду <code>ls</code>.<br> Это служит некой разрядкой и поводом лишний раз улыбнуться. Вот <a href="https://github.com/mtoyoda/sl" rel="noopener noreferrer nofollow">репозиторий этой утилитки на GitHub</a> для любознательных.</p><p>А что, если мы хотим, чтобы на ввод любой несуществующей команды, мы получали что-то аналогичное выводу команды <code>sl</code>? По умолчанию в ZSH в этом случае выводится сообщение <strong>“command not found”</strong>. Давайте это исправим.</p><p>Для этого нам понадобится:</p><ul><li><p>непосредственно <a href="https://github.com/zsh-users/zsh" rel="noopener noreferrer nofollow">zsh</a> в качестве командной оболочки;</p></li><li><p><a href="https://github.com/cowsay-org/cowsay" rel="noopener noreferrer nofollow">cowsay</a> - утилита командной строки, которая рисует разные фигурки, которые как бы говорят, наподобие героям комиксов.</p></li><li><p><a href="https://github.com/busyloop/lolcat" rel="noopener noreferrer nofollow">lolcat</a> - утилита для разукрашивания текста градиентом, добавления анимации и т.д.</p></li></ul><p>В ZSH предусмотрена возможность переопределять поведение при возникновении каких-то ситуаций, в том числе, переопределение поведения при возникновении ошибок. В нашем случае нам нужно переопределить вывод, когда команда, вводимая пользователем не найдена. Для этого будем использовать метод <code>command_not_found_handler</code>. Добавим в <code>.zshrc</code> файл следующий код:</p><pre><code>command_not_found_handler() {    
  cowsay -f tux "LOL! Command not found: $1" | lolcat -a -s 150
  return 127
}</code></pre><p>Немного пояснений: первая строка будет рисовать там пингвина, говорящего, что введенная нами команда не найдена, пингвин будет появляться построчно (150 - скорость появления). Более подробно с доступными параметрами <code>lolcat</code> можно ознакомиться, набрав <code>man lolcat</code>. 127 - это код, который zsh отправляет по умолчанию, сохраним это поведение.</p><p>Вот так примерно это выглядит:</p><figure class=""><img src="https://habrastorage.org/webt/ng/sx/wi/ngsxwils2nyvbqeus-bz3gip9uc.gif"></figure><p>Ну вот, собственно говоря, и все. Мелкие моменты, которые нас окружают в повседневности, делают нас (по крайней мере меня) чуточку счастливее :)</p> <a href="https://habr.com/ru/posts/919532/?utm_campaign=919532&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 18 Jun 2025 11:36:59 GMT</pubDate>
    <dc:creator><![CDATA[shoytov]]></dc:creator>
      
      <category><![CDATA[zsh]]></category><category><![CDATA[cowsay]]></category><category><![CDATA[handler]]></category><category><![CDATA[lolcat]]></category><category><![CDATA[error_handler]]></category><category><![CDATA[terminal]]></category><category><![CDATA[console]]></category><category><![CDATA[geek]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @yadro_team — Блог компании YADRO (+3) — 21.05.2025 16:34]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/yadro/posts/911546/</guid>
    <link>https://habr.com/ru/companies/yadro/posts/911546/?utm_campaign=911546&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Isar и еще 8 систем сборки для создания дистрибутива на Linux</strong></p><p><a href="https://github.com/ilbers/isar/blob/master/doc/custom_kernel.md" rel="noopener noreferrer nofollow">Isar</a>&nbsp;— система сборки, представляющая собой набор скриптов для создания пакетов и дистрибутивов на базе Debian с возможностью настройки. Организация проекта Isar похожа на Yocto Project, для сборки используется Bitbake. </p><p>Перед сборкой можно настроить параметры файловой системы, ядра, модификации списка пакетов (добавление и удаление пакетов, в том числе и собственных, изменение существующих пакетов). Систему сборки разрабатывает компания ilbers GmbH.</p><p><strong>Архитектура системы</strong></p><p>Так как Isar основан на Bitbake, архитектура решения состоит лишь в нескольких слоях для Bitbake, реализующих сборку и установку пакетов в соответствии с конфигурацией сборки. В основе всех этих слоев и рецептов лежат утилиты Debian Build Toolchain, которые ответственны за непосредственную сборку пакетов, разрешение зависимостей и т.д.</p><figure class="full-width "><img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/268/c8f/135/268c8f135bf10efc31a4305c13b5c956.png" alt="Как проходит процесс сборки дистрибутива в Isar" title="Как проходит процесс сборки дистрибутива в Isar" width="880" height="482"><div><figcaption>Как проходит процесс сборки дистрибутива в Isar</figcaption></div></figure><p><strong>Особенности решения</strong></p><ul><li><p>Аналогично Yocto требует усилий на начальных этапах для освоения инструмента.</p></li><li><p>Поддерживает загрузку готовых пакетов из репозиториев Debian.</p></li><li><p>Подходит для embedded-дистрибутивов, где необходимо сочетание Debian-экосистемы и глубокой конфигурации.</p></li></ul><blockquote><p>О других embedded- и desktop-решениях решениях рассказали студенты и преподаватели СПБГЭТУ «ЛЭТИ» <a href="https://habr.com/ru/companies/yadro/articles/909480/" rel="noopener noreferrer nofollow">в обзоре систем</a> для создания Linux-дистрибутивов. &nbsp;</p></blockquote> <a href="https://habr.com/ru/posts/911546/?utm_campaign=911546&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 21 May 2025 13:34:02 GMT</pubDate>
    <dc:creator><![CDATA[yadro_team (YADRO)]]></dc:creator>
      
      <category><![CDATA[дистрибутив]]></category><category><![CDATA[дистрибутив linux]]></category><category><![CDATA[linux]]></category><category><![CDATA[debian]]></category><category><![CDATA[сборка]]></category><category><![CDATA[embedded linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @zmqp — Настройка Linux — 17.05.2025 18:24]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/910306/</guid>
    <link>https://habr.com/ru/posts/910306/?utm_campaign=910306&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Решение проблемы с bluetooth-гарнитурой Fedora</strong></p><p>Возникала проблема: не воспроизводился звук через Bluetooth-гарнитуру.</p><ul><li><p>Изначально не было подключения</p></li><li><p>Потом звук был прерывистый и работал только через гарнитуру (<strong>HFP</strong>), а не <strong>A2DP</strong></p></li><li><p>Плюсом к тому, нигде не находилась та самая "таблетка от всего".</p></li></ul><p><strong>Что имеем</strong></p><p>Для начала расскажу о том, какой у меня дистрибутив. В качестве дистрибутива - Fedora (Workstation Edition)<br></p><figure class=""><img src="https://habrastorage.org/getpro/habr/upload_files/191/194/bb0/191194bb0609bb67a844ffe77505a2ad.png" alt="neofetch" title="neofetch" width="509" height="156"><div><figcaption>neofetch</figcaption></div></figure><p><strong>Что было сделано</strong> </p><p>Методом проб и пыток, вынес некоторое решение, которое на данный момент работает:</p><ul><li><p>Установка проприетарных репозиториев</p></li><li><p>Установка пакетов/драйверов</p></li><li><p>Очищение всех ошибочных конфигураций</p></li></ul><p>&lt;spoiler&gt;Не знал, что изначально проприетарные драйвера недоступны и некоторые репозитории отсутствуют, такие как RPMFusion&lt;/spoiler&gt;</p><p><strong>Установка проприетарных репозиториев</strong></p><p>Для начала, я решил начать с проприетарных репозиториев, использовал данные команды:<br></p><pre><code class="bash">sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-41.noarch.rpm
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-41.noarch.rpm
sudo dnf install gstreamer1-plugins-ugly gstreamer1-plugins-bad gstreamer1-plugins-good gstreamer1-plugins-base</code></pre><p><strong>Установка пакетов</strong></p><p>Дальше я принялся искать, какие пакеты мне нужны для правильной работы bluetooth-наушников, в итоге выкопал такой список:</p><pre><code class="bash">sudo dnf install gstreamer1-plugins-ffmpeg
sudo dnf install ffmpeg
sudo dnf install alsa-plugins-pulseaudio --allowerasing
sudo dnf install gstreamer1-plugins-ugly gstreamer1-plugins-bad gstreamer1-plugins-good gstreamer1-plugins-base --allowerasing
sudo dnf install bluez-libs-devel
sudo dnf install bluez-tools
sudo dnf install pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber
sudo dnf install pulseaudio-module-bluetooth-freeworld</code></pre><p><strong>Очистка ошибочных конфигураций</strong></p><p>Желательно очистить все изменения, что вносились без этого руководства, в моем случае в конфигурации bluez блокировалось подключение a2dp</p><pre><code class="bash">rm -rf ~/.config/pulse
rm -rf ~/.cache/wireplumber
systemctl --user restart wireplumber
sudo systemctl restart bluetooth</code></pre><p><strong>Примечание</strong></p><p>Важно понимать, что этот пост не панацея, поэтому и у каждого может быть как своя проблема, так и свое решение.</p> <a href="https://habr.com/ru/posts/910306/?utm_campaign=910306&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 17 May 2025 15:24:30 GMT</pubDate>
    <dc:creator><![CDATA[zmqp]]></dc:creator>
      
      <category><![CDATA[bluetooth]]></category><category><![CDATA[беспроводные наушники]]></category><category><![CDATA[linux]]></category><category><![CDATA[fedora]]></category><category><![CDATA[драйвера]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Bogdan_m01 — Искусственный интеллект (+1) — 13.05.2025 20:34]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/909142/</guid>
    <link>https://habr.com/ru/posts/909142/?utm_campaign=909142&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Claude-desktop на Arch Linux</strong></p><p><span class="habrahidden">Дисклеймер: автор не несет ответственности за использование вами стороннего ПО из неофициального источника, вы устанавливаете ПО на свой страх и риск. </span></p><p><strong>Введение</strong></p><p>Всем привет, хотел бы рассказать вам о небольшом открытии для себя, а именно: установке claude-desktop на Arch Linux со всеми фичами, доступными Windows и MacOS пользователям. В принципе аналогично можно сделать для большинства других линукс дистрибутивов. </p><p>ссылка на пост в реддите с которого вроде как все началось (NixOS): <a href="https://www.reddit.com/r/ClaudeAI/comments/1hgsmpq/i_successfully_ran_claude_desktop_natively_on/" rel="noopener noreferrer nofollow">https://www.reddit.com/r/ClaudeAI/comments/1hgsmpq/i_successfully_ran_claude_desktop_natively_on/</a></p><p>Спойлер: за нас с вами уже все сделали, нужно просто ввести пару комманд в терминале.</p><p>Все мы слышали про MCP и про то, как тулы можно интегрировать в ваши десктопные приложения такие как Claude-desktop, Cursor, Windsurf, VSCode, а также использовать в своих проектах при разработке агентных систем, значительно упрощая себе жизнь и разрешая ИИ-асситенту творить некоторые вещи с вашими данными.</p><p>Cursor достаточно интересная штука, которая позволяет это сделать проще всех остальных, как по мне, потому что он больше на слуху в ру-коммьюнити и его можно скачать без сложных схем обходов ограничений.</p><p><strong>Пререквезиты</strong></p><p>Claude-desktop же чуть более заморочен. Он требует от вас иностранный номер и некоторых махинаций.</p><p>Давайте представим что эти проблемы вы решили либо самостоятельно, либо обратились к знакомым, либо посмотрели решения из этой статьи: <a href="https://habr.com/ru/articles/863216/" rel="noopener noreferrer nofollow">статья</a>.</p><p>Так или иначе у вас есть работающий аккаунт и прямой доступ к claude.ai из вашего браузера</p><p><strong>Установка</strong></p><p>Базово Claude использует электрон и отсутствие порта на Linux, как говорят в реддите, просто лень разработчиков.</p><p>Благо в опен сорсе есть множество решений, на которые мы можем обратить внимание, пакетов в aur настолько много что разбегаются глаза и не совсем понятно какой конкретно нужно ставить, а еще большая часть из них не поддерживается , а последний коммит был условно год-полгода назад, следовательно если у вас хоть что то из этого запустится - вам повезло.<br><br>Альтернативно, имея Wine на своей системе, вы сможете скачать Claude-desktop для Windows и использовать через Wine, однако это очень криво и неудобно, а еще ужасно лагает. <br><br>Я потратил некоторое время и нашел рабочий пакет, вот ссылка на него: <a href="https://github.com/aaddrick/claude-desktop-arch" rel="noopener noreferrer nofollow">https://github.com/aaddrick/claude-desktop-arch</a></p><p>для установки вам просто нужно выполнить ряд комманд:</p><pre><code class="bash"># 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</code></pre><p>Обязательно обновите checksums, иначе поймаете ошибку.</p><p><strong>Профит</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/c57/65f/a1e/c5765fa1e67e6705f2dedde8f0b77139.png" alt="Скриншот с тулами" title="Скриншот с тулами" width="2880" height="1620"><div><figcaption>Скриншот с тулами</figcaption></div></figure><p>Теперь приложение Claude есть в списке доступных через ваш менеджер приложений. Учитывайте при запуске свою геолокацию и не забывайте о ней, чтобы избежать потенциальной блокировки со стороны Claude. </p><p><strong>MCP</strong></p><p>Доступно и работает из коробки, json для редактирования доступен в директории: <code>~/.config/Claude/claude_desktop_config.json</code></p><p>Не забудьте установить Nodejs и Uv/Python для запуска нужных вам тулов. </p><p>Дальше просто следуем документации от разработчиков MCP-сервера и ставим его, например <code>mcp-filesystem</code> из оффициальной доки: <a href="https://modelcontextprotocol.io/quickstart/user" rel="noopener noreferrer nofollow">https://modelcontextprotocol.io/quickstart/user</a></p><pre><code class="json">{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    }
  }
}</code></pre><p>После обновления конфига перезаходим в Claude и смотрим на появившиеся кнопочки с новыми тулами.</p><p>Да не все будет работать так гладко, как могло бы на Windows/MacOS, например puppeteer у меня запускает изолированный браузер и проверить его работу я могу только через просьбу сделать скриншот (полагаю проблема в том, что я рукожоп), тем не менее:<br><abbr class="habraabbr" title="" data-title="&lt;p&gt;&lt;/p&gt;" data-abbr="это работает на Linux. ">это работает на Linux. </abbr></p> <a href="https://habr.com/ru/posts/909142/?utm_campaign=909142&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 13 May 2025 17:34:39 GMT</pubDate>
    <dc:creator><![CDATA[Bogdan_m01]]></dc:creator>
      
      <category><![CDATA[Claude-desktop]]></category><category><![CDATA[AI]]></category><category><![CDATA[LLM]]></category><category><![CDATA[Arch Linux]]></category><category><![CDATA[Linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Open source (+4) — 10.05.2025 19:32]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/908256/</guid>
    <link>https://habr.com/ru/posts/908256/?utm_campaign=908256&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><a href="https://thisweek.gnome.org/posts/2025/05/twig-199/#gnome-core-apps-and-libraries" rel="noopener noreferrer nofollow">Объявлено</a> решении включить в&nbsp;состав выпуска GNOME 49&nbsp;видеопроигрыватель <a href="https://apps.gnome.org/Showtime/" rel="noopener noreferrer nofollow">Showtime</a>, который станет <a href="https://gitlab.gnome.org/GNOME/gnome-build-meta/-/merge_requests/3727" rel="noopener noreferrer nofollow">поставляться</a> под&nbsp;именем GNOME Video Player и будет задействован по&nbsp;умолчанию вместо видеопроигрывателя Totem (GNOME Videos). </p><p>Для&nbsp;желающих протестировать Showtime не&nbsp;дожидаясь <a href="https://release.gnome.org/calendar/" rel="noopener noreferrer nofollow">осеннего релиза</a> GNOME 49&nbsp;подготовлен <a href="https://flathub.org/apps/org.gnome.Showtime" rel="noopener noreferrer nofollow">пакет</a> в&nbsp;формате flatpak. Программа отличается минималистичным интерфейсом, отображаемым поверх содержимого и скрываемым во&nbsp;время просмотра. Поддерживаются типовые элементы управления, полноэкранный режим, изменение скорости воспроизведения, показ субтитров и создание скриншотов. </p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/4db/198/15f/4db19815fb7168adb03cea4617282fcd.png" width="997" height="564"></figure> <a href="https://habr.com/ru/posts/908256/?utm_campaign=908256&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 10 May 2025 16:32:55 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[GNOME 49]]></category><category><![CDATA[GNOME Video Player]]></category><category><![CDATA[showtime]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @jidckii — Настройка Linux (+1) — 09.05.2025 11:51]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/tuna/posts/908042/</guid>
    <link>https://habr.com/ru/companies/tuna/posts/908042/?utm_campaign=908042&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Недавно я задумался, а как создать <strong>systemd-timer</strong> для текущего пользователя без sudo прав, ведь c <strong>cron</strong> в этом вопросе проблем не было? Оказывается можно создавать локальные для пользователя systemd таймеры и сервисы и никакой <strong>root</strong> или <strong>sudo</strong> не нужны для создания файлов в <code>/etc/systemd/system/</code> ! И как оказалось это касается не только таймеров и сервисов но и вообще всех сущьностей.</p><p>И так у меня есть задача конвертировать записи экрана сделанные с помощью <a href="https://apps.kde.org/ru/spectacle/" rel="noopener noreferrer nofollow">Spectacle</a> из vp9/webm в h264/mp4 и h265/mp4, так как он не умеет ещё в аппаратное энкодирование с GPU , а собственные записи в h264/mp4 крайне плохого кчества о чём был даже <a href="https://bugs.kde.org/show_bug.cgi?id=476186" rel="noopener noreferrer nofollow">баг</a>.</p><p>Создаём нужный подкаталог и сервисный файл:</p><pre><code class="bash">mkdir -p ~/.config/systemd/user 
nano ~/.config/systemd/user/screencast-transcoder.service</code></pre><p>Сам <strong>screencast-transcoder.service</strong><em>:</em></p><pre><code class="bash">[Unit]
Description=Screencast Transcoder Script
After=graphical-session.target

[Service]
Type=simple
ExecStart=/home/user/.local/bin/sc_formater_nvenc.sh
Restart=on-failure
Environment=DEBUG=false

[Install]
WantedBy=default.target</code></pre><p>Обновляем список и стартуем сервис:</p><pre><code class="bash">systemctl --user daemon-reexec
systemctl --user daemon-reload
systemctl --user enable --now screencast-transcoder.service
systemctl --user status screencast-transcoder.service</code></pre><p>Если надо, то смотрим логи:</p><pre><code class="bash">journalctl --user -o short -n 10 -f -u screencast-transcoder.service</code></pre><p>---</p><p>Если вдруг вам интересно, то скрипт выглядит так:</p><pre><code class="bash">#!/bin/bash
set -euo pipefail
DEBUG=${DEBUG:-false}
if ${DEBUG}; then
    set -x
fi
DN="${HOME}/Videos/Screencasts"
while true; do
    if FN=$(inotifywait -e close_write,moved_to --format %f "${DN}"); then
        if [[ "${FN##*.}" == "webm" ]]; then
            INPUT="${DN}/${FN}"
            BASENAME="${FN%.webm}"

            # H.264
            ffmpeg \
                -hide_banner \
                -hwaccel cuda \
                -i "${INPUT}" \
                -c:v h264_nvenc \
                -cq 23 \
                -preset p7 \
                -f mp4 "${DN}/${BASENAME}.h264.mp4" &amp;

            # HEVC / H.265
            ffmpeg \
                -hide_banner \
                -hwaccel cuda \
                -i "${INPUT}" \
                -c:v hevc_nvenc \
                -cq 23 \
                -preset p7 \
                -f mp4 "${DN}/${BASENAME}.hevc.mp4" &amp;
        fi
    fi
done
</code></pre> <a href="https://habr.com/ru/posts/908042/?utm_campaign=908042&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 09 May 2025 08:51:05 GMT</pubDate>
    <dc:creator><![CDATA[jidckii (Tuna)]]></dc:creator>
      
      <category><![CDATA[systemd]]></category><category><![CDATA[systemd-timer]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @K2Tech — Блог компании К2Тех (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/k2tech/posts/890156/</guid>
    <link>https://habr.com/ru/companies/k2tech/posts/890156/?utm_campaign=890156&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Хабр, привет! <br><br>Приглашаем на <a href="https://www.google.com/url?q=https://k2.cloud/promo/linuxmeetup/?utm_source%3Dhabr%26utm_medium%3Dreferral%26utm_campaign%3Dstatya%26utm_content%3Dk2cloud%26utm_term%3Dstatya&amp;sa=D&amp;source=docs&amp;ust=1741767296056250&amp;usg=AOvVaw0bEbK7umdlPk806BXv31Ee" rel="noopener noreferrer nofollow">митап о карьере</a> в Linux🐧.<br><br>19 марта эксперты компании и приглашенный гость — блогер Константин Дипеж (DeusOps) — обсудят профессиональный путь Linux-специалиста.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/737/584/87f/73758487f8e29557b2b522e055e41848.png" width="1560" height="883"></figure><p>— как безболезненно «вкатиться» в Linux</p><p>— с чем откликаться на вакансию</p><p>— какие вопросы задают на техническом интервью</p><p>— как расти профессионально после оффера</p><p>— как развиваться в DevOps и не только<br><br>Приглашаем Linux-специалистов, которые видят зоны роста и хотят выйти на новый уровень профессиональной экспертизы</p><p>Во время дискуссии можно будет задать вопросы спикерам. За лучшие – обещаем мерч;)</p><p>Встреча пройдет онлайн, <strong>19 марта в 18:00 </strong>(мск). Подробности и регистрация на <a href="https://www.google.com/url?q=https://k2.cloud/promo/linuxmeetup&amp;sa=D&amp;source=docs&amp;ust=1741767296056813&amp;usg=AOvVaw2gTOYmjNoo_WN1hJovU2by" rel="noopener noreferrer nofollow">сайте</a>.<br></p><p></p> <a href="https://habr.com/ru/posts/890156/?utm_campaign=890156&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 12 Mar 2025 08:17:05 GMT</pubDate>
    <dc:creator><![CDATA[K2Tech (К2Тех)]]></dc:creator>
      
      <category><![CDATA[облака]]></category><category><![CDATA[devops]]></category><category><![CDATA[linux]]></category><category><![CDATA[k8s]]></category><category><![CDATA[docker]]></category><category><![CDATA[git]]></category><category><![CDATA[обучение]]></category><category><![CDATA[k2 cloud]]></category><category><![CDATA[облачные сервисы]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @JBFW — Настройка Linux — 03.03.2025 19:02]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/887548/</guid>
    <link>https://habr.com/ru/posts/887548/?utm_campaign=887548&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Много лет назад, устав от постоянных тормозов Windows, открыл для себя существование UNIX, точнее, FreeBSD. Иксовый десктоп, все программы - на том же компьютере всё летало заметно быстрее.<br>Даже Quake (да, он тоже работал во Фре).</p><p>Куда-то пропали все тормоза. К тому же всё оказалось проще настраивать - у каждой программы свой конфиг, и если что-то где-то даже настроил не так - все остальные программы от этого работать не перестают. <br>Да, пришлось переходить на совсем другой набор программ, далеко не все игры можно было запустить и так далее - но всё равно было быстрее и удобнее работать.<br><br>ИМХО, самое главное отличие было как раз вот в этом: в то время как в мире Windows активно продавливали идею "интегрированной среды", где всё вместе и взаимосвязано в монолит - там работал подход "одна задача - одна программа". И если программа не работает как хочется - меняется на аналог, не затрагивая всего остального.<br>Почти любую сложную задачу можно было разбить на отдельные мелкие и подобрать набор утилит для ее решения - как кто-то метко выразился - "стройная система костылей и подпорок".</p><p>И вот прошли годы. Уже Линукс (прежде всего из-за лучшей поддержки разного железа), Убунта, которая с каждой версией становилась всё замедленнее и усложненнее.</p><p>Видимо, программисты из мира Windows принесли своё вИдение прекрасного: появились D-bus, systemd, gsettings - теперь далеко не всегда можно поправить конфиг-файл от программы XXXX, а потом смотреть в лог /var/log/xxxx.log - нет, теперь настройки хранятся где-то в скрытом месте и меняются специальными командами, а лог полагается смотреть через специальную утилиту, и запускается всё это не простым скриптом типа пошагового выполнения /etc/rc.local, а набором команд systemctl, которые сработают или не сработают, в зависимости от наличия определенных файлов в нужных местах...</p><p>А самое главное - после проведенной "интеграции" всё стало тормозить и глючить. <br>Задумчивый Gnome медленно и печально открывает окошки - ага, с экраном повернутым на 90 градусов. Потому что новая "интересная фишка" - считывать датчик ориентации экрана, но считывается он не всегда правильно, а "просто закомментировать в конфиге" нельзя, можно только через меню, потом Сохранить, а потом настройка опять вдруг слетает после незаметного автообновления, которое как бы отключено, но не совсем...<br>Погодите-ка, что-то это мне напоминает? Шаманство, глюки, неустранимые достоинства, "слетевшие драйвера"...</p><p>Правда, можно повыключать всё это вместе с Гномом - и всё снова быстро летает: ок, так и сделал, вернул любимый WindowMaker, всё прекрасно.<br>Но вот обновление версии какой-то программы - а новая теперь только через flatpak, а ему теперь необходим d-bus, "если его нет можно поставить эмулятор", блаблабла...</p><p>Но зачем?! Зачем было делать из Linux такой же интегрированный сам в себя монолит, с неким "реестром" настроек и "системным журналом", в который нельзя просто так посмотреть?<br>Для этого уже есть Windows! Зачем тащить это сюда?</p> <a href="https://habr.com/ru/posts/887548/?utm_campaign=887548&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 03 Mar 2025 16:02:23 GMT</pubDate>
    <dc:creator><![CDATA[JBFW]]></dc:creator>
      
      <category><![CDATA[операционные системы]]></category><category><![CDATA[ворчание]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @life_of_junior_dev — Настройка Linux — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/885046/</guid>
    <link>https://habr.com/ru/posts/885046/?utm_campaign=885046&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>⌨️ <strong>КАСТОМНЫЙ МАППИНГ КЛАВИШ В ЛИНУКС: ПРЕВРАЩАЕМ IJKL В СТРЕЛОЧКИ</strong></p><p>Для навигации в среде разработки я использую использую маппинг ijkl на стрелочки и оказывается можно сделать этот маппинг на уровне всей ос, а не только IDE.</p><p>Маппить будем с помощью <a href="https://github.com/xremap/xremap" rel="noopener noreferrer nofollow">xremap</a> (подходит для Wayland и X, простая конфигурация в yaml, написан на расте).<br> Я буду показывать процесс настройки для федоры, но для других дистрибутивов он <a href="https://github.com/xremap/xremap?tab=readme-ov-file#installation" rel="noopener noreferrer nofollow">похожий</a>.</p><p>🔧 Устанавливаем xremap из репозитория <a href="https://copr.fedorainfracloud.org/coprs/blakegardner/xremap/" rel="noopener noreferrer nofollow">fedora copr</a></p><p>🔧 Создаем конфигурационный файл, который замапит клавиши ijkl на стрелочки при зажатом капсе:</p><pre><code class="yaml">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
</code></pre><p>🔧 Тестируем работу с помощью команды:</p><pre><code>sudo xremap /home/your-username/.config/xremap/config.yml
</code></pre><p>Если вам нужно определить название для клавиши запустите xremap в режиме дебага</p><pre><code>sudo RUST_LOG=debug xremap /home/your-username/.config/xremap/config.yml
</code></pre><p>и нажмите эту клавишу.</p><p>🔧 Создаем сервис для работы xremap в фоне при запуске системы<br> Создаем файл с конфигурацией сервиса:</p><pre><code>sudo nano /etc/systemd/system/xremap.service
</code></pre><pre><code>[Unit]
Description=Start xremap

[Service]
Type=exec
ExecStart=xremap /home/your-username/.config/xremap/config.yml
</code></pre><p>Включаем сервис:</p><pre><code>sudo systemctl daemon-reload
sudo systemctl start xremap.service
</code></pre><p>Включаем запуск xremap при старте компьютера:</p><pre><code>sudo systemctl enable xremap.service
</code></pre><p>👨‍💻 <a href="https://t.me/life_of_junior_dev" rel="noopener noreferrer nofollow">Джуниор</a></p> <a href="https://habr.com/ru/posts/885046/?utm_campaign=885046&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 03 Mar 2025 15:14:58 GMT</pubDate>
    <dc:creator><![CDATA[life_of_junior_dev]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[linux для всех]]></category><category><![CDATA[linux desktop]]></category><category><![CDATA[fedora]]></category><category><![CDATA[кастомизация.]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @yadro_team — Блог компании YADRO (+3) — 03.03.2025 15:15]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/yadro/posts/887456/</guid>
    <link>https://habr.com/ru/companies/yadro/posts/887456/?utm_campaign=887456&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Быстрое трудоустройство в YADRO для разработчиков на С++</strong></p><p>У нас стартовал SPRINT OFFER в команду разработки телеком-оборудования. Для «плюсовиков»&nbsp;это возможность получить предложение о работе всего за несколько дней. Если хотите пропустить долгие этапы собеседований, <a href="https://sprintoffer.yadro.com/?utm_source=habr&amp;utm_medium=referral&amp;utm_campaign=telecom_02_25&amp;utm_content=page_posts&amp;utm_referrer=habr.com" rel="noopener noreferrer nofollow">отправляйте заявку</a> до 9 марта.&nbsp;</p><p><strong>Как все происходит</strong></p><ol><li><p>Подаете заявку — мы оперативно рассматриваем анкеты.</p></li><li><p>Проходите HR-скрининг и техническое интервью — без недель ожидания между этапами.</p></li><li><p>Получаете оффер — если все этапы успешно пройдены, предложение будет у вас в течение 3 дней.</p></li></ol><p><strong>Где предстоит работать&nbsp;</strong></p><blockquote><p>Дивизион телекома создает решения для мобильных сетей. Инженеры разрабатывают базовые станции GSM/LTE, полный стек телекоммуникационных протоколов, а также системы управления и мониторинга. Большую часть кода разработчики пишут на C++. В зависимости от задачи они используют как современные возможности C++20, так и низкоуровневые оптимизации для повышения производительности.</p></blockquote><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/f6d/218/ba7/f6d218ba7383f5614a0ec7b2f32da508.png" width="1200" height="675"></figure><p><strong>Кого мы ищем</strong></p><p><strong>→&nbsp;Software Engineer (Telecom Platform)</strong></p><p>Требуемый уровень: middle, senior, tech lead.</p><p>Чем предстоит заниматься:</p><ul><li><p>Разработкой платформы для базовых станций LTE/GSM (middleware, high availability, node management, delivery).</p></li><li><p>Проектированием архитектуры, работа с C++/Linux.</p></li><li><p>Интеграцией с аппаратной и программной частью системы.</p></li><li><p>Оптимизацией кода и решение проблем производительности.</p></li><li><p>Разработкой API, unit-тестирование, документация.</p></li></ul><p><strong>→ Software Engineer C/C++ (LTE/GSM)</strong></p><p>Требуемый уровень: middle, senior, tech lead.</p><p>Чем предстоит заниматься:</p><ul><li><p>Разработкой программного обеспечения для базовых станций LTE.</p></li><li><p>Реализацией стека протоколов 3GPP.</p></li><li><p>Интеграцией с другими системами, оптимизация кода.</p></li><li><p>Решением задач производительности и стабильности системы.</p></li></ul><blockquote><p>Подробнее о вакансиях и команде читайте <a href="https://sprintoffer.yadro.com/?utm_source=habr&amp;utm_medium=referral&amp;utm_campaign=telecom_02_25&amp;utm_content=page_posts&amp;utm_referrer=habr.com" rel="noopener noreferrer nofollow">на странице SPRINT OFFER</a>. Успейте подать заявку до 9 марта! </p></blockquote><p></p> <a href="https://habr.com/ru/posts/887456/?utm_campaign=887456&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 03 Mar 2025 12:15:00 GMT</pubDate>
    <dc:creator><![CDATA[yadro_team (YADRO)]]></dc:creator>
      
      <category><![CDATA[с++]]></category><category><![CDATA[linux]]></category><category><![CDATA[телеком]]></category><category><![CDATA[оффер]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Feizerr — Блог компании Selectel (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/selectel/posts/875966/</guid>
    <link>https://habr.com/ru/companies/selectel/posts/875966/?utm_campaign=875966&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Практический курс «Системный администратор Linux с нуля»</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/bd2/92b/2de/bd292b2de5194137c4d5decab96a6cdd.png" width="1080" height="607"></figure><p>Привет, Хабр! Selectel запускает курс по работе с серверной операционной системой. Он будет полезен начинающим администраторам, а также разработчикам и DevOps-инженерам, которые хотят погрузиться в Linux и сетевую инфраструктуру.</p><p><strong>На курсе вы научитесь:</strong></p><p>▫️ работать с командной строкой и основными утилитами;</p><p>▫️ управлять пользователями, файлами и правами доступа;</p><p>▫️ настраивать сети, SSH-соединения и мониторинг системы;</p><p>▫️ управлять инфраструктурой на базе Linux;</p><p>▫️ управлять пакетами и обновлениями программного обеспечения;</p><p>▫️ анализировать логи и устранять инциденты.</p><p>Занятия построены на базе SelectOS. Дополнительных знаний не требуется — достаточно базового владения компьютером и интереса к Linux.</p><p><a href="https://promo.selectel.ru/admincourse/?utm_source=habr.com&amp;utm_medium=referral&amp;utm_campaign=post_news_course_for_system_administrators_230125" rel="noopener noreferrer nofollow">Смотреть программу →</a></p><p></p> <a href="https://habr.com/ru/posts/875966/?utm_campaign=875966&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 23 Jan 2025 10:05:02 GMT</pubDate>
    <dc:creator><![CDATA[Feizerr (Selectel)]]></dc:creator>
      
      <category><![CDATA[selectel]]></category><category><![CDATA[системное администрирование]]></category><category><![CDATA[курсы]]></category><category><![CDATA[it-компании]]></category><category><![CDATA[linux]]></category><category><![CDATA[linux для всех]]></category><category><![CDATA[сети]]></category><category><![CDATA[сетевые технологии]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @gotch — Системное администрирование (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/872706/</guid>
    <link>https://habr.com/ru/posts/872706/?utm_campaign=872706&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Загрузочное меню UEFI 101</strong></p><p>При загрузке UEFI могут использоваться два boot-menu:</p><ul><li><p><strong>меню firmware</strong>, хранящееся в NVRAM. Можно вызвать при включении компьютера по hotkey (F8/Esc/etc). Отображается в настройках Gen 2 VM Hyper-V (при этом можно менять порядок загрузки, но не сами записи).</p></li><li><p><strong>меню загрузчика</strong> (опционально). В Linux это меню GRUB, в Windows - bootmgr (отображается, если содержит больше одной записи). Современное ядро Linux может загружаться напрямую без GRUB.</p></li></ul><p>В firmware загрузка настраивается через текстовые переменные:</p><p><code>Boot####</code> - загрузочная запись<br><code>BootOrder</code> - упорядоченный список записей Boot####<br><code>BootCurrent</code> - запись, с которой загружена система<br><code>BootNext</code> - запись, с которой однократно будет загружена система после перезагрузки</p><p>Первоначально firmware добавляет записи&nbsp;<code>Boot####</code>&nbsp;для подключенных поддерживающих загрузку устройств (DVD, HDD, USB, Network).</p><p>При загрузке с диска происходит поиск на нем GPT раздела типа EFI system partition (ESP), с которого запускается загрузчик <code>EFI\Boot\bootx64.efi</code> (имя файла зависит от аппаратной платформы). Обычно этот раздел отформатирован в FAT32, так как большинство прошивок UEFI не поддерживают чтение других файловых систем (хотя и могли бы).</p><p><em>Созданные Rufus загрузочные UEFI-флешки с Windows содержат основной NTFS раздел с дистрибутивом (FAT32 не поддерживает файлы размером больше 4Gb) и скрытый FAT32 ESP раздел с фирменным EFI загрузчиком, </em><a href="https://github.com/pbatard/uefi-ntfs" rel="noopener noreferrer nofollow"><em>поддерживающим чтение NTFS</em></a><em>.</em><br></p><p>Загрузчик ОС может добавить (и обычно добавляет) в firmware новую запись <code>Boot####</code>:<br><strong>Windows</strong>: <code>HD(1,GPT,E935CDDD-9506-45D3-A96B-9354674BA581,0x800,0x32000)/\EFI\Microsoft\Boot\bootmgfw.efi</code><br><strong>Linux</strong>: <code>HD(1,GPT,F3275A6A-A4B2-4AD4-A8C1-D74B9C4E9691,0x800,0x12C000)/\EFI\redos\shimx64.efi</code></p><p>Загрузчик <code>shimx64.efi</code>  может быть подписан цифровой подписью для работы с Secure boot, его единственная функция - запустить grubx64.efi из текущей директории. grubx64.efi не подписан, так как его содержимое может изменяться. </p><p>В некоторых случаях при переносе диска между ПК или VM в новой системе ОС не загружается. Например, если в NVRAM старой системы была настроенная запись <code>Boot####</code>, а стандартный раздел EFI boot поврежден или не содержит загрузчик в стандартном расположении. В этом случае необходимо или восстановить запись утилитами bcdedit/efibootmgr, или, в случае VM, переносить ее через export/import вместе с nvram. </p><p><strong>Посмотреть загрузочные записи firmware</strong><br>Windows</p><pre><code class="powershell">bcdedit /enum firmware
bcdedit /enum "{fwbootmgr}"
###(displayorder = BootOrder)###</code></pre><p>Linux<br><code>efibootmgr -v</code></p><p><strong>Однократно загрузиться с конкретной записи</strong><br>Windows</p><pre><code class="powershell">bcdedit /set {fwbootmgr} bootsequence {GUID}
bcdedit /set {fwbootmgr} bootsequence {bootmgr}
###(bootsequence = BootNext)###</code></pre><p>Linux<br><code>efibootmgr --bootnext 0003</code></p><p><strong>Изменить порядок загрузки</strong><br>Windows</p><pre><code class="powershell">bcdedit /set {fwbootmgr} displayorder {98b6343e-bc5c-11ef-8148-00155d518900}
bcdedit /set {fwbootmgr} displayorder {bootmgr} /addfirst</code></pre><p> Linux<br><code>efibootmgr --bootorder 0003,0000,0001</code></p><p>Почитать:<br><a href="https://uefi.org/specs/UEFI/2.10/03_Boot_Manager.html" rel="noopener noreferrer nofollow">https://uefi.org/specs/UEFI/2.10/03_Boot_Manager.html</a><br><a href="https://www.rodsbooks.com/refind/" rel="noopener noreferrer nofollow">https://www.rodsbooks.com/refind/</a></p><p>Если в чем-то ошибаюсь, буду признателен вашим комментариям.</p><p></p> <a href="https://habr.com/ru/posts/872706/?utm_campaign=872706&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 10 Jan 2025 09:04:29 GMT</pubDate>
    <dc:creator><![CDATA[gotch]]></dc:creator>
      
      <category><![CDATA[windows]]></category><category><![CDATA[linux]]></category><category><![CDATA[efi]]></category><category><![CDATA[uefi]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @artromone — Настройка Linux (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/864322/</guid>
    <link>https://habr.com/ru/posts/864322/?utm_campaign=864322&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>🤒 Оптимизация электропотребления в Linux</p><p>Как известно, на линухе работа с питанием хуже, чем на Windows. Особенно это критично для людей с ноутбуком, желающих продлить время жизни от батареи.</p><p>Рассмотрим 3 инструмента:</p><ol><li><p><a href="https://linrunner.de/tlp/index.html" rel="noopener noreferrer nofollow">Один из самых популярных — TLP</a></p></li></ol><p>TLP (The Linux Power Management). Мощный инструмент, много гибких настроек для процессора, дисков, сетевых интерфейсов и т.д. Хорошая документация. TLP работает в фоновом режиме, после настройки все будет работать само. Существует удобный <a href="https://github.com/d4nj1/TLPUI" rel="noopener noreferrer nofollow">TLPUI</a>, чтобы не менять конфиги руками. Автоматически переходит в режим экономии при подключении зарядки.</p><p>+ Много гибких параметров</p><p>+ Автоматическое адаптивное управление</p><p>+ Разные типы устройств</p><p>- Возможно, надо будет доп настраивать для некоторых систем (на моем Lenovo Ideapad например пришлось <a href="https://gist.github.com/linrunner/4a6876648765fac5e141f15d0582a945" rel="noopener noreferrer nofollow">читать вот это</a>, благо <a href="https://linrunner.de/tlp/settings/bc-vendors.html#lenovo-non-thinkpad-series" rel="noopener noreferrer nofollow">дока хорошая</a>)</p><p>- Необходимость обновления (сомнительно)</p><ol start="2"><li><p><a href="https://github.com/AdnanHodzic/auto-cpufreq" rel="noopener noreferrer nofollow">Самый эффективный — auto-cpufreq</a></p></li></ol><p>Автоматически управляет частотой процессора исходя из нагрузки и состояния батареи. Якобы сильно эффективнее и лучше TLP. Может работать вместе с ним, хотя и не рекомендуется.</p><p>+ Простота использования — достаточно запустить и забыть</p><p>+ Интеграция с другими инструментами</p><p>+ Постоянное обновление частоты процессора в зависимости от нагрузки</p><p>- Может потребовать доп настройки</p><p>- Требует админских прав для работы (сомнительно)</p><ol start="3"><li><p><a href="https://gitlab.gnome.org/Infrastructure/Mirrors/lorry-mirrors/gitlab_freedesktop_org/hadess/power-profiles-daemon" rel="noopener noreferrer nofollow">От корпорации зла — Power Profiles Daemon (ppd)</a></p></li></ol><p>Power Profiles Daemon — три режима работы (производительность, сбалансированный, экономия), между которыми можно переключаться. По умолчанию во всех DE именно он находится в виджете "батарея". Сделан Red Hat.</p><p>+ Интеграция с системой</p><p>+ Поддержка различных профилей питания</p><p>+ Легкость использования через графический интерфейс</p><p>— Менее гибок, чем перечисленные выше</p><blockquote><p>Я по итогу выбрал <strong>auto-cpufreq</strong> и <strong>tlp</strong> (только потому, что ограничивает заряд батареи)<br>Если вам есть что сказать, с удовольствием пообщаемся в комментах :)</p></blockquote><p></p> <a href="https://habr.com/ru/posts/864322/?utm_campaign=864322&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 06 Dec 2024 15:01:05 GMT</pubDate>
    <dc:creator><![CDATA[artromone]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[батарея]]></category><category><![CDATA[линукс]]></category><category><![CDATA[оптимизация]]></category><category><![CDATA[время жизни]]></category><category><![CDATA[заряд]]></category><category><![CDATA[ноутбук]]></category>
  </item>
  

	
  

  

  

      

      

      

    
  </channel>
</rss>
