System service


JH
 

Hi,

The official ofono.inc recipe defines SYSTEMD_SERVICE_${PN} =
"ofono.service", but when I built the image, the system service does
not start ofono daemon automatically, I have to run the ofono daemon
manually. What I could be missing here? Here is the ofono recipes,
sorry if I need to ask ofono mailing list.

$ cat ofono.inc
HOMEPAGE = "http://www.ofono.org"
SUMMARY = "open source telephony"
DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux.
oFono supports speaking to telephony devices through specific drivers,
or with generic AT commands."
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \

file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"

inherit autotools pkgconfig update-rc.d systemd bluetooth
gobject-introspection-data

DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info"

INITSCRIPT_NAME = "ofono"
INITSCRIPT_PARAMS = "defaults 22"

PACKAGECONFIG ??= "\
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
"
PACKAGECONFIG[systemd] =
"--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}"

EXTRA_OECONF += "--enable-test"

SYSTEMD_SERVICE_${PN} = "ofono.service"

do_install_append() {
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
}

PACKAGES =+ "${PN}-tests"

RDEPENDS_${PN} += "dbus"
RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"

FILES_${PN} += "${systemd_unitdir}"
FILES_${PN}-tests = "${libdir}/${BPN}/test"
RDEPENDS_${PN}-tests = "python3 python3-dbus"
RDEPENDS_${PN}-tests += "${@bb.utils.contains('GI_DATA_ENABLED',
'True', 'python3-pygobject', '', d)}"

Thank you.

- jupiter


Tim Froehlich
 

Looks like it's dropping the service in ${sysconfdir}/init.d which resolves to /etc/init.d. I'm not sure that systemd won't look into init.d for services. The standard place to put them is ${D}/${systemd_system_unitdir}, which resolves to /lib/systemd/system. 

Also, check the "SYSTEMD_AUTO_ENABLE_pn-ofono" variable for that recipe. The systemd class sets it to "enable" by default, but something else could be overriding it and setting it to "disable".  Alternatively, confirm that the service isn't actually starting up and failing. It may be that you're restarting it once the system is fully booted and everything ofono needs is now ready.


On Thu, May 2, 2019 at 7:55 AM JH <jupiter.hce@...> wrote:
Hi,

The official ofono.inc recipe defines SYSTEMD_SERVICE_${PN} =
"ofono.service", but when I built the image, the system service does
not start ofono daemon automatically, I have to run the ofono daemon
manually. What I could be missing here? Here is the ofono recipes,
sorry if I need to ask ofono mailing list.

$ cat ofono.inc
HOMEPAGE = "http://www.ofono.org"
SUMMARY  = "open source telephony"
DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux.
oFono supports speaking to telephony devices through specific drivers,
or with generic AT commands."
LICENSE  = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \

file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"

inherit autotools pkgconfig update-rc.d systemd bluetooth
gobject-introspection-data

DEPENDS  = "dbus glib-2.0 udev mobile-broadband-provider-info"

INITSCRIPT_NAME = "ofono"
INITSCRIPT_PARAMS = "defaults 22"

PACKAGECONFIG ??= "\
    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
    "
PACKAGECONFIG[systemd] =
"--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}"

EXTRA_OECONF += "--enable-test"

SYSTEMD_SERVICE_${PN} = "ofono.service"

do_install_append() {
  install -d ${D}${sysconfdir}/init.d/
  install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
}

PACKAGES =+ "${PN}-tests"

RDEPENDS_${PN} += "dbus"
RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"

FILES_${PN} += "${systemd_unitdir}"
FILES_${PN}-tests = "${libdir}/${BPN}/test"
RDEPENDS_${PN}-tests = "python3 python3-dbus"
RDEPENDS_${PN}-tests += "${@bb.utils.contains('GI_DATA_ENABLED',
'True', 'python3-pygobject', '', d)}"

Thank you.

- jupiter
--
_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto


--
Tim Froehlich
Embedded Linux Engineer
215-218-8955


Henrik Lindblom <henriklindblomster@...>
 

> Looks like it's dropping the service in ${sysconfdir}/init.d which
> resolves to /etc/init.d. I'm not sure that systemd won't look into
> init.d for services. 

It doesn't. 

> The standard place to put them is ${D}/${systemd_system_unitdir},
> which resolves to /lib/systemd/system.

Systemd's unit search path is documented in


but the ones I've personally used most are /usr/lib/systemd/user and
/etc/systemd/system. These are a personal preference more than
anything else.

>> do_install_append() {
>>   install -d ${D}${sysconfdir}/init.d/
>>   install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
>> }

do_install() seems to be installing only non-systemd ofono shell
script in.

>> FILES_${PN} += "${systemd_unitdir}"

This line is redundant, AFAIK, since systemd.bbclass will handle
packaging for you, assuming you install the service files that you
advertise in SYSTEMD_SERVICE_${PN}. However, as I'm writing this from
memory, I recommend you skim through the class definition and check
for further details there.

Cheers,
Henrik


On Thu, May 2, 2019 at 8:28 PM Timothy Froehlich <tfroehlich@...> wrote:
Looks like it's dropping the service in ${sysconfdir}/init.d which resolves to /etc/init.d. I'm not sure that systemd won't look into init.d for services. The standard place to put them is ${D}/${systemd_system_unitdir}, which resolves to /lib/systemd/system. 

