LINUX.ORG.RU

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

Ищу наружную IP камеру под OpenIPC

Форум — Talks

Есть ли какие-нибудь недорогие (до 80 usd) IP камеры с поддержкой OpenIPC, подходящие для использования в средней полосе РФ? С питанием через PoE.

На сайте OpenIPC указаны только название SoC'ов, а меня интересует конкретная модель/ревизия.

Поддержка OpenIPC нужна чтобы получать поток по RTSP без лишней ерунды и чтобы большой китайский брат маленький нефритовый стержень за мной не следил.

 , , ,

Meyer
()

Список последних 10 видео YouTube-канала по команде в терминале

Форум — Desktop

Методом тыка нашёл такую команду:

yt-dlp --flat-playlist --playlist-end 10 --print title --print " %(duration_string)s %(id)s" https://www.youtube.com/c/DmitriiWest/videos
- она отображает последние свежие 10 видео с ютуб-канала.

Сделал скрипт /usr/bin/yt-list

#!/bin/sh
exec python3 "/usr/bin/yt_dlp/__main__.py" --flat-playlist --playlist-end 10 --print title --print " %(duration_string)s %(id)s" "$1"

Теперь, не запуская браузер, я вижу список свежих видосиков по команде:

yt-list https://www.youtube.com/c/DmitriiWest/videos
И качаю новые командой:
yt-dlp -f 18 <id-of-video>

Кто ещё как автоматизирует получение видосиков с пока ещё не забаненого ютуба?
В идеале должно по cron'у качать свежие видосики в нужную папку - кто так сделал?

UPD. Для скачивания картинки (превьюшки) сделал второй скрипт /usr/bin/yt-img

#!/bin/sh
exec python3 "/usr/bin/yt_dlp/__main__.py" --write-thumbnail --convert-thumbnails jpg --no-download "$1"

Превьюшку глядеть так:

yt-img <id-of-video>

 , , ,

Novator
()

Pi-KVM вышел на Kickstarter

Новости — Hardware and Drivers
Pi-KVM вышел на Kickstarter
Группа Hardware and Drivers

Спустя год после первого релиза, Pi-KVM представил свое собственное железо на Kickstarter.

Pi-KVM - это проект, объединяющий в себе софт и инструкции, которые позволяют превратить Raspberry Pi в полностью функциональный IP-KVM. Это устройство подключается к HDMI- и USB-портам сервера, и позволяет управлять им удаленно по сети, независимо от операционной системы. Можно включить, выключить или перезагрузить сервер, настроить BIOS и даже полностью переустановить ОС с образа на эмулированном виртуальном носителе. Вся функциональность (в том числе и передача видео) доступна через веб-интерфейс, не требующий никаких дополнительных плагинов и апплетов, и реализованный только средствами HTML5.

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

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

 , , , ,

liksys
()

Pi-KVM - проект открытого IP-KVM на Raspberry Pi

Новости — Hardware and Drivers
Pi-KVM - проект открытого IP-KVM на Raspberry Pi
Группа Hardware and Drivers

Состоялся первый публичный релиз проекта Pi-KVM: набора софта и инструкций, которые позволяют превратить Raspberry Pi в полностью функциональный IP-KVM. Это устройство подключается к HDMI/VGA и USB-порту сервера, чтобы управлять им удаленно, независимо от операционной системы. Можно включить, выключить или перезагрузить сервер, настроить BIOS и даже полностью переустановить ОС с загруженного образа: Pi-KVM умеет эмулировать виртуальный CD-ROM и флеш-накопитель.

Количество необходимых деталей, помимо самого Raspberry Pi, минимально, что позволяет собрать его буквально за полчаса, а общая стоимость окажется в районе $100 даже в самой дорогой конфигурации (в то время как многие проприетарные IP-KVM при меньшей функциональности будут стоить от $500 и выше).

