点击上方蓝字 江湖评谈关注我
前言
.NET8是现在的.NET最新版本,国产龙芯(loongarch64)目前支持的.NET8版本号是:SDK 8.0.100-ea1 LTS。本篇来虚拟一个龙芯系统,体验下龙芯的.NET。
概述
大部分人手头上是没有龙芯实体机的,所以这里虚拟一个。如何虚拟呢?参考之前的文章:龙芯(Loongarch64),在Linux虚拟一个龙芯OS体验下。
1.下载
之前的系统太老旧了,这里下载比较新的龙芯clfs系统基础包,地址如下:
https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/7.0/loongarch64-clfs-system-7.3.tar.bz2
以及龙芯clfs系统启动包
https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/7.0/loongarch64-clfs-system-7.3-boot.tar.bz2
同时下载一个qemu-loongarch64,它主要是模拟龙芯系统,用以验证龙芯clfs能不能正常运行
https://github.com/tangyanzhi/CLR/releases/download/loongarch64/qemu-loongarch64
2.解压,复制,注册,验证
把这两个在linux系统包解压到同一个文件,因为只有系统启动包和系统基础包同时存在,才可以正常运行一个简单的龙芯系统。
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目录下
cp -r qemu-loongarch64 /bin/
然后注册下binfmt,主要是让系统识别龙芯二进制
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系统是否可以正常运行
/bin/qemu-loongarch64 -L root/ root/bin/ls
如果出现了当前目录,表示clfs系统正常。
3.LA64 .NET8 SDK
去龙芯官网下载dotnet8的sdk
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文件里面
tar -xvpf dotnet-sdk-8.0.100-linux-loongarch64.tar.gz root/opt
把qemu-loongarch64复制到root/bin文件夹下
cp -r qemu-loongarch64 root/bin/
然后通过chroot运行
chroot root/
bash-5.2#
可以看到进入了bash-5.2这个终端,这个终端就是龙芯clfs终端,查看下当前的系统类型,通过uname -a命令
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目录
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终端进入到这个目录
bash-5.2# cd opt/
bash-5.2# ls
dotnet-sdk-8.0.100-linux-loongarch64.tar.gz
我们解压下这个压缩的dotnet sdk文件
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
...........
看下它的目录
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也没什么区别,看下它的一个版本号:
bash-5.2# ./dotnet --version
SDK 8.0.100-ea1
往期精彩回顾