龙芯内核部署 .netcore适配国产化

摘要:
下载链接如下:https://github.com/gsvm/loongson-dotnet/releases/download/ea-20200819/aspnetcore-runtime-3.1.7-ea-20200819-linux-loongson3a.tar.gzgithub偶尔,的下载速度非常快:下载完成后,我们开始解压缩。由于分配的帐户没有/usr/bin的写入权限,因此我们将其解压缩到用户目录tar xzvf中/aspnetcore运行时-3.1.7-ea-20200819-linux-longson3a。tar Gz-C/dn/cddn输入dn目录,您可以看到相关内容。为了方便起见,我们将它添加到环境变量中,然后输入vi Bashrc,在末尾添加以下内容。当然,这些都是由权限问题和无法修改系统文件造成的。接下来,我们将发布IoTSharp的一个版本。发布配置如下:记住,它必须是可移植的,所以。net不会对该平台进行特殊处理!

首先目前为止,龙芯只支持.netcore3.1 

https://www.cnblogs.com/MysticBoy/p/13543716.html

参考别人地址

如何在龙芯3B4000上部署基于.Net Core 开发的物联网平台IoTSharp
 

今天很开心的拿到了龙芯的测试服务器账号, 先上图show一下, 

龙芯内核部署 .netcore适配国产化第1张

双核, 8G内存, 50G硬盘。

龙芯内核部署 .netcore适配国产化第2张

架构 mips64el 

 龙芯内核部署 .netcore适配国产化第3张

登录后, 显示为 uos 及其网址信息:

 龙芯内核部署 .netcore适配国产化第4张

接下来, 二话不说, 我们开始下载龙芯版的.Net Core , 龙芯版.Net Core 近期刚移植完成, 前期国内其他公众号和开源中国均有报道, 现在, 相关工具链已完成,完全已经达到了开箱即用, 并且已经是.Net Core 3.1.7 是最新版本,相关下载链接如下:

.NET Core 3.1.7 MIPS64 Port Early Access Build 20200819 

 https://github.com/gsvm/loongson-dotnet/releases 

由于IoTSharp 是  基于asp.net core , 因此我们首先下载 它的 安装包, 后期如果尝试在龙芯上开发其他内容, 再尝试sdk。 下载链接如下:

https://github.com/gsvm/loongson-dotnet/releases/download/ea-20200819/aspnetcore-runtime-3.1.7-ea-20200819-linux-loongson3a.tar.gz

github 的下载速度偶尔很快:

 龙芯内核部署 .netcore适配国产化第5张

龙芯内核部署 .netcore适配国产化第6张

下载完成后, 开始解压, 因为 分配的账号并没有/usr/bin 的写权限, 因此, 我们解压在用户目录下, 

tar -xzvf  ./aspnetcore-runtime-3.1.7-ea-20200819-linux-loongson3a.tar.gz  -C  /dn/

cd dn 进入dn目录, 可以看到 相关内容, 下面我们为了方便, 将他加到环境变量, 命令行输入 vi .bashrc , 在末尾  加入下面内容。 

export PATH="$PATH://home/loongson/dn/"

现在, 可以直接在控制台输入 dotnet 方便操作。 当然, 这些都是因为权限问题, 无法修改系统文件导致的。 如果你有root权限, 完全不必这么做 放到/usr/bin 下面了事。 

接下来, 我们发布一个IoTSharp 的版本, 发布配置如下:

 龙芯内核部署 .netcore适配国产化第7张

记得, 一定要是 可移植的, 这样.net 就不会针对平台进行特殊处理!

下面, 开始安装postgresql . 

写到这里, 突然想起 su root  , 然后输入了龙芯给的普通用户的密码, 居然成功切换, 好吧, 这下我们就很顺利了, 

开始安装pgsql 

apt-get install postgresql-11

如图:

龙芯内核部署 .netcore适配国产化第8张

安装完成

 龙芯内核部署 .netcore适配国产化第9张

按照说明, 我们输入了 

 pg_ctlcluster 11 main start

启动了数据库, 输入下面的命令切换数据库的系统用户

su postgres

执行 psql 修改数据库密码, 输入下面的脚本

ALTER USER postgres WITH PASSWORD 'future';

如图所示

龙芯内核部署 .netcore适配国产化第10张

 龙芯内核部署 .netcore适配国产化第11张

现在我们开始启动程序, 由于我们拥有了root权限!将.net core 移动到 /usr/bin 中, 将IoTSharp 发布的内容上传到 /var/iotsharp  

