首页
关于 About
网站安全性 Security
Search
1
Chrome/Chromium 在 Linux 平台的视频硬解方案
1,545 阅读
2
将 USB 设备连接到 WSL2
302 阅读
3
关闭 Intel VMD 解决 INACCESSIBLE_BOOT_DEVICE 蓝屏
273 阅读
4
Android 14 平台程序开发中文件共享权限问题
200 阅读
5
为河北邯郸被害少年发声
199 阅读
数字安全
教程
公告
默认
高通设备开发
登录
Search
标签搜索
Linux
Windows
Qualcomm
QCS8250
SM8250
高通
Chromium
Chrome
AppArmor
PKI
Android
OpenWrt
NVIDIA
CertificateTransparency
X509
Python
pip
Docker
Electron
WSL
日暮清林
累计撰写
22
篇文章
累计收到
11
条评论
首页
栏目
数字安全
教程
公告
默认
高通设备开发
页面
关于 About
网站安全性 Security
搜索到
1
篇与
的结果
2025-01-16
高通板支持包 BSP 编译指南
大环境准备操作系统高通官方推荐比较老的 Ubuntu 14.04, 18.04 LTS等,但我不信邪,偏用 Debain 12.软件包系统软件包Python2 & pip2安装 Python 2.7 并设置 /usr/bin/python 为 python2首先引入 Debian 11 的主软件源,并执行 sudo apt update。随后安装 python2 和 python2-minimal 包。sudo rm -f /usr/bin/python sudo ln -s /usr/bin/python2 /usr/bin/python安装 pip2 并安装 python2 相关库。(如果有 pip3,则修改 pip 链接到 pip2)pip install pycryptodome future sixOpenSSL 1.1.1Debian 12 自带 OpenSSL 3,而且版本会越来越新,因此我们需要手动编译安装 OpenSSL 1.1.1,并且将其设置为默认 openssl 命令的执行程序。2.1. 编译 OpenSSL 1.1.1wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz tar zxf openssl-1.1.1w.tar.gz cd openssl-1.1.1w ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl make -j$(nproc) make install2.2. 链接并设置为默认程序sudo mv /usr/bin/openssl /usr/bin/openssl3 sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl1 sudo ln -s /usr/bin/openssl1 /usr/bin/opensslGCC 9 & g++ 9由于高通的 Bootloader (XBL) 源码中包含 EDK II 项目代码,又由于 EDK II 旧版的部分代码没有修复在新版 GCC 编译器上出现的问题,因此除非手动修改部分程序(如 GetFds)的代码,否则我们还需要安装 GCC 9 和 g++ 9。sudo apt update && sudo apt install gcc-9 g++-9编译 EDK II 所需要的依赖sudo apt update sudo apt install build-essential uuid-dev iasl nasm高通软件包编译高通的系统组件还需要高通自己修改的 LLVM 和 Linaro GCC 等工具,通常情况我们只需要保证下载的工具的主要版本(X.Y)匹配即可,对于小的 Rev 则可以选用最新的。下载 Linaro GCC 4.9-2014.07此工具可以直接在 Linaro 网站上下载。下载 Qualcomm Snapdragon LLVM Compiler for Linux我们需要下载 v4.0.17 和 v8.0.3 两个版本,高通要求其私有 Linux 软件包只能通过 QPM3 下载,由于 QPM3 无法在 Debian 12 上正常运行(截至2025年1月17日),所以我们可以直接在高通 QCS8250 的产品页面上,登录高通账号下载。也可以在 Ubuntu 18.04 中安装 QPM3,登录高通账号下载安装后手动导出。下载后解压到特定目录,并记住每个版本文件夹的路径。(如/home/levi/toolchains/qualcomm-sd-llvm-4.0.17等)编译板支持包 BSP登录高通 ChipCode 门户,在 Product 中选择产品 QCS8250,选择 qcs8250-la-2-0_ap_standard_oem,进入页面后复制仓库地址。提前设置 http.followRedirects 为 true,随后使用 git clone 下载。需要注意,1.x本和 2.0 的包目录结构不一样,会在外面套一个用于分类软件包的文件夹。例如在 1.x 版本的 BSP 中,直接就是 boot_images/ 文件夹,但在 2.0 中会变成 BOOT.XF.3.2/boot_images/。p.s. 高通就把 Board Support Package 翻译成“板支持包”。环境准备Bootloader (XBL) 编译环境准备高通在 QCS8250 的 2.0 版本的 BSP 中引入了 UEFI (EDK II),所以编译 XBL 的过程中也编译了 EDK II 的部分源码,因此需要确保 EDK II 的 BaseTools 被正确编译。(否则编译过程会报错 7000,提示无法调用 minigzip)执行命令:cd <workspace>/qcs8250-la-2-0_ap_standard_oem/BOOT.XF.3.2/boot_images/BaseTools make需要注意,编译时脚本会自动设置 Sectools 签名策略为 MULTIPLE_DEFAULT_SIGN,不需要再手动设置 Sectools 签名策略。Sectools 的签名策略有下面几个选项:DEFAULT_SIGN, DEFAULT_INTEGRITY_SIGN_ATTR, DEFAULT_SIGN_UPDATE_UNSIGN, DEFAULT_UNSIGN, DEFAULT_SUBFOLDER_SIGN, DEFAULT_SUBFOLDER_INTEGRITY_SIGN_ATTR, SUBFOLDER_MULTIPLE_SIGN_AND_ENCRYPT, MULTIPLE_DEFAULT_SIGN, MULTIPLE_DEFAULT_SIGN_ENCRYPT如果需要设置的话,直接使用 export 命令设置任意一个策略为 1 就好了,需要注意的是,每次只有一个签名策略被启用,不能同时有两个以上。还需要注意,如果没有安装和使用 OpenSSL 1.1.1 版本,编译过程会因为 Sectools 失败而中止。在 QcomPkg/toolchainconfig.json 中修改 CLANG40、CLANG80 中 LINUX 项的值为你安装的 Qualcomm Snapdragon LLVM for Linux 对应的 4.0.X 和 8.0.3 的目录。编译使用高通提供的用户手册内的编译命令进行编译即可。为防止泄密,不贴出编译命令,毕竟高通给的所有文件里都有水印,还写着“Confidential - May Contain Trade Secrets”(笑)。困惑和问题观察 Bootloader (XBL) 的编译过程发现,在固件签名时,似乎使用的是默认的 secimagev3.xml 配置文件,为什么不用 QCS8250 (SM8250) 的专用配置文件 sm8250_secimage.xml 呢?
2025年01月16日
38 阅读
0 评论
0 点赞