LINUX.ORG.RU

Выпуск FluxCast 0.2.7, инструмента для трансляции рабочего стола Linux на Smart TV

 , , , ,


7

4

Состоялся выпуск проекта FluxCast v0.2.7, предназначенного для организации стриминга рабочего стола Linux на экраны Smart TV по протоколам Wi-Fi Direct (Miracast), DLNA и Chromecast с минимальной задержкой. Исходный код проекта написан на Python и распространяется под лицензией GPLv3.

Ключевым изменением в версии 0.2.7 стало полное устранение двух уязвимостей безопасности в сетевом стеке (исправлены несанкционированное подключение к RTSP-сессии и DoS-уязвимость, приводящая к MemoryError).

Основные изменения и исправления:

  • Появился официальный стабильный пакет в репозитории AUR (yay -S fluxcast) с автоматической сборкой через GitHub Actions.
  • Улучшено распознавание Wi-Fi устройств на системах с бэкендом IWD.
  • Добавлена поддержка xdg-desktop-portal-cosmic.
  • Диагностическая утилита --doctor теперь проверяет правила ufw без прав root.
  • Исправлены баги с некорректным размером окна «About», а также устранено «молчаливое» игнорирование открытия этого окна в системах без установленного пакета tk.

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



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Ты ведь автор, правильно? Добавил соответствующий тег.

hobbit ★★★★★
()
Ответ на: комментарий от DrRulez

Да их дофига, но в основном устанавливать надо с бубном и не всюду работают. Сперва пропатчить ядро, потом поставить гном, а потом всё равно может не завестись.

Folko85
()

Выглядит норм, но походу мой wifi-адаптер Realtek не поддерживается. Пичалька.

Folko85
()
Ответ на: комментарий от Folko85

на федоре этот без бубна почему-то не запускается. ему чего-то не хватает для запуска appimage. чего именно не уточняет

vstartsev ★
()
Ответ на: комментарий от hobbit

Большое спасибо за проверку новости, тег и пожелание удачи! Буду развивать проект дальше =]

Illium
() автор топика
Ответ на: комментарий от vstartsev

Скорее всего, дело в отсутствии libfuse2, из Федоры как раз вроде вырезали в пользу 3 версии. Попробуйте установить если не поможет, запустите файл прямо из терминала и можете показать ошибку разберемся!

Illium
() автор топика
Ответ на: комментарий от Illium

Скорее всего, дело в отсутствии libfuse2

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

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Спасибо за наводку, отличная мысль! С современными дистрибутивами (той же Федорой или свежей Убунту) из-за fuse2 сейчас действительно боль у пользователей AppImage. Фиксится-то одной командой, но юзерпилить не хочется. Думаю, на будущее это самый правильный путь, зашить статически или таскать с собой, чтобы рантайм пакета вообще не смотрел в систему. Когда нибудь попробую расковырять сборщик и сделать по уму.

Illium
() автор топика
Ответ на: комментарий от nuxster

Наверное будет востребовано на всяких мобилках.

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

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

Так что вот в данном случае я искренне желаю автору всяческих успехов в его начинании.

DrRulez ★★★★★
()
Последнее исправление: DrRulez (всего исправлений: 2)

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

milka ★
()
Ответ на: комментарий от Wapieth

Так сделал бы.

Мне это зачем? У меня на маке и так все работает, а моя позиция на тему десктопа на линуксе - известна всему ЛОРу :) Могу повторить еще раз - для тебя лично. Я считаю, что удел линукса - сервера и встраивамые системы. Для десктопа он? сырой, неуклюжий, имеет проблемы с драйверам и их добавлением, у него нет станартного DE, api, abi и далее по списку. Он тупо не стандартизирован для десктопа, как раз из-за любителей «100 цветов». А учитывая, что так называемое «сообщество» вообще не в состоянии что-то без пинания стандартизировать и прийти к единому мнению - то подобная фигня никогда не прекратиться. Стандартизировать удалось, слава всем богам - только наличие system-d в нормальных дистрибутивах. надеюсь, что скоро окончательно выкинут болезные, живущие на аппарате искусственного дыхания x11 - но это, все равно, не решит проблему окончательно. дальше, по логике - нужно оставить только 1 DE (как по мне - это должен быть гном), сделать гибридным ядро, а там уже можно и оставить только 2 пакетных менеджера (на выбор), но со стандартной оберткой. Вот тогда, может быть, что-то из линукса на десктопе и получится. Но это - долго. Проще сразу отдать эту систему в руки шапки, а все остальное - позакрывать к такой-то матери :)

