龍芯內核部署 .netcore適配國產化


首先目前為止,龍芯只支持.netcore3.1 

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

參考別人地址

 

如何在龍芯3B4000上部署基於.Net Core 開發的物聯網平台IoTSharp

 

今天很開心的拿到了龍芯的測試服務器賬號, 先上圖show一下, 

 

 

雙核, 8G內存, 50G硬盤。

 

 

 

架構 mips64el 

 

 

 

登錄后, 顯示為 uos 及其網址信息:

 

 

 

 

接下來, 二話不說, 我們開始下載龍芯版的.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 的下載速度偶爾很快:

 

 

 

下載完成后, 開始解壓, 因為 分配的賬號並沒有/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 的版本, 發布配置如下:

 

 

 

記得, 一定要是 可移植的, 這樣.net 就不會針對平台進行特殊處理!

下面, 開始安裝postgresql . 

寫到這里, 突然想起 su root  , 然后輸入了龍芯給的普通用戶的密碼, 居然成功切換, 好吧, 這下我們就很順利了, 

開始安裝pgsql 

apt-get install postgresql-11

如圖:

 

 

 

安裝完成

 

 

 

 

按照說明, 我們輸入了 

 pg_ctlcluster 11 main start

啟動了數據庫, 輸入下面的命令切換數據庫的系統用戶

su postgres

執行 psql 修改數據庫密碼, 輸入下面的腳本

ALTER USER postgres WITH PASSWORD 'future';

如圖所示

 

 

 

 

現在我們開始啟動程序, 由於我們擁有了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 

 

 

由於當前版本默認啟動了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 項目狀態, 截圖如下:

 

 

 

至此, 我們搭建完成, 期間務必注意的是 pgsql一定要啟動, 一點iotsharp 自動啟動, 則通過服務方式重啟或者ctl+c 的方式結束似乎都不能實現, 系統重啟才行。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM