嘗試在Ubuntu上交叉編譯 NetBSD-RISCV64架構(gòu)系統(tǒng)內(nèi)核及安裝文件

? ? ? NetBSD 以高移植性著稱,支持眾多的處理器架構(gòu),并且它的代碼和工具穩(wěn)定性非常高,包括各種接口,工具等。并且由于 BSD 授權(quán)的寬松條件,對(duì)于構(gòu)建商業(yè)產(chǎn)品非常友好,值得長(zhǎng)期的投入和研究。
? ? ? NetBSD 的基于 build.sh 的交叉編譯工具系統(tǒng),使得它可以很方便的在其他系統(tǒng)上進(jìn)行系統(tǒng)開發(fā)和研究。

? ? ? 根據(jù)預(yù)售海報(bào)透露的信息,當(dāng)時(shí)的 ROMA 無疑是“神秘”的:將配備 4 核 RISC-V 處理器,擁有最高 16GB 的 RAM 和 256GB 的存儲(chǔ)空間,支持大多數(shù) Linux 發(fā)行版。除此之外,更多有關(guān) ROMA 的技術(shù)細(xì)節(jié)外界無從得知。
全球首款 RISC-V 筆記本 ,吸引了許多開發(fā)者的注意,更令 RISC-V 社區(qū)感到振奮。
好在,等待了近 9 個(gè)月,在上周舉辦的第十屆開源操作系統(tǒng)年度技術(shù)會(huì)議 (OS2ATC) 上,我們迎來了 ROMA 發(fā)布會(huì)——它的神秘面紗,終于被正式揭開。有了硬件,再把NetBSD移植RISC-V就具有很高的可行性。
預(yù)搭載 openKylin,riscv 架構(gòu)的ROMA筆記本電腦
構(gòu)建環(huán)境:ubuntu 22.04 amd64 系統(tǒng),虛擬機(jī)virtualbox或者物理機(jī)都可以。
安裝基本系統(tǒng)編譯環(huán)境:僅供參考,實(shí)際使用可看情況更新安裝工具。
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,龍芯構(gòu)架有成功移植NetBSD的經(jīng)驗(yàn)
重點(diǎn)的步驟:獲取源碼,選擇NetBSD-10-release版本
為了快速的獲取源碼,我們可以從國(guó)內(nèi)清華的 tuna 下載最新的 NetBSD src 和 xsrc 源碼。
具體鏈接地址: https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-current/tar_files/
src.tar.gz, 為 NetBSD 核心代碼,目前我們主要的關(guān)注核心代碼和工具壓縮包。
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 相關(guān)代碼。
pkgsrc.tar.gz 為 NetBSD pkgsrc 代碼。
解壓相關(guān)代碼
tar -xzvf src.tar.gz
更新代碼
由于我們通過 tuna 下載的源碼,都是定期從 NetBSD 官網(wǎng)更新過來的,為了我們后續(xù)直接抓取到最新的代碼,我們可以通過 cvs 對(duì)倉庫進(jìn)行配置和更新。具體過程如下:
配置遠(yuǎn)程倉庫地址,以及更新代碼:
export CVSROOT=anoncvs@anoncvs3.de.NetBSD.org:/cvsroot
export CVS_RSH="ssh"
cd src
cvs update -dP
雖然很多人推薦使用日本的 anoncvs 地址,但是經(jīng)實(shí)測(cè),jp 的 cvs 倉庫速度沒有德國(guó)人的快。
日本 cvs 地址::pserver:anoncvs@anoncvs.jp.NetBSD.org:/cvsroot ,密碼為 anoncvs
德國(guó) cvs 地址:anoncvs@anoncvs3.de.NetBSD.org:/cvsroot
官方地址:anoncvs@anoncvs.NetBSD.org:/cvsroot
瑞典 cvs 地址:anoncvs@anoncvs.NetBSD.se:/cvsroot;
注意首次更新,建立 cvs 倉庫比較慢,需要比較長(zhǎng)的時(shí)間,耐心等待去喝杯茶。

NetBSD10系統(tǒng)

