hald-addon-acpi blocks /proc/acpi/event so acpid can't read it thus it can't handle acpi events -=>> rc-config start acpid Starting init script * Starting acpid ... acpid: can't open /proc/acpi/event: Device or resource busy sys-apps/hal-0.5.9 sys-power/acpid-1.0.4-r4 sys-kernel/gentoo-sources-2.6.20-r3 Reproducible: Always Steps to Reproduce: It just happen every start after I've updated HAL. Actual Results: hald-addon-acpi blocks /proc/acpi/event Expected Results: acpid can listen to /proc/acpi/event
correct. acpid also blocks /proc/acpi/event as well. This is why HAL is set to use acpid in the init script, so when you have acpid and hal in the same run level (which you should). The depends will get ordered properly and HAL will start after acpid. When HAL detects acpid running (because acpid exports a unix socket), it will read events from acpid instead of directly from acpid. So basically, this is a configuration issue on your part by not having HAL and acpid in the proper run level together. Or, since you're unmasking hal-0.5.9, which is developed on while it is masked and as such is not bumped when changes are made. You need to re-emerge the ebuild manually every so often and you might have hit a bug that affected a previous revision the hal-0.5.9 ebuild.
Yes, you're right. There is no note about hald and acpid should be on the same runlever. I guess this should be stated somehow.
It is... /etc/init.d/hald --help and /etc/init.d/hald iuse
"For any service in the 'use' line, it must be added to the 'boot' or current runlevel to be considered a valid 'use' dependency." I had acpid in default runlevel and hald in boot. As stated before it should be fine. But in this case order makes difference so more obvious notice won't harm. Anyway thanks for help.
Since boot happens before default, that is your issue. hald should also never be in the boot runlevel. As per the output of the ebuild it belongs in the default runlevel. Boot is for stuff that's necessary to boot up your system. HAL is not. That's why it belongs in default so that things can properly resolve.