Основные возможности:

  • Доступ к серверу через веб-интерфейс обычного браузера или VNC-клиент (никаких Java-апплетов или флеш-плагинов);
  • Низкая задержка видео (порядке 100 миллисекунд) и высокий FPS;
  • Полная эмуляция клавиатуры и мыши (включая светодиоды и прокрутку колесиком/тачпадом);
  • Эмуляция CD-ROM и флешки (можно загрузить несколько образов и подключать их по мере необходимости);
  • Управление питанием сервера с помощью ATX-пинов на материнской плате или через Wake-on-LAN; поддерживается IPMI BMC для интеграции в существующую сетевую инфраструктуру;
  • Расширяемые механизмы авторизации: начиная от обычной по паролю и заканчивая возможностью использования единого сервера авторизации и PAM.
  • Широкая поддержка железа: Raspberry Pi 2, 3, 4 или ZeroW; различные устройства видеозахвата;
  • Простой и дружественный тулчейн, который позволяет собрать и установить ОС на карту памяти Raspbery Pi всего парой команд.
  • И многое другое.

Также готовится к релизу специальная плата расширения для Raspberry Pi 4, которая реализует все описанные функции, плюс множество других возможностей (подробности на GitHub). Открытие предзаказов ожидается в четвертом квартале 2020 года. Стоимость ожидается в районе $100 или меньше. Подписаться на новость о предзаказе можно тут.

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

 , , , ,

liksys
()

Стала доступна бета-версия S.T.A.L.K.E.R. Зов припяти на движке OpenXRay

Новости — Игры
Группа Игры

После полу-годовой работы над стабильностью, стала доступна бета-версия игрового движка OpenXRay.

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

Известные баги и проблемы:

  • При выходе из игры процесс может зависнуть
  • При переходе между локациями/повторной загрузке сейвов портится картинка, игра может вылететь (пока решается только через перезапуск игры с загрузкой сейва)
  • Сейвы и логи не поддерживают UTF-8
  • Проект не собирается clang

Для работы игры понадобятся ресурсы от оригинальной игры, они должны находиться в ~/.local/share/GSC/SCOP/

Для steam их можно получить следующим образом:

steamcmd "+@sSteamCmdForcePlatformType windows" +login <username> +force_install_dir ~/.local/share/GSC/SCOP/ +app_update 41700 +quit

Если ресурсы из GOG, нужно привести все пути к нижнему регистру(это особенность движка)

Перед началом игры нужно исправить строку в ~/.local/share/GSC/SCOP/_appdata_/user.ltx renderer renderer_r1 на renderer renderer_gl, и vid_mode 1024x768 на ваше разрешение, иначе оно слетит.

PPA (пока только для bionic)

В планах дальнейшее улучшение рендера, поддержка ресурсов от ClearSky (сейчас в отдельной WIP ветке) и TЧ.

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

 , ,

eagleivg
()

Выбора бюджетных наушников нить

Форум — Talks

Последнее время носил vsonic'и. vsd1s, vsd2s, и последние два раза vsd3s. Последние покупал 2 раза (хотя vsd2s вроде тоже брал 2 раза). Что мне в них нравится - в ушах у меня сидят идеально, звукоизоляция в обе стороны на высоте, качетво звука за свои деньги (я брал 2 последние модели за 2к) мне более чем нравится. Но на замену почившим (отпахавшим до этого ровно год vsd3s), пришли новые vsd3s, которые сломались уже через 3,5 месяца. Вот прямо сейчас пришел домой и без объявления войны отказало капитально одно ухо. Более того, по непонятным мне причинам, кабель у новых наушников сильно вился с самого начала и путался, в отличии от своих предшественников, хотя модель та же и заказывал там же.
В общем, ищу себе новые уши, в пределах 2к с хорошим звуком (люблю пост-рок), звукоизоляцией и опционально сменным проводом. Интересуют именно вакуумные затычки.
Линукс тут при том что я слушаю музыку с ведроида, а там ядро линукса.

 , , ,

Istervaer
()

Установка FreeBSD на раздел реального диска из-под другой ОС

Форум — Talks

Небольшой HOWTO, как быстро установить FreeBSD из-под GNU/Linux без лишних действий. Записал по ходу установки, возможно, кому-нибудь пригодится.

Входные данные в моём случае:

  • Есть неиспользуемый раздел на диске, разбитом через MBR. (Большая часть места на накопителях занята LVM-ом с кучей томов.)
  • Весь раздел целиком буду монтировать в корень, не используя разбивку bsdlabel. Система ставится больше для экспериментов, чем для реальной работы, так что нет смысла заморачиваться с точной разметкой.
  • По той же причине в качестве файловой системы использую UFS, а не ZFS.
  • Хочется весь процесс провести из-под основной ОС, не тратя время на создание загрузочной флешки.
  • В роли первичного загрузчика буду использовать grub, поэтому BSD-специфичный boot loader нас не интересует.

