[Armadillo:06150] Re: ログをリブート後にも継続して使用する方法

Takenoshita Koyo email@hidden
2010年 11月 12日 (金) 14:57:23 JST


竹之下です。

> 1)ログデータをリブート後にも、継続して使用する為には、
>   RAMディスク上にある、ファイルを、不揮発性の記憶媒体に
>  保存しておく必要が有りますが armadillo では、一般的には、
>  どうされているのでしょうか?

> 3)MicroSDカードのファイルに、保存するという方法が考えられますが、
>   ログデータを、保存する媒体として、armadillo で、一般的に利用されている 
> 方法でしょうか?
まずは、1と3について。

ご指摘の通り、Armadillo-440でデータを永続的に保存する方法には、コンフィグ領域
を使う方法とmicroSDやUSBメモリなどの外部ストレージを使用する方法があります。

前者は、あまり変更が無くサイズの小さいファイル(設定ファイルなど)に適しています。

今回は、ログファイル(頻繁に変更されサイズも大きくなりがち)ですので、後者を
使うことになると思います。その際、ストレージのファイルシステムをジャーナル付き
のもの(具体的にはEXT3ファイルシステム)にすると、突然の電源遮断時にデータが消失
するのを最小限に抑えることができます。

「Armadillo実践開発ガイド 第2部」にも記述がありますので、ご参照ください。
8.5. 外部ストレージのデータを守る
http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-1.0.0/ch08.html#sec_protect_removable_strage

また、ログの保存が大事なシステムであれば、ログをリモートに転送するという方法もあります。
これも、「Armadillo実践開発ガイド 第2部」に記述があります。
8.4. ログ管理
http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-1.0.0/ch08.html#sec_log_management


> 2)fromの、コンフィグ領域のサイズは、ユーザランドイメージ等の余裕があ 
> る場合、
>    変更して、大きくする事は可能でしょうか
>   可能であれば方法を教えてください。
可能です。

Armadillo開発者サイトにHowtoがあります。Armadillo-400シリーズが発売される
以前に書いたものなので、Armadillo-400シリーズに関する記述がありませんが、
基本はArmadillo-500シリーズと同じです。
http://armadillo.atmark-techno.com/howto/change-flash-partitions

方法としては、二つあります。
A. カーネルコマンドラインでmtdpartsオプションを指定する方法
B. Linuxカーネルのmtdドライバのソースコードを修正する方法

A. カーネルコマンドラインでmtdpartsオプションを指定する方法

カーネルコマンドラインのmtdpartsオプションを指定することで、各領域のサイズを
変更できます。カーネルコマンドラインは、ブートローダー(hermit-at)の保守モード
で設定できます。この方法は、一時的にパーティションを変更して試してみるのに適して
います。

カーネルコマンドラインを指定するには、Armadilloを保守モードで起動して、hermitの
コマンドプロンプトから以下のように入力します。コンフィグ領域を増やしたい場合は、
ユーザーランドのサイズを小さくしてください。残りがコンフィグ領域のサイズになります。

hermit> setenv console=ttymxc1 mtdparts=armadillo-nor:0x20000(bootloader)ro,0x200000(kernel),0x1da0000(userland),-(config)

上記は、ユーザーランドのサイズを標準の0x1dc0000(29.75MB)から0x1da0000(29.625MB)に
変更しています。各領域のサイズは128KB[*1]の整数倍となるよう調整してください。

mtdpartsオプションを指定して起動すると、カーネルの起動ログに以下のように表示
されますので、サイズが変更されているか確認してください。
4 cmdlinepart partitions found on MTD device armadillo-nor
armadillo-nor: use cmdline partitions(4)
Creating 4 MTD partitions on "armadillo-nor":
0x00000000-0x00020000 : "bootloader"
0x00020000-0x00220000 : "kernel"
0x00220000-0x01fc0000 : "userland"
0x01fc0000-0x02000000 : "config"

[*1]: フラッシュメモリのイレースサイズ

B. Linuxカーネルのmtdドライバのソースコードを修正する方法

標準のパーティションを変更する方法です。最終的な製品として出荷する場合には
この方法で修正するのが良いと思います。

Armadillo-400シリーズの標準のパーティションは、Linuxカーネルの以下のファイル
に記述してあります。
linux-2.6.26-at/arch/arm/mach-mx25/armadillo400.c

Armadillo-420は、フラッシュメモリのサイズが16MBなので、以下の構造体を
変更してください。
static struct mtd_partition armadillo400_mtd_nor_partitions_16MB[] = {
	MTD_PART("nor.bootloader",   4* 32*1024, 0,
		 MTD_WRITEABLE /* force read-only */ ),
	MTD_PART("nor.kernel",      16*128*1024, MTDPART_OFS_APPEND, 0),
	MTD_PART("nor.userland",   110*128*1024, MTDPART_OFS_APPEND, 0),
	MTD_PART("nor.config",       1*128*1024, MTDPART_OFS_APPEND, 0),
};

Armadillo-440は、フラッシュメモリのサイズが32MBなので、以下の構造体を
変更してください。
static struct mtd_partition armadillo400_mtd_nor_partitions_32MB[] = {
	MTD_PART("nor.bootloader",   4* 32*1024, 0,
		 MTD_WRITEABLE /* force read-only */ ),
	MTD_PART("nor.kernel",      16*128*1024, MTDPART_OFS_APPEND, 0),
	MTD_PART("nor.userland",   238*128*1024, MTDPART_OFS_APPEND, 0),
	MTD_PART("nor.config",       1*128*1024, MTDPART_OFS_APPEND, 0),
};


s.maruyama さんは書きました:
> 丸山です。
> 
> armadillo-440で開発しております。
> 
> システムクラッシュや、リブート時のデータの継続性について、
> 
> 1)ログデータをリブート後にも、継続して使用する為には、
>   RAMディスク上にある、ファイルを、不揮発性の記憶媒体に
>  保存しておく必要が有りますが armadillo では、一般的には、
>  どうされているのでしょうか?
> 
>  HTMLからアップロードされた、ファイル等のデータファイルを、
>  保存しておく場合も、 同様の問題が考えられます。
> 
>  fromの、コンフィグ領域に、データ量が少ない場合には、保存する事も可能か 
> も、
>   知れませんが、一般的に、ログデータ 等は量が多すぎると思われます。
> 
> 2)fromの、コンフィグ領域のサイズは、ユーザランドイメージ等の余裕があ 
> る場合、
>    変更して、大きくする事は可能でしょうか
>   可能であれば方法を教えてください。
> 
> 3)MicroSDカードのファイルに、保存するという方法が考えられますが、
>   ログデータを、保存する媒体として、armadillo で、一般的に利用されている 
> 方法でしょうか?
> 
> 以上、よろしくお願いいたします。
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 


-- 
Koyo Takenoshita




armadillo メーリングリストの案内