Discussion:
[yocto] Removing hostapd init file
Kristupas Savickas
2018-10-23 06:03:47 UTC
Permalink
Greetings,

I'm trying to remove the hostapd init file as I'll handle startup of it
on my own. I've created a .bbappend file in my layer to do this:

do_install_append() {
    rm -rf ${D}${sysconfdir}/init.d
}

However, this results in a compilation warning when building my image
and the ipk-postinst is still being run on my target:

WARNING: tlt-image-1.0-r0 do_rootfs: hostapd.postinst returned 1,
marking as unpacked only, configuration required on target.
WARNING: tlt-image-1.0-r0 do_rootfs: Intentionally failing
postinstall scriptlets of ['hostapd'] to defer them to first boot is
deprecated. Please place them into pkg_postinst_ontarget_${PN} ().
If deferring to first boot wasn't the intent, then scriptlet failure
may mean an issue in the recipe, or a regression elsewhere.
Details of the failure are in
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/log.do_rootfs.
WARNING: tlt-image-1.0-r0 do_rootfs: [log_check] tlt-image: found 1
warning message in the logfile:
[log_check] WARNING: Intentionally failing postinstall scriptlets of
['hostapd'] to defer them to first boot is deprecated. Please place
them into pkg_postinst_ontarget_${PN} ().


I tried setting INITSCRIPT_NAME to "" in my .bbappend, but it fails with
an error during do_rootfs task of my image:

cat
build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/log.do_rootfs.24919
| grep hostapd
NOTE: Found hostapd-dbg_2.6-r0_armv7ahf-neon.ipk in Packages, but
mtime differs - re-reading
Found hostapd-dev_2.6-r0_armv7ahf-neon.ipk in Packages, but mtime
differs - re-reading
Found hostapd_2.6-r0_armv7ahf-neon.ipk in Packages, but mtime
differs - re-reading
NOTE: Installing the following packages: android-system-core-adbd
android-system-core-liblog android-system-core-usb ap6212 avlcommd
base-files base-passwd boot-config config-backup curl dnsmasq
dropbear ethtool eventslog factory-restore firewall3 fsl-rc-local
gps-control gps-utils gpsd gpsd-conf gsmd hostapd iio-utils iiod
iproute2 iptables iputils iw kernel-modules libcutils0 libglib-2.0-0
libnl-3-200 libstdc++6 libtlt-lua libxml2 lsm6dsl-rebind lsqlite3
luci lucihttp mnf-info motion-monitor mtd-utils-ubifs netifd openssl
os-release packagegroup-core-boot perl ppp preinit procd qmuxd
recgend rpcd run-postinsts shadow sms-utilities sqlite3 storage
sysntpd system sysup tlt-base-files tlt-connection-manager
tlt-eventslog-lua tzdata ubus uhttpd update-rc.d ustream-ssl
NOTE:
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/recipe-sysroot-native/usr/bin/opkg
--volatile-cache -f
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/opkg.conf
-t
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/ipktemp/
-o
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/rootfs
--force_postinstall --prefer-arch-to-version
--no-install-recommends  --force-overwrite install
android-system-core-adbd android-system-core-liblog
android-system-core-usb ap6212 avlcommd base-files base-passwd
boot-config config-backup curl dnsmasq dropbear ethtool eventslog
factory-restore firewall3 fsl-rc-local gps-control gps-utils gpsd
gpsd-conf gsmd hostapd iio-utils iiod iproute2 iptables iputils iw
kernel-modules libcutils0 libglib-2.0-0 libnl-3-200 libstdc++6
libtlt-lua libxml2 lsm6dsl-rebind lsqlite3 luci lucihttp mnf-info
motion-monitor mtd-utils-ubifs netifd openssl os-release
packagegroup-core-boot perl ppp preinit procd qmuxd recgend rpcd
run-postinsts shadow sms-utilities sqlite3 storage sysntpd system
sysup tlt-base-files tlt-connection-manager tlt-eventslog-lua tzdata
ubus uhttpd update-rc.d ustream-ssl
ERROR: Unable to install packages. Command
'/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/recipe-sysroot-native/usr/bin/opkg
--volatile-cache -f
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/opkg.conf
-t
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/ipktemp/
-o
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/rootfs
--force_postinstall --prefer-arch-to-version
--no-install-recommends  --force-overwrite install
android-system-core-adbd android-system-core-liblog
android-system-core-usb ap6212 avlcommd base-files base-passwd
boot-config config-backup curl dnsmasq dropbear ethtool eventslog
factory-restore firewall3 fsl-rc-local gps-control gps-utils gpsd
gpsd-conf gsmd hostapd iio-utils iiod iproute2 iptables iputils iw
kernel-modules libcutils0 libglib-2.0-0 libnl-3-200 libstdc++6
libtlt-lua libxml2 lsm6dsl-rebind lsqlite3 luci lucihttp mnf-info
motion-monitor mtd-utils-ubifs netifd openssl os-release
packagegroup-core-boot perl ppp preinit procd qmuxd recgend rpcd
run-postinsts shadow sms-utilities sqlite3 storage sysntpd system
sysup tlt-base-files tlt-connection-manager tlt-eventslog-lua tzdata
ubus uhttpd update-rc.d ustream-ssl' returned 255:
Installing hostapd (2.6) on root
Downloading
file:/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/deploy/ipk/armv7ahf-neon/hostapd_2.6-r0_armv7ahf-neon.ipk.
To remove package debris, try `opkg remove hostapd`.
To re-attempt the install, try `opkg install hostapd`.
 * preinst_configure: Aborting installation of hostapd.

