ooshima
2015年12月9日 13時27分
大嶋と申します。
Armadillo-810+有線LAN拡張ボードで開発を行っています。
開発に使用しているユーザランド、カーネルは、
linux-3.4-at16
atmark-dist-20151120
です。
作成したプログラム等を反映したイメージを作成したのですが、
容量が大きくなってしまったためかArmadillo-810へ書き込んでも
起動のたびに、rc.localなどのデータが消えてしまいます。
(作成したromfs.img.gzのサイズは、19.2Mほどでした。)
そこで、gstream1.0を無効化してイメージを作成しました。
しかし、作成したイメージをArmadillo-810へ書き込む途中で
以下のエラーが出てしまい、起動できなくなってしまいます。
FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): Filesystem has been set read-only
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
ユーザランドの中に作成プログラム等入れない場合で
gstream1.0を無効化しても同様のエラーがでてしまいます。
この原因や、ほかにイメージの容量を少なくする方法など
何かアドバイスいただけませんでしょうか。
以上ですがよろしくお願いいたします。
コメント
ooshima
> > 起動のたびに、rc.localなどのデータが消えてしまいます。
>
> 「rc.localなどのデータ」とは、/etc/config/ 以下のデータ(コンフィグ領域)を指していますか?
> もしそうであれば、flatfsd -sを実行しないと保存されませんが、このコマンドは実行していますでしょうか?
回答ありがとうございます。
rc.localは、/etc/config下です。
flatfsd コマンドは実行しています。
rc.local へ記入 -> faltfsd -s で保存 -> 記入されていることを確認
-> reboot -> rc.local 確認、空になっている
という状況です。
at_yuma.arakawa
> rc.localは、/etc/config下です。
> flatfsd コマンドは実行しています。
>
> rc.local へ記入 -> faltfsd -s で保存 -> 記入されていることを確認
> -> reboot -> rc.local 確認、空になっている
flatfsdは実行しているのですね。承知しました。
また、当初の質問の
> FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
こちらのエラーについて、イメージファイルが格納されているUSB接続のストレージをマウントしてから、
このエラーが出るまでのログ(実行したコマンドと実行結果)を添付していただけますか?
ooshima
> また、当初の質問の
> > FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
> こちらのエラーについて、イメージファイルが格納されているUSB接続のストレージをマウントしてから、
> このエラーが出るまでのログ(実行したコマンドと実行結果)を添付していただけますか?
対応いただきありがとうございます。
USBマウントからエラーまでのteratermのログは以下です。
一応、logファイルも添付します。
よろしくお願いします。
[root@EYE-SENSOR (ttySC2) /]# mount /dev/dsda1 /mnt
FAT-fs (sda1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
[root@EYE-SENSOR (ttySC2) /]# cd /mnt[root@EYE-SENSOR (ttySC2) /]# cd /mnt/Ro[root@EYE-SENSOR (ttySC2) /]# cd /mnt/ROM_IMAGE/image[root@EYE-SENSOR (ttySC2) /]# cd /mnt/ROM_IMAGE/image_12[root@EYE-SENSOR (ttySC2) /]# cd /mnt/ROM_IMAGE/image_1208/
[root@EYE-SENSOR (ttySC2) /mnt/ROM_IMAGE/image_1208]# netflash -b -k -n -u -s -r
/dev/flash/kernel $path/linux.bin.gzlinux.bin.gzlinux.bin.gzlinux.bin.gzlinux.bin.gzlinux.bin.gzlinux.bin.gzlinux.bin.gz
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
netflash: got "linux.bin.gz", length=2641203
netflash: programming FLASH device /dev/flash/kernel
.....................
[root@EYE-SENSOR (ttySC2) /mnt/ROM_IMAGE/image_1208]# netflash -b -k -n -u -s -r
/dev/flash/userland $path/romfs.img.gzromfs.img.gzromfs.img.gzromfs.img.gzromfs.img.gzromfs.img.gzromfs.img.gzromfs.img.gz
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): Filesystem has been set read-only
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
................................................................FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 4365317)
..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
netflash: got "romfs.img.gz", length=3604480
netflash: programming FLASH device /dev/flash/userland
............................
[root@EYE-SENSOR (ttySC2) /mnt/ROM_IMAGE/image_1208]#
ファイル | ファイルの説明 |
---|---|
teraterm.log |
at_kojiro.yamada
> rc.local へ記入 -> faltfsd -s で保存 -> 記入されていることを確認
> -> reboot -> rc.local 確認、空になっている
「記入されていることを確認」のところで
flatfsd -rを実行した場合も
rc.local が空になるのでしょうか?
ちなみに、「空になっている」とは厳密にはどのようになっているのでしょうか?
- /etc/config/rc.local が存在しない
- /etc/config/rc.local サイズが0になっている
- /etc/config/rc.local が /etc/default/rc.local と同じ内容に書き変わっている
- ...etc
> USBマウントからエラーまでのteratermのログは以下です。
ファイルシステムがエラーを出していて、
netflashがイメージファイルを正しく読み出せていません。
ログの
> netflash: got "romfs.img.gz", length=3604480
の部分を見るとわかりますが、netflashが読み出せたのは3.5MB程になっています。
ストレージのファイルシステムはFAT32で間違いないでしょうか?
ストレージをPCなどに接続して確認してみてください。
また、可能であれば、別のUSBストレージやSDカードの場合
netflashがうまく行くか試してみてください。
ooshima
対応いただきありがとうございます。
対応事項が二つになってしまい申し訳ありません。
1./etc/config 下のデータ保存が正常に行えない
2.gstream1.0 を設定ではずすと書き込みエラーとなる
経緯としては、1.の問題が起き、原因がArmadillo-810の容量と判断し、
2.のgstreamをはずしたところ、書き込みエラーとなりました。
「config領域に割りと大きなデータ(bmp画像)を保存したい」というのが目的になります。
ですので、1.の問題が解決すれば2.は無視していただいてかまいません。
逆に、2.の問題が解決しても1.の問題は解決しないものでしょうか。
素人で、わかっていない部分も多いですがよろしくお願いします。
> 「記入されていることを確認」のところで
> flatfsd -rを実行した場合も
> rc.local が空になるのでしょうか?
flatfsd -r実行を行いましたが、再起動が空になりました。
「空になる」は、返信いただいた中の、サイズが0になる状態です。
> - /etc/config/rc.local サイズが0になっている
> ストレージのファイルシステムはFAT32で間違いないでしょうか?
> ストレージをPCなどに接続して確認してみてください。
> また、可能であれば、別のUSBストレージやSDカードの場合
> netflashがうまく行くか試してみてください。
別のUSBメモリでnetflashを行ったところエラーなく書き込みできました。
ありがとうございました。
USBメモリは、FAT32でgstream1.0の設定を有効にした場合は、
同じメモリで正常に書き込みができていたため、疑っていませんでした。
お手数おかけしました。
at_kojiro.yamada
> 経緯としては、1.の問題が起き、原因がArmadillo-810の容量と判断し、
> 2.のgstreamをはずしたところ、書き込みエラーとなりました。
> 「config領域に割りと大きなデータ(bmp画像)を保存したい」というのが目的になります。
> ですので、1.の問題が解決すれば2.は無視していただいてかまいません。
Armadillo-810のconfig領域は256KBになっています。
config領域に保存したいデータは何バイトでしょうか?
もし、/etc/config/以下のファイルの合計サイズが、
config領域に保存しきれないサイズになっているなら
flatfsd -sを実行した時に、以下のようなメッセージが出るはずです。
[Armadillo]# flatfsd -s flatfsd: config will not fit in flash
ディレクトリ内のファイルの合計サイズはduコマンドで確認できます。
[Armadillo]# du -h /etc/config/ 10.0K /etc/config/
また、何のための画像を保存するのでしょうか?
画像を書き込む頻度にもよりますが、もし、キャプチャーした画像を保存する
というのであれば、推奨できません。
運用中にフラッシュメモリの書き換え寿命に達し、conifg領域にデータを
保存できなくなる可能性が高いです。
> 逆に、2.の問題が解決しても1.の問題は解決しないものでしょうか。
おそらくそのとおりです。
すみません。先に説明しておくべきでした。
1.の問題の原因がユーザーランドイメージのサイズが原因とは考えにくいです。
Armadillo-810に搭載されいるフラッシュメモリ(64MB)のパーティションは
以下のようになっています。
| partition | size | |------------+---------| | bootloader | 256KB | | config | 256KB | | license | 256KB | | firmware | 4MB | | kernel | 4MB | | userland | 55.25MB |
userland領域は55.25MBあります。
作成したromfs.img.gzのサイズは19.2Mほどとのことですので、
サイズが大きすぎるということはまず無いと思います。
ooshima
> Armadillo-810のconfig領域は256KBになっています。
> config領域に保存したいデータは何バイトでしょうか?
config領域に保存したいデータは、約2.7Mになります。
config領域のサイズは、以下に変更しています。
変更時コマンド
setenv console=ttySC2,115200 mtdparts=physmap-flash.0:0x40000(bootloader)ro,0xA00000(config),0x40000(license)ro,0x400000(firmware)ro,0x400000(kernel),0x2D40000(userland)
変更確認
Creating 6 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000040000 : "bootloader"
0x000000040000-0x000000a40000 : "config"
0x000000a40000-0x000000a80000 : "license"
0x000000a80000-0x000000e80000 : "firmware"
0x000000e80000-0x000001280000 : "kernel"
0x000001280000-0x000003fc0000 : "userland"
> もし、/etc/config/以下のファイルの合計サイズが、
> config領域に保存しきれないサイズになっているなら
> flatfsd -sを実行した時に、以下のようなメッセージが出るはずです。
>
>
> [Armadillo]# flatfsd -s > flatfsd: config will not fit in flash >
> ディレクトリ内のファイルの合計サイズはduコマンドで確認できます。
>
> [Armadillo]# du -h /etc/config/ > 10.0K /etc/config/ >
ファイルサイズの合計は、以下でした。
[root@(none) (ttySC2) /etc/config]# du -h /etc/config/
2.7M /etc/config/AlcdSetting
2.7M /etc/config/
また、flatfsd -s 実行時に、上記のエラーメッセージは出ていませんでした。
[root@(none) (ttySC2) /etc/config]# flatfsd -s
flatfsd: saving fs to partition 1, tstamp=-1086986081
flatfsd: Wrote 3560063 bytes to flash in 24 seconds
[root@(none) (ttySC2) /etc/config]#
> また、何のための画像を保存するのでしょうか?
> 画像を書き込む頻度にもよりますが、もし、キャプチャーした画像を保存する
> というのであれば、推奨できません。
> 運用中にフラッシュメモリの書き換え寿命に達し、conifg領域にデータを
> 保存できなくなる可能性が高いです。
設定として画像を使用しています。
設定変更時のみ、config内の画像を書き換えを行うため、
書き込み頻度は多くないと考えています。
> > 逆に、2.の問題が解決しても1.の問題は解決しないものでしょうか。
>
> おそらくそのとおりです。
> すみません。先に説明しておくべきでした。
>
> 1.の問題の原因がユーザーランドイメージのサイズが原因とは考えにくいです。
>
> Armadillo-810に搭載されいるフラッシュメモリ(64MB)のパーティションは
> 以下のようになっています。
>
>
> | partition | size | > |------------+---------| > | bootloader | 256KB | > | config | 256KB | > | license | 256KB | > | firmware | 4MB | > | kernel | 4MB | > | userland | 55.25MB | >
>
> userland領域は55.25MBあります。
> 作成したromfs.img.gzのサイズは19.2Mほどとのことですので、
> サイズが大きすぎるということはまず無いと思います。
おっしゃる通り、gstream1.0をはずし、
ユーザーランドサイズを小さくしても問題は解決しませんでした。
config領域の容量を大きくする必要があるということでしょうか。
現状の問題点が定められておらず申し訳ありません。
at_kojiro.yamada
> config領域の容量を大きくする必要があるということでしょうか。
わかりません。
現時点では原因を断定できるほど情報が無いので、問題を切り分けていく必要
があります。
以下のコマンドを実行し、表示されたログをフォーラムに添付してい
ただけないでしょうか?
[Armadillo]# cp /etc/config/rc.local /tmp/ [Armadillo]# echo "echo hello" >> /etc/config/rc.local [Armadillo]# flatfsd -v [Armadillo]# du -h /etc/config/ [Armadillo]# ls -l /etc/config/ [Armadillo]# flatfsd -s [Armadillo]# rm /etc/config/rc.local -f [Armadillo]# flatfsd -r [Armadillo]# du -h /etc/config/ [Armadillo]# ls -l /etc/config/ [Armadillo]# cat /etc/config/rc.local
ooshima
at_yuma.arakawa
2015年12月9日 14時55分
> 起動のたびに、rc.localなどのデータが消えてしまいます。
「rc.localなどのデータ」とは、/etc/config/ 以下のデータ(コンフィグ領域)を指していますか?
もしそうであれば、flatfsd -sを実行しないと保存されませんが、このコマンドは実行していますでしょうか?
コンフィグ領域について詳しくは以下を参照して下さい。
- 第7章 コンフィグ領域 − 設定ファイルの保存領域
http://manual.atmark-techno.com/armadillo-810/armadillo-810_product_man…