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 |
|
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 |
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
All reactions