Somewhat recently it seems, the power menu on the Arch ARM kodi-rpi package (17.1) only displays one item, “exit” whereas in the past, it contained an option to shutdown and reboot. The kodi user should be in the correct groups (see below). Seems like a dbus problem when I grep out ERROR I get:
Code:
19:24:12.859 T:1917653568 ERROR: DBus: Error org.freedesktop.PolicyKit1.Error.Failed - Action org.freedesktop.login1.power-off-multiple-sessions is not registered
19:24:12.865 T:1917653568 ERROR: DBus: Error org.freedesktop.PolicyKit1.Error.Failed - Action org.freedesktop.login1.reboot-multiple-sessions is not registered
19:24:12.872 T:1917653568 ERROR: DBus: Error org.freedesktop.PolicyKit1.Error.Failed - Action org.freedesktop.login1.inhibit-delay-sleep is not registered
19:24:12.879 T:1917653568 ERROR: DBus: Error org.freedesktop.DBus.Error.InvalidArgs - No such property 'CanSuspend'
19:24:12.880 T:1917653568 ERROR: DBus: Error org.freedesktop.DBus.Error.InvalidArgs - No such property 'CanHibernate'
19:24:13.095 T:1917653568 DEBUG: UDisks: org.freedesktop.DBus.Error.ServiceUnknown - The name org.freedesktop.UDisks was not provided by any .service files
19:24:13.095 T:1917653568 DEBUG: DeviceKit.Disks: org.freedesktop.DBus.Error.ServiceUnknown - The name org.freedesktop.DeviceKit.Disks was not provided by any .service files
19:24:14.290 T:1917653568 ERROR: Unable to load libcec.so.4, reason: libcec.so.4: cannot open shared object file: No such file or directory
Link to complete debug log. Any thoughts are appreciated.
Code:
% id kodi
uid=994(kodi) gid=994(kodi) groups=994(kodi),5(tty),6(disk),90(network),91(video),92(audio),93(optical),95(storage),97(input),98(power)
Note that the Arch ARM package does ship:
Code:
/etc/udev/rules.d/99-kodi.rules
SUBSYSTEM=="bcm2708_vcio",GROUP="video",MODE="0660"
SUBSYSTEM=="vc-sm",GROUP="video",MODE="0660"
SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"
SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0660"
And
Code:
/usr/share/polkit-1/rules.d/10-kodi.rules
polkit.addRule(function(action, subject) {
if (subject.user == "kodi") {
polkit.log("action=" + action);
polkit.log("subject=" + subject);
if (action.id.indexOf("org.freedesktop.login1.") == 0) {
return polkit.Result.YES;
}
if (action.id.indexOf("org.freedesktop.udisks.") == 0) {
return polkit.Result.YES;
}
}
});
Finally, kodi is started via the include kodi.service:
Code:
/usr/lib/systemd/system/kodi.service
[Unit]
Description = Starts an instance of Kodi
After = remote-fs.target
[Service]
User = kodi
Group = kodi
Type = simple
ExecStart = /usr/bin/kodi-standalone -l /run/lirc/lircd
Restart = on-failure
[Install]
WantedBy = multi-user.target