接下来, 让我们创建 系统服务, 在当前木目录先创建文件使用命令vi  iotsharp.service  编辑内容如下:

 
复制代码
[Unit]
Description=IoTSharp running on loongson


[Service]
WorkingDirectory=/var/iotsharp
ExecStart=/usr/bin/dotnet /var/iotsharp/IoTSharp.dll   
Restart=always
# Restart service after 10 seconds if the IoTSharp service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=iotsharp
User=iotsharp
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
Environment=ASPNETCORE_URLS="http://0.0.0.0:8080"
[Install]
WantedBy=multi-user.target
复制代码

复制服务文件:

cp  iotsharp.service   /etc/systemd/system/iotsharp.service

启用服务

 systemctl enable  /etc/systemd/system/iotsharp.service 

创建用户 

 useradd iotsharp

启动服务

 systemctl start  iotsharp.service 

龙芯内核部署 .netcore适配国产化第14张

由于当前版本默认启动了CapServer 和 ModBus 服务, 由于ModBus的默认502端口在linux下 低于1024 端口, 普通用户使用时有权限问题, 因此  需要加入配置项修改一下appsettings.Production.json , 在尾部加入下面内容, 会将默认的ModBus 端口改为 5020 

1
"ModBusServer": { <br>   "Port": 5020,<br>    "TimeOut": 120000  <br>}

  

 

使用命令systemctl status  iotsharp.service 查看IoTSharp 项目状态, 截图如下:

龙芯内核部署 .netcore适配国产化第15张

至此, 我们搭建完成, 期间务必注意的是 pgsql一定要启动, 一点iotsharp 自动启动, 则通过服务方式重启或者ctl+c 的方式结束似乎都不能实现, 系统重启才行。 

免责声明:文章转载自《龙芯内核部署 .netcore适配国产化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Centos7修改网卡名称view 引用 xml 布局下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下C++编程环境搭建

  有更简单的方法:在装机器的时候选择  开发工作站系统  development workstation 工作站。免去安装java jdk ,eclipse ,g++,ssh等等各种工具的麻烦。  需要注意的是通过虚拟机安装的时候,要先创建空虚拟机,再从虚拟光驱安装,不要直接选择操作系统类型,不然会默认给安装最简化版的。光中文的设置,和输入法安装 就能让...

在ASP.NET Core跨平台应用程序开发中如何捕获并处理全局异常

问题描述 在传统的ASP.NET Web Api 应用程序开发中,我们处理全局异常的方法通常是实现一个ExceptionFilterAttribute的子类,如下: public classErrorHandlingFilter : ExceptionFilterAttribute { public override voidOnException...

Linux下如何生成core dump 文件(解决segment fault段错误的问题)

Linux下的C程序常常会因为内存访问等原因造成segment fault(段错误),如果此时core dump 的功能是打开的,在运行我们的可执行程序时就会生成一个名为core的文件,然后我们就可以用gdb对core文件来进行调式,还原发生错误的堆栈情况,这对于我们调试bug非常有帮助。 1. 使用  ulimit -a 可以察看当前系统core文件的大...

ASP.NET Core SignalR (六):在SignalR中管理用户和分组

此为系列文章,对MSDN ASP.NET Core SignalR 的官方文档进行系统学习与翻译。其中或许会添加本人对 ASP.NET Core 的浅显理解。        SignalR 允许消息被发送给关联给特定用户的所有连接,以及命名的连接分组。 SignalR中的用户        SignalR 允许你将消息发送给关联给特定用户的所有连接。默认情...

NetCore项目发布对前端项目进行打包合并发布

在某个小项目中, api使用asp.net core 3.x 编写, UI页面则使用Vuejs. 正常情况下, 项目右键的发布只会发布api项目,而不会管Vuejs的项目. 所以通过简单的改造,在发布该项目时不光发布api本身, 同时也编译和发布Vuejs写的页面. 这样子就可以2个项目一起部署了. 当然我们也可以通过CI/CD来解决问题. 项目结构: *...

探索ASP.NET Core 3.0系列一:新的项目文件、Program.cs和generic host

前言:在这篇文章中我们来看看ASP.Net Core 3.0应用程序中一些基本的部分——.csproj项目文件和Program.cs文件。我将会介绍它们从 ASP.NET Core 2.x 中的默认模板的一些变化,并讨论一些API 的更改。 翻译:Andrew Lock https://andrewlock.net/exploring-the-new-pr...