Any pointers of how I could accomplish my goal?
Uwe Geuder
2018-11-01 10:06:44 UTC
Permalink
Post by Kristupas Savickas
Greetings,
do_install_append() {
rm -rf ${D}${sysconfdir}/init.d
}
However, this results in a compilation warning when building my image
[...]
Post by Kristupas Savickas
I tried setting INITSCRIPT_NAME to "" in my .bbappend, but it fails
[...]

I guess the problem is that the recipe inherits update-rc.d class and
that class wants to work with the init script. Unfortunately
uninheriting a class in a bbappend is not possible AFAIK. I am not
familiar with the details of the class whether there is a way to tell it
to do nothing.
Post by Kristupas Savickas
Any pointers of how I could accomplish my goal?
What about

do_install_append() {
(echo "#!/bin/sh" ; echo true) > ${D}${sysconfdir}/init.d/hostapd
}


Just guessing. Untested and I have not worked with sysv init for
years... Maybe update-rc.d requires the typcial comment section at the
beginning. If so you just add it.

Or actually if update-rc.d refers to the comment section in the
beginning of the script you could add a patch that changes the
Default-Start: value to empty (or some runlevel you do not use).

Regards,

Uwe Geuder
Neuro Event Labs Oy
Tampere, Finland
uwe.gexder at neuroeventlabs.com (Bot check: fix one obvious typo)
--
Joshua Watt
2018-11-01 17:38:46 UTC
Permalink
Post by Kristupas Savickas
Greetings,
I'm trying to remove the hostapd init file as I'll handle startup
of it on my own. I've created a .bbappend file in my layer to
do
Post by Kristupas Savickas
do_install_append() {
rm -rf ${D}${sysconfdir}/init.d
}
However, this results in a compilation warning when building my
Post by Kristupas Savickas
WARNING: tlt-image-1.0-r0 do_rootfs: hostapd.postinst
returned
1, marking as unpacked only, configuration required on
target.
WARNING: tlt-image-1.0-r0 do_rootfs: Intentionally failing
postinstall scriptlets of ['hostapd'] to defer them to
first
boot is deprecated. Please place them into
pkg_postinst_ontarget_${PN} ().
If deferring to first boot wasn't the intent, then
scriptlet
failure may mean an issue in the recipe, or a regression
elsewhere.
Details of the failure are in
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-
r0/temp/log.do_rootfs.
[log_check] WARNING: Intentionally failing postinstall
scriptlets of ['hostapd'] to defer them to first boot is
deprecated. Please place them into
pkg_postinst_ontarget_${PN}
().
I tried setting INITSCRIPT_NAME to "" in my .bbappend, but it
Post by Kristupas Savickas
cat
build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-
r0/temp/log.do_rootfs.24919
| grep hostapd
NOTE: Found hostapd-dbg_2.6-r0_armv7ahf-neon.ipk in Packages, but
mtime differs - re-reading
Found hostapd-dev_2.6-r0_armv7ahf-neon.ipk in Packages, but mtime
differs - re-reading
Found hostapd_2.6-r0_armv7ahf-neon.ipk in Packages, but mtime
differs - re-reading
NOTE: Installing the following packages: android-system-core-
adbd
android-system-core-liblog android-system-core-usb ap6212 avlcommd
base-files base-passwd boot-config config-backup curl dnsmasq
dropbear ethtool eventslog factory-restore firewall3 fsl-rc-
local
gps-control gps-utils gpsd gpsd-conf gsmd hostapd iio-utils iiod
iproute2 iptables iputils iw kernel-modules libcutils0
libglib-2.0-0 libnl-3-200 libstdc++6 libtlt-lua libxml2
lsm6dsl-rebind lsqlite3 luci lucihttp mnf-info motion-monitor
mtd-utils-ubifs netifd openssl os-release packagegroup-core-
boot
perl ppp preinit procd qmuxd recgend rpcd run-postinsts
shadow
sms-utilities sqlite3 storage sysntpd system sysup tlt-base-
files
tlt-connection-manager tlt-eventslog-lua tzdata ubus uhttpd
update-rc.d ustream-ssl
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/recipe-sysroot-
native/usr/bin/opkg
--volatile-cache -f
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/opkg.conf
-t
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/ipktemp/
-o
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/rootfs
--force_postinstall --prefer-arch-to-version
--no-install-recommends --force-overwrite install
android-system-core-adbd android-system-core-liblog
android-system-core-usb ap6212 avlcommd base-files base-
passwd
boot-config config-backup curl dnsmasq dropbear ethtool eventslog
factory-restore firewall3 fsl-rc-local gps-control gps-utils gpsd
gpsd-conf gsmd hostapd iio-utils iiod iproute2 iptables iputils iw
kernel-modules libcutils0 libglib-2.0-0 libnl-3-200
libstdc++6
libtlt-lua libxml2 lsm6dsl-rebind lsqlite3 luci lucihttp mnf-
info
motion-monitor mtd-utils-ubifs netifd openssl os-release
packagegroup-core-boot perl ppp preinit procd qmuxd recgend rpcd
run-postinsts shadow sms-utilities sqlite3 storage sysntpd system
sysup tlt-base-files tlt-connection-manager tlt-eventslog-lua
tzdata ubus uhttpd update-rc.d ustream-ssl
ERROR: Unable to install packages. Command
'/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/recipe-sysroot-
native/usr/bin/opkg
--volatile-cache -f
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/opkg.conf
-t
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/ipktemp/
-o
/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/rootfs
--force_postinstall --prefer-arch-to-version
--no-install-recommends --force-overwrite install
android-system-core-adbd android-system-core-liblog
android-system-core-usb ap6212 avlcommd base-files base-
passwd
boot-config config-backup curl dnsmasq dropbear ethtool eventslog
factory-restore firewall3 fsl-rc-local gps-control gps-utils gpsd
gpsd-conf gsmd hostapd iio-utils iiod iproute2 iptables iputils iw
kernel-modules libcutils0 libglib-2.0-0 libnl-3-200
libstdc++6
libtlt-lua libxml2 lsm6dsl-rebind lsqlite3 luci lucihttp mnf-
info
motion-monitor mtd-utils-ubifs netifd openssl os-release
packagegroup-core-boot perl ppp preinit procd qmuxd recgend rpcd
run-postinsts shadow sms-utilities sqlite3 storage sysntpd system
sysup tlt-base-files tlt-connection-manager tlt-eventslog-lua
Installing hostapd (2.6) on root
Downloading
file:/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-
glibc/deploy/ipk/armv7ahf-neon/hostapd_2.6-r0_armv7ahf-neon.ipk.
To remove package debris, try `opkg remove hostapd`.
To re-attempt the install, try `opkg install hostapd`.
* preinst_configure: Aborting installation of hostapd.
Any pointers of how I could accomplish my goal?
We override INITSCRIPT_PARAMS in a bbappend like so:

