LINUX.ORG.RU

Избранные сообщения fehhner

Подавать картинку как вход веб-камеры для android-x86 в qemu.

Форум — Desktop

сабж

проверенное рабочее решение у кого-нибудь есть?

 ,

baja
()

Удалённое управление Android телефоном с поддержкой звука (звонков)

Форум — Mobile

Привет всем!

Есть старый телефон Redmi 5 Plus, на котором стоит Android 9, root права в наличии. Система Havoc 2.9. Сейчас для управления использую RustDesk 1.1.10-1. Это приложение могло бы передать звук, но ему надо Android 10 или выше (про это написано вот тут https://rustdesk.com/docs/ru/manual/control-mobile/). Обновить ОС возможности нет. Хотя прошивки более свежие под телефон есть, но телефон от меня физически далеко.

Есть ли какое-то открытое и свободное ПО для управления с поддержкой звука? Проприетарщине доверять как-то не особенно хочется.

P.S.: Собственно звук нужен чтобы через него удалённо позвонить.

Всем спасибо!

 , , , ,

ls-h
()

Собрать чужой андроид-проект

Форум — Development

Добрый день, ЛОР.

Есть андроид-проект с гитхаба. Инструкций по сборке нет.

В корне подпроекта есть файлы

.classpath
.project
AndroidManifest.xml
lint.xml
project.properties

Насколько я понимаю, файл .project сигнализирует, что собирать эту штуку надо с помощью Eclipse. Так ли это, или есть «более автоматизированные» способы? И если так, то что скорее всего потребуется, кроме Эклипса? apt-get install android-sdk хватит?

 , , ,

hobbit
()

Arch репозиторий от Valve

Форум — Talks

http://repo.steamstatic.com/arch/valveaur/

А это значит, что:

  • Arch официально (нет) признан игроделогигантом игровой платформой
  • Возможно Valve дропнут Ubuntu/Debian и переедут на арч

 , , ,

xDShot
()

Обмен ключами, скидками и прочими игровыми радостями (3)

Форум — Games

Сюда можно и нужно писать, какими бы ключами вы бы хотели поделиться. Steam, desura, всякие бандлы и т.д.

Замечания:

 , , ,

beastie
()

распиновка клавиатуры

Форум — Linux-hardware

Клавиатура MP-08J66SU-439 на нетбуке.

Нет необходимости в замене, т.к. нетбук рассыпается. Но есть потребность включить WIFI. Клавиатура уже дохлая, а он захардлочен.

Может кто знаком с распиновкой, уж очень лень её всю раздербанивать, потом дырку закрывать.

 

sr11
()

Переход на MicroG и немного свободного софта

Форум — Mobile

Решил немного написать о моём опыте перехода на MicroG и про небольшой список свободных аналогов софта.

TL;DR: жить на MicroG можно

Но сначала немного дополню статью от derlafff про XPosed.

Не доступен для свежих андроидов

Доступен вплоть до версии 8.1, на тот момент был то ли в альфе, то ли в бете, уже не помню. Для 9 версии есть под названием EdXposed (поддерживает ещё и 8.1).

Переход на MicroG

Существует форк NanoDroid (зеркало на гитхабе). Основные отличия от MicroG:

  • Собран как priv-app
  • Более новая версия сервисов Google
  • Заменяет системный WebView на BromiteWebView (свободный форк хрома, ungoogled, но как пишут авторы, сложно проверить, насколько) с автоматической блокировкой рекламы
  • Поддержка покупок и микроплатежей в Play Store

Прочитать про все отличия можно здесь.

С приложениями, использующими карты Google, могут возникнуть проблемы (например, Runtastic падает, хотя карты установлены). Читать дополнение в конце поста.

Очень желательно иметь Magisk вместо Superuser.

Скачиваем последнюю версию отсюда. Берём самую жирную. Распаковываем архив, редактируем .nanodroid-setup (описание настроек лежит здесь). FakeStore обязателен к установке.

Обязательно сделайте бэкап следующих приложений, т.к. иногда они по ошибке удаляются:

  • DeskClock (заменяется на OmniClock из архива)
  • messaging (заменяется на QKSMS из архива)
  • Gallery2 (замеяется на Simple Gallery из архива)
  • Camera (заменяется на Open Camera из архива)
  • Calendar (заменяется на Simple Calendar из архива)

Приложения заменяются только если в .nanodroid-setup включена установка приложений, в противном случае они просто удаляются.

Скорее всего заменяются ещё клавиатура от Google, Gmail и Google Music (не пользуюсь, поэтому не могу проверить).

Обязательно проверьте, поддерживает ли прошивка SignatureSpoofing, список есть здесь. Процитирую пост по ссылке выше:

Коротко говоря, это обход защитного механизма, не позволяющего прикидываться gapps'ами кому попало. Для этого необходимо либо патчить прошивку при помощи Xposed/Needle/Haystack, либо использовать совместимую прошивку

Прошиваем архив (желательно перед этим сделать бэкап), вычищаем остатки гугловых приложений (если они есть, я ставил с удалением GAPPS).

Для обновления компонентов без прошивки архива добавьте этот репозиторий в F-Droid.

Получение приложений

Я решил обойтись без установки Google Play Store. Тем не менее, он должен заработать. Для получения пакетов из Google Play я использую Aurora. Можно использовать аккаунт Google или анонимный. Некоторые приложения не устанавливаются, и я понятия не имею, почему. В основном это гугловые приложения и зависимые от них (к примеру, использующие Google Maps). Через Yalp и файловый менеджер такие приложения устанавливаются. Минимальная версия системы - 5.0. Есть проверка приложений на предмет известных трекеров в базе Exodus Privacy. Для более старых систем есть Yalp Store, который поддерживает версии Android от 2.0 и выше.

Для свободного софта конечно же F-Droid. Ещё существуют M-Droid с более приятным интерфейсом (и вроде как исправленной загрузкой скриншотов, но у меня оно не заработало), и G-Droid (лучше интерфейс, но нет поддержки сторонних репозиториев).

Немного про навигацию

Навигация по GPS работает. С навигацией по мобильной сети есть косяки. В MAPS.ME и некотором софте работает только MozillaNlpBackend, но показывает, будто телефон на другом конце города. Déjà Vu Location Service работает в другом софте (Карты Google, Яндекс.Карты, ЕСТ Такси), с погрешностью в 30-50 метров.

Карты Google работают. Яндекс.Карты тоже. Приложения, использующие OSM и Яндекс.Карты - работают.

Свободные аналоги разного софта

  • Maps - форк MAPS.ME с вырезанной рекламой и трекерами
  • Замена YouTube - YouTube Vanced (поддержка авторизации через MicroG, фоновый режим, тёмная тема и ещё всякие плюшки, есть в репозитории Magisk), NewPipe (не поддерживает авторизацию, есть импорт подписок, экспортировать оные можно здесь). Есть ещё много других, но я знаю только про эти, лол.
  • Fennec F-Droid - Firefox с вырезанной телеметрией и проприетарными компонентами. Базируется на последних сборках официального Firefox. Для любителей ESR есть IceCatMobile.
  • Chrome - Bromite - форк хромиума, нацеленный на приватность и блокировку рекламы. Синхронизация, экономия данных и прочее - вырезано. Репозиторий для F-Droid - здесь.
  • Аутентификатор - Aegis. Поддерживает импорт из других аутентификаторов (нужен root). Попроще и для более старых версий системы - FreeOTP и FreeOTP+ (добавлен импорт и экспорт)
  • SSH клиент - ConnectBot
  • oandbackup - замена TitaniumBackup
  • Scarlet Notes FD - замена Google Keep. Есть синхронизация (как я понял, для включения облачной синхронизации нужно установить версию из Google Play).
  • K-9 Mail - почтовый клиент, поддерживает шифрование OpenPGP (требуется OpenKeychain)

Разный годный открытый софт

  • Nextcloud
  • DAVx⁵ - синхронизация (вместо гуглокалендаря)
  • KDE Connect - интеграция телефона с Plasma (в какой-то момент ещё и с Gnome)
  • OsmAnd~ - навигация, использует OpenStreetMap, и насколько я помню, может использовать и другие источники карт. Приложение платное, полная версия находится в магазинах, ссылки на сайте. Переход на MicroG и немного свободного софта (комментарий)
  • andOTP - простой аутентификатор с возможностью экспорта/импорта и шифрования бэкапов
  • EDS Lite - клиент для работы с криптоконтейнерами VeraCrypt, TrueCrypt, LUKS. Полная версия находится здесь.
  • Password Store - клиент для pass
  • Shelter - песочница для изоляции приложений
  • Forecastie - прогноз погоды, использует OSM
  • Gadgetbridge - подключение умных часов и браслетов
  • Scrambled Exif - удаление EXIF из фотографий
  • Kiwix - выкачивание Википедии и других вики-сайтов и чтение их оффлайн
  • Vanilla Music - музыкальный плеер. Насколько я знаю, единственный поддерживающий теги в OGG Opus. По запросу «vanilla» в F-Droid находятся полезные дополнения.
  • Simple Mobile Tools - простые открытые реализации галереи, календаря, файлового менеджера, контактов, заметок, музыкального плеера, фонарика, калькулятора и других приложений
  • GameDealz - неофициальный клиент для сайта IsThereAnyDeal. Вкратце - поиск скидок на игры.
  • Phoenix for VK - открытый клиент для ВКонтакте

Напишите, если знаете годные аналоги свободного софта (и любой годный открытый софт), добавлю в список.

Всякие мелочи

ClassyShark3xodus - сканирование всех приложений в системе на предмет трекеров. Использует базу Exodus Privacy.

Komoot - не открытое, но использует OSM. Аналог приложений вроде Runtastic (хоть и умеет меньше). Судя по Exodus Privacy, трекеров нет.

UPD: дополнение от ma1uta

UPD2: Хорошая статья на habr.com

 , ,

Deleted
()

В чём можно запилить векторное изображение, используя фоновое пиксельное изображение как шаблон?

Форум — Desktop

Цель такова: запилить схематическую картинку на основе фотографии, путём прокладывания прямых соединяющих отрезков, используя фотографию фоновым изображением как образец. И чтоб эти отрезки потом можно было двигать, тянуть за концы. В общем, как в чертёжных CAD-ах. Есть что такое подходящее в наших гнулинуксах?

 , , , ,

Harald
()

Запуск qemu виртуалки в отдельной tty консоли

Форум — Desktop

На ноуте установлен Debian 9 и virt-manager. Интересует следующий вопрос: возможно ли работать с виртуалкой в отдельной X-сессии ? Собственно для чего нужно: на хост системе у меня только виртуалки, для работы и учебы отдельные системы, не совсем удобно между ними переключаться, особенно при работе в полноэкранном режиме. Хочу сделать так чтобы на хосте залочил экран, нажал ctrl+alt+f4 и попал в гостевую систему.

Тут http://dmzik.blogspot.com/2013/05/virtualbox-tty.html автор проделал то что мне нужно с virtualbox-ом , как такое реализовать в qemu/virt-manager ?

 

Krab228
()

OneFileLinux - не получается собрать

Форум — General

Здравствуйте. Нашел вот такую вещь: https://github.com/zhovner/OneFileLinux

Все прекрасно и нравится, однако, хотелось бы обновить версии утилит и добавить несколько новых, но при попытке что-либо сделать получаю ошибки.

Мой дистрибутив: Archlinux, если это важно.


user@localhost ~/OneFileLinux> sudo ./build.sh
      ____________  
    /|------------| 
   /_|  .---.     | 
  |    /     \    | 
  |    \.6-6./    | 
  |    /`\_/`\    | 
  |   //  _  \\   | 
  |  | \     / |  | 
  | /`\_`>  <_/`\ | 
  | \__/'---'\__/ | 
  |_______________| 
                    
   OneFileLinux.efi 
----------------------------------------------------
Checking root filesystem

ls: cannot access 'alpine-minirootfs/var/cache/apk/': No such file or directory
/dev/ bindings found: alpine-minirootfs/dev/urandom. Unmounting...

Version in banner: v0.3.2
Uncompressed root filesystem size WITHOUT kernel modules: 47M

----------------------------------------------------
Building kernel mobules using 4 threads...

  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  DESCEND  objtool
  CC       /home/claire/OneFileLinux/linux-4.14.22/tools/objtool/str_error_r.o
  CC       /home/claire/OneFileLinux/linux-4.14.22/tools/objtool/pager.o
../lib/str_error_r.c: In function ‘str_error_r’:
../lib/str_error_r.c:25:3: error: passing argument 1 to restrict-qualified parameter aliases with argument 5 [-Werror=restrict]
   snprintf(buf, buflen, "INTERNAL ERROR: strerror_r(%d, %p, %zd)=%d", errnum, buf, buflen, err);
   ^~~~~~~~
cc1: all warnings being treated as errors
mv: cannot stat '/home/claire/OneFileLinux/linux-4.14.22/tools/objtool/.str_error_r.o.tmp': No such file or directory
make[3]: *** [Build:22: /home/claire/OneFileLinux/linux-4.14.22/tools/objtool/str_error_r.o] Error 1
make[2]: *** [Makefile:46: /home/claire/OneFileLinux/linux-4.14.22/tools/objtool/objtool-in.o] Error 2
make[2]: *** Waiting for unfinished jobs....
pager.c: In function ‘pager_preexec’:
pager.c:36:12: error: passing argument 2 to restrict-qualified parameter aliases with argument 4 [-Werror=restrict]
  select(1, &in, NULL, &in, NULL);
            ^~~        ~~~
cc1: all warnings being treated as errors
mv: cannot stat '/home/claire/OneFileLinux/linux-4.14.22/tools/objtool/.pager.o.tmp': No such file or directory
make[4]: *** [/home/claire/OneFileLinux/linux-4.14.22/tools/build/Makefile.build:96: /home/claire/OneFileLinux/linux-4.14.22/tools/objtool/pager.o] Error 1
make[3]: *** [Makefile:52: /home/claire/OneFileLinux/linux-4.14.22/tools/objtool/libsubcmd-in.o] Error 2
make[2]: *** [Makefile:54: /home/claire/OneFileLinux/linux-4.14.22/tools/objtool/libsubcmd.a] Error 2
make[1]: *** [Makefile:62: objtool] Error 2
make: *** [Makefile:1633: tools/objtool] Error 2
user@localhost ~/OneFileLinux> lsblk

 

anonfm123
()

Виджет

Форум — General

Возможно ли сделать мониторинг изменения текстовой информации на сайте через виджет на рабочем столе?

 ,

Dexter_
()

Firefox, из CLI сделать refresh, достать загруженную страницу

Форум — General

Привет

Когда-то был для Firefox плагин remote-control, который открывал порт (например, 1234), и позволял удаленно запускать JavaScript команды и доставать значения переменных. Например, из CLI можно было на порт 1234 отправить document.body.innerHTML; и получить содержимое страницы, а отправив на порт 1234 window.location.reload(); можно можно было инициировать refresh страницы.

А потом у Firefox изменили API...

Подскажите, а сейчас есть у Firefox (или Chrome) подобный плагин?

 

Kroz
()

Монтирование внутреннего каталога на USB-выход

Форум — General

Друзья, подскажите, можно ли такое ввернуть вообще.

Хочется примонтировать каталог на внутреннем накопителе к USB. Т.е. чтобы подключаешь устройство к другому устройству, а оно прикидывается обычной флешкой.

Целевая платформа Debian/Raspbian и скорее всего малина.

 , , ,

kvv213
()

Подключение удаленных файловых систем при помощи systemd для пользователя

Форум — Admin

Решил попробовать подключить удаленные файловые системы при помощи systemd .mount-модулей. По пользователям, а не для системы глобально.

Подключение из командной строки работает без проблем:

sshfs iron.burato:/ ~/iron
Файловая система подключается, можно работать. В ~/.ssh/config
Host iron.burato
    HostName 10.10.0.5
    IdentityFile ~/.ssh/Keys/iron.burato
    User burato
Ключ ~/.ssh/Keys/iron.burato присутствует. Попробовал из академического интереса создать .mount-модуль и подключится при помощи него. ~/.config/systemd/user/home-burato-iron.mount:
[Install]
WantedBy=default.target

[Mount]
Type=fuse.sshfs
What=iron.burato:/
Where=/home/burato/iron
Запускаю:
systemctl --user start home-burato-iron.mount
Получаю ошибку:
mount[17611]: mount: only root can use "--types" option
Попробовал добавить в .mount:
Options=user
systemctl --user daemon-reload
Получаю ошибку:
mount[20509]: mount: only root can use "--options" option
Получается подключаться systemd .mount-модулями можно только от суперпользователя? Просто была идея наделать таких файлов .mount для разных удаленных sshfs, webdav и nfs.

ОС Arch Linux, но systemd вроде как везде одинаков.

 , , , ,

Xoomoh
()

Посоветуйте архив с монохромными картинками как на древние трубки

Форум — General

Интересуют 84x48, монохромные - только чёрный и белый, как на древние трубки.

Собираю одну штуку в подарок на адруине, подключен дисплей от Nokia 5110. Картинки оптимально милые или романтические. Не знал, куда запостить (если в мобайл - так у меня не мобила, да и такого нет давно ни у кого; если в hardware - при чём тут картинки и оборудование), потому оставил это в general.

 ,

fehhner
()

LXDE, lubuntu-desktop - открывать приложение или переключаться в него по горячей клавише

Форум — Desktop

Имеется debian 9 stretch LXDE. Открыта IDE, веб-браузер и терминал. Я хочу переключаться между ними не альт-табом, а по горячим клавишам. Я знаю, что это можно сделать с помощью рабочих столов, но у меня два монитора. Если раскидать приложения по рабочим столам, пространство экрана будет недоиспользовано.

В офтопике есть «закреплённые приложения» возле кнопки «Пуск». Когда нажимаем Win+1, Win-2 и т.п., запускается первое, второе и т.п. приложение . А если приложение уже запущено, то в него переключаюсь.

Можно ли так настроить LXDE? Или, может быть, есть какая-то ещё альтернатива?

РЕШЕНИЕ

# Установим программки...
> sudo apt-get install wmctrl wish xdg-utils
# Посмотрим, какие окошки у нас есть
> wmctrl -x -l 
0x03000046  0 sun-awt-X11-XFramePeer.jetbrains-phpstorm  deb8 rl [/y/rl] - ...ргт [rl] - PhpStorm
0x03600004  0 lxterminal.Lxterminal  deb8 den73@deb8: ~
0x03c00001  0 google-chrome.Google-chrome  deb8 Новая вкладка - Google Chrome
0x03c00014  0 google-chrome.Google-chrome  deb8 Developer Tools - https://www.google.ru/...
0x03800003  0 leafpad.Leafpad       deb8 (Без имени)
# Окошки можно искать по имени класса и по заголовку (man wmctrl).

Создадим скрипт для обработки горячих клавиш и запишем в файл ~/.config/горячие-клавиши-openbox.ш:

#!/bin/bash

function Диалог {
  echo "wm withdraw . 
  tk_messageBox -title {Помощник горячих клавиш} -message \"$0 сообщает:
[list $1]\"
  destroy ." | wish
}

command -v wmctrl || Диалог "Не установлена программа wmctrl"
case $1 in
  (W-1) 
   wmctrl -x -a Lxterminal \
   || xdg-open ~/Рабочий\ стол/lxterminal.desktop;;
  (W-2)
   wmctrl -x -a "Doublecmd" \
   || ~/doublecmd/doublecmd.sh;;
  (W-3) 
   wmctrl -a "- Google Chrome" \
   || google-chrome;;
  (W-4) 
   wmctrl -a "Developer Tools -" \
   || Диалог "$1 только активирует Chrome Developer Tools, но не запускает их";;
  (W-5) wmctrl -a "- Visual Studio Code" \
   || code;;
  ("") Диалог "В качестве параметра передай горячую клавишу, как она записана в OpenBox.";;
  (*) Диалог "Неизвестная горячая клавиша «$1»"
esac

# Сделаем файл исполняемым
> chmod u+x ~/.config/горячие-клавиши-openbox.ш
# Настроим конфигурацию LXDE
# Для LXDE
> leafpad ~/.config/openbox/lxde-rc.xml
# Для Lubuntu-desktop
> leafpad ~/.config/openbox/lubuntu-rc.xml

Добавляем в секцию keyboard:

    <keybind key="W-1"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-1</command></action></keybind>
    <keybind key="W-2"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-2</command></action></keybind>
    <keybind key="W-3"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-3</command></action></keybind>
    <keybind key="W-4"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-4</command></action></keybind>
    <keybind key="W-5"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-5</command></action></keybind>

Применяем

> openbox --reconfigure

Сочетания Win+1 .. Win+5 теперь вроде работают.

Теперь можно поместить эти команды в панель быстрого запуска, чтобы иметь наглядное напоминание о том, какая кнопка про что, но я, наоборот, очищу эту панель, чтобы место освободилось.

P.S. работает также в Ubuntu 12.04; также проверено в Ubuntu 16.04 для рабочего стола lubuntu-desktop

 , , переключение приложений

den73
()

Создание робота пылесоса

Форум — Linux-hardware

Хочу сделать робот пылесос. Но возникло просто тысяча вопросов.

Для начала что я хочу от пылесоса

1) Красота не важная 
2) Шум не важен (Пока что)
3) Должен убирать пыль 
4) Пусть ездит рандомно

Конструкцию думал сделать такую:

1) Купить одноразовые мешки для пылесоса (Нашел по ~20 гривен за штуку)
2) Купить один мотор от квадрокоптера (~150 Ватт) использовать его в качестве насоса воздуха 
3) Купить несколько маленьких моторов (~1 Ватт для колес) и счеток (веников)
4) "Веники" будут подымать мусор в воздух
5) Из всякого хлама сделать аналог трубы в который я помещу пропеллер и воздух с пылью будет всасываться с пола и продуваться через одноразовый мешок

Для рандомного движения думал использовать ардуино (Хватит ли?, у меня с ней есть опыт). Идея сделать пылесос умным мне нравится, но не уверен что хватит навыков.

Теперь о проблемах. Мотор от коптера напрямую от постоянного тока не запитать, приходится покупать вот такую штуку https://arduino.ua/prod667-Regylyator_hoda_ESC_Mystery_30A, стоит весьма дорого, есть какой-то другой способ? Здесь 30А, мне должно и 10А хватить. В этом же магазине обычные (коллекторные) моторы очень слабые, несколько ватт.

Дальше не понятно какой источник энергии брать, изначально я думал павербанк, но 5V* (~2A) = 10 Ватт, что совсем мало, к тому же мотор хочет себе около 12 Вольт. Думал может соединить несколько павербанков (И последовательно и параллельно) Но по цене это выйдет очень уж дорого (Минимум 100 гривен за 5 Ватт).

В магазине ардуино есть большой выбор аккумуляторов, но я не понял как их заряжать, продаются какие-то устройства (https://arduino.ua/prod507-Zaryadnoe_ystroistvo-balansir_Imax_B6) за весьма много денег (500 гривен и выше). Жуть просто, это реально нужно чтоб просто зарядить аккумы?

Также я смотрел на аккумы для коптеров - но опять же цена почему-то огромная

 , ,

abs
()

RFC HOWTO: автологин в иксовую сессию с помощью systemd

Форум — General

Добрый вечер, господа. Это тред-howto о том, как сделать корректный автологин в иксы «на чистом systemd». В вики мне писать влом, да и никто её не читает, а тут и теги указать можно, и людей скастовать. Собственно, да: border-radius, ecko.

В чём вообще проблема? Проблема в том, что значительное количество людей делают это через банальнейшие костыли, настраивая автологин в текстовую консоль и запуская иксы из bashrc (или, чего хуже, из bash_profile). Это плохо по трём причинам:

  • не залогиниться в другую физическую консоль в текстовом режиме
  • оверхед на проделывание цепочки такого вида:
    systemd
    /bin/agetty
    /bin/login
    PAM
    /bin/bash
    ~/.bashrc
    /bin/startx
    
  • в конце концов, это само по себе костыль.

Я предлагаю написать getty-подобный юнит, который будет запускать иксы от фиксированного пользователя с фиксированным номером дисплея на произвольном VT. (Почему так много хардкода? Потому что systemd — не дисплейный менеджер.)

Это тоже неидеальное решение. Например, нафиг идёт мультисит и возникают гонки между запуском иксов и обнаружением видеоустройств. Но этими недостатками мы пренебрежём.

Параграф один. logind, autovt и getty-подобные юниты. Getty могут запускаться двумя способами.

  • Первый — по требованию, через logind. При переключении на ttyN logind запускает юнит autovt@ttyN.service, который засимлинкен на getty@.service. Эта логика работает для tty2-tty6.
  • Второй — статически. Юнит getty@tty1.service включен по умолчанию и втягивается через getty.target. Это даёт нам всегда запущенный getty на tty1.

Соответственно, допустим, у нас есть юнит xorg@.service, который запускает иксы на указанном VT.
Его нужно либо симлинкнуть под именем autovt@ttyN.service, переопределив шаблонный юнит (тогда при переключении на выбранный VT иксы будут запускаться вместо getty — первый способ), либо отключить getty@tty1.service и включить вместо него xorg@tty1.service (тогда мы вместо всегда запущенного getty будем иметь всегда запущенные иксы — второй способ).

Параграф два. Xorg вместо getty. Итак, имеем юнит для иксов, написанный по аналогии с getty@.service: /etc/systemd/system/xorg@.service.

User=<впишитеюзера>
PAMName=login

-- это аналог su.

Conflicts=getty@%i.service
After=getty@%i.service

-- это некоторая защита от одновременного запуска getty на том же терминале.

StandardOutput=tty
StandardInput=tty-fail

-- это указание systemd запускать иксы подсоединёнными напрямую к терминалу, а не к логгеру (нужно для того, чтобы иксы можно было запускать не от рута... ах да, работает только с 1.16 и выше).

ExecStart=/etc/systemd/scripts/startx -D :0

-- это мой велосипед вместо startx с нескучным синтаксисом и exec xinit в конце, что важнее.

Дело в том, что systemd из-за вероятного бага при остановке юнита отправляет SIGTERM/SIGKILL не всем процессам в дереве, начиная с startx, а только самому startx. А поскольку он написан на шелле, то он радостно игнорирует SIGTERM и ждёт завершения xinit, которому никакого сигнала не приходит. Следовательно, проблему решаем переписыванием startx так, чтобы он в конце не запускал xinit подпроцессом, а делал exec xinit, заменяя им собственный процесс. Тогда сигнал приходит xinit'у, а он его корректно ловит и убивает иксы.

Всё остальное скопипащено из getty@.service.

Да, дисплей захардкожен в :0. Пара слов о назначении VT: процесс startx получает номер VT в переменной $XDG_VTNR (её устанавливает pam_systemd), а из startx запускается /etc/X11/xinit/xserverrc, который об этой переменной знает и передаёт X-серверу параметр vt$XDG_VTNR.

Параграф три. Запускаем. Итак, помещаем юнит в /etc/systemd/system/xorg@.service, startx в /etc/systemd/scripts/startx (можно куда угодно) и делаем:

systemctl daemon-reload
systemctl disable getty@tty1
systemctl enable xorg@tty1

После этого можно ребутиться и надеяться, что запустится. Ах да, дисплейный менеджер тоже стоит отключить, потому что он запустит свой X-сервер и произойдёт адъ и израиль.

Как-то так. Сейчас три часа семнадцать минут по московскому времени, поэтому прошу меня извинить за упрт стиль изложения, краткость, неконсистентное использование форматирования и так далее.

 , ,

intelfx
()

OpenSnitch — интерактивный сетевой экран

Новости — Linux General
Группа Linux General

Представлен проект OpenSnitch, в рамках которого подготовлен свободный аналог проприетарного сетевого экрана Little Snitch.

( читать дальше... )

>>> Подробности

 , , ,

Sunderland93
()

Glacier on arm64/aarch64 запущен на NanoPi Fire3

Галерея — Скриншоты

Итак, раз в пол года я рассказываю о проекте Glacier - полностью графической оболочки для мобильных телефонов.

Итак, это графическая оболочка работающая поверх Mer/Qt/Wayland в своё время была заброшена сейчас пилится усилиями полутра землекопов в том числе и мной - чисто в образовательных целях.

Что было сделано за последние пол года:
1. Полностью опенсорсные образы (раньше ставилось поверх SailfishOS)
2. Дописаны/Переписаны компоненты QtQuickControls-nemo - добавили темы, добавили подстройку автоматическую под разные расширения экрана, добавили новые контролсы.
3. Переписаны кучу приложений с использованием QtQuickControls-nemo (раньше юзали миговские контролы), такие как звонилка, галерея, контакты и прочее прочее прочее естественно куча всего поломано и работает от слова никак.
4. Написали библиотеку libglacierapp, которая позволяет проще начать писать приложения.
5. Сделан порт под Arm64 что представлено на фото.

Из известных багов:
1. Образ не запускает юзерсессию - надо дописывать сервисы systemd
2. Нет многих приложений и они некорректно работают - просто нет людей.
3. Нет системы обновления и прочего

И много-много-много другого :)

Гит проекта https://github.com/nemomobile-ux
И https://github.com/nemomobile

На остальное велком в комментариях

 , ,

chapay
()