在运行Linux 2.6.36的嵌入式平台上,我偶尔会遇到一个问题,其中文件未出现在我们的initramfs cpio文件中的ARE的根文件系统中。从initramfs中“消失”的文件
我正在从cpio列表文件构建initramfs(请参阅gen_init_cpio.c
),但在使用完整目录之前也遇到了问题。
当我说我知道文件存在于cpio文件中时,我的意思是如果我提取usr/initrmafs_data.cpio.gz
文件在那里。
它似乎与initramfs中的内容数量松散相关,但我还没有找到导致文件开始消失的魔术数量和/或总存储容量。
有没有在make menuconfig
选项我错过了,将解决这个问题?启动参数?还有别的吗?
有什么建议吗?
更新:为了澄清,这是使用CONFIG_INITRAMFS_SOURCE
内置内存盘,它的通过设置CONFIG_INITRAMFS_COMPRESSION_GZIP
用gzip压缩。此外,这是一个mipsel-linux
平台。
更新#2:我已经添加了一个printk到init/initramfs.c:clean_path
和神秘地,以前的“消失”文件现在都在那里。我认为如果尝试记录行为改变了行为,这种类似似乎指向内核错误。我会在明天将initramfs.c与新的内核进行比较,看看是否能够解决这个问题。
投票结束的人:从什么时候涉及*编译*内核的问题在superuser.com上进行?我现在正在添加'printk'语句并破解了“init/*。c”文件以达到这个目的..... –
这是一种关于主题但在这里边界的集成问题,完全是[su]越位,[unix.se]越界,并可能在[自己的站点]上做得最好(http://area51.stackexchange.com/proposals/70800/embedded-systems?referrer=ugotaNldoh5JOVkcEm-iDw2) 。 – Gilles