我刚刚安装了 raspbian buster 和 kodi 18.7 leia。我试图在我的 Rpi 和 kodi 上启动 upnp 客户端,以便使用 rpi upnp 客户端通过 windows 10 机器播放媒体。我之前在装有 kodi 18.6 leia 的 raspberry pi2 上使用它,没有任何问题。
现在只有在安装 kodi 后第一次使用 upnp 时,才能正常工作,然后重新启动 rpi4 kodi 后,可以正常工作,但没有 upnp 客户端或服务器。在 kodi 上,我看到它已启用,但 Windows 10 机器不再看到 upnp 客户端。
/home/pi/.kodi/userdata 和文件 upnpserver.xml 是
<upnpserver>
<UUID></UUID>
<Port>0</Port>
<MaxReturnedItems>0</MaxReturnedItems>
<UUIDRenderer>cb05649b-8f06-35ef-754b-a61361bdaa17</UUIDRenderer>
<PortRenderer>1186</PortRenderer>
端口 1186 已开放
这些端口由 kodi 打开
kodi.bin_ 513 pi 33u IPv4 17450 0t0 TCP *:1186 (LISTEN)
kodi.bin_ 513 pi 34u IPv6 17458 0t0 TCP [::1]:9090 (LISTEN)
kodi.bin_ 513 pi 44u IPv4 17445 0t0 TCP *:1513 (LISTEN)
kodi.bin_ 513 pi 51u IPv4 17459 0t0 TCP 127.0.0.1:9090 (LISTEN)
所以看起来应该可以工作,但没有
我已经禁用了 wlan,只使用 eth0 的有线连接。要禁用 wifi,我使用命令
rfkill block wifi
现在我在 ifconfig 上只有 eth0 和 lo
目前我不知道我能做些什么来让 upnp 重新开始工作,kodi 没有可能干扰 UPNP 的插件
也许有人可以帮忙
经过搜索我发现了这个奇怪的行为
也许与启动顺序有关
/etc/systemd/system/multi-user.target.wants/kodi.service
[Unit]
Description = Kodi Media Center
After = remote-fs.target network-online.target
Wants = network-online.target
[Service]
User = pi
Group = pi
Type = simple
ExecStart = /usr/bin/kodi-standalone
Restart = on-abort
RestartSec = 5
[Install]
WantedBy = multi-user.target
当我关闭 kodi 并在 shell 中手动输入“kodi”或 kodi-standalone 时,它就会启动,并且 upnp 开始工作...嗯
还有一件重要的事情,当我检查 kodi 打开的端口时,我发现 upnp 端口在手动启动 kodi 时排在第二位,并且 upnp 正在运行
sudo lsof -i -P -n | grep LISTEN |grep kodi
kodi.bin_ 1101 pi 36u IPv4 98108 0t0 TCP *:1517 (LISTEN)
kodi.bin_ 1101 pi 45u IPv4 98115 0t0 TCP *:1857 (LISTEN)
kodi.bin_ 1101 pi 48u IPv6 98121 0t0 TCP [::1]:9090 (LISTEN)
kodi.bin_ 1101 pi 49u IPv4 98122 0t0 TCP 127.0.0.1:9090 (LISTEN)
当 kodi 启动时,首先打开的是系统启动端口 1857(新的 upnp 端口),可能是上面有什么东西,不知道
答案1
我认为它与 raspberry pi 4 和 raspbian buster 的启动脚本有关
/etc/systemd/system/multi-user.target.wants/kodi.service
[Unit]
Description = Kodi Media Center
After = remote-fs.target network-online.target
Wants = network-online.target
[Service]
User = pi
Group = pi
Type = simple
ExecStart = /usr/bin/kodi-standalone
Restart = on-abort
RestartSec = 5
[Install]
WantedBy = multi-user.target
当系统使用 kodii 启动时,通过 SSH 登录并输入
sudo systemctl stop kodi
sudo systemctl start kodi
sudo lsof -i -P -n | grep LISTEN |grep kodi
kodi.bin_ 1173 pi 34u IPv4 183733 0t0 TCP *:1432 (LISTEN)
kodi.bin_ 1173 pi 48u IPv6 183752 0t0 TCP [::1]:9090 (LISTEN)
kodi.bin_ 1173 pi 50u IPv4 183743 0t0 TCP *:1184 (LISTEN)
kodi.bin_ 1173 pi 53u IPv4 183753 0t0 TCP 127.0.0.1:9090 (LISTEN)
kodi 和 upnp 又可以正常工作了,upnp 端口不同,所以当 kodi 随系统启动时,它就相关了。我认为这是解决这个问题的肮脏方法,但它确实有效,也许可以帮助其他人