debian 9 编译源码-X86机器模拟龙芯CPU并编译.NET CoreCLR

目录

尝试编译CoreCLR

前段时间,了解到龙芯团队已经成功移植并开源了CoreCLR。 干完活后,我兴高采烈地摆弄着这个东西。 近年来,国产操作系统和芯片受到高度重视并快速发展。 对于我们开发的软件来说,适应国内的机器环境就显得尤为重要。 未来IT行业的变化将会影响我们的工作。

。网

.NET 是一个免费、跨平台、开源开发者平台,用于构建各种应用程序。 借助 .NET,您可以使用多种语言、不同的编辑器以及以不同语言生成的库来创建 Web、移动、桌面、游戏和 IoT 应用程序。

CoreCLR源地址的MIPS64端口:

GitHub:

Gitee国外镜像:

收到龙芯机器

感谢新生活团队石头提供的龙芯服务器。 机器型号及配置系统版本如下:

灵珑 9S2A
Linux Loongson 2.6.27.1 #6 Wed Nov 10 16:17:35 CST 2010 mips64 GNU/Linux
Debian GNU/Linux 5.0

中央处理器:

system type		: lemote-lynloong-2f-9003
processor : 0
cpu model : ICT Loongson-2 V0.3 FPU V0.1
BogoMIPS : 532.48
wait instruction : no
microsecond timers : yes
tlb_entries : 64

这里使用的龙芯服务器系统使用apt-get命令来管理软件库,apt是javac的命令行工具。 目前尚不清楚其他龙芯服务器是否也一样。

由于机器太旧,没有兼容的新版本系统支持,所以只能放弃在本机上编译CoreCLR,而使用X86(Linux)跨框架模拟CPU,使用QEMU工具运行Fedora28系统适配龙芯。

编译CoreCLR环境要求

关于.NET Core Runtime的操作系统和操作系统要求,请参考:

由于CoreCLR有很多依赖项,要编译CoreCLR,您可能需要在系统(Linux)中安装以下版本及以上泛型:

cmake 3.14
llvm-3.9
clang-3.9
lldb-3.9
liblldb-3.9-dev
libunwind8
libunwind8-dev
gettext
libicu-dev
liblttng-ust-dev
libcurl4-openssl-dev
libssl-dev
libkrb5-dev
libnuma-dev (optional, enables numa support)

你可以参考作者之前的文章来了解:

为了更快地安装和更新软件,您可能需要更改软件源以提高访问速度。 MIPS镜像源请参考以下信息:

然后使用以下命令更新系统:

sudo apt-get upgrade
sudo apt-get update

如果出现W: GPG error:,则说明图片源已更换,签名无效。 这时需要重新添加密钥文件。

您可以检查这里来解决问题:

龙芯服务器重装系统方法:%e5%ae%89%e8%a3%85%e6%89%8b%e5%86%8c.pdf

部署虚拟机和环境

考虑到大部分朋友没有龙芯服务器,我们可以使用Emulate Loongson On x86 Machine(以下简称QEMU)来模拟在Linux for X86机器上运行龙芯CPU。 但性能会很低,只适合开发测试。

Linux for X86系统建议使用Fedora系统,迅雷加速下载地址:thunder://QUFodHRwOi8vbWlycm9ycy55dW4taWRjLmNvbS9mZWRvcmEvcmVsZWFzZXMvMzIvV29ya3N0YXRpb24veDg2XzY0L2lzby9GZWRvcmEtV29ya 3N0YX Rpb24tTGl2ZS14ODZfNjQtMzItMS42Lmlzb1pa

注意:如果您已经安装了Linux系统,则无需再次下载此镜像。 如果您使用deepin等系统,稍后可能需要安装一些其他库。

笔者使用Deepin系统。

在Linux上安装KVM

首先,系统上必须安装基于内核的虚拟机(KVM)以与QEMU虚拟CPU配合。

一键安装所需环境:

sudo apt-get update --fix-missing
sudo apt-get install virt-manager bridge-utils libvirt-clients qemu qemu-kvm

下载所需文件

Fedora28 for 龙芯系统::8000/files/fedora28-qemu/