INITSCRIPT_PARAMS = "stop 20 0 1 0 ."

Seems to work OK.
--
Joshua Watt <***@gmail.com>
Darcy Watkins
2018-11-01 18:55:02 UTC
Permalink
Hi,

I have tried schemes like these and found that although they appear to work during rootfs generation, it can result in RPM transaction failures if you try to perform in-place upgrades using RPMs. The post install scriptlets can fail as they attempt to run the update-rc.d command, passing bad (or missing) parms.

Fortunately for this particular case there is a hook variable that is used to leep sysvinit out of the way when using system (or other alternative). I fixed it by adding the following to my bbappend


INHIBIT_UPDATERCD_BBCLASS = “1”



Regards,

Darcy

Darcy Watkins :: Senior Staff Engineer, Firmware

SIERRA WIRELESS
Direct +1 604 233 7989 :: Fax +1 604 231 1109 :: Main +1 604 231 1100
13811 Wireless Way :: Richmond, BC Canada V6V 3A4
[P2]
***@sierrawireless.com<mailto:***@sierrawireless.com> :: www.sierrawireless.com<http://www.sierrawireless.com/>

From: yocto-***@yoctoproject.org <yocto-***@yoctoproject.org> On Behalf Of Joshua Watt
Sent: November-01-18 10:39 AM
To: Kristupas Savickas <***@teltonika.lt>; ***@yoctoproject.org
Subject: Re: [yocto] Removing hostapd init file

On Tue, 2018-10-23 at 09:03 +0300, Kristupas Savickas wrote:

Greetings,

I'm trying to remove the hostapd init file as I'll handle startup of it on my own. I've created a .bbappend file in my layer to do this:

do_install_append() {
rm -rf ${D}${sysconfdir}/init.d
}

However, this results in a compilation warning when building my image and the ipk-postinst is still being run on my target:

WARNING: tlt-image-1.0-r0 do_rootfs: hostapd.postinst returned 1, marking as unpacked only, configuration required on target.
WARNING: tlt-image-1.0-r0 do_rootfs: Intentionally failing postinstall scriptlets of ['hostapd'] to defer them to first boot is deprecated. Please place them into pkg_postinst_ontarget_${PN} ().
If deferring to first boot wasn't the intent, then scriptlet failure may mean an issue in the recipe, or a regression elsewhere.
Details of the failure are in /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/log.do_rootfs.
WARNING: tlt-image-1.0-r0 do_rootfs: [log_check] tlt-image: found 1 warning message in the logfile:
[log_check] WARNING: Intentionally failing postinstall scriptlets of ['hostapd'] to defer them to first boot is deprecated. Please place them into pkg_postinst_ontarget_${PN} ().



I tried setting INITSCRIPT_NAME to "" in my .bbappend, but it fails with an error during do_rootfs task of my image:
cat build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/log.do_rootfs.24919 | grep hostapd
NOTE: Found hostapd-dbg_2.6-r0_armv7ahf-neon.ipk in Packages, but mtime differs - re-reading
Found hostapd-dev_2.6-r0_armv7ahf-neon.ipk in Packages, but mtime differs - re-reading
Found hostapd_2.6-r0_armv7ahf-neon.ipk in Packages, but mtime differs - re-reading
NOTE: Installing the following packages: android-system-core-adbd android-system-core-liblog android-system-core-usb ap6212 avlcommd base-files base-passwd boot-config config-backup curl dnsmasq dropbear ethtool eventslog factory-restore firewall3 fsl-rc-local gps-control gps-utils gpsd gpsd-conf gsmd hostapd iio-utils iiod iproute2 iptables iputils iw kernel-modules libcutils0 libglib-2.0-0 libnl-3-200 libstdc++6 libtlt-lua libxml2 lsm6dsl-rebind lsqlite3 luci lucihttp mnf-info motion-monitor mtd-utils-ubifs netifd openssl os-release packagegroup-core-boot perl ppp preinit procd qmuxd recgend rpcd run-postinsts shadow sms-utilities sqlite3 storage sysntpd system sysup tlt-base-files tlt-connection-manager tlt-eventslog-lua tzdata ubus uhttpd update-rc.d ustream-ssl
NOTE: /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/recipe-sysroot-native/usr/bin/opkg --volatile-cache -f /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/opkg.conf -t /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/ipktemp/ -o /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/rootfs --force_postinstall --prefer-arch-to-version --no-install-recommends --force-overwrite install android-system-core-adbd android-system-core-liblog android-system-core-usb ap6212 avlcommd base-files base-passwd boot-config config-backup curl dnsmasq dropbear ethtool eventslog factory-restore firewall3 fsl-rc-local gps-control gps-utils gpsd gpsd-conf gsmd hostapd iio-utils iiod iproute2 iptables iputils iw kernel-modules libcutils0 libglib-2.0-0 libnl-3-200 libstdc++6 libtlt-lua libxml2 lsm6dsl-rebind lsqlite3 luci lucihttp mnf-info motion-monitor mtd-utils-ubifs netifd openssl os-release packagegroup-core-boot perl ppp preinit procd qmuxd recgend rpcd run-postinsts shadow sms-utilities sqlite3 storage sysntpd system sysup tlt-base-files tlt-connection-manager tlt-eventslog-lua tzdata ubus uhttpd update-rc.d ustream-ssl
ERROR: Unable to install packages. Command '/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/recipe-sysroot-native/usr/bin/opkg --volatile-cache -f /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/opkg.conf -t /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/temp/ipktemp/ -o /home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/work/fml001-oe-linux-gnueabi/tlt-image/1.0-r0/rootfs --force_postinstall --prefer-arch-to-version --no-install-recommends --force-overwrite install android-system-core-adbd android-system-core-liblog android-system-core-usb ap6212 avlcommd base-files base-passwd boot-config config-backup curl dnsmasq dropbear ethtool eventslog factory-restore firewall3 fsl-rc-local gps-control gps-utils gpsd gpsd-conf gsmd hostapd iio-utils iiod iproute2 iptables iputils iw kernel-modules libcutils0 libglib-2.0-0 libnl-3-200 libstdc++6 libtlt-lua libxml2 lsm6dsl-rebind lsqlite3 luci lucihttp mnf-info motion-monitor mtd-utils-ubifs netifd openssl os-release packagegroup-core-boot perl ppp preinit procd qmuxd recgend rpcd run-postinsts shadow sms-utilities sqlite3 storage sysntpd system sysup tlt-base-files tlt-connection-manager tlt-eventslog-lua tzdata ubus uhttpd update-rc.d ustream-ssl' returned 255:
Installing hostapd (2.6) on root
Downloading file:/home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/deploy/ipk/armv7ahf-neon/hostapd_2.6-r0_armv7ahf-neon.ipk<file://home/kristupas/projects/fml-linux-sdk-qtel/oe-core/build/tmp-glibc/deploy/ipk/armv7ahf-neon/hostapd_2.6-r0_armv7ahf-neon.ipk>.
To remove package debris, try `opkg remove hostapd`.
To re-attempt the install, try `opkg install hostapd`.
* preinst_configure: Aborting installation of hostapd.

Any pointers of how I could accomplish my goal?



We override INITSCRIPT_PARAMS in a bbappend like so:

INITSCRIPT_PARAMS = "stop 20 0 1 0 ."

Seems to work OK.
--
Joshua Watt <***@gmail.com<mailto:***@gmail.com>>
Loading...