I have several /dev/input/event* device files on my system, my keyboard was /dev/input/event3 for a long period of time and I had started and stopped actkbd using /etc/conf.d/local.st{art,op}. After upgrade to new kernel my keyboard becomes /dev/input/event6 sometimes. So I can't start actkbd with hardcoded '-d /dev/input/event3' parameter. I tried to start actkbd using udev as was adviced by its documentation. But the problem is that actkbd binary was installed into /usr/bin but I have /usr on separate partition. Therefore on system's startup when keyboard device file discovered by udev /usr is not mounted yet, so actkbd startup fails. I think actkbd binary should be installed into /bin directory. Reproducible: Always
Maybe you can use /dev/input/by-path/... or /dev/input/by-id/ as fixed name. I don't think that /bin would comply with FHS on userland binaries. It's kind of your decision to remove /usr from kernels root= . Of course you can copy to /bin, or to /usr/bin/ on the / partition ("mount /dev/root /mnt ; tar c /usr/bin/actkbd | tar cvC /mnt ; umount /mnt") but check if actkbd needs external libs and update it upon actkbd update.
(In reply to comment #1) > Of course you can copy to /bin, or to /usr/bin/ on the / partition ("mount > /dev/root /mnt ; tar c /usr/bin/actkbd | tar cvC /mnt ; umount /mnt") but check > if actkbd needs external libs and update it upon actkbd update. Better not copy it to the shadow'ed /usr path. this may lead to some confusing moments, when you have forgotten, at some point in the future, that the /usr/bin/actkbd which is visible at normal runlevel is not the one seen by udevd during startup.
Copying actkbd is really ugly. I have tried ../by-path/.. thing and it works fine for me, thanks! So I think this should be resolved as invalid.