因为公司同事反映他使用的开板无法将根目录下的ip_work目mounth成功,由于本人当时没有去现场查看问题,只是象征性的询问内核是否创建了/dev/mtdblock5设备节点,因为该开发板默认是挂载在mtdblock5上,由于同事对这方面不了解,包括对问题的敷衍了事,直接反馈给本人,说没有/dev/mtdblock5,我对此深信不疑,所以当时直接没有考虑能通过uboot传参,更改mtd分区信息,而自动创建mtd*设备节点,也算是自己对内核对uboot解参的不了解,后来本人直接把问题归结于制作文件系统时,没有创建该设备节点,所以很自然的重新制作的文件系统,并推送到gerrit上,等候评审,后来评审时被一个老员工看到了,反馈给我师傅说:根本不用修改文件系统,能够直接创建。所以可想而知,打脸了。于是好好分析uboot传参数修改mtd分区信息的调用过程。
前提条件:通过修改make menuconfig配置,允许解析参数。
377 __setup("mtdparts=", mtdpart_setup); //kernel/drivers/mtd/cmdlinepart.c 245 #define __setup(str, fn) //init.h" 246 __setup_param(str, fn, fn, 0)