2026-03-22
Systemd stuff can be difficult to understand since its lacking human-readable documentation. And today due to how it integrates with dracut, I've nearly lost access to my computer, which is, indeed scary.
After trying to fix it with another computer, reading countless man pages and researching on the internet with no avail of solution, suddenly it works. And more over, I've shared how I do it online so I know what to do next time:
https://github.com/bluez/bluez/issues/1712#issuecomment-4105747467
Depending on your initrd generator, some initrd already have support for dbus and systemd running in early boot.
I'm using Gentoo Linux and dracut as initrd generator. In dracut, systemd and dbus are supported and enabled by default, while bluetooth has to be enabled explicitly with configuration.
I've ran into the same problem as you, and I solved it by resetting bluez's service configuration:
sudo systemctl revert bluetooth.service reboot # after reboot sudo systemctl enable --now bluetooth.service # now make sure bluetooth keyboard works sudo dracut force --kver=`uname -r` # Regenerates the initrd while copying the new bluetooth configuration reboot # You should be able to type pass with bluetooth kbHope that helps.
I don't know how systemd people are working with other linux desktop people, but this kind of integration problem is not the first time to arise and hurt my feelings.
Last time dracut has some error with libkmod that prevents my OS from being loaded, luckily I found some random workaround online by manually loading libkmod, however after countless updates I still need to use libkmod. Then I found out it's my custom-built kernel's problem. I've switched to gentoo-kernel and the problem disappeared, oops.