<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jan 2, 2014 at 10:31 PM, Marko Vojinovic <span dir="ltr"><<a href="mailto:vvmarko@gmail.com" target="_blank">vvmarko@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Thu, 2 Jan 2014 21:48:32 +0000<br>
"Powell, Michael" <<a href="mailto:Michael_Powell@mentor.com">Michael_Powell@mentor.com</a>> wrote:<br>
<br>
> I guess this is more of a general question, but sometimes after<br>
> updating the kernel or nvidia drivers an akmod isn't regenerated and<br>
> my system will begin to boot, fedora logo will show, but eventually<br>
> it will dump to the systemd log of services being started and just<br>
> sit there. I have all the required dependencies before the update<br>
> because I can simply reboot to runlevel 1 or if I have an older<br>
> kernel boot it and then manually `akmods --kernels`.<br>
><br>
> So the question is... why isn't regeneration of the akmod reliable?<br>
<br>
</div>I think it is reliable, you just need to wait it out. The rebuilding of<br>
akmod is being done for a given kernel while that kernel is running, so<br>
when you update the kernel, the akmod doesn't get built until you boot<br>
into it. And when you boot into it, systemd will at some point try to<br>
activate the akmod, find out that it doesn't exist, fail, and initiate<br>
a rebuild.</blockquote><div><br></div><div>Well, that's partially true. akmods also tries to build the module after kernel installation using the kernel posttrans trigger or something like that, there's a special directory where you can put script which will be run after a kernel is installed. DKMS uses the same method. There is where it SHOULD happen. The problem is that it's totally non-interactive and there's no notification to use user if it fails...</div>
<div><br></div><div>It also attempts to build kernel modules on startup AND shutdown. So there is more or less 3 attempts. The problem is if it fails one of them it will usually fail all of them.</div><div><br></div><div>
Richard</div></div></div></div>