Arm Server Base System Architecture Reference board (sbsa-ref)翻译过来就是Arm服务器基础系统架构参考板。
在编译固件之前需要有完整的edk2-platform编译环境:
$ export WORKSPACE=$PWD/firmworkRD //设置路径
$ mkdir -p $WORKSPACE
$ cd $WORKSPACE //进入工作路径
$ git clone https://github.com/tianocore/edk2.git
$ cd edk2
$ git submodule update --init //更新仓库
$ git clone https://github.com/tianocore/edk2-platforms.git
$ cd edk2-platforms
$ git submodule update --init
$ cd .. //回到工作路径
$ git clone https://github.com/tianocore/edk2-non-osi.git
$ export PACKAGES_PATH=$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-non-osi //设置包路径
$ . edk2/edksetup.sh //运行环境脚本
$ make -C edk2/BaseTools
如果是x86架构还需要进行交叉编译
GCC5_AARCH64_PREFIX=aarch64-linux-gnu-
然后编译模块
build -b RELEASE -a AARCH64 -t GCC5 -p edk2-platforms/Platform/Qemu/SbsaQemu/SbsaQemu.dsc
将build文件夹下的SBSA_FLASH0.fd和SBSA_FLASH1.fd复制到虚拟机文件夹下。在此文件下打开终端
输入qemu启动指令:
$INSTALL_PATH/qemu-system-aarch64 -m 1024 -M sbsa-ref -pflash SBSA_FLASH0.fd -pflash SBSA_FLASH1.fd -serial stdio
这样就可以进入setup界面了
此时还仅仅是只有edk2下默认的setup界面,至于如何进入shell和OS还需要好好研究一下。要是能够实现虚拟机连接BMC那就更好了。