DrRulez ★★★★★
()
Ответ на: комментарий от DrRulez

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

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

alash ★
()

Это очень круто, спасибо.

Но как пользователь подобных вещей, скажу, что Chromecast победил Miracast - я сейчас запускаю Chrome или Edge и им транслирую на android tv.

Shadow ★★★★★
()
Ответ на: комментарий от milka

Скорее всего, дело в файрволе, который блокирует входящий RTSP-порт. Попробуйте запустить fluxcast --doctor в терминале, мы как раз доработали проверку правил с ufw без рута, она должна подсказать, какие порты/зоны нужно открыть, чтобы телик смог пробиться.

Illium
() автор топика
Ответ на: комментарий от Shadow

Спасибо за отзыв! Chromecast действительно удобен, да и на Android TV он залетает нативно. Идея FluxCast в том, чтобы дать альтернативу как раз для сценариев, где нормального Wi-Fi/интернета нет вообще (например, в той же переговорке у клиента или на даче), когда нужно зацепиться напрямую к телевизору без посредников через P2P (Wi-Fi Direct). Плюс DLNA у нас работает как раз в качестве альтернативы Хрому для локальных сетей, хоть задержка из за буферизации оставляет желать лучшего xD

Illium
() автор топика
Ответ на: комментарий от DrRulez

нужно оставить только 1 DE (как по мне - это должен быть гном),

Ну да. А ещё сделать Linux проприетарным, убрать root и запретить его запускать на неодобренном железе с выключенным secure boot.

выкинут болезные, живущие на аппарате искусственного дыхания x11

Почитай страницу сабжа. Там ясно сказано, что на X11 проект однозначно работает, а на Wayland - в зависимости от композитора. От x11 имеет смысл отказываться только после появления полноценной альтернативы. Как раз таки именно x11 позволяет существовать различным DE без потери совместимости с приложениями.

Wapieth ★★
()
Последнее исправление: Wapieth (всего исправлений: 2)
Ответ на: комментарий от Illium

fluxcast –doctor

