3. 源码获取
好,咱们进入实操环节。源码获取这件事,说白了就是你要先拿到「入场券」。瑞芯微的HAL源码不是公开的,你得有个开发者账号,还得配好工具链。我当年第一次搞的时候,光注册就卡了两天——嗯,这里头有些坑,我帮你踩过了,咱们直接绕过去。
3.1 注册Rockchip开发者账号
先打开瑞芯微的官方开发者网站。我个人习惯用Chrome,兼容性最好。找到右上角的「注册」按钮,点进去。
注册要点:
- 公司邮箱最好用企业邮箱,QQ邮箱有时候收不到验证码
- 填写项目信息时,写「嵌入式开发学习」或「HAL驱动开发」都行
- 注册后需要审核,一般1-2个工作日
我记得有一次帮同事注册,他用的是163邮箱,结果验证邮件死活收不到。后来换成公司邮箱,十分钟就搞定了。你想想看,这其实是因为瑞芯微的邮件网关对某些公共邮箱做了限制。
注册成功后,你会得到一个SDK下载权限。这个权限是分级的,咱们做HAL开发,需要的是「Linux SDK」和「HAL源码」这两个权限。如果发现没有,可以发邮件给support申请,标题写「申请HAL源码访问权限」就行。
3.2 配置Repo客户端
Repo是Google搞的一个工具,用来管理多Git仓库的项目。瑞芯微的HAL源码树有上百个Git仓库,不用Repo的话,你手动clone能累死。
配置步骤其实不复杂,但有几个细节容易翻车:
- 安装Repo:
sudo apt install repo或者从Google官方下载脚本 - 初始化Repo:
repo init -u [你的manifest地址] -b [分支名] - 同步源码:
repo sync -j4
我的小技巧:同步时加 -j4 参数,表示4个线程并行下载。网络好的话可以加到 -j8。但别贪多,超过10个反而容易出错。
我曾经在配置Repo时犯过一个低级错误——忘了装Python。Repo是用Python写的,系统里没Python的话,跑都跑不起来。所以第一步先确认:python --version,至少2.7以上。
3.3 同步HAL源码树
这一步是重头戏。HAL源码树的结构,我画了个图,你一看就明白:
同步命令很简单:
repo sync -j4 --no-tags
这里加 --no-tags 是为了省带宽。标签信息其实咱们用不上,能省则省。我第一次同步时没加这个参数,多下了将近1GB的标签数据,心疼流量啊。
注意:同步过程中如果网络断了,别慌。重新跑一遍 repo sync 就行,它会断点续传。我曾经同步到90%时断网,重跑后从断点继续,没浪费一点时间。
同步完成后,你会看到类似这样的输出:
Fetching project hardware/rockchip/hal
Fetching project vendor/rockchip/common
...
Syncing work tree: 100% (128/128)
看到这个就说明成功了。整个源码树大概在5-8GB左右,取决于你选的芯片平台。我建议你同步完先看看 hardware/rockchip/hal 这个目录,里面就是咱们要折腾的核心代码。
3.4 验证同步结果
同步完别急着关终端,先做几个检查:
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| 查看仓库数量 | repo list | wc -l |
100-150个左右 |
| 查看HAL目录 | ls hardware/rockchip/hal/ |
包含camera、display等子目录 |
| 查看分支信息 | repo info |
显示当前manifest分支 |
我个人习惯同步完先跑一遍 repo status,看看有没有文件冲突。虽然概率很小,但万一有的话,早点发现比写到一半报错强。
避坑指南:我曾经同步完直接开干,结果编译时报找不到头文件。查了半天,发现是同步时网络波动导致某个仓库没拉全。所以建议你同步完再跑一遍 repo sync,确保所有仓库都是完整的。
好了,到这一步,你的开发环境已经搭好了地基。源码在本地,工具链也配齐了。接下来就是真正动手写代码的时候了。
可可精品资料库