<div dir="ltr"><div dir="ltr">On Tue, May 21, 2019 at 5:56 PM Mantas Mikulėnas <<a href="mailto:grawity@gmail.com">grawity@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Tue, May 21, 2019 at 1:39 PM Germano Massullo <<a href="mailto:germano.massullo@gmail.com" target="_blank">germano.massullo@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello, Fedora / EPEL BOINC comaintainer here.<br>
On BOINC client we have a problem. On some Linux distributions BOINC<br>
gets loaded before the videocard drivers are loaded, so it does not<br>
detect OpenCL/CUDA capabilities.<br>
We cannot use graphical.target as wait condition because there can be<br>
headless systems without graphic server so this condition cannot be<br>
used.<br>
What can be a good solution in your opinion?<br></blockquote><div><br></div><div>You cannot really know when *all* devices have been detected. Although, since graphics cards are probably always fixed PCI devices, maybe a limited form of `udevadm settle` (one that doesn't block the rest of boot process) would work?</div><div><br></div><div>You can know when the *first* device has been detected. This is probably just as poor a suggestion as above, but worth a try: Add a dependency on dev-dri-card0.device (and an udev rule to apply TAG+="systemd" to drm devices).</div><div><br></div><div>(Even crazier would be to allow BOINC to start as normal, but then *restart* it as soon as the first GPU driver has been loaded.)</div></div><div><br></div></div></blockquote><div><br></div><div>Actually, maybe having udev trigger BOINC startup would be a good option? After all that's how BlueZ already works -- it doesn't go in multi-user.target, it has WantedBy=bluetooth.target and there's an udev rule that makes every Bluetooth device pull in bluetooth.target as a dependency. And that's already an official systemd thing, too.</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Mantas Mikulėnas</div></div></div>