Armadilloフォーラム

gstreamの無効化

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を無効化しても同様のエラーがでてしまいます。

この原因や、ほかにイメージの容量を少なくする方法など
何かアドバイスいただけませんでしょうか。

以上ですがよろしくお願いいたします。

コメント

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…

> > 起動のたびに、rc.localなどのデータが消えてしまいます。
>
> 「rc.localなどのデータ」とは、/etc/config/ 以下のデータ(コンフィグ領域)を指していますか?
> もしそうであれば、flatfsd -sを実行しないと保存されませんが、このコマンドは実行していますでしょうか?

回答ありがとうございます。
rc.localは、/etc/config下です。
flatfsd コマンドは実行しています。

rc.local へ記入 -> faltfsd -s で保存 -> 記入されていることを確認
-> reboot -> rc.local 確認、空になっている

という状況です。

> 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接続のストレージをマウントしてから、
このエラーが出るまでのログ(実行したコマンドと実行結果)を添付していただけますか?

> また、当初の質問の
> > 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

2015年12月16日 17時06分

> 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がうまく行くか試してみてください。

対応いただきありがとうございます。
対応事項が二つになってしまい申し訳ありません。

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

2015年12月17日 13時47分

> 経緯としては、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ほどとのことですので、
サイズが大きすぎるということはまず無いと思います。

> 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

2015年12月24日 18時32分

> 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

> > config領域の容量を大きくする必要があるということでしょうか。
>
> わかりません。
> 現時点では原因を断定できるほど情報が無いので、問題を切り分けていく必要
> があります。
>
> 以下のコマンドを実行し、表示されたログをフォーラムに添付してい
> ただけないでしょうか?

コード実行しました。
ログファイル添付いたします。
よろしくお願いします。

ファイル ファイルの説明
log.txt