基于QEMU-aarch64学习UEFI(EDK2)-9中文字符添加
1 基于QEMU-aarch64学习UEFI(EDK2)-9中文字符添加
文章目录
- 1 基于QEMU-aarch64学习UEFI(EDK2)-9中文字符添加
-
- 1.1 如何让BIOS支持中文显示
-
- 1.1.1 编码格式
- 1.1.2 字符显示原理
- 1.2 实践
-
- 1.2.1 字库添加
-
- 1.2.1.1 新增变量
- 1.2.1.2 注册中文
- 1.2.2 程序输出
- 1.2.3 编写程序提取字库的字模
- 1.2.4 编写驱动模块,加载汉字字库
-
- 1.2.4.1 `ChineseFontDxe.inf`文件内容
- 1.2.4.2 `ChineseFontDxe.c`文件内容
- 1.2.4.3 `ChineseFont.h`文件内容
- 1.2.4.4 `ChineseFont.c`文件内容
- 1.2.4.5 驱动编译
- 1.2.4.6 执行程序
- 1.2.5 使用软件生成字库
-
- 1.2.5.1 软件配置
- 1.2.5.2 测试
- 1.3 设置界面汉化
-
- 1.3.1 中文语言添加
- 1.3.2 切换语言
- 1.3.3 自定义中文显示驱动
程序开发我们以
edk2-stable202302
版本为准。
1.1 如何让BIOS支持中文显示
参考链接:https://zhuanlan.zhihu.com/p/25986442 如何让UEFI BIOS支持汉字显示:汉字编码与显示实践
具体原理可以参考上面链接,有详细介绍,下面只引用部分章节。
1.1.1 编码格式
UEFI采取了折中的方式,没有采用他们中任何一个,而是采用标准的UCS-2编码,即每个字符占两个字节,字符串长度=编码长度 / 2;(强迫症发作,不得不加个分号) ,对于UTF-16的扩展部分,答案很简单,不支持!
1.1.2 字符显示原理
UEFI已经替我们考虑好了怎么显示字符,它定义了SimpleFont格式。SimpleFont是一种点阵字体,