1. 环境准备:从零开始的飞腾FT2000/4开发平台搭建
如果你刚拿到一块飞腾FT2000/4的开发板,或者需要在服务器上为它定制启动固件,第一步肯定是把开发环境给搭起来。我刚开始接触这块国产CPU时,也走了不少弯路,尤其是在Ubuntu 16.04这个相对“经典”的版本上。很多人可能会问,为什么不用更新的Ubuntu 20.04或者22.04?原因很简单,很多芯片厂商提供的官方工具链、文档和补丁,最初都是基于某个特定LTS版本开发和测试的,比如飞腾早期的很多资料就围绕Ubuntu 16.04展开。盲目升级系统版本,可能会遇到各种依赖库不兼容、工具链报错的坑,所以第一步,老老实实准备一个Ubuntu 16.04.6的系统是成功的关键。你可以用物理机安装,也可以用虚拟机(比如VMware或VirtualBox),分配至少100GB的磁盘空间和8GB以上的内存,编译过程还是挺吃资源的。
系统装好后,别急着动手,先做两件事。第一,更新软件源并升级现有软件包,确保系统处于一个干净、最新的基础状态。打开终端,执行 sudo apt update && sudo apt upgrade -y。第二,创建一个专门的工作目录,我习惯在用户主目录下建一个 program 文件夹,用来存放所有编译相关的工具和源码,这样管理起来清晰,不会把系统搞乱。比如,你可以运行 mkdir -p ~/program/ft2000-4,后续所有操作基本都在这个目录下进行。接下来,我们需要安装最核心的交叉编译工具链。飞腾FT2000/4是ARMv8架构的64位处理器,所以我们需要aarch64架构的交叉编译器。根据原始资料,使用的是 gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu 这个版本。你可以从Linaro官网或国内镜像站下载,下载后解压到 ~/program 目录下。然后,把工具链的路径加入到系统的环境变量中,这样在终端里就能直接调用 aarch64-linux-gnu-gcc 这样的命令了。编辑你的 ~/.bashrc 文件,在末尾加上一行:export PATH=$HOME/program/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:$PATH,然后执行 source ~/.bashrc 让它生效。验证一下,输入 aarch64-linux-gnu-gcc --version,如果能正确输出版本信息,工具链就算配置好了。
1.1 安装系统依赖包:别让缺失的库文件卡住你
工具链好了,接下来就是安装编译u-boot和UEFI(edk2)所需的各种系统依赖包。这一步看似简单,但漏装任何一个,都可能在后期的编译过程中引发令人头疼的错误。根据我踩坑的经验,最好一次性把可能需要的包都装上。打开终端,切换到你的工作目录,然后分两步安装。
首先是编译u-boot所需的依赖。u-boot的编译主要依赖标准的编译工具和库。执行以下命令:
sudo apt-get install make gcc bison flex
这里有个细节,原始文章里提到了 make-guile,这是一个支持Guile扩展的make版本。虽然在一些复杂的构建系统中可能用到,但对于标准的u-boot编译,安装普通的 make 通常就足够了。如果你追求和原始环境完全一致,也可以装上 make-guile。
其次是编译UEFI(edk2)所需的依赖,这个列表要长一些,也关键得多:
sudo apt-get install libncurses5-dev libncursesw5-dev uuid-dev acpica-tools python g++
我来解释一下这几个包是干嘛的。libncurses5-dev 和 libncursesw5-dev 是ncurses库的开

1万+

被折叠的 条评论
为什么被折叠?