$ ./FluxCast-0.2.7-x86_64.AppImage --doctor
[FluxCast] Version: 0.2.7
[FluxCast Doctor] System capability report
[FluxCast Doctor] Miracast/WFD looks possible via NetworkManager; raw supplicant access is optional for this backend.

  Status Check                  Details
  ------ ---------------------- ------------------------------------------
  ok     python                 runtime (3.10.12 on Linux 7.2.7-x64v3-xanmod1)
  ok     ffmpeg                 video/audio transcoding (/tmp/.mount_FluxCaE3Upjc/usr/bin/ffmpeg)
  warn   wf-recorder            wf-recorder was found but could not be executed (the AppImage wrapper needs the system wf-recorder package; install wf-recorder)
  ok     xdg-desktop-portal     Wayland portal stack is running (xdg-desktop-portal-gnome)
  ok     pactl                  PulseAudio/PipeWire-Pulse audio monitor detection (/usr/bin/pactl)
  ok     xrandr                 X11 monitor detection fallback (/tmp/.mount_FluxCaE3Upjc/usr/bin/xrandr)
  ok     nmcli                  NetworkManager Wi-Fi Direct control (/usr/bin/nmcli)
  ok     dnsmasq                NetworkManager P2P DHCP server (/usr/sbin/dnsmasq)
  warn   iw                     kernel Wi-Fi interface inspection (not found in PATH)
  warn   wpa_cli                active Wi-Fi Direct scan/control (not found in PATH)
  ok     gdbus                  passive wpa_supplicant D-Bus capability checks (/tmp/.mount_FluxCaE3Upjc/usr/bin/gdbus)
  ok     gst-launch-1.0         optional future WFD GStreamer pipeline (/tmp/.mount_FluxCaE3Upjc/usr/bin/gst-launch-1.0)
  ok     gst-inspect-1.0        optional future WFD codec inspection (/tmp/.mount_FluxCaE3Upjc/usr/bin/gst-inspect-1.0)
  ok     gst element pipewiresrc Wayland portal GStreamer capture source (pipewiresrc)
  ok     gst element x264enc    Wayland portal GStreamer H.264 encoder (x264enc)
  ok     dbus_next              WFD portal capture control plane for KDE/GNOME Wayland (python module is installed)
  ok     ffmpeg encoders        H.264 and AAC encoders are available (h264=libx264, h264_v4l2m2m; aac=yes)
  ok     screen capture         Wayland portal stack is available (WAYLAND_DISPLAY=wayland-0; portal=/usr/libexec/xdg-desktop-portal; backend=/usr/libexec/xdg-desktop-portal-gnome)
  ok     audio capture          default audio monitor can be derived (alsa_output.usb-Creative_Technology_Ltd_Sound_Blaster_GC7_10B414A1C0105514-03.analog-surround-71.monitor)
  ok     NetworkManager         Wi-Fi and P2P devices are visible (утилита nmcli, версия 1.58.1; wlp4s0:wifi:connected | CloudflareWARP:tun:connected (externally) | lo:loopback:connected (externally) | p2p-dev-wlp4s0:wifi-p2p:disconnected | eno1:ethernet:unavailable)
  ok     P2P subnet             no interface overlaps the Wi-Fi Direct subnet 192.168.49.0/24
  warn   iw P2P                 iw was not found (cannot inspect kernel Wi-Fi interfaces)
  ok     wpa_supplicant P2P     wpa_supplicant reports P2P support ((<['ap', 'ibss-rsn', 'p2p', 'interworking', 'pmf', 'mesh', 'fils', 'fils_sk_pfs', 'ft', 'sha384', 'owe', 'suiteb192']>,))
  ok     wpa_supplicant WFD     wpa_supplicant accepts Wi-Fi Display IEs ((<@ay []>,))
  ok     wpa D-Bus Set          Properties.Set on wpa_supplicant is permitted (Ошибка: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such property | (According to introspection data, you need to pass 'ssv'))
  skip   firewall               no supported firewall front-end detected (checked ufw and firewall-cmd; open port 7236/tcp manually if a firewall blocks it)

milka ★
()
Ответ на: комментарий от milka

По логам видно главное. файрвола у вас нет (skip firewall), значит дело не в нём. Зато включён Cloudflare WARP (CloudflareWARP:tun:connected), и это первое, что я бы проверил.

FluxCast подключается к телевизору напрямую по адресу 192.168.49.1 и не привязывает соединение к интерфейсу Wi-Fi Direct, полагаясь на таблицу маршрутизации. WARP поднимает свой туннель и по умолчанию может забирать или фильтровать трафик, так что пакеты к телевизору уходят в туннель вместо прямого Wi-Fi Direct линка. Оговорюсь честно, это диагностический отчёт, а не лог самой трансляции, поэтому это самая вероятная причина, а не стопроцентная.

Проверить просто, поставьте WARP на паузу и попробуйте трансляцию. Если заработает, причина найдена. А чтобы пользоваться им дальше, добавьте подсеть 192.168.49.0/24 в исключения (Split Tunnel / Exclude) в настройках WARP.

Illium
() автор топика
Ответ на: комментарий от Illium

отключил warp, все равно не работает

лог запуска

