Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说尝试在Ubuntu上交叉编译 NetBSD-RISCV64架构系统内核及安装文件「终于解决」,希望能够帮助你!!!。
NetBSD logo
NetBSD 以高移植性著称,支持众多的处理器架构,并且它的代码和工具稳定性非常高,包括各种接口,工具等。并且由于 BSD 授权的宽松条件,对于构建商业产品非常友好,值得长期的投入和研究。
NetBSD 的基于 build.sh 的交叉编译工具系统,使得它可以很方便的在其他系统上进行系统开发和研究。
根据预售海报透露的信息,当时的 ROMA 无疑是“神秘”的:将配备 4 核 RISC-V 处理器,拥有最高 16GB 的 RAM 和 256GB 的存储空间,支持大多数 Linux 发行版。除此之外,更多有关 ROMA 的技术细节外界无从得知。
全球首款 RISC-V 笔记本 ,吸引了许多开发者的注意,更令 RISC-V 社区感到振奋。
好在,等待了近 9 个月,在上周举办的第十届开源操作系统年度技术会议 (OS2ATC) 上,我们迎来了 ROMA 发布会——它的神秘面纱,终于被正式揭开。有了硬件,再把NetBSD移植RISC-V就具有很高的可行性。
预搭载 openKylin,riscv 架构的ROMA笔记本电脑
安装基本系统编译环境:仅供参考,实际使用可看情况更新安装工具。
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi
龙心2F成功安装NetBSD8.2,龙芯构架有成功移植NetBSD的经验
重点的步骤:获取源码,选择NetBSD-10-release版本
为了快速的获取源码,我们可以从国内清华的 tuna 下载最新的 NetBSD src 和 xsrc 源码。
具体链接地址: https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-current/tar_files/
src.tar.gz, 为 NetBSD 核心代码,目前我们主要的关注核心代码和工具压缩包。
wget https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-current/tar_files/src.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-current/tar_files/xsrc.tar.gz
xsrc.tar.gz 为 NetBSD X11 相关代码。
pkgsrc.tar.gz 为 NetBSD pkgsrc 代码。
解压相关代码
tar -xzvf src.tar.gz
更新代码
由于我们通过 tuna 下载的源码,都是定期从 NetBSD 官网更新过来的,为了我们后续直接抓取到最新的代码,我们可以通过 cvs 对仓库进行配置和更新。具体过程如下:
配置远程仓库地址,以及更新代码:
export CVSROOT=anoncvs@anoncvs3.de.NetBSD.org:/cvsroot
export CVS_RSH="ssh"
cd src
cvs update -dP
虽然很多人推荐使用日本的 anoncvs 地址,但是经实测,jp 的 cvs 仓库速度没有德国人的快。
日本 cvs 地址::pserver:anoncvs@anoncvs.jp.NetBSD.org:/cvsroot ,密码为 anoncvs
德国 cvs 地址:anoncvs@anoncvs3.de.NetBSD.org:/cvsroot
官方地址:anoncvs@anoncvs.NetBSD.org:/cvsroot
瑞典 cvs 地址:anoncvs@anoncvs.NetBSD.se:/cvsroot;
注意首次更新,建立 cvs 仓库比较慢,需要比较长的时间,耐心等待去喝杯茶。
NetBSD10系统
RISCV简介:
RISC-V 采用 BSD 开源协议,既不会受到单一商业体的控制,也不会有商业上的纠纷,有利于大规模推广。
作为后发者的 RISC-V,自然就在设计之初,避免了增量式带来的问题,采用了模块化的设计方法。
模块化设计方法,就是设计一个最小集合和最基础的指令集。最小指令集可以完整地实现一个软件栈,其他特殊功能的指令集可以在最小指令集的基础上,通过模块化的方式叠加实现。
这也就是为什么 RISC-V 可以根据应用场景,实现差异化的定制。它在设计原则上就避开了摊大饼式的增量陷阱,而采用了搭乐高式的灵活拼装方式。
RISC-V 针对 32 位处理器的最小指令集是 RV32I,针对64 位的是RV64I。在 RV32I 和 RV64I 的基础上,RISC-V 还定义了一级扩展指令集。
NetBSD10系统安装桌面
构建工具链:
进入到src目录下面:
NetBSD交叉编译移植RISCV架构,先生成工具链所在obj文件夹:仅供参考一下。
./build.sh -U -u -m riscv -a riscv64 tools
生成交叉编译工具链,在src目录中的obj文件夹里头。
然后构建 NetBSD 内核和安装系统:
./build.sh -U -u -O /src/obj -j8 -x -X /xsrc -m riscv -a riscv64 release ,
需要的话可以打包生成镜像文件:
./build.sh -U -u -O /src/obj -j8 -x -X /xsrc -m riscv -a riscv64 iso-image
以上构建新RISCV64架构NetBSD系统,编译生成内核和安装文件位于obj目录下releasedir文件夹中的riscv目录,就可以看到生成内核和安装文件。
后记:
目前手头的技术资源和硬件设备有限,没有硬件刷入系统运行NetBSD-riscv64 系统,若有设备硬件需要极大的耐心和时间来等待测试结果。哪位大神有精力和资源去验证一下系统是否可以成功安装运行。基本思路就是在成功安装后,再安装基本的系统工具,构建系统所需基本应用搭建好,再利用NetBSD支持的软件包管理工具pkgsrc来安装所需工具,系统里头就可以直接编译,省去很多了。路漫漫其修远兮,吾将上下而求索。
仅供参考学习。
The NetBSD Project
Linux 上 NetBSD 交叉编译环境搭建 (pengphei.github.io)
有没有开始考虑或着手把loongarch移植到bsd系统的? - LA UOSC
【图片】基于Loongson2F的逸龙8101龙芯小本儿安装使用NetBSD系统的记录_龙芯吧_百度贴吧 (baidu.com)
基于Loongson2F的逸龙8101龙芯小本儿安装使用NetBSD9.2记录贴【netbsd吧】_百度贴吧 (baidu.com)
从零开始搭建OpenHarmony开发环境-开源基础软件社区-51CTO.COM
Deepinlinux上openharmony编译环境搭建 - 简书 (jianshu.com)
嵌入式工程师,搞开发,你了解过RISC-V架构的芯片了吗?-今日头条 (toutiao.com)
全球首款 RISC-V 笔记本 ROMA 正式发布!|risc|操作系统|固态硬盘|笔记本电脑_网易订阅 (163.com)
全球首款,搭载 openKylin 系统的 RISC-V 笔记本电脑 ROMA 正式发布 - IT之家 (ithome.com)
上一篇
已是最后文章
下一篇
已是最新文章