benzea / gnome-network-displays

Miracast implementation for GNOME
GNU General Public License v3.0
368 stars 39 forks source link

"PA failed" and "Failed to create portal session" on arch linux #107

Closed leberknecht closed 4 years ago

leberknecht commented 4 years ago

Hi, im getting this:

[leberle-arch build]# src/gnome-network-displays 

** (gnome-network-displays:38665): WARNING **: 15:18:00.011: Error initializing pulse audio sink: PA failed

** (gnome-network-displays:38665): WARNING **: 15:18:00.015: Error initing screencast portal: Failed to create portal session (response: 2)

** (gnome-network-displays:38665): WARNING **: 15:18:00.015: Falling back to X11! You need to fix your setup to avoid issues (XDG Portals and/or mutter screencasting support)!

Then the Network Displays window is shown but has no entries (expected to see my Telefunken-TV there, which does work with my Android phone) System is Manjaro/Arch, 19.0.2, kernel is 5.4.31-1-MANJARO, xdg-desktop-portal-gtk is installed, network-manager is version 1.22.10-1. Any hints how i can debug this further?

benzea commented 4 years ago

Please have a look at the updated README. I hope that is helpful.

leberknecht commented 4 years ago

Hm, im not sure what i changed, but the pulseaudio problem seems to be goone :) Unfortunately the tv is still not listed.. But a bit more information:

% G_MESSAGES_DEBUG=all src/gnome-network-displays
(gnome-network-displays:55684): GLib-GIO-DEBUG: 15:43:05.423: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
(gnome-network-displays:55684): GLib-DEBUG: 15:43:05.465: unsetenv() is not thread-safe and should not be used after threads are created
(gnome-network-displays:55684): Gtk-DEBUG: 15:43:05.465: Connecting to session manager
(gnome-network-displays:55684): Gtk-DEBUG: 15:43:05.466: Failed to get the GNOME session proxy: The name org.gnome.SessionManager is not owned
** (gnome-network-displays:55684): DEBUG: 15:43:05.537: NdScreencastPortal: Aquired Portal proxy
** (gnome-network-displays:55684): DEBUG: 15:43:05.537: task is: 0x55ae374e6820
** (gnome-network-displays:55684): DEBUG: 15:43:05.538: NdPulseaudio: Querying sink info by name
** (gnome-network-displays:55684): DEBUG: 15:43:05.538: NdPulseaudio: Error querying sink info
** (gnome-network-displays:55684): DEBUG: 15:43:05.538: NdPulseaudio: Got a sink info for the expected name
** (gnome-network-displays:55684): DEBUG: 15:43:05.542: NdScreencastPortal: Received CreateSession response

** (gnome-network-displays:55684): WARNING **: 15:43:05.542: Error initing screencast portal: Failed to create portal session (response: 2)

** (gnome-network-displays:55684): WARNING **: 15:43:05.542: Falling back to X11! You need to fix your setup to avoid issues (XDG Portals and/or mutter screencasting support)!
** (gnome-network-displays:55684): DEBUG: 15:43:05.554: WFDP2PRegistry: Found a new device, creating provider
** (gnome-network-displays:55684): DEBUG: 15:43:05.554: WFDP2PProvider: Ignoring peer "DIRECT-8bC48x Series" (86:25:19:98:09:87) as it has no WFDIEs set
** (gnome-network-displays:55684): DEBUG: 15:43:05.554: WfdP2PProvider: Discover is now set to 1
** (gnome-network-displays:55684): DEBUG: 15:43:05.555: WFDP2PProvider: Ignoring peer "DIRECT-8bC48x Series" (86:25:19:98:09:87) as it has no WFDIEs set
** (gnome-network-displays:55684): DEBUG: 15:43:05.556: WFDP2PRegistry: Got NMClient

The suggested command gives me:

# gdbus call --system --dest fi.w1.wpa_supplicant1 --object-path /fi/w1/wpa_supplicant1 --method org.freedesktop.DBus.Properties.Get fi.w1.wpa_supplicant1 Capabilities
(<['ap', 'ibss-rsn', 'p2p', 'interworking', 'pmf', 'ft', 'sha384']>,)

so i guess that does look fine?

benzea commented 4 years ago

@leberknecht there is another suggested command to check that WIFI_DISPLAY is supported :)

leberknecht commented 4 years ago

Aye!

[leberle-arch ~]# gdbus call --system --dest fi.w1.wpa_supplicant1 --object-path /fi/w1/wpa_supplicant1 --method org.freedesktop.DBus.Properties.Get fi.w1.wpa_supplicant1 WFDIEs
(<[byte 0x00, 0x00, 0x06, 0x00, 0x90, 0x1c, 0x44, 0x00, 0xc8]>,)
[leberle-arch ~]# gdbus call --system --dest fi.w1.wpa_supplicant1 --object-path /fi/w1/wpa_supplicant1 --method org.freedesktop.DBus.Properties.Set fi.w1.wpa_supplicant1 WFDIEs "<@ay [0x00, 0x00, 0x06, 0x00, 0x90, 0x1c, 0x44, 0x00, 0xc8]>"
()
[leberle-arch ~]# iw phy phyX add interface mon0 type monitor
command failed: No such file or directory (-2)
benzea commented 4 years ago

Heh, you need to replace the X with the real number … probably 0.

One thing you could check, we do see a peer, i.e. "DIRECT-8bC48x Series", is that the TV?

leberknecht commented 4 years ago

Hm, no, i dont think so, the DIRECT-8bC48x Series is there, no matter if the TV is turned on or not. The iw phy phy0 add interface mon0 type monitor still seems to be wrong syntax:

% iw phy phy0 add interface mon0 type monitor       
Usage:  iw [options] command
Options:
    --debug     enable netlink debugging
    --version   show version (5.4)
Commands:
    dev <devname> ap stop 
        Stop AP functionality
...

Info about the wlan device:

% iw phy phy0 info
Wiphy phy0
    max # scan SSIDs: 9
    max scan IEs length: 2304 bytes
    max # sched scan SSIDs: 0
    max # match sets: 0
    max # scan plans: 1
    max scan plan interval: -1
    max scan plan iterations: 0
    Retry short limit: 7
    Retry long limit: 4
    Coverage class: 0 (up to 0m)
    Supported Ciphers:
...

I think add and interface might be switched in the readme, but looks like my interface doesnt support capturing..? =>

% sudo iw phy phy0 interface add mon0 type monitor
command failed: Operation not supported (-95)

i guess thats the end of the story then? :/