Replies: 1 comment
-
|
I just tested this by completely removing my previous config. Ran again and this is the correct output pi@PiFrame:~/DynaframeSource $ export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
f you have tried running the official Dynaframe 2.19 release on a Raspberry Pi 5, you likely encountered BadImageFormatExceptionor wrong ELF class: ELFCLASS32errors. This is because the pre-built binaries are 32-bit and incompatible with the Pi 5's 64-bit architecture and the latest Debian (Trixie/Bookworm) libraries.
Here is the step-by-step fix to compile and run Dynaframe natively in 64-bit mode.
You need the 64-bit compiler to build a native binary. Use the official Microsoft script:
Bash
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 6.0 --install-dir ~/.dotnet
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc
Don't use the Dynaframe2.ziprelease. Instead, build it directly on your Pi 5 so the headers match your CPU perfectly:
Bash
git clone https://github.com/Geektoolkit/Dynaframe3.git ~/DynaframeSource
cd ~/DynaframeSource
dotnet publish -c Release -r linux-arm64 --self-contained false -o ~/Dynaframe /p:CheckEolTargetFramework=false
Newer versions of Debian (like Trixie) have renamed language libraries that cause .NET apps to crash on startup. We force "Invariant Mode" to bypass this:
Bash
cat < ~/Dynaframe/Dynaframe.runtimeconfig.json
{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
},
"configProperties": {
"System.Globalization.Invariant": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true
}
}
}
EOF
You must export the globalization variable and point to your display before launching:
Bash
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
export DISPLAY=:0
cd ~/Dynaframe
dotnet ./Dynaframe.dll
Beta Was this translation helpful? Give feedback.
All reactions