$ ./FluxCast-0.2.7-x86_64.AppImage 
[FluxCast] Version: 0.2.7
[FluxCast Doctor] System capability report
[FluxCast Doctor] Miracast/WFD looks possible via NetworkManager; raw supplicant access is optional for this backend.

  Status Check                  Details
  ------ ---------------------- ------------------------------------------
  ok     python                 runtime (3.10.12 on Linux 7.2.7-x64v3-xanmod1)
  ok     ffmpeg                 video/audio transcoding (/tmp/.mount_FluxCaPUL73E/usr/bin/ffmpeg)
  warn   wf-recorder            wf-recorder was found but could not be executed (the AppImage wrapper needs the system wf-recorder package; install wf-recorder)
  ok     xdg-desktop-portal     Wayland portal stack is running (xdg-desktop-portal-gnome)
  ok     pactl                  PulseAudio/PipeWire-Pulse audio monitor detection (/usr/bin/pactl)
  ok     xrandr                 X11 monitor detection fallback (/tmp/.mount_FluxCaPUL73E/usr/bin/xrandr)
  ok     nmcli                  NetworkManager Wi-Fi Direct control (/usr/bin/nmcli)
  ok     dnsmasq                NetworkManager P2P DHCP server (/usr/sbin/dnsmasq)
  warn   iw                     kernel Wi-Fi interface inspection (not found in PATH)
  warn   wpa_cli                active Wi-Fi Direct scan/control (not found in PATH)
  ok     gdbus                  passive wpa_supplicant D-Bus capability checks (/tmp/.mount_FluxCaPUL73E/usr/bin/gdbus)
  ok     gst-launch-1.0         optional future WFD GStreamer pipeline (/tmp/.mount_FluxCaPUL73E/usr/bin/gst-launch-1.0)
  ok     gst-inspect-1.0        optional future WFD codec inspection (/tmp/.mount_FluxCaPUL73E/usr/bin/gst-inspect-1.0)
  ok     gst element pipewiresrc Wayland portal GStreamer capture source (pipewiresrc)
  ok     gst element x264enc    Wayland portal GStreamer H.264 encoder (x264enc)
  ok     dbus_next              WFD portal capture control plane for KDE/GNOME Wayland (python module is installed)
  ok     ffmpeg encoders        H.264 and AAC encoders are available (h264=libx264, h264_v4l2m2m; aac=yes)
  ok     screen capture         Wayland portal stack is available (WAYLAND_DISPLAY=wayland-0; portal=/usr/libexec/xdg-desktop-portal; backend=/usr/libexec/xdg-desktop-portal-gnome)
  ok     audio capture          default audio monitor can be derived (alsa_output.usb-Creative_Technology_Ltd_Sound_Blaster_GC7_10B414A1C0105514-03.analog-surround-71.monitor)
  ok     NetworkManager         Wi-Fi and P2P devices are visible (утилита nmcli, версия 1.58.1; wlp4s0:wifi:connected | lo:loopback:connected (externally) | p2p-dev-wlp4s0:wifi-p2p:disconnected | eno1:ethernet:unavailable)
  ok     P2P subnet             no interface overlaps the Wi-Fi Direct subnet 192.168.49.0/24
  warn   iw P2P                 iw was not found (cannot inspect kernel Wi-Fi interfaces)
  ok     wpa_supplicant P2P     wpa_supplicant reports P2P support ((<['ap', 'ibss-rsn', 'p2p', 'interworking', 'pmf', 'mesh', 'fils', 'fils_sk_pfs', 'ft', 'sha384', 'owe', 'suiteb192']>,))
  ok     wpa_supplicant WFD     wpa_supplicant accepts Wi-Fi Display IEs ((<[byte 0x00, 0x00, 0x06, 0x00, 0x10, 0x1c, 0x44, 0x00, 0xc8, 0x0a, 0x00, 0x06, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x6e]>,))
  ok     wpa D-Bus Set          Properties.Set on wpa_supplicant is permitted (Ошибка: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such property | (According to introspection data, you need to pass 'ssv'))
  skip   firewall               no supported firewall front-end detected (checked ufw and firewall-cmd; open port 7236/tcp manually if a firewall blocks it)

