Message Boards Message Boards


WolframModel on Raspberry Pi

Posted 1 year ago
1 Reply
2 Total Likes

Hi, I'm trying to run a model from on my raspbery pi 4. I can load the notebook fine, but when i try to run the first line, I get the following error:

Get::noopen: Cannot open /home/pi/.Mathematica/Paclets/Repository/Interpreter-

Which is correct, as this file does not exist (but there seems to be a 64 bit variant under /home/pi/.Mathematica/Paclets/Repository/Interpreter-

Can I somehow work around this?

\ $System says "Linux ARM (32-bit)" and \$Version "12.1.1 for Linux ARM (32-bit) (August 18, 2020)". I use the 64bit linux kernel of raspian, could this be part of the problem?

OK, I got this working. I couldn't find the documentation for them, but it looks like the FunctionResourceBoxes (the boxes which say WolframModel) install specific versions of libraries. The interpreter paclet in the given version is somehow broken on Raspberry, but you can use the one which comes with the installation. To do that, just replace the FunctionResourceBox by a plain call to WolframModel, and remove the broken "Interpreter" paclet from .Mathematica/Paclets/Repository.

But there is another problem: WolframModel is defined in the paclet "SetReplace", which you can download from here: . But if you install it, you get a warning that it is not compatible with your system. This seems only half true, as it brings a binary library which looks as if it does not build on 32 bit systems. But the binary library seems mostly to be needed for peformance reasons, and it looks like most (if not all) things can run without it. Just edit the file .Mathematica/Paclets/Repository/SetReplace-0.3.39/PacletInfo.m and add "Linux-ARM" to the list of SystemIDs (you are allowed to do that, because it's a separate paclet under MIT license), restart Mathematica, and run

<< SetReplace`

if you replaced the FunctionResourceBoxes by a plain call to WolframModel, you should be able to run the notbook now. Some operations take while though, but I guess that's to be expected when trying to run a universe on a Raspberry, single-threaded and without performace optimizations. But it's still fun :-)

Update: I'm not sure anymore if it's enough to edit the PacletInfo.m of the installed package (as I have trouble reproducing that). I also downloaded the source for SetReplace and tried to build it. The build fails (some 32 bit vs 64 bit issue) but it still creates a package. If I modify the PacletInfo.m in the source before building, i get a working package. Perhaps I got confused by the many SetReplace versions and the order in which I tried things. At least it's doable.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract