2022年3月

NanoPi-R2S的Openwrt系统中运行dotnetcore的程序

0 条评论 编程 dotnet Openwrt jinlife

现在dotnetcore的程序不止支持X86的Linux,也已经可以支持ARM系统。貌似从dotnetcore V3.1就已经开始能支持了。现在的V5.0, V6.0 和 V7.0支持起来更是没问题。
最近需要用到R2S来运行一些dotnetcore的程序,所以稍微调查研究了下。R2S当前的CPU是Rockchip RK3328, 四核 Cortex-A53。

目前网上最火的一篇文章是在树莓派4上面的Openwrt里面运行dotnetcore。本来想参考在R2S里面玩一下,不过可惜我这边没成功。最终还是靠万能的Docker实现了,也比较简单。
https://davidjmclaughlin.com/projects/how-to/2020/03/15/running-.net-core-on-openwrt-and-raspberry-pi-4.html
按上面的文章,装了dotnet的runtime后,再装了那几个依赖库libstdcpp6等,还是出现如下问题
Error relocating ./dotnet: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm: symbol not found
猜测可能是ARM上面的库缺函数,不匹配。这个不好解决,咱就不浪费时间了。

另外,参考如下X86的也没成功。
http://xuxiaorong2014.github.io/programming/dotnet-core-openwrt.html

前期准备

  1. 硬件准备个R2S,带个8G的SD卡,还有SD卡烧写器。
  2. 编译或者找到一个能支持Docker的R2S的Openwrt固件。
  3. 找到能支持ARM64的.NET Core musl的Docker。
  4. 准备一个aspdotnetcore的测试程序。