[FluxCast WFD] Portal backend: monitor selection will be done in the desktop portal dialog.
[FluxCast WFD] P2P device name set to 'ruslan'.
[FluxCast WFD] Starting NetworkManager Wi-Fi Direct scan on p2p-dev-wlp4s0 for 8s...
[FluxCast WFD] Wi-Fi Direct peer(s):
  [0] F2:70:4F:79:58:DA  43" Smart Monitor M7 via NetworkManager
      WFD capability data detected
Select WFD peer [0]: 0
[FluxCast WFD RTSP] Server listening on 0.0.0.0:7236
[FluxCast WFD] P2P GO intent set to 0 (lower intent lets the TV be the group owner).
[FluxCast WFD] Connecting to 43" Smart Monitor M7 via NetworkManager...
[FluxCast WFD] NetworkManager activation started: (objectpath '/org/freedesktop/NetworkManager/Settings/17', objectpath '/org/freedesktop/NetworkManager/ActiveConnection/11', @a{sv} {})
[FluxCast WFD] Waiting for NetworkManager P2P activation...
[FluxCast WFD] NM active connection: activating; p2p-dev-wlp4s0:config:0
[FluxCast WFD] NetworkManager deactivate warning: Ошибка: GDBus.Error:org.freedesktop.NetworkManager.ConnectionNotActive: The connection was not active.
[FluxCast WFD] Restored P2P GO intent to 7.
[FluxCast WFD] ERROR: org.freedesktop.DBus.Properties.Get timed out after 5s

milka ★
()
Ответ на: комментарий от milka

Спасибо, лог запуска снял главный вопрос. WARP оказался ни при чём, хорошо что проверили.

Смотрю сюда:

NM active connection: activating; p2p-dev-wlp4s0:config:0
ERROR: org.freedesktop.DBus.Properties.Get timed out after 5s

Сканирование прошло нормально, монитор нашёлся и сообщил о поддержке Wi-Fi Display. Падает следующий этап: устройство встало в состояние config, и пока оно там стояло, NetworkManager перестал отвечать по D-Bus. Пять секунд это наш бюджет ожидания, мы его исчерпали и свернулись. То есть затык не в FluxCast и не в сети, а в самом NetworkManager или в Wi-Fi драйвере под ним, на моменте создания P2P-группы. Хз.

Чтобы понять, на чём он встал, нужен его собственный журнал за ту минуту:

journalctl -u NetworkManager -b --no-pager --since "10 minutes ago" | tail -80

Запустите FluxCast, дождитесь ошибки, и сразу выполните команду.

Параллельно можно попробовать обойти NetworkManager целиком. Для этого нужны два пакета, которых у вас сейчас нет (в логе они в warn):

sudo apt install iw wpasupplicant
./FluxCast-0.2.7-x86_64.AppImage --protocol wfd --wfd-p2p-backend wpas

Этот режим разговаривает с wpa_supplicant напрямую, минуя тот слой, который у вас сейчас зависает. Если сработает, мы будем точно знать, что виноват NetworkManager.

Illium
() автор топика
Ответ на: комментарий от Illium

пакеты iw и wpasupplicant установлены. поэтому не очень понимаю алармов на счет них. где там в PATH они не прописаны.

‘‘‘./FluxCast-0.2.7-x86_64.AppImage –protocol wfd –wfd-p2p-backend wpas’’’ дает ту же реакцию таймаута


# journalctl -u NetworkManager -b --no-pager --since "10 minutes ago" | tail -80
сен 27 00:00:47 ruslan NetworkManager[1182]: <info>  [1790456447.4027] device (p2p-dev-wlp4s0): Activation: starting connection 'FluxCast WFD' (30bead7c-820c-4f79-84af-9b719ae31142)
сен 27 00:00:47 ruslan NetworkManager[1182]: <info>  [1790456447.4027] audit: op="connection-add-activate" uuid="30bead7c-820c-4f79-84af-9b719ae31142" name="FluxCast WFD" pid=1449188 uid=1000 result="success"
сен 27 00:00:47 ruslan NetworkManager[1182]: <info>  [1790456447.4028] device (p2p-dev-wlp4s0): state change: disconnected -> prepare (reason 'none', managed-type: 'full')
сен 27 00:00:47 ruslan NetworkManager[1182]: <info>  [1790456447.4029] device (p2p-dev-wlp4s0): state change: prepare -> config (reason 'none', managed-type: 'full')
сен 27 00:00:49 ruslan NetworkManager[1182]: <info>  [1790456449.9483] device (p2p-dev-wlp4s0): P2P Group supplicant interface state: internal-starting -> completed
сен 27 00:00:49 ruslan NetworkManager[1182]: <info>  [1790456449.9486] device (p2p-dev-wlp4s0): state change: config -> ip-config (reason 'none', managed-type: 'full')
сен 27 00:00:50 ruslan NetworkManager[1182]: <info>  [1790456450.1852] dnsmasq-manager: starting dnsmasq...
сен 27 00:00:50 ruslan NetworkManager[1182]: <info>  [1790456450.1864] device (p2p-dev-wlp4s0): state change: ip-config -> ip-check (reason 'none', managed-type: 'full')
сен 27 00:00:50 ruslan dnsmasq[1449335]: started, version 2.93 cachesize 150
сен 27 00:00:50 ruslan dnsmasq[1449335]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset nftset auth DNSSEC loop-detect inotify dumpfile
сен 27 00:00:50 ruslan dnsmasq[1449335]: chown of PID file /run/nm-dnsmasq-p2p-wlp4s0-9.pid failed: please add capability CAP_CHOWN
сен 27 00:00:50 ruslan dnsmasq-dhcp[1449335]: DHCP, IP range 10.42.0.10 -- 10.42.0.254, lease time 1h
сен 27 00:00:50 ruslan dnsmasq[1449335]: reading /etc/resolv.conf
сен 27 00:00:50 ruslan dnsmasq[1449335]: using nameserver 127.0.2.2#53
сен 27 00:00:50 ruslan dnsmasq[1449335]: using nameserver 127.0.2.3#53
сен 27 00:00:50 ruslan dnsmasq[1449335]: cleared cache
сен 27 00:00:53 ruslan NetworkManager[1182]: <info>  [1790456453.0968] device (p2p-dev-wlp4s0): state change: ip-check -> secondaries (reason 'none', managed-type: 'full')
сен 27 00:00:53 ruslan NetworkManager[1182]: <info>  [1790456453.0969] device (p2p-dev-wlp4s0): state change: secondaries -> activated (reason 'none', managed-type: 'full')
сен 27 00:00:53 ruslan NetworkManager[1182]: <info>  [1790456453.0972] device (p2p-dev-wlp4s0): Activation: successful, device activated.
сен 27 00:00:54 ruslan NetworkManager[1182]: <info>  [1790456454.0815] policy: ipv6-pd: no device to obtain a subnet to share on p2p-dev-wlp4s0 from
сен 27 00:01:03 ruslan NetworkManager[1182]: <warn>  [1790456463.2934] device (p2p-dev-wlp4s0): Peer requested in connection is missing for too long, failing connection.
сен 27 00:01:03 ruslan NetworkManager[1182]: <info>  [1790456463.2934] device (p2p-dev-wlp4s0): state change: activated -> failed (reason 'peer-not-found', managed-type: 'full')
сен 27 00:01:03 ruslan NetworkManager[1182]: <warn>  [1790456463.3506] device (p2p-dev-wlp4s0): Activation: failed for connection 'FluxCast WFD'
сен 27 00:01:03 ruslan NetworkManager[1182]: <info>  [1790456463.4963] device (p2p-dev-wlp4s0): P2P Group supplicant interface state: completed -> internal-down
сен 27 00:01:03 ruslan NetworkManager[1182]: <info>  [1790456463.4963] device (p2p-dev-wlp4s0): state change: failed -> disconnected (reason 'supplicant-disconnect', managed-type: 'full')
сен 27 00:01:03 ruslan NetworkManager[1182]: <warn>  [1790456463.4964] device (p2p-dev-wlp4s0): error setting IPv4 forwarding to '0': Сеть не работает
сен 27 00:01:03 ruslan dnsmasq[1449335]: exiting on receipt of SIGTERM

milka ★
()
Ответ на: комментарий от milka

Вот теперь видно всё. Дело не в таймауте D-Bus и не в WARP.

00:00:53  Activation: successful, device activated
00:01:03  Peer requested in connection is missing for too long
00:01:03  state change: activated -> failed (reason 'peer-not-found')

Группа Wi-Fi Direct создалась нормально, а монитор в неё не зашёл. NetworkManager подождал десять секунд и сдался.

Причина почти наверняка в адресе. Ваш монитор виден как F2:70:4F:79:58:DA, а это локально назначенный, то есть случайный адрес. FluxCast записывает в соединение тот адрес, который увидел при сканировании, а Samsung успевает его сменить, пока идёт подключение. NM ищет старый и не находит.

Можете попробывать сейчас включить на мониторе режим зеркалирования экрана и сразу запускайте FluxCast, не давая ему полежать в этом режиме. Чем меньше времени между сканом и подключением, тем меньше шансов, что адрес успеет смениться. или если после неудачи пересканировать, адрес в списке скорее всего будет уже другой. Это и подтвердит диагноз.

Про iw и wpa_cli: вы правы, доктор врёт. Они лежат в /usr/sbin, а shutil.which их там не видит, если этого каталога нет в PATH процесса. Это наш баг в диагностике, поправим.

И спасибо за журнал, без него мы бы гадали дальше. Случай с меняющимся адресом у нас был для LG, теперь видно, что и Samsung так умеет.

Illium
() автор топика
Ответ на: комментарий от galanthus

Человек, активно работающий с ИИ, невольно может перенимать и использовать его стиль общения в повседневной жизни.

html-kernel
()
Ответ на: комментарий от html-kernel

Че то я переборщил со строгостью формулировок, каюсь xD на самом деле просто адски устал вчера, пока выковыривал эти таймстампы из журнала, да и поток PR и issue в репозиторий вчера на редкость огромный был

Illium
() автор топика
Ответ на: комментарий от Illium

включить на мониторе режим зеркалирования экрана

немного не понял этот момент. монитор, что к пк подключен или телевизор? когда я запускаю FluxCast, у меня не появляется этого запроса, как при гномовской утилите

почему F2:70:4F:79:58:DA считается случайно назначенным? при каждой попытке отображается только этот адрес. на телевизоре появляется окошко с надписью «соединение», значит ли это, что компуктер по верному адресу обратился? а ролтер не может мешать?

milka ★
()
Последнее исправление: milka (всего исправлений: 1)

Проверьте работу с приложением HaiCast (от Haier). Винда подключается, а Linux с этой программой — нет:

[FluxCast WFD] Starting NetworkManager Wi-Fi Direct scan on p2p-dev-wlp0s20f3 for 8s...
[FluxCast WFD] Wi-Fi Direct peer(s):
  [0] 7E:4D:8F:4C:8E:3B  DIRECT-3B-HP via NetworkManager
      not advertising Wi-Fi Display; if this is a TV, put it into Screen Share mode first
  [1] 86:25:19:32:E3:50  DIRECT-asM337x 387x 407x Series via NetworkManager
      not advertising Wi-Fi Display; if this is a TV, put it into Screen Share mode first
  [2] AA:16:9D:20:C8:C9  Haier Android TV FF Pro via NetworkManager
      WFD capability data detected
