前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET8国产龙芯(loongarch64)初体验

.NET8国产龙芯(loongarch64)初体验

作者头像
江湖评谈
发布2023-11-30 11:00:46
3310
发布2023-11-30 11:00:46
举报
文章被收录于专栏:天下风云天下风云

前言

.NET8是现在的.NET最新版本,国产龙芯(loongarch64)目前支持的.NET8版本号是:SDK 8.0.100-ea1 LTS。本篇来虚拟一个龙芯系统,体验下龙芯的.NET。

概述

大部分人手头上是没有龙芯实体机的,所以这里虚拟一个。如何虚拟呢?参考之前的文章:龙芯(Loongarch64),在Linux虚拟一个龙芯OS体验下

1.下载

之前的系统太老旧了,这里下载比较新的龙芯clfs系统基础包,地址如下:

代码语言:javascript
复制
https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/7.0/loongarch64-clfs-system-7.3.tar.bz2

以及龙芯clfs系统启动包

代码语言:javascript
复制
https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/7.0/loongarch64-clfs-system-7.3-boot.tar.bz2

同时下载一个qemu-loongarch64,它主要是模拟龙芯系统,用以验证龙芯clfs能不能正常运行

代码语言:javascript
复制
https://github.com/tangyanzhi/CLR/releases/download/loongarch64/qemu-loongarch64

2.解压,复制,注册,验证

把这两个在linux系统包解压到同一个文件,因为只有系统启动包和系统基础包同时存在,才可以正常运行一个简单的龙芯系统。

代码语言:javascript
复制
mkdir root
tar -xvpf loongarch64-clfs-system-7.3.tar.bz2 -C rot
tar -xvpf loongarch64-clfs-system-7.3-boot.tar.bz2 -C rot

解压完成之后,把qemu-loongarch64复制到你当前linux系统bin目录下

代码语言:javascript
复制
cp -r qemu-loongarch64 /bin/

然后注册下binfmt,主要是让系统识别龙芯二进制

代码语言:javascript
复制
echo ":qemu-loongarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x01:\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/bin/qemu-loongarch64:" > /proc/sys/fs/binfmt_misc/register

最后通过qemu-loongarch64模拟下ls命令,看下龙芯clfs系统是否可以正常运行

代码语言:javascript
复制
/bin/qemu-loongarch64 -L root/ root/bin/ls

如果出现了当前目录,表示clfs系统正常。

3.LA64 .NET8 SDK

去龙芯官网下载dotnet8的sdk

代码语言:javascript
复制
http://ftp.loongnix.cn/tmp/dotnet/8.0.0/8.0.0-ea1/dotnet-sdk-8.0.100-linux-loongarch64.tar.gz

下载好了之后,把它解压到上面clfs系统root文件夹下面的opt文件里面

代码语言:javascript
复制
tar -xvpf dotnet-sdk-8.0.100-linux-loongarch64.tar.gz root/opt

把qemu-loongarch64复制到root/bin文件夹下

代码语言:javascript
复制
cp -r qemu-loongarch64 root/bin/

然后通过chroot运行

代码语言:javascript
复制
chroot root/
bash-5.2#

可以看到进入了bash-5.2这个终端,这个终端就是龙芯clfs终端,查看下当前的系统类型,通过uname -a命令

代码语言:javascript
复制
bash-5.2# uname -a
Linux tang-virtual-machine 6.2.0-37-generic #38~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov  2 18:01:13 UTC 2 loongarch64 GNU/Linux

我们可以看到它是GNU/Linux版本的loongarch64 。

我们看下当前龙芯clfs目录

代码语言:javascript
复制
bash-5.2# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

4.查看.NET8 SDK版本

上面进入了龙芯clfs系统,下面就是运行.NET8 SDK了。上面的第三步已经把dotnet sdk解压到了root/opt目录下。我们在bash-5.2终端进入到这个目录

代码语言:javascript
复制
bash-5.2# cd opt/
bash-5.2# ls
dotnet-sdk-8.0.100-linux-loongarch64.tar.gz

我们解压下这个压缩的dotnet sdk文件

代码语言:javascript
复制
bash-5.2# tar -xvpf dotnet-sdk-8.0.100-linux-loongarch64.tar.gz 
./dotnet
./host/
./host/fxr/
./host/fxr/8.0.0/
./host/fxr/8.0.0/libhostfxr.so
./LICENSE.txt

...........

看下它的目录

代码语言:javascript
复制
bash-5.2# ls
dotnet               metadata      shared
dotnet-sdk-8.0.100-linux-loongarch64.tar.gz  packs      templates
host               sdk      ThirdPartyNotices.txt
LICENSE.txt             sdk-manifests

跟普通.NET SDK也没什么区别,看下它的一个版本号:

代码语言:javascript
复制
bash-5.2# ./dotnet --version
SDK 8.0.100-ea1
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 江湖评谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 概述
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档