I got the same exact problem, the root cause is the systemctl unit used to start boinc, comment the line ProtectSystem=strict and enjoy crunchinh with your AMD card
Confirm both mountkidd and I appear to have had the same experience. As mentioned, I've only been able to work around it for now by using an old BOINC (7.16.17), even while on Ubuntu 22.04. (Unfortunately I wasn't notified by the @-mention.)
Contrary to what was mentioned, Mesa-based OpenCL can work, it's just a lot less reliable at least for Einstein work (in my experience) and a lot slower than the implementation in ROCm. It may depend on support for particular hardware.
Also, to add to the confusion, current amdgpu drivers use ROCm for OpenCL.
I had to look for that ProtectSystem=strict setting, found it in /usr/lib/systemd/system/boinc-client.service. If removing it does indeed allow ROCm-based GPU processing again, it is curious. It may not be the 'root' cause (presumably it's there for a reason) because this systemd setting has been in place since April 2019, or BOINC 7.16.1: https://github.com/BOINC/boinc/commit/78035bc14ef85fd2a69127271cc201c00d6e9730. But it does seem that the read-only errors I noticed in my BOINC report above may be related to this.
For all the people who stumble upon this problem: It's complicated... First - you need to configure your driver stack properly.
Don't use opencl-mesa with Navi cards - they are poorly supported, won't work out-of-the-box, when forced (by symlinking driver to tahiti) the system will crash and reboot
rocm-opencl-runtime is recommended, unfortunately it's in AUR and requires a few dependencies also from AUR
Verify the installation by issuing clinfo. Please note that this command produces a lot of output and may interleave short errors like library not found
Next - you need to "fix" BOINC. Quick and dirty method would be to remove ProtectSystem=strict as suggested, but more elegant solution is to add PrivateTmp=true to boinc-client unit. I have added more info on that in the BOINC issue mentioned by wedge009
Mesa is not going to work.
)
Mesa is not going to work. You need the official AMD drivers. So amd-legacy or RocR or RocM. You need to find the equivalent in the Arch world.
cecht is one of the more prodigious posters here. TROUBLESHOOTING UBUNTU 20 AND A FRESH INSTALL OF AMD DRIVERS
I got the same exact problem,
)
I got the same exact problem, the root cause is the systemctl unit used to start boinc, comment the line ProtectSystem=strict and enjoy crunchinh with your AMD card
This seems to be the same
)
This seems to be the same issue I've already discussed:
https://boinc.berkeley.edu/forum_thread.php?id=14786
https://einsteinathome.org/goto/comment/201591
Confirm both mountkidd and I appear to have had the same experience. As mentioned, I've only been able to work around it for now by using an old BOINC (7.16.17), even while on Ubuntu 22.04. (Unfortunately I wasn't notified by the @-mention.)
Contrary to what was mentioned, Mesa-based OpenCL can work, it's just a lot less reliable at least for Einstein work (in my experience) and a lot slower than the implementation in ROCm. It may depend on support for particular hardware.
Also, to add to the confusion, current amdgpu drivers use ROCm for OpenCL.
I had to look for that ProtectSystem=strict setting, found it in /usr/lib/systemd/system/boinc-client.service. If removing it does indeed allow ROCm-based GPU processing again, it is curious. It may not be the 'root' cause (presumably it's there for a reason) because this systemd setting has been in place since April 2019, or BOINC 7.16.1: https://github.com/BOINC/boinc/commit/78035bc14ef85fd2a69127271cc201c00d6e9730. But it does seem that the read-only errors I noticed in my BOINC report above may be related to this.
Soli Deo Gloria
I confirm removing the
)
I confirm removing the ProtectSystem=strict setting also resolve the issue for me. I added my remarks in https://github.com/BOINC/boinc/issues/4948.
Given that the systemd hardening was present in BOINC 7.16.17 which still worked for me, I can only consider this a work-around for now.
Soli Deo Gloria
I can also confirm that
)
I can also confirm that switching off ProtectSystem resolved the issue for me.
But I suggest to not edit the file in /usr/lib/systemd/system but run
sudo systemctl edit boinc-client.service
and add
[Service] ProtectSystem=off
Where you are supposed to add new content. This will keep your changes, even if an update of the original file happens.
For all the people who
)
For all the people who stumble upon this problem: It's complicated... First - you need to configure your driver stack properly.
Next - you need to "fix" BOINC. Quick and dirty method would be to remove ProtectSystem=strict as suggested, but more elegant solution is to add
PrivateTmp=true
to boinc-client unit. I have added more info on that in the BOINC issue mentioned by wedge009