「未解決の問題」の編集履歴(バックアップ)一覧はこちら

未解決の問題」(2015/03/13 (金) 10:54:16) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**NAND領域をマウントできない NANDブート時にルートに割当たっているところからゴッソリとコピーしてこようとしたときの問題。 > mount /dev/mtd2 /mnt/mtd > mount: /dev/mtd2 is not a block device ん?etchの時は問題なくできたはずなのに... > KUROBOX-PRO:~# cat /proc/mtd > dev: size erasesize name > mtd0: 00040000 00001000 "physmap-flash.0" > mtd1: 00400000 00020000 "uImage" > mtd2: 04000000 00020000 "rootfs" > mtd3: 0bc00000 00020000 "extra" > KUROBOX-PRO:~# ls -l /dev/ | grep mtd* > crw------- 1 root root 90, 0 Mar 11 14:54 mtd0 > crw------- 1 root root 90, 1 Mar 11 14:54 mtd0ro > crw------- 1 root root 90, 2 Mar 11 14:54 mtd1 > crw------- 1 root root 90, 3 Mar 11 14:54 mtd1ro > crw------- 1 root root 90, 4 Mar 11 14:54 mtd2 > crw------- 1 root root 90, 5 Mar 11 14:54 mtd2ro > crw------- 1 root root 90, 6 Mar 11 14:54 mtd3 > crw------- 1 root root 90, 7 Mar 11 14:54 mtd3ro > brw-rw---T 1 root disk 31, 0 Mar 11 14:54 mtdblock0 > brw-rw---T 1 root disk 31, 1 Mar 11 14:54 mtdblock1 > brw-rw---T 1 root disk 31, 2 Mar 11 14:54 mtdblock2 > brw-rw---T 1 root disk 31, 3 Mar 11 14:54 mtdblock3 mtdblock2のほうか > mount /dev/mtdblock2 /mnt/mtd > mount: you must specify the filesystem type ファイルシステムを指定しないとだめになった? 調べてみるとjffs2を指定すべきらしい。 > mount -t jffs2 /dev/mtdblock2 /mnt/mtd 指定してみるが…ハング。応答が返ってきません。 syslogには以下のログが大量に出ている > Mar 16 17:02:08 localhost kernel: [259459.519943] JFFS2 version 2.2. (NAND) (SUMMARY) c 2001-2006 Red Hat, Inc. > Mar 16 17:05:34 localhost kernel: [259665.270902] uncorrectable error : > : > : > : > : > Mar 16 17:05:34 localhost kernel: [259665.298841] mtd->read(0x800 bytes from 0x1f800) returned ECC error > Mar 16 17:05:34 localhost kernel: [259665.399566] jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000024: 0x2b2b instead > : > : > Mar 16 17:05:36 localhost kernel: [259665.408602] Further such events for this erase block will not be printed > : > Mar 16 20:07:58 localhost kernel: [270609.004576] mtd->read(0x1ac bytes from 0x36dfe54) returned ECC error > Mar 16 20:07:58 localhost kernel: [270609.011194] Empty flash at 0x036dfe50 ends at 0x036dfe54 > Mar 16 20:07:58 localhost kernel: [270609.022359] Empty flash at 0x036dff48 ends at 0x036dff4c > Mar 16 20:07:58 localhost kernel: [270609.084315] Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes > Mar 16 20:07:58 localhost kernel: [270609.092236] empty_blocks 0, bad_blocks 0, c->nr_blocks 512 > 3時間かかってmountされずに終了。 kernelの問題?よくわからないので後ほど調査することにする。 **回避策 NANDから取れないならNAND更新用のinitrd.buffaloからいただくことにする。 玄箱PRO用Firmware V1.02 kbpfw102.zip を使う。 > KUROBOX-PRO:~# apt-get install unzip > KUROBOX-PRO:~# unzip kbpfw102.zip > KUROBOX-PRO:~# dd if=initrd.buffalo of=initrd.gz bs=64 skip=1 > 301354+1 records in > 301354+1 records out > 19286692 bytes (19 MB) copied, 20.6181 s, 935 kB/s > KUROBOX-PRO:~# gunzip initrd.gz > KUROBOX-PRO:~# mkdir /tmp/root > KUROBOX-PRO:~# mount -o loop initrd /tmp/root > KUROBOX-PRO:~# ls -l /tmp/root/boot > total 18021 > -rw-r--r-- 1 root root 1714088 Mar 1 2007 initrd.buffalo > -rw-r--r-- 1 root root 14680064 Apr 10 2007 nandrootfs.jffs2 > -rwxrwxrwx 1 root root 245776 Apr 10 2007 u-boot.bin > -rwxrwxrwx 1 root root 1736612 Apr 10 2007 uImage.buffalo このnandrootfs.jffs2の中に入っている一式が欲しかったもの このイメージから中身を取り出すためには以下の手順でできるはずだが、mtdramがない > mknod /tmp/mtdblock0 b 31 0 > modprobe mtdblock > modprobe mtdram total_size=4000000 erase_size=20000 > modprobe jffs2 > dd if=/tmp/root/boot/nandrootfs.jffs2 of=/tmp/mtdblock0 > mkdir /mnt/mtd > mount -t jffs2 /tmp/mtdblock0 /mnt/mtd 回避策でも行き詰まった。
**NAND領域をマウントできない NANDブート時にルートに割当たっているところからゴッソリとコピーしてこようとしたときの問題。 > mount /dev/mtd2 /mnt/mtd > mount: /dev/mtd2 is not a block device ん?etchの時は問題なくできたはずなのに... > KUROBOX-PRO:~# cat /proc/mtd > dev: size erasesize name > mtd0: 00040000 00001000 "physmap-flash.0" > mtd1: 00400000 00020000 "uImage" > mtd2: 04000000 00020000 "rootfs" > mtd3: 0bc00000 00020000 "extra" > KUROBOX-PRO:~# ls -l /dev/ | grep mtd* > crw------- 1 root root 90, 0 Mar 11 14:54 mtd0 > crw------- 1 root root 90, 1 Mar 11 14:54 mtd0ro > crw------- 1 root root 90, 2 Mar 11 14:54 mtd1 > crw------- 1 root root 90, 3 Mar 11 14:54 mtd1ro > crw------- 1 root root 90, 4 Mar 11 14:54 mtd2 > crw------- 1 root root 90, 5 Mar 11 14:54 mtd2ro > crw------- 1 root root 90, 6 Mar 11 14:54 mtd3 > crw------- 1 root root 90, 7 Mar 11 14:54 mtd3ro > brw-rw---T 1 root disk 31, 0 Mar 11 14:54 mtdblock0 > brw-rw---T 1 root disk 31, 1 Mar 11 14:54 mtdblock1 > brw-rw---T 1 root disk 31, 2 Mar 11 14:54 mtdblock2 > brw-rw---T 1 root disk 31, 3 Mar 11 14:54 mtdblock3 mtdblock2のほうか > mount /dev/mtdblock2 /mnt/mtd > mount: you must specify the filesystem type ファイルシステムを指定しないとだめになった? 調べてみるとjffs2を指定すべきらしい。 > mount -t jffs2 /dev/mtdblock2 /mnt/mtd 指定してみるが…ハング。応答が返ってきません。 syslogには以下のログが大量に出ている > Mar 16 17:02:08 localhost kernel: [259459.519943] JFFS2 version 2.2. (NAND) (SUMMARY) c 2001-2006 Red Hat, Inc. > Mar 16 17:05:34 localhost kernel: [259665.270902] uncorrectable error : > : > : > : > : > Mar 16 17:05:34 localhost kernel: [259665.298841] mtd->read(0x800 bytes from 0x1f800) returned ECC error > Mar 16 17:05:34 localhost kernel: [259665.399566] jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000024: 0x2b2b instead > : > : > Mar 16 17:05:36 localhost kernel: [259665.408602] Further such events for this erase block will not be printed > : > Mar 16 20:07:58 localhost kernel: [270609.004576] mtd->read(0x1ac bytes from 0x36dfe54) returned ECC error > Mar 16 20:07:58 localhost kernel: [270609.011194] Empty flash at 0x036dfe50 ends at 0x036dfe54 > Mar 16 20:07:58 localhost kernel: [270609.022359] Empty flash at 0x036dff48 ends at 0x036dff4c > Mar 16 20:07:58 localhost kernel: [270609.084315] Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes > Mar 16 20:07:58 localhost kernel: [270609.092236] empty_blocks 0, bad_blocks 0, c->nr_blocks 512 > 3時間かかってmountされずに終了。 kernelの問題?よくわからないので後ほど調査することにする。 **回避策 NANDから取れないならNAND更新用のinitrd.buffaloからいただくことにする。 玄箱PRO用Firmware V1.02 kbpfw102.zip を使う。 > KUROBOX-PRO:~# apt-get install unzip > KUROBOX-PRO:~# unzip kbpfw102.zip > KUROBOX-PRO:~# dd if=initrd.buffalo of=initrd.gz bs=64 skip=1 > 301354+1 records in > 301354+1 records out > 19286692 bytes (19 MB) copied, 20.6181 s, 935 kB/s > KUROBOX-PRO:~# gunzip initrd.gz > KUROBOX-PRO:~# mkdir /tmp/root > KUROBOX-PRO:~# mount -o loop initrd /tmp/root > KUROBOX-PRO:~# ls -l /tmp/root/boot > total 18021 > -rw-r--r-- 1 root root 1714088 Mar 1 2007 initrd.buffalo > -rw-r--r-- 1 root root 14680064 Apr 10 2007 nandrootfs.jffs2 > -rwxrwxrwx 1 root root 245776 Apr 10 2007 u-boot.bin > -rwxrwxrwx 1 root root 1736612 Apr 10 2007 uImage.buffalo このnandrootfs.jffs2の中に入っている一式が欲しかったもの このイメージから中身を取り出すためには以下の手順でできるはずだが、mtdramがない > mknod /tmp/mtdblock0 b 31 5 > modprobe mtdblock > modprobe mtdram total_size=4000000 erase_size=20000 > modprobe jffs2 > dd if=/tmp/root/boot/nandrootfs.jffs2 of=/tmp/mtdblock5 > mkdir /mnt/mtd > mount -t jffs2 /tmp/mtdblock0 /mnt/mtd 回避策でも行き詰まった。

表示オプション

横に並べて表示:
変化行の前後のみ表示: