Permitir que o Rygel fale com o NetworkManager através do DBUS?

2

Estou tentando executar Rygel , uma mídia UPNP servidor, em um sistema headless do Fedora 20. Instalei o Rygel e criei um usuário dedicado e systemd unit para ele. Rygel começa mas não está escutando na porta que eu pedi. Eu acho que isso é porque ele não consegue obter uma lista de interfaces de rede de NetworkManager . Como posso dar permissão para falar com o NetworkManager sobre o DBUS?

NOTA: Tanto NetworkManager como dbus-daemon estão confirmados em execução.

Saída da inicialização do Rygel:

Feb 02 19:13:08 inspiron systemd[1]: Starting Rygel DLNA server...
Feb 02 19:13:08 inspiron systemd[1]: Started Rygel DLNA server.
Feb 02 19:13:09 inspiron rygel[2276]: Rygel-Message: rygel-main.vala:87: Rygel v0.20.3 starting…
Feb 02 19:13:09 inspiron dbus-daemon[465]: dbus[465]: [system] Rejected send message, 3 matched rules; type="method_call", sender=":1.95" (uid=1001 pid=2276 comm="/usr/bin/rygel -c /etc/rygel.conf ") interface="org.freedesktop.NetworkManager" member="GetDevices" error name="(unset)" requested_reply="0" destination=":1.12" (uid=0 pid=566 comm="/usr/sbin/NetworkManager --no-daemon ")
Feb 02 19:13:09 inspiron dbus[465]: [system] Rejected send message, 3 matched rules; type="method_call", sender=":1.95" (uid=1001 pid=2276 comm="/usr/bin/rygel -c /etc/rygel.conf ") interface="org.freedesktop.NetworkManager" member="GetDevices" error name="(unset)" requested_reply="0" destination=":1.12" (uid=0 pid=566 comm="/usr/sbin/NetworkManager --no-daemon ")
Feb 02 19:13:09 inspiron rygel[2276]: ** (rygel:2276): WARNING **: Error fetching list of devices: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 3 matched rules; type="method_call", sender=":1.95" (uid=1001 pid=2276 comm="/usr/bin/rygel -c /etc/rygel.conf ") interface="org.freedesktop.NetworkManager" member="GetDevices" error name="(unset)" requested_reply="0" destination=":1.12" (uid=0 pid=566 comm="/usr/sbin/NetworkManager --no-daemon ")
Feb 02 19:13:09 inspiron rygel[2276]: Rygel-Message: New plugin 'MediaExport' available

Minha configuração Rygel systemd :

[Unit]
Description=Rygel DLNA server
After=syslog.target

[Service]
User=rygel
Group=rygel
ExecStart=/usr/bin/rygel -c /etc/rygel.conf

[Install]
WantedBy=multi-user.target

Minha configuração de rygel (ligeiramente redigida):

[general]
upnp-enabled=true
video-upload-folder=@VIDEOS@
music-upload-folder=@MUSIC@
picture-upload-folder=@PICTURES@
media-engine=librygel-media-engine-gst.so
interface=192.0.2.100
port=49152
log-level=*:5
allow-upload=false
allow-deletion=false

[GstMediaEngine]
transcoders=mp3;lpcm;mp2ts;wmv;aac;avc

[Renderer]
image-timeout = 15

[MediaExport]
enabled=true
title=@REALNAME@'s media
uris=/path/to/media
extract-metadata=true
monitor-changes=true
virtual-folders=true

[Tracker]
enabled=false

[Playbin]
enabled=false

[ZDFMediathek]
enabled=false

[GstLaunch]
enabled=false

[Test]
enabled=false

[ExampleServerPluginVala]
enabled=false

[ExampleServerPluginC]
enabled=false

[ExampleRendererPluginVala]
enabled=false

[ExampleRendererPluginC]
enabled=false

[MPRIS]
enabled=false

[External]
enabled=fals
    
por sciurus 03.02.2014 / 02:31

2 respostas

2

O problema é que os métodos específicos do NetworkManager dbus usados pelo Rygel requerem at_console de autorização. Este , aparentemente desatualizado, atributo antecede o polkit e é definido através de vários módulos pam durante login e herdado por todos os processos filhos. Como o systemd é incapaz de definir este atributo e o Rygel é iniciado como um usuário do sistema (não-console), é negado o acesso aos métodos dbus necessários do NetworkManager.

A boa notícia é que o fedora está coordenando a remoção da política at_console dbus entre vários pacotes. O arquivo de política fornecido no NetworkManager 0.9.9.1 funciona perfeitamente com a configuração que você descreve . Se você não puder atualizar, substitua /etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf (pode depender da distribuição) com upstream org.freedesktop.NetworkManager.conf .

    
por 28.07.2014 / 07:46
0

Eu encontrei este post que soa como o que você está procurando. É intitulado: Configurando o rygel no seu sistema Fedora .

OBSERVAÇÃO: O seguinte foi extraído dessa postagem do blog

  1. Instalar pacotes

    $ sudo yum install rygel tumbler gupnp-av
    

    Tumbler is a dbus thumbnailer. If you don’t install it, rygel gives an error saying a dbus thumbnailer isn’t available. It also gives an error saying it couldn’t find “/usr/share/gupnp-av/didl-lite-v2.xsd”, and the gupnp-av package provides this. I’ve got to look into both these and see if they should be required by rygel by default.

  2. Copiar arquivo de configuração

    $ cp /etc/rygel.conf ~/.config/rygel.conf
    

    Modify the config file. For example, I enabled the tracker plugin since I’m on gnome3. An important change is to use a fixed port, so you always know which one needs to be opened in your firewall. I randomly picked 65530. You can pick any that isn’t already reserved.

  3. Abra as portas do firewall (UDP: 1900 e TCP: 65530)

    $ sudo firewall-cmd --add-port=1900/udp
    $ sudo firewall-cmd --add-port=65530/tcp
    
    Veja os resultados
    $ sudo firewall-cmd --list-ports
    1900/udp 65530/tcp
    
por 03.02.2014 / 03:56