On Thu, Jul 16, 2015 at 7:16 AM, Roderick Johnstone <rmj@ast.cam.ac.uk> wrote:

Excuse me if this was documented elsewhere in this thread, but I didn't see it explicitly.

I'm seeing the no installed kmod issue after a kernel upgrade and reboot too. I have those akmods services enabled but they detect that the build during the nightly update failed (due to the transaction lock issue) and don't bother to try again. (in my case I use yum-deprecated for the nightly updates).

Yes, we're talking about two different failure modes. Enabling the services only helps if the failure was purely due to a simple failure during the kernel post transaction execution (the behind the scenes run right after a kernel update).

2015/07/16 10:43:04 akmods: Checking kmods exist for 4.0.7-300.fc22.x86_64
2015/07/16 10:43:08 akmods: Ignoring nvidia-340xx-kmod as it failed earlier
2015/07/16 10:43:08 akmods: Hint: Some kmods were ignored or failed to build or install.
2015/07/16 10:43:08 akmods: You can try to rebuild and install them by by calling
2015/07/16 10:43:08 akmods: '/usr/sbin/akmods --force' as root.

I didn't see a fix for this in your note about the new akmods package you have in testing or in other recent threads, but I might have overlooked something.

I'm hoping that since the new akmods script will detect dnf vs. yum that that will fix a lot of the problems people are having.

A dirty workaround for me would be to make the akmods.service file run /usr/sbin/akmods --force as the ExecStart line, but I have seen reports on google that you can't easily pass parameters to the ExecStart command like that.

No, options are pretty standard in ExecStart, what you might be thinking of are other bash commands. Systemd starts executables directly, not within a "shell" so other things you might expect to work on the command line could fail but passing options is fine.

Ok, I thought that the --from-init option would also do a force but it doesn't look like it does. I may add that to ExecStart, the only downside being that if it's failing for the "right" reason (kernel incompatibility which happens every now and then) then it will keep trying to build the module every boot...