На одном из дисков я заранее зарезервировал четыре 20-гигабайтных раздела под эксперименты с разными ОС. На один из таких разделов установлю FreeBSD:

[root@aquila ~]# fdisk -l /dev/sda
Диск /dev/sda: 698,7 GiB, 750156374016 байт, 1465149168 секторов
Disk model: Hitachi HTS54757
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0xa33b6c03

Устр-во    Загрузочный    начало      Конец    Секторы Размер Идентификатор Тип
/dev/sda1  *                2048    6146047    6144000     3G            83 Linux
/dev/sda2                6146048  105357311   99211264  47,3G             7 HPFS/NTFS/exFAT
/dev/sda3              105357312 1465147391 1359790080 648,4G             5 Расширенный
/dev/sda5              105359360  146319359   40960000  19,5G            83 Linux
/dev/sda6              146321408  187281407   40960000  19,5G            83 Linux
/dev/sda7              187283456  228243455   40960000  19,5G            83 Linux
/dev/sda8              228245504  269205503   40960000  19,5G            83 Linux
/dev/sda9              269207552 1465147391 1195939840 570,3G            8e Linux LVM

Скачиваем установочный образ:

$ axel -a 'https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz'
$ xz -d FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz

Установку будем проводить из-под qemu, работающему от имени пользователя. Чтобы сможно было подключить физический диск к qemu, нужно сменить владельца /dev/sda:

# ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 апр 15 14:20 /dev/sda
# chown vadim:disk /dev/sda
# ls -l /dev/sda
brw-rw---- 1 vadim disk 8, 0 апр 15 16:12 /dev/sda
Я знаю, что идеологически правильно было бы добавить пользователя в группу disk, но мне как-то пофиг. После перезагрузки система забудет, что права на /dev/sda были отданы пользователю, а из группы пользователя надо удалять вручную.

Запускаем виртуальную машину с установочным образом и нужным физическим диском:

$ qemu-system-x86_64 -m 2048 -hda /dev/sda -cdrom FreeBSD-12.0-RELEASE-amd64-disc1.iso -boot menu=on

Выбираем CDROM в качестве загрузочного устройства. Ждем появления Welcome Menu, выбираем <Shell>. Инсталлятор нам не понадобится.

Посмотрим, какие разделы увидела система:

# ls /dev/ad*

И более подробно:

# gpart list | less

Виртуальная машина имеет прямой доступ к реальному /dev/sda, так что нужно внимательно перепроверять все свои действия по поводу разделов диска.

Выяснили, как в гостевой ОС называется нужный раздел, создаем на нём файловую систему:

# newfs -U -L anjalifbsd /dev/ada0s5

  • Опция -U указывает задействовать механизм Soft Updates.
  • Опция -L задаёт имя тома ФС.

Монтируем созданную ФС:

# mkdir /tmp/new_root
# mount /dev/ada0s5 /tmp/new_root

Теперь нужно распаковать операционную систему на новый раздел:

# cd /tmp/new_root
# tar xvf /usr/freebsd-dist/base.txz
# tar xvf /usr/freebsd-dist/kernel.txz

Система занимает меньше гигабайта:

# df -h .
Filesystem      Size     Used    Avail  Capacity  Mounted on
/dev/ada0s5      19G     930M      16G      5%    /tmp/new_root

Правим fstab. Честно говоря, я не знаю деталей о процессе инициализации FreeBSD и не уверен, что это обязательно:

echo '/dev/ada0s5 / ufs rw 1 1' > etc/fstab
echo 'tmpfs /tmp tmpfs rw 0 0' >> etc/fstab

Выключаем виртуальную машину:

# poweroff

На реальной машине правим конфиг grub.

У меня grub установлен на отдельном разделе таким образом, что установка любого нового слишком умного дистрибутива, перезаписывающего конфиг grub-а, не повлияет на этот загрузчик. В загрузочном меню этого отдельного grub-а указано, как грузить установленные ОС, внутри которых может работать уже собственный загрузчик дающий выбрать версию ядра и т.п. Например:

