问题:
先使用Firefly官方sdk,支持ubuntu系统。之后使用瑞芯微官方sdk,ubuntu文件系统可以启动,但是部分分区无法正常挂载
分析问题:
1. 怀疑是文件系统问题,之前的文件系统是从firefly官方下载的,怀疑是Firefly在文件系统中加了修改,于是直接ubuntu官网下载文件系统。发现现象一致。故排除了文件系统。
2. 剩下的就是uboot 、kernel、params分区表。经过对比测试,发现仅于kernel存在强相关。
3. 排查发现代码和设备树类似,没有太大可能,然后发现生成的文件中kernel/extlinux/extlinux.conf配置有差异,Firefly多了initrd相关信息,且网上查阅资料,ubuntu系统的初始化确实与initrd有关
4. 排查编译脚本,发现Firefly的脚本中增加了相关内容
if [[ -e ${TOP_DIR}/kernel/ramdisk.img ]]; then
cp ${TOP_DIR}/kernel/ramdisk.img $EXTBOOT_DIR/initrd-$KERNEL_VERSION
echo -e "\tinitrd /initrd-$KERNEL_VERSION" >> $EXTBOOT_DIR/extlinux/extlinux.conf
fi
5. 排查发现Firefly SDK中多提供了一个ramdisk.img的文件
6. 反向验证,Firefly SDK删除ramdisk.img后,现象和瑞芯微官方一致。
总结:rk3588支持ubuntu系统需要ramdisk.img文件的支持。
其他细节和正向验证,待后续需要时再进行。