UPower illumos port

Alexander Pyhalov alp at rsu.ru
Mon Jan 22 09:23:01 UTC 2018


Hello, guys.

I've created an illumos upower backend, which seems to work on several 
notebooks where I've tested it.

The code itself lives in oi-userland repository: 
https://github.com/OpenIndiana/oi-userland/pull/3869 (I point to the PR 
with upower integration, as it has some history).

UPower illumos backend is based on OpenBSD backend. It supports systems 
with one battery and one AC device (or without them :)).
UPower daemon is supposed to start at boot as separate service, as we 
don't support services, automatically activated by dbus requests.

There are several patches:

Cosmetic changes:
1) 
https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/sysutils/upower/patches/01-as-needed.patch 
- this adds check if ld supports '--as-needed' option

2) 
https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/sysutils/upower/patches/03-up-backend-common.c.patch 
- We have rather ancient version of ConsoleKit and this one is intended 
to map 'logind-style' ConsoleKit interfaces to older interfaces (I have 
no intention to upstream it)

3) 
https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/sysutils/upower/patches/04-upower-glib-crash.patch 
- this patch allowed us to avoid crashes of upower client and 
mate-power-manager when upower service was turned off - client 
applications expect to get list of devices and don't handle NULL properly.

The main patch:
https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/sysutils/upower/patches/02-backend-illumos.patch

The most methods are wrappers around minor_device_ioctl() function, 
which looks for acpi_drv device of necessary kind and fires requested 
IOCTL on it. We currently look only on first found device of kind "ac" 
and "battery". Luckily, this covers most of notebooks.

I'm interested in getting some reviews and upstreaming it.
-- 
Best regards,
Alexander Pyhalov,
system administrator of Southern Federal University IT department


More information about the devkit-devel mailing list