menuentry "Artix Sonata" {
	configfile (lvm/aq-aq_artix)/boot/grub/grub.cfg
}

menuentry "Archlinux Aquila" {
	configfile (lvm/aq-aq_archlinux)/boot/grub/grub.cfg
}

menuentry "Voidlinux Epsilon" {
	multiboot (lvm/aq-aq_voidlinux)/boot/grub/i386-pc/core.img
}

Загрузчик FreeBSD я не задействовал, так что в моём случае достаточно добавить menuentry для прямой загрузки ядра FreeBSD:

menuentry "FreeBSD Anjali" {
	insmod part_msdos
	insmod ufs2
	set root=(hd0,5)
	kfreebsd /boot/kernel/kernel
	kfreebsd_loadenv /boot/device.hints
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s5
	set kFreeBSD.vfs.root.mountfrom.options=rw
	boot
}

На этом всё. Установка сводится к распаковке архива с системой и запуску ядра любым подходящим загрузчиком. Даже проще, чем установить Арч.

Первые шаги в системе:

  • Имя хоста задаётся через hostname(1).
  • Управление пользователями и группами осуществляется при помощи pw(8).
  • Про настройку локали см. login.conf(5). В конфиге уже прописан вариант для русской локали, так что достаточно указать login class пользователя равным russian.
  • wpa_supplicant настраивается стандартно через конфиг, плюс надо указать пару строчек в rc.conf.
  • Пакеты ставятся при помощи pkg(8).

 , ,

Deleted
()

btrfs - мнимое «Не осталось свободного места»

Форум — Admin

Удачно монтирую btfs-раздел, но далее при попытке даже изменить права доступа на файл или каталог пишет:

На устройстве не осталось свободного места

Хотя при этом через df -h видно на этом разделе 7 ГБ свободно:

/dev/sda6           30G          22G  7,0G           76% /mnt/LEAP-15

Пробовал отмонтировать раздел и запустить

# btrfsck  /dev/sda6
Checking filesystem on /dev/sda6
UUID: 66be278b-9c9c-45ef-96a5-1a9eb375aa44
checking extents
checking free space cache
checking fs roots
checking csums
checking root refs
found 22335524864 bytes used err is 0
total csum bytes: 20340836
total tree bytes: 593608704
total fs tree bytes: 529547264
total extent tree bytes: 36536320
btree space waste bytes: 103750573
file data blocks allocated: 70457954304
 referenced 21395312640