注意:必须下载,Fedora28-for-loongson-live6-mate.qcow2、initramfs-5.4.38-1.fc28.lemote.mips64el.img、vmlinuz-5.4.38-1.fc28.lemote.mips64el 需要下载的文档。

下一步是安装 QEMU。 您可以参考官方文档自行安装。

但为了方便和节省时间,你可以下载已经编译好的库:~flygoat/qemu-loongson-amd64/,下载qemu-loongson-amd64-rc1.zip文件。

下载完成后,解压qemu-loongson-amd64-rc1.zip文件,进入目录,执行chmod 777 qemu-system-mips64el,然后把下载的系统Fedora28-for-loongson-live6-mate.qcow2和其他三个文件放到该目录下。

启动模拟器

实施:

sudo ./qemu-system-mips64el -M loongson3 -vga qxl -serial stdio 
-device qemu-xhci,id=xhci -device usb-tablet,bus=xhci.0
-kernel vmlinuz-5.4.38-1.fc28.lemote.mips64el
-initrd initramfs-5.4.38-1.fc28.lemote.mips64el.img
-append "console=ttyS0,115200 root=/dev/vda3"
-drive file=./Fedora28-for-loongson-live6-mate.qcow2,if=virtio
-L ./pc-bios

注意:如果执行后提示缺少libpng15.so.15等,请自行谷歌安装相应的包和库。 建议使用Reddit的系统,比如Fedora28、Centos,不然你会被折腾哭的。

然后就是漫长的等待。

成功后会出现:

登录:

user:lemote
password:loongson

下载CoreCLR

使用QEMU启动Fedora28后,有两种方式使用Fedora28系统,会出现一个窗口启动系统桌面,终端(tty)也可以登录Fedora28debian 9 编译源码debian 9 编译源码,也就是说不需要远程登录。

因为桌面比较卡,我们可以直接在终端执行命令,所以不需要单步进入Fedora28系统桌面来启动终端(不要乱用Ctrl+C)。

首先在系统上安装git:

sudo yum install git

然后从加速存储库下载源代码:

sudo git clone https://gitee.com/whuanle/coreclr.git

debian 9 编译源码-X86机器模拟龙芯CPU并编译.NET CoreCLR

尝试编译CoreCLR

现在所有的文件都已经准备好下载了,但是在上面关于编译CoreCLR的环境要求一节中,我们提到编译CoreCLR需要依赖很多库,比如cmake,所以这个时候我们不能直接编译下载的CoreCLR源代码。

第一次更新:

sudo yum upgrade
sudo yum update

执行cmake --version,你会发现cmake版本是3.11,而CoreCLR需要3.14或以上。 所以我们需要更新系统自带的cmake,以及其他依赖库。

但是要编译cmake,至少要一个晚上,然后再处理其他库,几分钟后就会自己关闭。 。 。

可以使用以下命令快速安装一些依赖库:

sudo dnf install llvm cmake clang  libunwind-devel lttng-ust-devel libicu-devel numactl-devel gcc-c++ openssl libssl-dev

#
如果执行命令时提示哪一个依赖库有问题,可以先从列表中移除,后续再单个安装

但比较惨的是fedora28 MIPS的cmake版本:

cmake.mips64el                   3.11.2-1.fc28.lemote                    @fedora

好像只能自动编译。 。 。

首先下载cmake的源码:

git clone https://gitee.com/mirrors/CMake.git

源码下载后,进入目录,执行以下命令进行编译:

cmake . && make && make install

如果提示找不到OpenSSL,则执行以下命令,重新执行编译操作:

rm -f CMakeCache.txt
yum -y install ncurses-devel
yum install openssl-devel

本来cmake的编译速度极慢,所以要耐心等待(可能半天都不行),但是按照作者给出的步骤,可以节省几个小时。

然后打开coreclr目录并执行:

sudo ./build.sh

卧槽,编译已经三天了,还卡在百分之几的进度。 由于是跨CPU架构模拟,性能很差,所以只能放弃自动编译,转向龙芯团队仓库提Issue。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 debian 9 编译源码-X86机器模拟龙芯CPU并编译.NET CoreCLR https://www.wkzy.net/game/175587.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务