I realize running BOINC distributed computing projects on a Raspberry Pi is not particularly exciting for most folks given the ppd values are so low. That said if you have a Pi that has some unused CPU bandwidth you might be interested in donating compute power to Rosetta@home. Normally the work units are focused across medicine, clean energy, and materials science but lately they've been cranking out a lot of COVID-19 research: "With the recent COVID-19 outbreak, R@h has been used to predict the structure of proteins important to the disease as well as to produce new, stable mini-proteins to be used as potential therapeutics and diagnostics."
Issue
If you have the BOINC manager installed on a Raspberry Pi with Raspbian (now called "Raspberry Pi OS") and you add the Rosetta@home project, you will likely run into this problem:
Workaround
Obviously you could pursue other workarounds that require loading a different OS on your Raspberry Pi. However, I wanted to keep Raspbian. I found a workaround for this issue here: https://marksrpicluster.blogspot.com/2020/04/do-something-useful-with-your-pi4.html I'm just re-posting the steps listed there for people to follow.
Basically you're putting the Raspbian kernel into 64-bit mode and then re-configuring the BOINC manager to recognize this.
Disclaimers:
Steps: Raspberry Pi
[0] You should already have installed the BOINC manager. If not, install it and add your projects.
[1] To find out what Raspbian OS you have currently type the following in a terminal or ssh session:
uname -a
If you have an older OS then you'd better upgrade it to the latest packages and then come back to this step.
[2] Make a copy of the boot config.txt file first. Type:
cd /boot
sudo cp config.txt config.txt.old
[3] Edit the config.txt. Type:
sudo nano config.txt
Once in nano (a text editor) scroll to the very end and add "arm_64bit=1" (without the quotes) on a new line.
- Press Control-O to save the file.
- Press Control-X to exit from nano.
[4] Now reboot your Pi by typing:
sudo reboot
[5] Back in a terminal or ssh session type:
uname -a
You should see a return value like this:
Linux [your Pi hostname] 5.4.51-v8+ #1327 SMP PREEMPT Thu Jul 23 11:11:34 BST 2020 aarch64 GNU/Linux
The values in green are what you want to take note of to verify that your update to the boat loader config file worked correctly.
Steps: BOINC Manager
[1] You now need to edit the cc_config.xml file that BOINC uses. First, copy the original file so you have a backup.
cd /etc/boinc-client
sudo cp cc_config.xml cc_config.xml.old
[2] Then edit the cc_config.xml file:
cd /etc/boinc-client
sudo nano cc_config.xml
Blank out the contents using the delete or backspace keys and then paste or type this in:
<cc_config>
<log_flags>
<task>1</task>
<file_xfer>1</file_xfer>
<sched_ops>1</sched_ops>
</log_flags>
<options>
<alt_platform>aarch64-unknown-linux-gnu</alt_platform>
</options>
</cc_config>
(The lines in green are the ones that are being added.)
- Press Control-O to save the file.
- Press Control-X to exit from nano.
[3] You need to restart BOINC to pick up this change so type the following command:
sudo systemctl restart boinc-client
Now the BOINC manager will accept Rosetta@home tasks.
Issue
If you have the BOINC manager installed on a Raspberry Pi with Raspbian (now called "Raspberry Pi OS") and you add the Rosetta@home project, you will likely run into this problem:
- The Rosetta@home project will display a message in BOINC saying this "project doesn't support arm-unknown-linux-gnueabihf" or something similar. No Rosetta tasks are sent to the BOINC manager to work on.
Workaround
Obviously you could pursue other workarounds that require loading a different OS on your Raspberry Pi. However, I wanted to keep Raspbian. I found a workaround for this issue here: https://marksrpicluster.blogspot.com/2020/04/do-something-useful-with-your-pi4.html I'm just re-posting the steps listed there for people to follow.
Basically you're putting the Raspbian kernel into 64-bit mode and then re-configuring the BOINC manager to recognize this.
Disclaimers:
- I offer no guarantees that this will work for your system.
- I offer no guarantees that this is 100% safe for your system; it may break something elsewhere on your Pi. (From my own experience: I've been running it for a week with 0 issues on a Pi that has Pi-Hole, Homebridge, and a number of other apps running.)
- This may prevent other projects (other than Rosetta@home) from running in the BOINC manager.
Steps: Raspberry Pi
[0] You should already have installed the BOINC manager. If not, install it and add your projects.
[1] To find out what Raspbian OS you have currently type the following in a terminal or ssh session:
uname -a
If you have an older OS then you'd better upgrade it to the latest packages and then come back to this step.
[2] Make a copy of the boot config.txt file first. Type:
cd /boot
sudo cp config.txt config.txt.old
[3] Edit the config.txt. Type:
sudo nano config.txt
Once in nano (a text editor) scroll to the very end and add "arm_64bit=1" (without the quotes) on a new line.
- Press Control-O to save the file.
- Press Control-X to exit from nano.
[4] Now reboot your Pi by typing:
sudo reboot
[5] Back in a terminal or ssh session type:
uname -a
You should see a return value like this:
Linux [your Pi hostname] 5.4.51-v8+ #1327 SMP PREEMPT Thu Jul 23 11:11:34 BST 2020 aarch64 GNU/Linux
The values in green are what you want to take note of to verify that your update to the boat loader config file worked correctly.
Steps: BOINC Manager
[1] You now need to edit the cc_config.xml file that BOINC uses. First, copy the original file so you have a backup.
cd /etc/boinc-client
sudo cp cc_config.xml cc_config.xml.old
[2] Then edit the cc_config.xml file:
cd /etc/boinc-client
sudo nano cc_config.xml
Blank out the contents using the delete or backspace keys and then paste or type this in:
<cc_config>
<log_flags>
<task>1</task>
<file_xfer>1</file_xfer>
<sched_ops>1</sched_ops>
</log_flags>
<options>
<alt_platform>aarch64-unknown-linux-gnu</alt_platform>
</options>
</cc_config>
(The lines in green are the ones that are being added.)
- Press Control-O to save the file.
- Press Control-X to exit from nano.
[3] You need to restart BOINC to pick up this change so type the following command:
sudo systemctl restart boinc-client
Now the BOINC manager will accept Rosetta@home tasks.