驱动裁剪的基本规则和流程

网上可以参考的资料实在是不多, 驱动裁剪绝对比添加更讲究, 这是本人花了不少时间总结的一点知识点, 后续还会持续更新, 点个赞吧~

删除驱动是一个费时耗力的工作, 由于内核工作的不确定性, 有时候不小心删除一个驱动或者什么code 就会导致内核起不来 !

所以要严格遵守裁剪流程, 做好每一次改动的备份!!!

Tips:

!!!首先要确保你会熟练的使用Git!!!

驱动裁剪流程

根据之前的分析, 仅仅是make ARCH=arm64 savedefconfig, 内核默认配置界面的改动是非常小的, 如果那几个改动的驱动需要的话, 完全可以直接手动添加到defconfig文件中.(可以确定, 只是少了6个CONFIG, 可以直接添加到文件末尾), 那么后面的流程基本可以确定了, 直接使用这个流程即可.

 

1. 没有对应硬件的驱动

这点毋庸置疑, 连硬件都没有, 驱动根本都加载不上去. 找到后直接删除即可.

尤其是开机log中显示, 挂载失败的.

2. 根据业务逻辑删除驱动

根据使用到的业务逻确认使用的硬件, 再去根据这个硬件来确认驱动的使用情况来进行删减.

3. 删除时的注意事项

尽量实现按照块进行删除, 也就是一次性删除一整个工作类型的驱动.

驱动删减使用流程指令

分为驱动删减和git备份

驱动删减

 

make ARCH=arm64 rockchip_linux_defconfig
make ARCH=arm64 menuconfig
make ARCH=arm64 savedefconfig
vim defconfig // 添加几个缺少的驱动

rm rockchip_linux_defconfig
mv defconfig rockchip_linux_defconfig
cp rockchip_linux_defconfig arch/arm64/configs/
cd arch/arm64/configs
mv rockchip_linux_defconfig rockchip_linux_defconfig_backup


./build.sh kernel
// 测试, 查看是否正常使用, 测试ok就可以保存
cp rockchip_linux_defconfig /home/xhz/kernel_pruning/defconfigs
// 此时应该使用add提交到本地仓库

git提交备份阶段

为什么要使用git提交? 因为这会让你有后悔药, 防止修改了某些参数导致编译失败或者内核起不来, 可以及时回档, 就是这样...

git add .
git commit -m "//date注释,1:16..."
git push

文件查找命令

 grep -rnw '/home/xhz/Neardi/Neardi-3588-SDK-Linux-V3.0/kernel/drivers' -e "lt8912"

 

中间的对比

配置好的defconfig文件可能需要添加之前缺少的几个项,

然后每次都对比看看差异大不大.

 CONFIG_USB_WDM=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_NET_CDCETHER=y
CONFIG_USB_NET_CDC_NCM=y
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_USBNET=y

// 每次保存配置固定会缺失的几个选项, 还是挺有用的, 这种情况只能手动添加进去...

 

封面图: [doge]

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心如止水~嘿嘿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值