Demo参考
Demo功能
串口处系统启动日志中增加一行打印,打印内容如下。
[TestDxeEntry][13L] Test!!
前提条件
- 一台带网络端口且操作系统为Ubuntu 22.04的x86 Linux服务器。
- Linux服务器已安装python、make、gcc、unzip、pigz、bison、flex、libncurses-dev、squashfs-tools、bc、device-tree-compiler、libssl-dev、cmake与交叉编译工具链。

- 所有的依赖必须用root用户进行安装。
- 用户可以通过如下命令进行安装上述依赖。
apt-get install -y python3 make gcc unzip pigz bison flex libncurses-dev squashfs-tools bc device-tree-compiler libssl-dev cmake
- 交叉编译工具链安装请参见安装工具链。
操作步骤
- 登录Linux服务器。
- 执行如下命令,切换至root用户。
su - root
- 执行如下命令,安装编译所需依赖库。
apt-get install uuid-dev
- 使用WinSCP工具或其他工具,将下载软件包获取的源码包“Ascend310B-hboot2-source.tar.gz”上传至Linux系统root用户属组目录下,例如“/opt”。详细操作请参见10.2-使用WinSCP传输文件。
- 执行如下命令,进入源码包所在目录,例如“/opt”。
cd /opt
- 执行如下命令,解压源码包“Ascend310B-hboot2-source.tar.gz”。
tar -xzvf Ascend310B-hboot2-source.tar.gz
- 执行如下命令,进入“Ascend310B-hboot2-source/drivers/firmware/bios/HwPkg/UEFI/Common/Drivers”目录。
cd /opt/Ascend310B-hboot2-source/drivers/firmware/bios/HwPkg/UEFI/Common/Drivers
- 执行如下命令,创建“TestDxe”文件夹。
mkdir TestDxe
- 执行如下命令,进入“TestDxe”目录。
cd TestDxe
- 执行如下命令,新增“TestDxe.c”文件。
vim TestDxe.c
添加如下代码,配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
#include <Uefi.h> #include <types.h> #include <Library/DebugLib.h> #include <Library/IoLib.h> #include <Library/UefiBootServicesTableLib.h> #include <Resource.h> EFI_STATUS EFIAPI TestDxeEntry(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) { EFI_STATUS Status = EFI_SUCCESS; PRINT_WARNING("[%a][%dL] Test!!\n", __FUNCTION__, __LINE__); return Status; }
- 执行如下命令,新增“TestDxe.inf”文件。
vim TestDxe.inf
添加如下代码,配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
[Defines] INF_VERSION = 0x00010005 BASE_NAME = TestDxe FILE_GUID = 4D035FE8-A0BB-42D4-B661-21771E6906A5 MODULE_TYPE = DXE_DRIVER VERSION_STRING = 1.0 ENTRY_POINT = TestDxeEntry [Sources.common] TestDxe.c [Packages] ArmPlatformPkg/ArmPlatformPkg.dec MdePkg/MdePkg.dec ArmPkg/ArmPkg.dec HwPkg/HwPkg.dec [LibraryClasses] UefiDriverEntryPoint UefiBootServicesTableLib DebugLib IoLib BlackBoxLib [Guids] [Depex] TRUE
- 执行如下命令,进入“/opt/Ascend310B-hboot2-source/drivers/firmware/bios/HwPkg/UEFI/Products/as310b/as310b”目录。
cd /opt/Ascend310B-hboot2-source/drivers/firmware/bios/HwPkg/UEFI/Products/as310b/as310b
- 执行如下命令,修改“as310b.dsc”文件。
vim as310b.dsc
文件新增内容如下图红框,配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
- 执行如下命令,修改“as310b.fdf”文件。
vim as310b.fdf
文件新增内容如下图红框,配置完成后,按“Esc”键,再执行:wq!保存修改,并按“Enter”键退出。
- 执行如下命令,进入“opt/Ascend310B-hboot2-source”目录
cd /opt/Ascend310B-hboot2-source
- 执行如下命令,编译“AS310B_HBOOT2_UEFI.fd”文件。
bash build.sh hboot2
出现如下回显,且生成“AS310B_HBOOT2_UEFI.fd”文件表示编译“AS310B_HBOOT2_UEFI.fd”文件成功。
generate /opt/Ascend310B-hboot2-source/output/AS310B_HBOOT2_UEFI.fd success! sign /opt/Ascend310B-hboot2-source/output/AS310B_HBOOT2_UEFI.fd success!
编译后的“AS310B_HBOOT2_UEFI.fd”文件会自动存放于“Ascend310B-hboot2-source/output”目录下。
- 准备串口线,连接PC和Atlas 200I A2 加速模块底板串口,具体请参见使用PuTTY登录设备(串口方式),观测串口处系统启动日志。
- 生效“AS310B_HBOOT2_UEFI.fd”文件,具体操作请参考生效Hboot2。
- 查看串口的系统启动日志,出现以下回显表示功能修改已生效。