Linux 上 NetBSD 交叉编译环境搭建
Linux 上 NetBSD 交叉编译环境搭建
NetBSD 以高移植性著称,支持众多的处理器架构,并且它的代码和工具稳定性非常高,包括各种接口,工具等。并且由于 BSD 授权的宽松条件,对于构建商业产品非常友好,值得长期的投入和研究。
NetBSD 的基于 build.sh
的交叉编译工具系统,使得它可以很方便的在其他系统上进行系统开发和研究。
我的构建环境。
- openSUSE 15.1
- 工具和库依赖
- cvs 用于更新和下载 NetBSD 系统源码。
- gcc 用于构建 NetBSD 相关工具。
- bmake BSD Make 工具,与 gnu make 相区别。
- bison
- flex
- mpfr-devel
- gmp-devel
- 其他可能需要的依赖
获取源码
为了快速的获取源码,我们可以从国内清华的 tuna 下载最新的 NetBSD src
和 xsrc
源码。
-
具体链接地址: https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-current/tar_files/
- src.tar.gz, 为 NetBSD 核心代码,目前我们主要的关注核心代码和工具压缩包。
- 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 地址::pserver:anoncvs@anoncvs.jp.NetBSD.org:/cvsroot ,密码为
-
首次更新,建立
cvs
仓库比较慢,需要比较长的时间。
构建工具链
-
构建 mips64 工具链,也是 loongson 2F 可用的工具链
mips64el
。./build.sh -m evbmips -a mips64el tools
-
构建 aarch64 工具链
./build.sh -m evbarm -a aarch64 tools
目前 ARMv8 ,也就是 aarch64 的构建工具链
-
构建 armv7 工具链,目前 32bit arm 处理器主要的指令集。
./build.sh -U -m evbarm -a earmv7hf tools
支持全志的 A20/A31 等系列,以及 IMX6 等芯片
-
构建 armv5 工具链,比如全志的 suniv-f1c100s 芯片,以及 Freescale IMX2 系列。
./build.sh -U -m evbarm -a earmv5 tools
构建 NetBSD 内核和安装系统
-
构建 loongson 内核
构建龙芯内核:
./build.sh -U -m evbmips -a mips64el LOONGSON
构建龙芯安装系统:
./build.sh -U -m evbmips -a mips64el INSTALL_LOONGSON
-
构建 imx6ul 内核
构建
i.MX 6UL
内核:./build.sh -U -m evbarm -a earmv7hf INX6UL-STARTER
构建
i.MX 6UL
安装系统:./build.sh -U -m evbarm -a earmv7hf IMX6UL-STARTER_INSTALL
-
构建全志 generic 内核
构建
generic
内核:./build.sh -U -m evbarm -a earmv7hf GENERIC
构建
install
安装系统:./build.sh -U -m evbarm -a earmv7hf INSTALL