国产香橙派Zero2(2):内核编译及驱动编译

下载源码

https://github.com/orangepi-xunlong/orangepi-build

要选择next版本
执行build.sh 要加sudo
最好是先编译一次镜像
再来编译内核
具体操作参考OrangePi_Zero2_H616_用户手册_v4.0.pdf 新版

制作自己的驱动(在官方内核源码文件夹里编写,官方编译指令)

参考

https://blog.csdn.net/weixin_50239605/article/details/131127494

!!!修改一条指令
新版5.16内核在用命令直接编译内核时的交叉编译工具链即便是添加了环境变量,也依旧会出错,因此可以改为绝对路径。如下所示:

sudo make ARCH=arm64 CROSS_COMPILE=/home/lyprc/LOVE/OrangepiZero2/orangepi-build-next/toolchains/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- -j8

还要关闭更新,否则写在源码文件夹里的所有文件都会被删除!!!
设置 userpatches/config-default.conf 中的 IGNORE_UPDATES 变量为“yes”

查看驱动信息

modinfo xxx.ko

会出现下面

filename:       /home/lyprc/LOVE/OrangepiZero2/orangepi-build-next/kernel/orange-pi-5.16-sunxi64/drivers/char/pin4_x.ko
license:        GPL v2
depends:        
intree:         Y
name:           pin4_x
vermagic:       5.16.17+ SMP mod_unload aarch64

然而正常的vermagic应该为 5.16.17-sun50iw9 SMP mod_unload aarch64

修改方法:
1.将/home/lyprc/LOVE/OrangepiZero2/orangepi-build-next/kernel/orange-pi-5.16-sunxi64/scripts
里的setlocalversion中最后的res=“$res${scm:++}“修改为res=”$res${scm:+}”
2.将/home/lyprc/LOVE/OrangepiZero2/orangepi-build-next/kernel/orange-pi-5.16-sunxi64里的Makefile修改为 EXTRAVERSION =-sun50iw9

然后再直接命令编译,就可以正常了。
不过如果再用build.sh编译内核,那么编译出来的内核里的驱动的vermagic就会额外带着一个-sun50iw9,因此注意修改Makefile修改为 EXTRAVERSION =<空格>

制作自己的驱动(独立编写编译)

未完待续。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值