最近拿到一塊海思3520dv300的板子,折騰了一下,發覺跑.NET完全沒問題,以下是大概步驟。
1. .NET CORE需要glibc,需要編譯海思的glibc版本的kernel和rootfs,測試可以直接用海思SDK默認配置即可(編譯會有不少坑得自己填);
2. 把編譯好的kernel和rootfs燒到板子上;
3. 將海思SDK中 a7_hard_neon-vfpv4 目錄拷貝到板子的/usr/lib/目錄下
4. 在/lib/目錄建立 指向/usr/lib/a7_hard_neon-vfpv4/ld-linux-armhf.so.3 的軟鏈接
5. 如果需要跑asp.net core 需要交叉編譯libcurl和openssl,將編譯得到的so放入/usr/lib/a7_hard_neon-vfpv4/目錄 或建立對應軟鏈接
6. 從微軟下載.NET CORE的linux_arm版本,解壓放入板子的/opt/dotnet/目錄
注:3520DV300由於只支持GLIBCXX_3.4.19,最高只能支持3.X版本,微軟發佈的5.X版本需要GLIBCXX_3.4.21,無法直接支持。
7. 執行 /opt/dotnet/dotnet --info 你就能看到.NET的信息。
PS: 可將3-6步直接打包進rootfs然後再燒錄;
PS2: 微軟發佈的linux arm 版本只支持hardfp,如果你的板子不支持可以考慮用源碼自編softfp版本;理論上uclibc版本也可自己編譯,但我沒試過。
PS3: .NET CORE運行時和a7_hard_neon-vfpv4目錄有上百兆 一般flash都不夠,可以用NFS或SD卡掛載