Select WFD peer [0]: 2
[FluxCast WFD RTSP] Server listening on 0.0.0.0:7236
[FluxCast WFD] P2P GO intent set to 0 (lower intent lets the TV be the group owner).
[FluxCast WFD] Connecting to Haier Android TV FF Pro via NetworkManager...
[FluxCast WFD] NetworkManager activation started: (objectpath '/org/freedesktop/NetworkManager/Settings/71', objectpath '/org/freedesktop/NetworkManager/ActiveConnection/19', @a{sv} {})
[FluxCast WFD] Waiting for NetworkManager P2P activation...
[FluxCast WFD] NM active connection: activating; p2p-dev-wlp0s20f3:config:0
[FluxCast WFD] NetworkManager P2P connection deactivated.
[FluxCast WFD] NetworkManager P2P device disconnected.
[FluxCast WFD] Restored P2P GO intent to 7.
[FluxCast WFD] ERROR: Timed out waiting for NetworkManager Wi-Fi Direct activation. Last status: activating; p2p-dev-wlp0s20f3:config:0

Wapieth ★★
()

Подключил в режиме chromecast - так там вообще отображается не то, что на экране (ну в смысле не в реальном времени, прыгает по таймлайну). И на экране телевизора какая-то полоса прокрутки, как будто это фильм транслируется. Если правильно помню, к тому же телевизору подключался через Chrome с того же компьютера, там такой полосы не было. Разве что задержка была. Но в Chrome с Linux не транслируется звук.

Wapieth ★★
()
Последнее исправление: Wapieth (всего исправлений: 1)
Ответ на: комментарий от milka

Извини за паузу, на этой неделе школа и на права сдавать буду, руки дошли только сейчас =[

По порядку.

Про монитор я имел в виду тот самый Smart Monitor M7, на который ты кастуешь. Включить зеркалирование на нём и сразу запускать.

Про отсутствие запроса: диалог выбора экрана приходит от портала, и уже после того как связь поднялась. У тебя до него просто не доходит, падает раньше, поэтому ты его и не видишь.

Про адрес. ты прав, а я поторопился. Бит локального администрирования у адресов Wi-Fi Direct выставлен сплошь и рядом по дизайну, сам по себе он ничего не доказывает. А раз адрес каждый раз один и тот же, версия про смену адреса между сканом и подключением не работает. Снимаю.

Про окошко «соединение»: да, это значит что обратились по верному адресу. Монитор запрос получил и отвечает.

По роутеру: сам он не мешает, Wi-Fi Direct идёт отдельным линком и через роутер не ходит. Но одна вещь есть. Карта у тебя одна, а каналы у подключения к роутеру и у P2P-линка разные, так что карта делит время между ними. Иногда на этом ломается. Попробуй отключиться от Wi-Fi совсем, именно отключиться, а не выключать адаптер, и запустить ещё раз.

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

Адрес стабильный, монитор отвечает. Значит пир не исчез, а исчез из списка NetworkManager. Я склоняюсь к варианту что монитор, приняв подключение, перестаёт себя анонсировать как доступного, а NM продолжает искать его в списке найденных и через десять секунд решает, что его нет. Это пока догадка, подтвердить её с моей стороны нечем. также про iw и wpa_cli мой косяк, это баг, завел уже issue под него. Твой журнал тоже отнёс на гитхаб, им занимается Jemo121, он в этом слое разбирается лучше меня =]

Illium
() автор топика

И ещё заметил такое. После завершения самого процесса fluxcast всё равно висели и грузили процессор явно запущенные им процессы ffmpeg (/usr/bin/ffmpeg -hide_banner -loglevel warning -y -thread_queue_size 1024 -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+0,0 -thread_queue_size 1024 -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor -map 0:v:0 -map 1:a:0 -vf format=yuv420p -c:v libx264 -preset veryfast -tune zerolatency -pix_fmt yuv420p -r 30 -g 30 -b:v 4M -maxrate 4M -bufsize 2M -c:a aac -b:a 128k -ac 2 -ar 48000 -f hls -hls_time 2 -hls_list_size 6 -hls_flags delete_segments -hls_segment_filename /tmp/fluxcast/stream%d.ts /tmp/fluxcast/stream.m3u8), пока я их не заметил и вручную не прибил.

Wapieth ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.