Но после перемонтирования ситуация та же((

 ,

gigantischer
()

Переезд в США

Форум — Talks

Выполняю обещание, данное вот тут
Ищу работу: C++11, структуры данных, алгоритмы, сеть, lock-free, highload. (комментарий)

В этой теме готов ответить на вопросы о том, как программисту линуксоиду переехать жить в США. Сам уже 1.5 года как переехал.

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

Написать большой пост сил так и не хватило, так что задавайте ваши вопросы.

P.S. Ответы в большинстве своем относятся к Калифорнии и конкретно Долине и ее окресностям. В других штатах все может быть немного по другому.

 , ,

trex6
()

ffmpeg конвертирование

Форум — Multimedia

Я использую ffmpeg для преобразования своего видео, но когда я устанавливаю определенную конфигурацию для конвертирования, звук после преобразования воспроизводится с задержкой. Моя команда: «ffmpeg.exe -i inputFile.mp4 -target film-dv outputFile.mp4 » В документации указано просто установить только некоторую комбинацию для команды «-target» и другие параметры установяться автоматически. Что я делаю не так?

 ,

hotabich91
()

Выбор брокера для ИИС

Форум — Talks

По мотивам распухшей до безобразия этой темы много думал.

Думал об ИИС. Если вы не знаете что это такое, то не беспокойтесь. Думаю о том, какую именно организацию выбрать, чтобы открыть его с максимальным профитом и минимальной кровью. Я понимаю, что это не 30 килоевро, но профит хочется максимизировать, а телодвижения минимизировать. Активной деятельности не предвидется, то есть покупки будут примерно ровно раз в год.

Пока рассматриваются варианты:

  • Альфабанк
    • плюсы — мои деньги там уже лежат (минимум телодвижений).
    • минусы — слабо отличается от депозита (тут только доверительное управление и 2% комиссии в год независимо от результата), если не учитывать вычеты.
  • ВТБ
    • нужное отделение близко и вроде там можно облажаться на финансовом рынке самостоятельно без помощи доверительного управления. Всем рулить можно через личный кабинет и бесплатные звонки.
    • что-то я этому банку не доверяю, уж слишком он государственный. Есть сомнения в качестве управления.
  • Сбербанк
    • вроде самый популярный для ИИС
    • инвестиционное отделение в средневзвешенном часе добирательства на такси.

Вопрос специалистам по всему: Что выбрать и почему? Пока склоняюсь к ВТБ.

Есть вот такая статья-сравнение

 

Evgueni
()

Покупка акций

Форум — Talks

До покупки биткоинов я не созрел, но скажем 100 тыс. р на интервале в год на акции я готов потратить. На сколько это осмысленно? Казалось бы что может случиться с акциями газпрома или сбербанка? Или, например, Nvidia?

 

Evgueni
()

Как лучше всего спрятать сбережения от Набиулиной и К.?

Форум — Talks

Грядут президентские выборы, после которых, говороят, мировой капитал будет обирать россиян, а успел скопить сумму и не хочу её на что либо тратить.
Как мне лучше всего её спрятать, чтобы Набиулина и её хозяева не смогли её найти?

Думаю я купить криптовалюту, ну ясно что не биткоин, он напузыренный, вдруг потом как пузырь лопнет вдруг дешевле нынешней цены станет?

Какие ещё есть криптовалюты, которые можно использовать для хранения капитала, ну и с перспективой роста, не обязательно большого?

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

 капитал, , накопления, , сбережения

torvn77
()

Как беспалевно вывести бабло?

Форум — Talks

Должно мне после НГ капнуть немного баблишка (тыщ эдак 15-20 деревянными), в виде благодарности за некие услуги (вполне законного характера). В наличии имеется сберовская карта, но палить её что-то неохота. Есть вебманька, но без аттестата, опять же, скан паспорта палить неохота, ибо нефиг.

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

В связи с этим, вопрос: как лучше провернуть это дело? Крипту не предлагать!

Проблема решена. Два реальных варианта, которые нашлись - Киви с последующим переводом на карту, и завести в том же Сбере Visa Momentum, как раз, для таких бросовых случаев.

 , ,

Hurenweibel
()

Где сейчас можно до нового года сделать дебетовую карту для платежей в интернет?

Форум — Talks

То есть, за один-два дня максимум и чтобы обслуживание было ну не дороже рублей 500-600 за год.

Подвел банк ВТБ, просто вот взял и не перевыпустил по ошибке карточку, с которой я плачу хостерам. Таким образом я не знаю как им заплатить по счету в январе. Карточку перевыпустит, но это будет чую, не ранее середины января.

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

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

Что делать? Хостеру писал о ситуации, посочувствовали в ответ, но сказали, что биллинг не позволяет заранее или авансом счет выставить.

Линукс тут притом, что оплачивается хостинг на линуксе.

 ,

praseodim
()

libvdpau-va-gl

Форум — Development

https://github.com/i-rinat/libvdpau-va-gl/releases

В двух словах, это VDPAU драйвер, который использует OpenGL для рисования и VA-API для декодирования видео.

VDPAU это открытый интерфейс, который подразумевает единую точку входа (libvdpau) и подключаемые драйверы; API не замкнуто накоротко на nVidia. Выбор конкретного драйвера осуществляется либо через переменную окружения VDPAU_DRIVER, либо спрашивается у X-сервера. Если так или иначе получить имя не удалось, считается, что оно есть «nvidia». Драйвер представляет собой разделяемую библиотеку с именем вида libvdpau_<drivername>.so.1. Программы линкуются с libvdpau, а она в свою очередь загружает нужный драйвер.

Чтобы использовать, нужно собрать, положить библиотеку в директорию, где её сможет найти компоновщик, и добавить в окружение переменную VDPAU_DRIVER=va_gl. Проверить, что драйвер работает, можно запустив vdpauinfo. А vainfo покажет, работает ли драйвер VA-API.

На видеокартах AMD по чудаковатым причинам происходят падения внутри XCloseDisplay. Чтобы обойти проблему, нужно в переменную VDPAU_QUIRKS добавить строку XCloseDisplay. Элементы в VDPAU_QUIRKS перечисляются через запятую, слитно, без пробелов и служат для тонкой настройки поведения драйвера. Кроме XCloseDisplay, есть ещё параметр ShowWatermark, включающий отображение строки va_gl в правом нижнем углу. Полный список можно найти в README.md.

Начиная с версии 2.99.908 xf86-video-intel сообщает переходнику libvdpau.so имя VDPAU драйвера. Символьных ссылок
libvdpau_i965.so.1libvdpau_va_gl.so.1
libvdpau_i915.so.1libvdpau_va_gl.so.1
достаточно для загрузки, и необходимости в использовании VDPAU_DRIVER больше нет.

 , , ,

i-rinat
()

Удаленная музыкальная коллекция

Форум — Desktop

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

Сейчас я монтирую ftp с помощью curlftpfs и слушаю qmmp. Но так как качество интернета оставляет желать лучшего, нередки хрипы. А когда интернет отваливается вовсе, curlftpfs вешает систему.

Подскажите более адекватный способ слушать музыку из удаленной коллекции без полного выкачивания. Может быть есть проигрыватели с поддержкой сразу ftp?

Среда KDE.

 ,

totik
()

Игры в Linux: переходим в следующее поколение?

Форум — Games

Эта статья является переводом статьи из блога главного разработчика композитного менеджера KWin (используется в KDE) Мартина Гресслина. Оригинал вы можете прочесть по ссылке. Далее идёт повествование от автора. Прошу сильно не пинать за качество перевода.

В этой заметке я хотел бы поделиться мыслями о том, как улучшить игровой опыт в Linux.

Ситуация с X11

В X11 главная проблема для игр, это композитор. Играм необходим прямой доступ к графическому процессору (видеокарте), без каких либо посредников. Для сравнения, возьмём игровую консоль Playstation: когда вы запускаете игру, вы можете быть уверены, что она получила полный доступ к графическому процессору (GPU). Композитинг X11 предоставить такого не может. Композитор в X11 должен полностью скомпоновать сцену. Выглядит это так:

  • Игра рендерится через OpenGL/GLX;
  • X-сервер уведомляет композитор через расширение Xdamage;
  • Композитор рассчитывает область для перерисовки;
  • Композитор использует расширение Xcomposite для получения пиксельной карты для игрового окна;
  • Композитор связывает пиксельную карту с текстурой OpenGL;
  • Композитор рендерит текстуру, используя OpenGL/GLX поверх игрового окна;
  • X-сервер предоставляет готовое изображение из композитора через KMS.


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

Обходные пути в X11

Существует готовое решение чтобы исправить это, известное как «unredirection full-screen window (отключить перенаправление для полноэкранных окон)». Идея заключается в том, что композитор не будет работать для полноэкранного приложения, и будет использована обычная, «не композитная» функциональность X-сервера.

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

В KWin/Plasma, у нас есть лучшее решение: блокировка композитора. Мы можем это сделать, так как не требуем композитинга, в отличии от окружений с обязательным композитингом, где можно использовать только unredirection. У нас даже есть высокоуровневый API для игр, для того чтобы они могли сообщать, что необходимо заблокировать композитинг.

Это также объясняет, почему в KWin/Plasma не включена по умолчанию опция отключения полноэкранного композитинга. Это может вызвать проблемы в работе неигровых приложений (например тиринг в видеоплеере. прим.перев.), но рекомендуется для игр. Также это объясняет почему мне пофиг на тесты PTS (Phoronix Test Suite), так как по моему мнению они проводятся с неправильными настройками. Если бы нас это волновало, то можно было бы просто убедиться, что используемые в PTS игры, отключают композитинг.

Ситуация с Wayland.

В Wayland всё гораздо лучше, так как теперь нет X11-прослоек. Теперь процесс выглядит так:

  • Игра рендерится через OpenGL/EGL;
  • Композитор получает уведомление через wl_surface;
  • Композитор напрямую представляет wl_buffer через KMS, так как знает что тут больше не на что смотреть.


Так что ситуация значительно улучшилась. Хочу отметить, что KWin пока не поддерживает эти этапы и всё ещё рендерит через OpenGL, но мы движемся в этом направлении.

Однако, я думаю, ещё есть проблемы. Наш композитор (KWin) по-прежнему получает события от других окон, может «проснуться» и так далее. Запуск игры в режиме рабочего стола означает, что будут другие процессы в системе, с которыми игра должна разделить ресурсы. Мы хотим пойти по примеру Playstation: игре всё, остальным - ничего. Я не хочу чтобы KWin отбирал ресурсы CPU/GPU у игры.

Управление видеорежимами в ядре (Kernel Mode-Setting, KMS) в играх.

Итак, что мы можем сделать? Я думал об этом и предлагаю кардинально решить проблему с играми в Linux: убрать оконную систему! Игры должны общаться с KMS напрямую, игры должны взаимодействовать с libinput (библиотека ввода, прим. перев.) напрямую. Давайте удалим все лишние прослойки, нам это не нужно, это только мешает игровой производительности.

Когда игра запустится в полноэкранном режиме, можно создать отдельную сессию на другом виртуальном терминале (tty) и предоставить управление этой сессией через logind. Это позволит игре открыть файлы для рендеринга и обработки ввода также, как это делает композитор Wayland. Рендеринг может быть осуществлён через EGL поверх DRM/GBM, также как в композиторе Wayland. Игра получит полный контроль над KMS. Нужно другое разрешение экрана? Без проблем, бери и выставляй. В режиме рабочего стола, это всегда проблематично (гораздо хуже в X11, но лучше в Wayland). Для игр в оконном режиме ничего не изменится, они так и будут запускаться в режиме рабочего стола. (Прим.перев. По сути автор предлагает давно известную концепцию «запуска в отдельных иксах», но лишённую кучи недостатков).

Конечно, это должно убрать все взаимодействия с окружением рабочего стола. Это то, что нужно рассматривать в первую очередь, например, как заставить, скажем, Mumble (программа для аудиоконференций, прим. перев.) работать с такой конфигурацией? Может игре нужно запускать собственный Wayland-сервер?

Это также сломает Alt+Tab (сворачивание игры, прим.перев.). Ну, не совсем, правда. Для X11, который захватывает клавиатуру в некоторых играх, Alt+Tab всё равно не работает, так что тут особо ничего не потеряешь. Но конечно, всегда можно будет переключиться через Ctrl+Alt+F1 в рабочую сессию. Игры также должны иметь общий путь для достижения этой цели, на мой взгляд.

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

 , , , ,

Sunderland93
()

Osu!Next

Форум — Games

Добра, ЛОР-пони.

Внезапно, но новый клиент симулятора кружочков стал опенсурсом, исходники под MIT. Видео.

Джесять лет ждал!

 , , , ,

HashDerpy
()

NextCloud + RainLoop

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

Все же решил перейти с owncloud на nextcloud. Миграция прошла на удивление безболезненно, ничего практически не отвалилось. Помимо стандартного набора приложений у меня в виде external интегрированы rutorrent и urlwget-gui-light.

Скриншот с wget gui

На телефоне (android) используются:

  • ownnote
  • davdroid
  • mytasks
  • owncloud news
  • Штатные приложения для контактов и календаря

Из впечатлений после перехода:

  • Резко ускорилась синхронизация десктопным клиентом большого количества мелких файлов (синхронизирую конфигурационную директорию редактора atom между компами)
  • Наконец-то теперь есть режим filedrop на каталог.
  • Rainloop теперь не приходится обновлять руками.

Грабли:

  • После того, как накатил nextcloud в apps/ (равно как и appstore) не оказалось приложения external, пришлось устанавливать руками.
  • Отвалился ownnote, отображается некорректно, автор обещает в скором времени починить.
  • Аудио плеер на большой музыкальной коллекции практически неюзабелен, album-view не загружается.
  • При использовании ldap, чтобы работал авто-логин в rainloop как и раньше приходится править базу и переименоввывать каталоги для нового пользователя. Хорошо, что у меня пользователей немного и резкого роста аудитории не планируется.
  • Как и раньше, из-за реюза пароля при логине по imap rainloop'ом остается загадкой, как корректно прикрутить к этому делу двухфакторную аутентификацию через yubikey.

>>> Просмотр (1920x1080, 349 Kb)

 , rainloop

ncrmnt
()