edk2-sdm845的新设备移植教程

移植之前请先确定edk2-sdm845有没有支持你的设备,如果已有则直接使用

已支持的设备 - edk2-porting/edk2-sdm845

注意:不要尝试移植到任何索尼和谷歌设备上,你的UFS会被清空!!!

  1. 确保设备使用了骁龙845处理器

  2. 首先,先确定你的设备代号
    (如:一加6T = fajita,小米8 = dipper,本文使用fck845)

  3. 获取你的设备分辨率(如: 1080x2248)
    可以在设备执行以下命令获取,或者使用其它方法
    cat /sys/class/drm/card0-DSI-1/modes

  4. 提取设备的fdt
    获取设备的/sys/firmware/fdt文件

  5. 准备系统环境
    建议使用Ubuntu 20.04,详细参考 依赖 - edk2-porting/edk2-sdm845

  6. 克隆项目并进入目录
    git clone https://hub.fastgit.org/edk2-porting/edk2-sdm845.git

    git clone https://github.com/edk2-porting/edk2-sdm845.git
    注意:如果你需要移植到新的设备,则不要使用–depth=1或者直接下载zip之类的方式,以便提交你的更改

  7. 将你的fdt放入device_specific,并改名为 设备代号.dtb

  8. 复制并修改dsc
    sdm845Pkg/Devices/generic.dsc复制为sdm845Pkg/Devices/设备代号.dsc,并填入你的分辨率


  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|宽度
  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|高度
  1. 在编译脚本build.sh中添加设备代号(注意该文件的缩进为Tab字符(\t))

  2. 在CI脚本.github/workflows/main.yml中添加设备代号(注意该文件的缩进为空格字符)

  3. 将设备添加到README.md和README.zh.md
    请将设备代号与之前的列对齐,建议使用等宽字体
    add-to-readme-md
    add-to-readme-zh-md

  4. 尝试编译
    ./build.sh -d 设备代号
    参考 构建 - edk2-porting/edk2-sdm845


  5. 尝试启动
    设备进入fastboot模式(或称bootloader),执行fastboot boot boot-设备代号.img
    并且观察设备
    移植成功的标准:可以看到Renegade-Project的Logo,或者进入UEFI Shell

  6. 检查你的更改
    在提交前,使用git的命令检查你的更改确保没有多余的文件或者字符
    执行 git status 检查确保没有多余的文件


    执行 git diff 检查确保没有多余的修改

  7. 提交你的更改
    git add .
    git commit
    add new device 设备英文名 (设备代号)
    add-and-commit


  8. 向edk2-sdm845发起PullRequest
    你可以向edk2-porting/edk2-sdm845发起PullRequest,将你的设备支持包含到edk2-sdm845

如果你遇到困难,或者有些疑问,则可以在论坛的问答区提问,或者加入群组讨论 资源 - edk2-porting/edk2-sdm845