edk2 开发环境安装网上有很多资料,不再赘述,
打开终端(terminal),进入到edk2的工程目录,如下:
如果你是刚下载工程下来,进入到BaseTools中,执行make命令,将会自己构建工具,工具构建好了之后,回到上一层目录,将相关环境变量添加到session中,执行source edksetup.sh 即可,执行完成后,就是使用build命令在构建项目了,不然会发现找不到build命令。
构建 OVME.fd的命令为:build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -D DEBUG_ON_SERIAL_PORT
-p 指的是平台,即要编译的工程的dsc文件
-a arch
-D 定义一个宏
DEBUG_ON_SERIAL_PORT 使用串口输出debug信息(如果不加这 条就不会有输出)
编好后有这么一条输出:
将其拷贝到你要使用的地方即可
qemu的下载安装同样不在赘述,由于我们前面编译的是X64的,所以我们使用
qemu-system-x86_64来启动
启动命令如下:
qemu-system-x86_64
-bios OVMF.fd
-net none
-drive format=raw,file=fat:rw:/Users/limuhuazhi/run-ovmf/hda-contents
-serial stdio
-bios 后面接bios文件,即前面我们编译好的
-net 网络相关 可以接socket等等
-drive 后面可以接很多东西,这里是指定来镜像的格式,以及要挂在的文件系统和目录及权限
-serial 后面接串口设备 stdio表示标准输入输出 当然你也可以将输出到stdio的内容重定向到文件,如:qemu-system-x86_64 -bios OVMF.fd -net none -drive format=raw,file=fat:rw:/Users/limuhuazhi/run-ovmf/hda-contents -serial stdio >log.log
启动的瞬间就能收到bios的启动日志了。