完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
由于手头上的RK3288板子厂家没有提供内核的源码,所以无法定制修改内核。在Firefly官网上有Firefly-RK3288的相关资料,下载了对应的Linux-SDK 源码包,尝试自行编译内核,并烧入新的boot.img/recovery.img,发现无法正常启动。后来在rockchip-linux的Github上,拉取了最新稳定版的代码分stable-4.4-rk3288-linux-v2.x,才可以正常启动内核,但遇到显示等不适配问题。后来了解到,不同板子厂家的设备树DTB是不同,所以只能从厂家原来的镜像中抽出来,再重新打包成新的镜像使用。(理论上可以使用安卓镜像中的DTB打包Linux版系统)
dts dtsi dtc dtb 说明 dts(Device Tree Source)文件是一种ASCII文本对Device Tree的描述,放置在内核的/arch/arm/boot/dts目录。一般而言,一个.dts文件对应一个ARM的machine。 由于一个SOC可能有多个不同电路板,而每个电路板拥有一个dts文件。这些dts势必会存在许多共同部分,为了减少代码的冗余,设备树讲这些共同部分提炼保存在dtsi(Device Tree Source Include File)文件中,供不同的dts共同使用。dtsi的使用方法,类似于C语言的头文件,在dts文件中需要进行include dtsi文件。当然,dtsi本身也支持include另一个dtsi文件。 dtc(Device Tree Complier)为编译工具,它可以将dts文件编译成dtb文件。DTC的源码位于内核的scripts/dtc目录下,内核选中CONFIG_OF,编译内核的时候,主机可执行程序DTC就会被编译出来。 dtb(Device Tree Blob),bootloader在引到内核时,会预先读取dtb到内存,进而由内核解析。 unpack_bootimg解包img 在内核的scripts目录下,有unpack_bootimg.py脚本,使用该脚本可以解包boot.img和recovery.img,解包命令如下: scripts/unpack_bootimg --boot_img boot.img --out boot 上述命令可以把img镜像进行解包,并保存到boot文件夹内,会得到如下三个文件: 其中kernel文件为内核编译后的二进制文件,ramdisk为内核挂载时,所有可能需要的驱动/模块/文件等。由于RK3288开源方案中将驱动打包进了内核,所以这里该文件大小为0。second文件需要再次解包,才能看到详细的内容。 resource_tool解包second 这里将second文件重命名为resource.img,并执行如下命令解包: scripts/resource_tool --unpack resource 解包完成后,在resource文件夹下会解压出三个文件: 其中rk-kernel.dtb文件就是编译后的设备树二进制文件。 dtc反编译dtb为dts 在内核编译过程中,dtc工具会被编译,使用如下命令可以反编译dtb文件为dts: scripts/dtc/dtc -I dtb -O dts rk-kernel.dtb > rk3288.dts dts文件可以直接用文本编辑器看到里面的设备信息,将该文件放到arch/arm/boot/dts目录下,并修改编译mk文件中RK_KERNEL_DTS的值为rk3288即可在自动编译过程中使用,如: # Kernel dts export RK_KERNEL_DTS=rk3288 mkbootimg重新打包 可以将自己编译的内核二进制文件kernel替换掉原有镜像的内核文件,然后使用mkbootimg.py脚本打包为新的镜像,具体命令如下: scripts/mkbootimg --kernel out/kernel --ramdisk out/ramdisk --second out/second --output newboot.img 最终可以得到重新打包后的镜像文件newboot.img,对于recovery.img也可以按步骤进行重新打包。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1988 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
2490 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
5272 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:22 , Processed in 0.748581 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号