[Armadillo:04760] Armadillo-500のオンボードフラッシュメモリにファイルを記録できない

t_shibata email@hidden
2009年 11月 20日 (金) 10:08:14 JST


柴田です。
組み込みリナックスは初めてです。
教えてください。よろしくお願いします。


Armadillo-500のオンボードフラッシュメモリ領域にファイルを記録できません。

■■■ Armadillo側の以下のフォルダにオンボードフラッシュメモリ領域を割り当て
たつもりです。
■ 割り当てたフォルダ:   /etc/userapl

■■■ しかし「mount」コマンドの実行結果からも分かりますが、マウントされてい
ません。
■ mountコマンド結果
/dev/ram0 on / type ext2 (rw)
proc on /proc type proc (rw)
usbfs on /proc/bus/usb type usbfs (rw)
sysfs on /sys type sysfs (rw)
ramfs on /home/ftp/pub type ramfs (rw)

■■■ 私が変更したファイルと、変更内容を以下に示します。
■ [dist]/linux-2.6.x/arch/arm/mach-mx3/
169行目の構造体定義を変更。変更後、makeを実行。
/dev/flash配下にnor.userland2デバイスが存在することは確認済。
○変更前
static struct mtd_partition 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),
};

○変更後
static struct mtd_partition 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",   105*128*1024, MTDPART_OFS_APPEND, 0),
	MTD_PART("nor.userland2",    5*128*1024, MTDPART_OFS_APPEND, 0),
	MTD_PART("nor.config",       1*128*1024, MTDPART_OFS_APPEND, 0),
};

■ /etc/fstab にこの行を追加
/dev/flash/nor.userland2	/etc/userapl	jffs2	defaults
0 0
# /etc/useraplフォルダは、[dist]/romfs/etcフォルダにmkdirコマンドで作成。
  make imageコマンドにより、イメージファイルの作成

■ /etc/init.d/rc の以下のコードをコメントアウトし、fsckを起動時に実行しない
ようにした
############################################################################
###
# fsck
############################################################################
###
echo "Starting fsck for root filesystem."
mount -n -o remount,ro /
fsck -C -p /
if [ "$?" -gt 1 ]; then
  echo "WARNING: Error while checking root filesystem."
  echo "You can login as root now, the system will reboot after logout."
  sulogin
  reboot
else
  echo -n "Checking root filesystem: "
  check_status
fi

■■■ mountコマンドにより、マウントすることも試して見ました。その時は
/etc/fstabはデフォルトのままです。
■ 実行したmountコマンド。全てのコマンドが実行エラーになります。(not found
も含む)
mount -t ext2 /dev/flash/nor.userland2 /mnt mount -t jffs2
/dev/flash/nor.userland2 /mnt mount -t ext2 /dev/flash/userland2 /mnt mount
-t jffs2 /dev/flash/userland2 /mnt
mkfs.jffs2 /dev/flash/nor.userland2

■成功したコマンド
mke2fs /dev/flash/nor.userland2

■■■ armadillo-500はjffs2が動作しますか。
jffs2に関するコマンドが全て実行できません。Jffs2に対応していない可能性も考え
ています。
ファイルシステムは扱いが複雑でないのであれば、なんでもOKです。

linuxカーネルコンフィグレーションのデフォルト設定でjffs2が有効になっているの
は確認しています。
File systems  --->
    Miscellaneous filesystems  --->
    <*> Journalling Flash File System v2 (JFFS2) support
       (0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
       [*]   JFFS2 write-buffering support
       [ ]     Verify JFFS2 write-buffer reads
       [ ]   JFFS2 summary support (EXPERIMENTAL)
       [ ]   JFFS2 XATTR support (EXPERIMENTAL)
       [ ]   Advanced compression options for JFFS2

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





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