[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 メーリングリストの案内