移植之前请先确定edk2-sdm845有没有支持你的设备,如果已有则直接使用
已支持的设备 - edk2-porting/edk2-sdm845
注意:不要尝试移植到任何索尼和谷歌设备上,你的UFS会被清空!!!
-
确保设备使用了骁龙845处理器
-
首先,先确定你的设备代号
(如:一加6T = fajita,小米8 = dipper,本文使用fck845) -
获取你的设备分辨率(如: 1080x2248)
可以在设备执行以下命令获取,或者使用其它方法
cat /sys/class/drm/card0-DSI-1/modes
-
提取设备的fdt
获取设备的/sys/firmware/fdt
文件
-
准备系统环境
建议使用Ubuntu 20.04,详细参考 依赖 - edk2-porting/edk2-sdm845 -
克隆项目并进入目录
git clone https://hub.fastgit.org/edk2-porting/edk2-sdm845.git
或
git clone https://github.com/edk2-porting/edk2-sdm845.git
注意:如果你需要移植到新的设备,则不要使用–depth=1或者直接下载zip之类的方式,以便提交你的更改 -
将你的fdt放入
device_specific
,并改名为设备代号.dtb
-
复制并修改dsc
将sdm845Pkg/Devices/generic.dsc
复制为sdm845Pkg/Devices/设备代号.dsc
,并填入你的分辨率
gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|宽度
gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|高度
-
在编译脚本build.sh中添加设备代号(注意该文件的缩进为Tab字符(\t))
-
在CI脚本.github/workflows/main.yml中添加设备代号(注意该文件的缩进为空格字符)
-
将设备添加到README.md和README.zh.md
请将设备代号与之前的列对齐,建议使用等宽字体
-
尝试编译
./build.sh -d 设备代号
参考 构建 - edk2-porting/edk2-sdm845
-
尝试启动
设备进入fastboot模式(或称bootloader),执行fastboot boot boot-设备代号.img
并且观察设备
移植成功的标准:可以看到Renegade-Project的Logo,或者进入UEFI Shell -
检查你的更改
在提交前,使用git的命令检查你的更改确保没有多余的文件或者字符
执行git status
检查确保没有多余的文件
执行git diff
检查确保没有多余的修改
-
提交你的更改
git add .
git commit
add new device 设备英文名 (设备代号)
-
向edk2-sdm845发起PullRequest
你可以向edk2-porting/edk2-sdm845发起PullRequest,将你的设备支持包含到edk2-sdm845
如果你遇到困难,或者有些疑问,则可以在论坛的问答区提问,或者加入群组讨论 资源 - edk2-porting/edk2-sdm845