物好き者

物好き者が行ったことを載せています。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

LaFoneraへのSDカード取り付け1

SDカード取り付けに関して でLaFoneraのGPIO端子を使うと簡単にSDカードが取り付けられる、という事が判りました。
このためLaFoneraにSDカードを取り付けていたいと思います。

LaFonera Hardware SD-Card - DD-WRT Wiki を参考に作業を進めました。

GPIO端子にピンヘッダをつけるつもりでしたが、手持ちのものが2.54mmピッチのものしかなく、GPIO端子のピッチとあわないため、取り付けられませんでした。
このため、直接ケーブルをつなぎました。はんだづけは行わず、テープで絶縁・仮止めとしました。

接続は、 Solder the sd-card のところにあるように、次のようにつなぎました。

SD Card:Fonera GPIO SWpin
DO (pin 7):SW1
CLK (pin 5):SW2
DI (pin 2):SW5
CS (pin 1):SW6
Gnd (pin 3):Gnd
Vcc (pin 4):Vcc

Install software and test にあるように、phrozen.org fonera hacking page のMMC driver version 0.1 for fonera にある the ipk on it own から mmc-driver-fonera_0.1_mips.ipk をダウンロード・インストールしました。

root@LaFonera2:/jffs# wget http://phrozen.org/mmc-driver-fonera_0.1_mips.ipk
Connecting to phrozen.org [85.114.130.74:80]
root@LaFonera2:/jffs# ipkg install mmc-driver-fonera_0.1_mips.ipk
ERROR: File not found: //usr/local/lib/ipkg/lists/whiterussian
You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/non-free
You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/backports
You probably want to run `ipkg update'
/bin/ipkg: /bin/ipkg: 1184: sort: not found
Unpacking mmc-driver-fonera...Done.
Configuring mmc-driver-fonera...Done.

GPIO端子の電圧は、次の通りです。
1:0v
2:0v
5:0v
6:0v

電圧を測るためgpio disableをしてみたところ、disable 5を行った後に再起動してしまいました。
root@LaFonera2:~# gpio disable 1
root@LaFonera2:~# gpio disable 2
root@LaFonera2:~# gpio disable 3
root@LaFonera2:~# gpio disable 4
root@LaFonera2:~# gpio disable 5

SDIO Pinout を見ると、GPIO5は、リセットボタンに割り当てられているそうです。


とりあえず、mmcモジュールを動作させてみることにしました。
root@LaFonera2:/jffs/usr/local/lib/ipkg/info# cat mmc-driver-fonera.list
/
/lib/
/lib/modules/
/lib/modules/mmc_drv.ko
/etc/
/etc/init.d/
/etc/init.d/mmc
/etc/rc.d/
/etc/rc.d/S99mmc

/jffs/etc/init.d/mmc をstartさせましたが、エラーとなります。
root@LaFonera2:/jffs/etc/init.d# ./mmc start
/bin/sh: Can't open /etc/rc.common

/jffs/etc/init.d/mmc の /lib/modules/mmc_drv.ko を /jffs/lib/modules/mmc_drv.ko に変更しました。
再度startさせましたが、エラーとなってしまいます。
root@LaFonera2:/jffs/etc/init.d# ./mmc start
/bin/sh: Can't open /etc/rc.common

LaFoneraのDD-WRTとOpenWRTには、/etc/rc.common が無いので、#!/bin/sh /etc/rc.common を #!/bin/sh に変更しました。

実行したところエラーは出なくなりましたが、モジュールが組み込まれていません。
root@LaFonera2:/jffs/etc/init.d# ./mmc start
root@LaFonera2:/jffs/etc/init.d# lsmod
Module Size Used by Not tainted
ebt_arpnat 5136 2 - Live 0xc0094000
ebtable_broute 736 1 - Live 0xc0028000
ebtable_nat 960 1 - Live 0xc0022000
ebtable_filter 928 0 - Live 0xc001c000
ebtables 24208 4 ebt_arpnat,ebtable_broute,ebtable_nat,ebtable_filter, Live 0xc0087000
nf_nat_pptp 1504 0 - Live 0xc001a000
nf_conntrack_pptp 3696 1 nf_nat_pptp, Live 0xc0018000
nf_nat_proto_gre 1072 1 nf_nat_pptp, Live 0xc0016000
nf_conntrack_proto_gre 2624 1 nf_conntrack_pptp, Live 0xc0003000
jffs2 91136 1 - Live 0xc002c000
ath_ahb 438000 1 - Live 0xc0098000
ar2313 10192 0 - Live 0xc0006000

直接モジュールをinsmodで組み込もうとしましたが、組み込まれません。
root@LaFonera2:/jffs/etc/init.d# insmod mmc_drv
root@LaFonera2:/jffs/etc/init.d# lsmod
Module Size Used by Not tainted
ebt_arpnat 5136 2 - Live 0xc0094000
ebtable_broute 736 1 - Live 0xc0028000
ebtable_nat 960 1 - Live 0xc0022000
ebtable_filter 928 0 - Live 0xc001c000
ebtables 24208 4 ebt_arpnat,ebtable_broute,ebtable_nat,ebtable_filter, Live 0xc0087000
nf_nat_pptp 1504 0 - Live 0xc001a000
nf_conntrack_pptp 3696 1 nf_nat_pptp, Live 0xc0018000
nf_nat_proto_gre 1072 1 nf_nat_pptp, Live 0xc0016000
nf_conntrack_proto_gre 2624 1 nf_conntrack_pptp, Live 0xc0003000
jffs2 91136 1 - Live 0xc002c000
ath_ahb 438000 1 - Live 0xc0098000
ar2313 10192 0 - Live 0xc0006000

root@LaFonera2:/jffs/lib/modules# insmod /jffs/lib/modules/mmc_drv.ko
root@LaFonera2:/jffs/lib/modules# lsmod
Module Size Used by Not tainted
ebt_arpnat 5136 2 - Live 0xc0094000
ebtable_broute 736 1 - Live 0xc0028000
ebtable_nat 960 1 - Live 0xc0022000
ebtable_filter 928 0 - Live 0xc001c000
ebtables 24208 4 ebt_arpnat,ebtable_broute,ebtable_nat,ebtable_filter, Live 0xc0087000
nf_nat_pptp 1504 0 - Live 0xc001a000
nf_conntrack_pptp 3696 1 nf_nat_pptp, Live 0xc0018000
nf_nat_proto_gre 1072 1 nf_nat_pptp, Live 0xc0016000
nf_conntrack_proto_gre 2624 1 nf_conntrack_pptp, Live 0xc0003000
jffs2 91136 1 - Live 0xc002c000
ath_ahb 438000 1 - Live 0xc0098000
ar2313 10192 0 - Live 0xc0006000

LaFoneraにインストールしているRC6.2のWeb管理画面を見ると、MMC/SD サポートがありました。有効にして再起動すると、mmcモジュールが組み込まれました。
root@LaFonera2:~# lsmod
Module Size Used by Not tainted
ebt_arpnat 5136 2 - Live 0xc0108000
ebtable_broute 736 1 - Live 0xc0090000
ebtable_nat 960 1 - Live 0xc0027000
ebtable_filter 928 0 - Live 0xc0021000
ebtables 24208 4 ebt_arpnat,ebtable_broute,ebtable_nat,ebtable_filter, Live 0xc0087000
nf_nat_pptp 1504 0 - Live 0xc001f000
nf_conntrack_pptp 3696 1 nf_nat_pptp, Live 0xc001d000
nf_nat_proto_gre 1072 1 nf_nat_pptp, Live 0xc001b000
nf_conntrack_proto_gre 2624 1 nf_conntrack_pptp, Live 0xc0019000
mmc 14560 0 - Live 0xc0000000
jffs2 91136 1 - Live 0xc002c000
ath_ahb 438000 1 - Live 0xc0098000
ar2313 10192 0 - Live 0xc0006000

mountしようとしましたが、mountできません。
root@LaFonera2:~# mount /dev/mmc0 /mnt
root@LaFonera2:~# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
ramfs on /tmp type ramfs (rw)
devpts on /dev/pts type devpts (rw)
/dev/mtdblock/4 on /jffs type jffs2 (rw)
root@LaFonera2:/mmc# ls /dev/
console mem mmc1 mtdblock ppp random tty
full misc mmc2 net ptmx root urandom
kmem mmc mmc3 null pts shm zero
kmsg mmc0 mtd nvram pty tts

インストールしていたmmc-driver-fonera_0.1_mips.ipkをremoevして再起動しましたが、現象は変わりません。
root@LaFonera2:/jffs/usr/local/lib/ipkg/info# ipkg remove mmc-driver-fonera
ipkg_remove: Removing mmc-driver-fonera...
ipkg_remove: Warning: Not removing the following directories since they are not empty:
/jffs/ /jffs/etc/ /jffs/etc/init.d/
Done.

LaFonera Hardware SD-Card - DD-WRT Wiki を見ると、 Unsolder the caps に GPIO端子につながる C142, C143, C144, C145 を取り外すように書いてありました。
外したところ、起動時に時間がかかるようになりました。しかしmountできません。

rmmod で mmcモジュールを取り外そうとしたところ、再起動しました。
root@LaFonera2:~# rmmod mmc

シリアルコンソールをつないだところ、起動時にSDカードをフォーマットしていました。このため起動に時間がかかっていたようです。
PHY ID is 0022:5521
Ethernet eth0: MAC address 00:18:84:2a:af:10
IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
Default server: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version v1.3.0 - built 16:57:58, Aug 7 2006

Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

Board: ap51
RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 10.000 seconds - enter ^C to abort
RedBoot> fis load -l vmlinux.bin.l7
Image loaded from 0x80041000-0x802b2910
RedBoot> exec
Now booting linux kernel:
Base address 0x80030000 Entry 0x80041000
Cmdline :
Unlocking mtd4 ...
mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
121920 inodes, 487552 blocks
24377 blocks (5.00%) reserved for the super user
First data block=1
60 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

SDカードを抜いておくとフォーマットしないので、通常通り起動します。
しかし、動作中にSDカードを挿すとリセットしてしまいます。
OpenWrt / [Howto] Compile the MMC driver (module) for the SD card mod
 にある、echo "0x9c" > /proc/diag/gpiomask を行いましたが、現象は変わりません。
このため、Web管理画面でMMC/SD サポートを無効にし、起動後手動でモジュールを組み込むことで、起動中にSDカードのフォーマットがされないようにしました。

mke2fsを使って手動でフォーマットが出来ます。
root@LaFonera2:/proc# mke2fs /dev/mmc
mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
121920 inodes, 487552 blocks
24377 blocks (5.00%) reserved for the super user
First data block=1
60 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Writing inode tables: 9/60
done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

起動時と手動でフォーマットできるので、動作はしています。
insmod mmc後にcat mmc とするとデータが表示されます。。mmc0から3ではデータが表示されないので、/deev/mmcがSDカードとなっているようです。
root@LaFonera2:/dev# cat mmc
@ワp9_W45ワ ・
S・N・

mountするファイルシステムが対応していないためかとも思いましたが、/etc/fstabでは/dev/rootをext2でmountしているので、ext2は対応しているはずです。
/dev/root / ext2 defaults 1 1

検索したところ、2ちゃんねるで次の情報が見つかりました。
【無線LAN】DD-WRT【強化ファーム】2 の10で、WHR-HP-G54にSDカードを取り付けた時、SDカードはext2でフォーマットしておかないとmountできない。また、SD/MMC mod - DD-WRT Wiki のWHR-HP-G54の説明図はDIとDOが逆、ということです。

WHR-HP-G54は、別途対応するとして、SDカードをLinuxで確認してみることにしました。
KnoppixでUSB経由でfdiskしたところ、領域が1-4があり領域が正常に構成されていない、と表示されます。
このため、すべて削除してからプライマリパーティションをひとつ作成し、ext2でフォーマットしました。

LaFoneraに接続したところ、mountできません。
catでデバイスを確認すると、/dev/mmcではMSDOSと表示されてしまいます。プライマリパーティションがひとつで、ext2フォーマットしているのにおかしいです。
また、/dev/mmc0からもデータが表示されるようになりました。/dev/mmcをmountしようとしましたが、mountできません。
root@LaFonera2:~# cat /dev/mmc
・MSDOS5.0 ?ト)????NO NAME FAT16 3????ルク タ・|8N$}$
チ・r・f。|&f;&
root@LaFonera2:~# cat /dev/mmc0
ワキ/mァ; ラGZラG$S・ヨGN・
0ル゚O

Knoppixで再度確認すると、プライマリパーティションを削除した状態でWindowsにつないだところ、パーティションがひとつfatで認識されます。フォーマットしてファイルを配置してからKnoppixで確認すると、/dev/sdaからコピーしたファイルが確認できます。
fdiskを行うと、領域が1-4あり領域がおかしいと表示されます。

使っているminiSDカードはTranscendの1Gですが、このSDカードがうまく使えないようです。
2ちゃんねるの先ほどのところには、動作しないカードがある(動作するカードがフォーラムであげられている)ことが書かれていました。
たしかに、fdiskで領域削除してもfatが残っているのは変ですので、別のSDカードで試すことにします。

スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

承認待ちコメント

このコメントは管理者の承認待ちです

| | 2012年02月12日(Sun)06:39 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2012年02月13日(Mon)15:45 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2014年07月25日(Fri)07:56 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2014年08月19日(Tue)00:06 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2014年08月26日(Tue)10:46 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2014年08月30日(Sat)00:04 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2015年05月09日(Sat)20:56 [EDIT]


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。