I would like to make a guide for getting the Rosetta to run on Raspberry Pi 3B+, or probably any other board with 1GB and more RAM. It seems like many people are struggling with it.
My set up:
– Raspberry Pi 3B+
– No name USB charger 5V 1A with a very short cable
– SD Card 16GB
– The newest version of Raspbian
I assume that you have Raspbian installed and BOINC running. I set up my BOINC client to use 100 percent RAM available and 90 percent swap.
- In case you have less than 500MB of RAM per core (definitely applies to RPI 3B+), set up ZRAM (follow the guide in the readme):
- Increase swap size – I set it to 2048MB. I am not sure how much is needed and how exactly it works in combination with ZRAM, I simply went with the biggest value, since I have enough free space on the SD card.
- Put your kernel into 64bit mode and set up BOINC client to receive 64bit work:
- Now you should be able to download tasks and run them on 2-3 cores
- (Optional) In case you are fine using only SSH, decrease the amount of RAM available to the GPU to 16MB. This will give you a few more MB of RAM. 32MB seems to be enough for 720p.
– Advanced Options – Memory split – 16MB
- (Optional) Decrease the consumption of the chip and reduce temperatures:
– Disable USB hub and Ethernet:
echo 0 | sudo tee /sys/devices/platform/soc/3f980000.usb/buspower >/dev/null
– Disable HDMI:
sudo tvservice –off
These commands need to be reapplied after each reboot.
In the beginning, only 3 tasks were able to run at the same time. However, after a few hours of run time, my Raspberry pi managed to turn on all 4 tasks. While doing so, 1,3GB of data was stored in the swap. It seems like sometimes the WU can get initialized/deinitialized multiple times in a row. I guess that the RAM space is simply quite on the limit.
The speed of calculations seems to be OK compared to my Android Huawei Honor 8 (I am using only the efficient A53 cores on it). RPI 3B+ might even turn out a bit faster? Maybe there are fewer background processes…
If you have any questions, just ask.