Also, check the "SYSTEMD_AUTO_ENABLE_pn-ofono" variable for that recipe. The systemd class sets it to "enable" by default, but something else could be overriding it and setting it to "disable".  Alternatively, confirm that the service isn't actually starting up and failing. It may be that you're restarting it once the system is fully booted and everything ofono needs is now ready.

On Thu, May 2, 2019 at 7:55 AM JH <jupiter.hce@...> wrote:
Hi,

The official ofono.inc recipe defines SYSTEMD_SERVICE_${PN} =
"ofono.service", but when I built the image, the system service does
not start ofono daemon automatically, I have to run the ofono daemon
manually. What I could be missing here? Here is the ofono recipes,
sorry if I need to ask ofono mailing list.

$ cat ofono.inc
HOMEPAGE = "http://www.ofono.org"
SUMMARY  = "open source telephony"
DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux.
oFono supports speaking to telephony devices through specific drivers,
or with generic AT commands."
LICENSE  = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \

file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee"

inherit autotools pkgconfig update-rc.d systemd bluetooth
gobject-introspection-data

DEPENDS  = "dbus glib-2.0 udev mobile-broadband-provider-info"

INITSCRIPT_NAME = "ofono"
INITSCRIPT_PARAMS = "defaults 22"

PACKAGECONFIG ??= "\
    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
    "
PACKAGECONFIG[systemd] =
"--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}"

EXTRA_OECONF += "--enable-test"

SYSTEMD_SERVICE_${PN} = "ofono.service"

do_install_append() {
  install -d ${D}${sysconfdir}/init.d/
  install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
}

PACKAGES =+ "${PN}-tests"

RDEPENDS_${PN} += "dbus"
RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"

FILES_${PN} += "${systemd_unitdir}"
FILES_${PN}-tests = "${libdir}/${BPN}/test"
RDEPENDS_${PN}-tests = "python3 python3-dbus"
RDEPENDS_${PN}-tests += "${@bb.utils.contains('GI_DATA_ENABLED',
'True', 'python3-pygobject', '', d)}"

Thank you.

- jupiter
--
_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto


--
Tim Froehlich
Embedded Linux Engineer
215-218-8955
--
_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto


Lukasz Zemla <Lukasz.Zemla@...>
 

On Thursday, May 02, 2019 8:15 PM, Henrik Lindblom wrote:
FILES_${PN} += "${systemd_unitdir}"
This line is redundant, AFAIK, since systemd.bbclass will handle
packaging for you, assuming you install the service files that you
advertise in SYSTEMD_SERVICE_${PN}. However, as I'm writing this from
memory, I recommend you skim through the class definition and check
for further details there.
I confirm - this line is not required (at least at Yocto 2.6).

Best regards,
Lukasz Zemla


Andreas Müller
 

On Fri, May 3, 2019 at 10:22 AM JH <jupiter.hce@...> wrote:

Hi Andreas,

In cases like these:

* expecting sytemd starting service automatically
* something went wrong

I ask systemd for it with 'systemctl status <service>'

So what does 'systemctl status ofono' say?
You right, it was aborted, but it had no problems to be started
manually, a little mysterious, need further investigation. Thanks
Andreas.

# systemctl status ofono
��● ofono.service - Telephony service
Loaded: loaded
(8;;file://solarevk/lib/systemd/system/ofono.service/lib/systemd/system/ofono.service8;;;
enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2019-05-03 01:01:04 UTC; 7h ago
Process: 218 ExecStart=/usr/sbin/ofonod -n (code=exited, status=1/FAILURE)
Main PID: 218 (code=exited, status=1/FAILURE)

May 03 01:01:01 solarevk systemd[1]: Starting Telephony service...
May 03 01:01:01 solarevk ofonod[218]: oFono version 1.24
May 03 01:01:01 solarevk systemd[1]: Started Telephony service.
May 03 01:01:03 solarevk ofonod[218]: Aborting (signal 11) [/usr/sbin/ofonod]
May 03 01:01:04 solarevk systemd[1]: ofono.service: Main process
exited, co��…LURE
May 03 01:01:04 solarevk systemd[1]: ofono.service: Failed with result
'exi��…de'.
Hint: Some lines were ellipsized, use -l to show in full.

# systemctl status ofono
��● ofono.service - Telephony service
Loaded: loaded (8;;file://solarevk/lib/systemd/system/ofono.service/lib/syst)
Active: active (running) since Fri 2019-05-03 08:18:59 UTC; 2s ago
Main PID: 275 (ofonod)
CGroup: /system.slice/ofono.service
��└��─275 /usr/sbin/ofonod -n

May 03 08:18:59 solarevk systemd[1]: Starting Telephony service...
May 03 08:18:59 solarevk ofonod[275]: oFono version 1.24
May 03 08:18:59 solarevk systemd[1]: Started Telephony service.
May 03 08:19:00 solarevk ofonod[275]: Interface org.ofono.AllowedAccessPoin��…lt
Hint: Some lines were ellipsized, use -l to show in full.
Accidentally I made this a private discussion - make it public again
so others with similar issues might not need to ask again :)

Andreas