RISCV簡(jiǎn)介:
RISC-V 采用 BSD 開源協(xié)議,既不會(huì)受到單一商業(yè)體的控制,也不會(huì)有商業(yè)上的糾紛,有利于大規(guī)模推廣。
作為后發(fā)者的 RISC-V,自然就在設(shè)計(jì)之初,避免了增量式帶來的問題,采用了模塊化的設(shè)計(jì)方法。
模塊化設(shè)計(jì)方法,就是設(shè)計(jì)一個(gè)最小集合和最基礎(chǔ)的指令集。最小指令集可以完整地實(shí)現(xiàn)一個(gè)軟件棧,其他特殊功能的指令集可以在最小指令集的基礎(chǔ)上,通過模塊化的方式疊加實(shí)現(xiàn)。
這也就是為什么 RISC-V 可以根據(jù)應(yīng)用場(chǎng)景,實(shí)現(xiàn)差異化的定制。它在設(shè)計(jì)原則上就避開了攤大餅式的增量陷阱,而采用了搭樂高式的靈活拼裝方式。
RISC-V 針對(duì) 32 位處理器的最小指令集是 RV32I,針對(duì)64 位的是RV64I。在 RV32I 和 RV64I 的基礎(chǔ)上,RISC-V 還定義了一級(jí)擴(kuò)展指令集。

NetBSD10系統(tǒng)安裝桌面
構(gòu)建工具鏈:
進(jìn)入到src目錄下面:
NetBSD交叉編譯移植RISCV架構(gòu),先生成工具鏈所在obj文件夾:僅供參考一下。
./build.sh -U -u -m riscv -a risCV64 tools

生成交叉編譯工具鏈,在src目錄中的obj文件夾里頭。
然后構(gòu)建 NetBSD 內(nèi)核和安裝系統(tǒng):
./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? ?
以上構(gòu)建新RISCV64架構(gòu)NetBSD架構(gòu),編譯生成內(nèi)核和安裝文件位于obj目錄下releasedir文件夾中的riscv目錄,就可以看到生成內(nèi)核和安裝文件。

目前手頭的技術(shù)資源和硬件設(shè)備有限,需要極大的耐心和時(shí)間來等待測(cè)試結(jié)果,目前沒有硬件刷入系統(tǒng)運(yùn)行NetBSD-risCV64 系統(tǒng)。哪位大神有精力和資源去驗(yàn)證一下系統(tǒng)是否可以成功安裝運(yùn)行?;舅悸肪褪窃诔晒Π惭b后,再安裝基本的系統(tǒng)工具,構(gòu)建系統(tǒng)所需基本應(yīng)用搭建好,再利用NetBSD支持的軟件包管理工具pkgsrc來安裝所需工具,系統(tǒng)里頭就可以直接編譯,省去很多了。路漫漫其修遠(yuǎn)兮,吾將上下而求索。

僅供參考學(xué)習(xí)。
The NetBSD Project
Linux 上 NetBSD 交叉編譯環(huán)境搭建 (pengphei.github.io)
有沒有開始考慮或著手把loongarch移植到bsd系統(tǒng)的? - LA UOSC
【圖片】基于Loongson2F的逸龍8101龍芯小本兒安裝使用NetBSD系統(tǒng)的記錄_龍芯吧_百度貼吧 (baidu.com)
基于Loongson2F的逸龍8101龍芯小本兒安裝使用NetBSD9.2記錄貼【netbsd吧】_百度貼吧 (baidu.com)
從零開始搭建OpenHarmony開發(fā)環(huán)境-開源基礎(chǔ)軟件社區(qū)-51CTO.COM
Deepinlinux上openharmony編譯環(huán)境搭建 - 簡(jiǎn)書 (jianshu.com)
嵌入式工程師,搞開發(fā),你了解過RISC-V架構(gòu)的芯片了嗎?-今日頭條 (toutiao.com)
全球首款 RISC-V 筆記本 ROMA 正式發(fā)布!|risc|操作系統(tǒng)|固態(tài)硬盤|筆記本電腦_網(wǎng)易訂閱 (163.com)
全球首款,搭載 openKylin 系統(tǒng)的 RISC-V 筆記本電腦 ROMA 正式發(fā)布 - IT之家 (ithome.com)