今天要升级linux根文件系统ubi,结果简单打包工作,就有一个始终不正确,花了不少时间,总算搞明白了。
我使用了两个打包脚本,脚本1是一个整个系统打包脚本,脚本2是一个专门给文件系统打包的脚本。
脚本1的部分配置:
脚本1如上两部分,先指定文件目录DIR,打包后卷名,flash大小,输出名字,输出目录。
脚本2如下:
执行脚本基本同上,配置参数直接给出。
使用脚本2生成rootfs55.img,加载板子上,发现了两个问题:
问题1:启动后,文件系统加载失败了,如下:
如上,直接提示
这个应该就是配置出现了问题,给文件系统分配的size过大了,而使用脚本1编译:
取得的文件系统,正常启动如下:
对比脚本,脚本1:
脚本2:
差别就是-C 的配置不一样,如上的配置参数意义:
-r:制定文件内容的位置
-m:页面大小
-e:逻辑擦除块大小
-c:最大的逻辑擦除块数量
直接将mkubifs_forA8fs_liming.sh的C参数修改为440看看
还是不正确,再对比下差异,还有一点如下:
执行制定的配置文件不同,两个配置文件的配置不一致,分配如下:
脚本1使用ubinizeImg.cfg,配置正确,如下:
脚本2使用ubinize.cfg,配置如下:
应该就是这个76M导致的,
之前一直提示
如果按照76M计算,76*8=608,加上2%余量,差不过620多
修改ubinize.cfg文件,将size修改为55M,之后打包,下载到板子就能正常启动了:
本文是linux系统ubi文件系统异常第一篇,后续还有一些异常处理