Есть плата с ARM-процессором, во время разработки работа ведётся с использованием файловой системы на NFS. Сейчас необходимо сделать устройство автономным, для чего разместил файловую систему на NAND-флеш. Система нормально стартует, но у некоторых компонентах наблюдаются проблемы, в частности...
Проверка модуля на NFS
user
# ls -l csl.ko
-rw-r--r-- 1 1000 1000 101485 Jun 21 2011 csl.ko
# md5sum csl.ko
86e68b2b4aa6a399ce463f3e01a25878 csl.ko
# modprobe csl
CSL: Module install successful, device major num = 253
CSL: Module version 0.10.00, built on Jun 20 2011 16:53:21
# modprobe -r csl
Копирование модуля на NAND-флеш
user
# mount -t yaffs2 /dev/mtdblock4 /mnt/yaffs: dev is 32505860 name is "mtdblock4"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.4, "mtdblock4"
yaffs: auto selecting yaffs1
yaffs: block 2302 is marked bad
block 2303 is bad
yaffs: block 2303 is marked bad
block 2304 is bad
yaffs_read_super: isCheckpointed 0
# cp csl.ko /mnt/root
# ls -l /mnt/root/csl.ko
-rw-r--r-- 1 root root 101485 Jan 1 08:02 /mnt/root/csl.ko
# md5sum /mnt/root/csl.ko
86e68b2b4aa6a399ce463f3e01a25878 /mnt/root/csl.ko
# umount /mntsave exit: isCheckpointed 0
save exit: isCheckpointed 0
# mount -t yaffs2 /dev/mtdblock4 /mnt/yaffs: dev is 32505860 name is "mtdblock4"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.4, "mtdblock4"
yaffs: auto selecting yaffs1
yaffs: block 2302 is marked bad
block 2303 is bad
yaffs: block 2303 is marked bad
block 2304 is bad
yaffs_read_super: isCheckpointed 0
# ls -l /mnt/root/csl.ko
-rw-r--r-- 1 root root 101376 Jan 1 08:02 /mnt/root/csl.ko
# md5sum /mnt/root/csl.ko
f7c55fde4c44b90136bf4d664fa34acd /mnt/root/csl.ko
# insmod /mnt/root/csl.ko
Module len 101376 truncated
insmod: can't insert '/mnt/root/csl.ko': invalid module format
Сперва я решил, что проблема в нескольких bad block-ах, но куда бы я не записывал модуль, везде поведение идентично - модуль битый.
Что странно, подобная проблема наблюдается только с этим модулем и ещё одним текстовым конфигом, который обрезается.
На данный момент я выкрутился тем, что запаковал все модули tar-ом и распаковываю их перед загрузкой, но, на мой взгляд, это костыль.
Первый раз встречаюсь с такой ситуацией и даже не могу её объяснить.
Подскажите?
Спасибо.