git小实战,内核添加subtree, 内核caf合并和subtree caf tag合并
侧边栏壁纸
  • 累计撰写 7 篇文章
  • 累计收到 2 条评论

git小实战,内核添加subtree, 内核caf合并和subtree caf tag合并

ReallySnow
2023-08-28 / 0 评论 / 101 阅读 / 正在检测是否收录...

CAF TAG是CodeAurora网站的源码,(不过今年可能要改成CLO,目前主角不是他,所以先不说)。

CAF的标签对应的芯片组可以从wiki获取
教程以msm-4.9的SDM710为蓝本进行教程。

Subtree

4.9内核的staging是不带Qcacld3.0等一系列的必需品(当然这玩意在内核源码外面又不是不能构架)
如果我们需要把Qcacld3.0扔进内核,有两个办法
1.下载Qcacld源码直接扔到对应目录(drivers/staging/qcacld-3.0)
2.subtree到对应目录(drivers/staging/qcacld-3.0)
subtree后期CAF TAG更新的时候直接merge即可,而第一种方法就emmm(自行体会)

首先,我们找到内核源码对应tag的qcacld源码,然后进入内核源码目录
例如我们内核源码tag是LA.UM.8.8.r1-09100-SDM710.0,所以我们qcacld也是这个tag
然后我们输入命令

git subtree add --prefix=drivers/staging/qcacld-3.0 https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0.git LA.UM.8.8.r1-09100-SDM710.0

然后就会发现qcacld-3.0已经在drivers/staging/qcacld-3.0里了,而且qcacld历史提交也在
不过目前是无法构建qcacld的(因为这是教git,所以不在此篇文章范围之内)

Subtree的合并

例如caf又放出新的tag了LA.UM.8.8.r1-09400-SDM710.0,我们需要合并怎么办
首先先fetch新的tag

git fetch https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0.git LA.UM.8.8.r1-09400-SDM710.0

然后

git merge -s subtree FETCH_HEAD

解决冲突就像解决kernel版本更新一样解决,最后git add .git commit或者git commit -a完成提交,如果你不明白,可以看caf tag合并,冲突解决的教程,因为都是一致的

CAF TAG合并

也是一样caf又放出新的tag了LA.UM.8.8.r1-09400-SDM710.0,我们需要合并怎么办
先fetch新的tag

git fetch https://source.codeaurora.org/quic/la/kernel/msm-4.8.git LA.UM.8.8.r1-09400-SDM710.0

然后

git merge FETCH_HEAD

如果冲突了怎么办
举个栗子

自动合并 arch/arm64/boot/dts/qcom/sda845-sdxpoorwills.dtsi
冲突(内容):合并冲突于 arch/arm64/boot/dts/qcom/sda845-sdxpoorwills.dtsi
自动合并失败,修正冲突然后提交修正的结果。

我们看到它冲突了,我们先确定他那些文件冲突了

git status 
位于分支 lineage-18.1

您有尚未合并的路径。
  (解决冲突并运行 "git commit")
  (使用 "git merge --abort" 终止合并)

未合并的路径:
  (使用 "git add <文件>..." 标记解决方案)

        双方修改:   arch/arm64/boot/dts/qcom/sda845-sdxpoorwills.dtsi

可以确定是sda845-sdxpoorwills.dtsi有冲突,我们打开看看那里冲突了,或者git diff查看

<<<<<<< HEAD
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
 * Copyright (C) 2020 XiaoMi, Inc.
=======
/* Copyright (c) 2017-2018, 2021 The Linux Foundation. All rights reserved.
>>>>>>>

emmm...这种的话解决成如下就行了

/* Copyright (c) 2017-2018, 2021 The Linux Foundation. All rights reserved.
 * Copyright (C) 2020 XiaoMi, Inc.

解决完成之后,git add .git commit或者git commit -a提交完工

最后

如有错误,欢迎指出

1

评论 (0)

取消