bucchiさんが改造されたZaurus3桁機用SDHC対応のドライバーをテストしてみました - その2

 【続報】前回の報告に引き続き、bucchi さんが SHARP オリジナルのドライバーを改造された3桁機用(SL-C750、SL-C760、SL-C860)の SDHC 対応(4GB 限定)ドライバーのテスト結果について報告いたします。
 今回は、前回の報告で予告しました通り、手元の12種類の SD/SDHC メモリーカードについて、認識状況と容量表示に絞ってテストした結果についてご報告します。
 まず、今回のテストの総合的な結果ですが、全く問題は発生しておらず、極めて安定して動作していることをご報告しておきます。
 なお、報告の詳細は、以下をご覧ください。

 また、次回のご報告では読み書きと簡単なベンチマークに絞ってテストした結果について、ご報告する予定です。

今までの報告と今後の報告予定について

 書き始めたら一回でご報告するには、長くなりすぎると判断しましたので、以下の4つの記事に分けてご報告する予定です。

  • (1) 既報ですが、ドライバーのインストール/アンイストールとインストールパッケージの動作の詳細についてご報告しました。
  • (2) 今回の報告です、手元の12種類の SD/SDHC メモリーカードについて、認識状況と容量表示に絞ってテストしてみた結果について報告します。
  • (3) 読み書きと簡単なベンチマークに絞ってテストした結果について、ご報告する予定です。読み込みのテストについては、動画再生を利用をします。
  • (4) 今回のドライバーを生かすという意味で、4GB SDHC メモリーカードに絞って、SDHC メモリーカードへのアプリケーションのインストール、ベンチマークテスト結果ほかについて報告する予定です。

テストしたドライバーについて

 まず、今回テストしたドライバーですが、表1の通り、buuchi さんが SHARP オリジナルのドライバーを改造された、3桁機用(SL-C750SL-C760SL-C860)の SDHC 対応(4GB 限定)ドライバー Ver1.0 です。
  表1 テストしたドライバー

バージョン 1.0 SDHC 対応(4GB 限定)
インストールパッケージ名 zaurus-sd-driver-update_1.0-for-Cxx0_arm.ipk
□対象機種

 今回のドライバーの対象機種は SL-Zaurus の3桁機の内つぎの3機種です。SL-A300SL-B500SL-C700 には対応していませんのでご注意ください。
  表2 対象機種

機種名 SL-A300 SL-B500 SL-C700 SL-C750 SL-C760 SL-C860
対応状況 × × ×
□対応する SD/SDHC メモリーカード

 今回のドライバーが対応する SD/SDHC メモリーカードは、表3、表4の通りです。SD メモリーカードは、4GB(非SDHC)まで、SDHC メモリーカードは 4GB 限定です。
  表3 対応する SD メモリーカード

容量 128MB
以下
128MB 256MB 512MB 1GB 2GB 4GB
(非SDHC)
対応状況

  表4 対応する SDHC メモリーカード

容量 4GB 8GB 16GB 32GB
対応状況 × × ×

テスト環境について

 今回のテストに使用した環境は以下の通りです。普段、RubyRuby/Qte のプログラミングに使用している専用端末を使用しました。
  表5 テスト環境

機種名 SL-C860
ROM Version 1.40 JP
Kernel Version Normal Kernel 2.4.18-rmk7-pxa3-embedix-021129
bash-2.05$ cat /proc/deviceinfo/product
SL-C860
bash-2.05$ cat /proc/deviceinfo/revision
1.40
bash-2.05$ cat /proc/version
Linux version 2.4.18-rmk7-pxa3-embedix-021129 (zaurus@sharplinux) (gcc version 2.95.2 19991024 (release)) #1 Thu, 6 Nov 2003 09:29:23 +0900
bash-2.05$ uname -a
Linux zaurus 2.4.18-rmk7-pxa3-embedix #1 Thu, 6 Nov 2003 09:29:23 +0900 armv5tel unknown
スクリーンショット [設定] - [システム情報]
スクリーンショット コマンドラインによる情報

テスト対象の SD/SDHC メモリーカードについて

 今回は、手元にあった表6の12種類の SD/SDHC メモリーカードについてテストを実施しました。
  表6 テスト対象の SD/SDHC メモリーカード一覧

No. 写真 メーカー 容量 種別 型名・仕様 テスト時の
初期化状況
1 東芝 128MB SD SD-M1283M Panasonic SD フォーマッター Ver2.0 (2.0.0.3)で初期化
2 Panasonic 256MB SD RP-SDH256N1A Panasonic SD フォーマッター Ver2.0 (2.0.0.3)で初期化
3 Panasonic 256MB mini SD RP-SS256BJ1K 工場出荷時のまま
4 Panasonic 512MB SD RP-SDH512N1A 工場出荷時のまま
5 Panasonic 1GB SD RP-SDQ01GJ1A 工場出荷時のまま
6 Panasonic 1GB SD RP-SDP01GJ1K 工場出荷時のまま
7 A-DATA 1GB SD 型名不明 たぶん工場出荷時のまま
8 Transcend 1GB SD TS1GSDC 工場出荷時のまま
9 Transcend 2GB SD TS2GSDC 工場出荷時のまま
10 Transcend 4GB SD TS4GSD150 150x SANYO Xacti DMX-HD1 ハイビジョンムービーカメラで初期化
11 Panasonic 4GB SDHC RP-SDM04GL1K
CLASS 4
工場出荷時のまま
12 Lexar 4GB SDHC LSD4GBDRBJP133
Professional 133x Speed
工場出荷時のまま
テスト対象の12種類の SD/SDHC メモリーカードの写真

テスト項目について

 認識状況と容量表示の確認のため、つぎの6項目のテストを実施しました。

タスクバーの SD メモリーカードアイコン表示の確認
    • (2) で取得したログの mount コマンドの結果を確認する
  • (2) ログの取得(下記のテスト専用シェルスクリプトによる)
  • (3) 容量が正しく認識されていることを確認する
    • [設定] - [システム情報]により容量を確認する
    • ログで取得した、df /dev/mmcda1 コマンドの結果を確認する
  • (4) ログで取得した dmesg コマンドの "block_count" と "total_size"の値を確認する
  • (5) サスペンド → レジューム時の認識状況の確認する
  • (6) タスクトレイの SD メモリーカードアイコンタップによる取り外し(アンマウント)を確認する
タスクトレイの SD メモリーカード
アイコンタップによる取り外し

テスト方法について

  • なお、テストに当たっては他の影響を排除するため、テスト条件を変更するたびに『再起動』を実施しました。また、SD メモリーカードテスト専用のシェルスクリプトsd_info.sh)によるログの取得も『再起動直後』に実施しました。

テスト結果について

 冒頭でも述べましたが、今回のテストの総合的な結果ですが、全く問題は発生しておらず、極めて安定して動作していることをご報告しておきます。

メモリーカードの認識状況について

  表7 各動作条件によるメモリーカードの認識状況

SD/SDHC メモリーカード モリー
カード
挿入時の
認識
(SDアイコン
の確認)
モリー
カード
挿入時の
認識
(mount
コマンド
による
確認)
サスペンド
 ↓ 
レジューム
時の認識
SDアイコン
タップによる
取り外し
東芝 128MB SD SD-M1283M
Panasonic 256MB SD RP-SDH256N1A
Panasonic 256MB mini SD RP-SS256BJ1K
Panasonic 512MB SD RP-SDH512N1A
Panasonic 1GB SD RP-SDQ01GJ1A
Panasonic 1GB SD RP-SDP01GJ1K
A-DATA 1GB SD 型名不明
Transcend 1GB SD TS1GSDC
Transcend 2GB SD TS2GSDC
Transcend 4GB SD 150x TS4GSD150
Panasonic 4GB SDHC RP-SDM04GL1K
Lexar 4GB SDHC LSD4GBDRBJP133
□容量が正しく認識されていることを確認する

[設定] - [システム情報] による認識されている容量の確認

スクリーンショット [システム情報] の説明

  表8 [設定] - [システム情報] による認識されている容量の確認結果

認識
容量
確認
結果
SD/SDHC
メモリーカード
公称
容量
スクリーンショット [システム情報]
東芝 SD SD-M1283M 128MB
Panasonic SD RP-SDH256N1A 256MB
Panasonic mini SD RP-SS256BJ1K 256MB
Panasonic SD RP-SDH512N1A 512MB
Panasonic SD RP-SDQ01GJ1A 1GB
Panasonic SD RP-SDP01GJ1K 1GB
A-DATA SD 型名不明 1GB
Transcend SD TS1GSDC 1GB
Transcend SD TS2GSDC 2GB
Transcend SD 150x TS4GSD150 4GB
Panasonic SDHC RP-SDM04GL1K 4GB
Lexar SDHC LSD4GBDRBJP133 4GB

df コマンドによる認識容量の確認結果

  • df コマンドによる認識容量をログより拾って表9にまとました。
  • この結果、df コマンドによる認識容量とテスト対象の SD/SDHC メモリーカードの公称容量が同じことを確認しました。
コマンド書式 df /dev/mmcda1

  表9 df コマンドによる認識容量の確認結果

認識容量
確認結果
SD/SDHC メモリーカード 公称
容量
dfコマンド
による
認識容量
[kB]
dfコマンド
による
認識容量
(計算値)
[MB/GB]
東芝 SD SD-M1283M 128MB 125,344 122.4MB
Panasonic SD RP-SDH256N1A 256MB 249,728 243.9MB
Panasonic mini SD RP-SS256BJ1K 256MB 244,096 238.4MB
Panasonic SD RP-SDH512N1A 512MB 502,736 490.9MB
Panasonic SD RP-SDQ01GJ1A 1GB 967,360 944.7MB
Panasonic SD RP-SDP01GJ1K 1GB 967,360 944.7MB
A-DATA SD 型名不明 1GB 1,003,136 979.6MB
Transcend SD TS1GSDC 1GB 997,504 974.1MB
Transcend SD TS2GSDC 2GB 1,981,056 1.89GB
Transcend SD 150x TS4GSD150 4GB 4,044,800 3.86GB
Panasonic SDHC RP-SDM04GL1K 4GB 3,862,528 3.68GB
Lexar SDHC LSD4GBDRBJP133 4GB 4,020,736 3.83GB
□取得したログ

  表10 テスト専用シェルスクリプトで取得したログの一覧

SD/SDHC メモリーカード テスト専用のシェルスクリプトで取得したログ
メモリーカード未挿入 sd_info_v005_result_bucchi_SD_memory_card_driver_SD_memory_card_no_insert.txt
東芝 128MB SD SD-M1283M sd_info_v005_result_bucchi_SD_memory_card_driver_TOSHIBA_128MB_SD_memory_card_SD-M1283M_after_insert.txt
Panasonic 256MB SD RP-SDH256N1A sd_info_v005_result_bucchi_SD_memory_card_driver_Panasonic_256MB_SD_memory_card_RP-SDH256N1A_after_insert.txt
Panasonic 256MB mini SD RP-SS256BJ1K sd_info_v005_result_bucchi_SD_memory_card_driver_Panasonic_256MB_mini_SD_memory_card_RP-SS256BJ1K_after_insert.txt
Panasonic 512MB SD RP-SDH512N1A sd_info_v005_result_bucchi_SD_memory_card_driver_Panasonic_512MB_SD_memory_card_RP-SDH512N1A_after_insert.txt
Panasonic 1GB SD RP-SDQ01GJ1A sd_info_v005_result_bucchi_SD_memory_card_driver_Panasonic_1GB_SD_memory_card_RP-SDQ01GJ1A_after_insert.txt
Panasonic 1GB SD RP-SDP01GJ1K sd_info_v005_result_bucchi_SD_memory_card_driver_Panasonic_1GB_SD_memory_card_RP-SDP01GJ1K_after_insert.txt
A-DATA 1GB SD 型名不明 sd_info_v005_result_bucchi_SD_memory_card_driver_A-DATA_1GB_SD_memory_card_after_insert.txt
Transcend 1GB SD TS1GSDC sd_info_v005_result_bucchi_SD_memory_card_driver_Transcend_1GB_SD_memory_card_TS1GSDC_after_insert.txt
Transcend 2GB SD TS2GSDC sd_info_v005_result_bucchi_SD_memory_card_driver_Transcend_2GB_SD_memory_card_TS2GSDC_after_insert.txt
Transcend 4GB SD 150x TS4GSD150 sd_info_v005_result_bucchi_SD_memory_card_driver_Transcend_4GB_SD_memory_card_TS4GSD150_after_insert.txt
Panasonic 4GB SDHC RP-SDM04GL1K sd_info_v005_result_bucchi_SD_memory_card_driver_Panasonic_4GB_SDHC_CLASS4_memory_card_RP-SDM04GL1K_after_insert.txt
Lexar 4GB SDHC LSD4GBDRBJP133 sd_info_v005_result_bucchi_SD_memory_card_driver_Lexar_4GB_SDHC_133x_speed_memory_card_after_insert.txt

【参考】テスト用シェルスクリプトについて

 私が考えつく以下の情報を取得しました。なお、テスト作業を簡単にするために、下記の専用のシェルスクリプトsd_info_v005.sh)を作成しました。
  表11 テスト用シェルスクリプトによる取得データ

取得項目 取得コマンド
ドライバーの情報 シェルスクリプトで判定して表示
SD メモリーカードの情報
/proc/driver/mmcsd/00/*
cat /proc/driver/mmcsd/00/detect
cat /proc/driver/mmcsd/00/manufacture
cat /proc/driver/mmcsd/00/product
cat /proc/driver/mmcsd/00/type
システムログ dmesg dmesg
パーティション情報 fdisk -l または fdisk -l -u
マウント状況 mount|grep /dev/mmcda1
容量の情報 df /dev/mmcda1
□SD メモリーカードテスト専用のシェルスクリプト - sd_info_v005.sh

シェルスクリプトのソース(ダウンロード

#!/bin/sh
#
# get SD/SDHC memory card information.
#
# file name : sd_info_v005.sh
# version   : 0.0.5
# create    : Jan. 30th, 2010
# update    : Feb.  6th, 2010
# author    : Fumiyoshi Sasaki
#
# Update history
# Ver0.0.1  1st. Version.
# Ver0.0.2  Add SD/SDHC driver information.
# Ver0.0.3  Update for bucchi SD/SDHC memory card driver Ver1.1
# Ver0.0.4  Update for bucchi SD/SDHC memory card driver Ver1.2
# Ver0.0.5  Change for bucchi SL-C750/SL-C760/SL-C860 SD/SDHC
#           memory card driver Ver1.0
#
SD_DRIVER_FILE_NAME="/lib/modules/2.4.18-rmk7-pxa3-embedix/kernel/drivers/block/sharp_mmcsd_m.o"
echo "SL-C750/SL-C760/SL-C860 SD/SDHC driver and memory card information"
echo "=================================================================="
echo -n "PRODUCT : "
cat /proc/deviceinfo/product
echo
SD_DRIVER_FILE_SIZE=`ls -l "$SD_DRIVER_FILE_NAME" | tr -s ' ' | cut -d ' ' -f 5`
if [ -L "$SD_DRIVER_FILE_NAME" ]; then
  echo "SD memory card driver           : use SHARP pure driver"
elif [ ! -e "$SD_DRIVER_FILE_NAME" ]; then
  echo "SD memory card driver           : use unknown SD memory card driver" 
elif [ "$SD_DRIVER_FILE_SIZE" -eq 48185 ]; then
  echo "SD memory card driver           : use bucchi SL-C750/SL-C760/SL-C860 SD/SDHC memory card driver Ver1.0" 
fi
echo "SD memory card driver file size : $SD_DRIVER_FILE_SIZE"
echo
echo "ls -l /lib/modules/2.4.18-rmk7-pxa3-embedix/kernel/drivers/block/sharp_mmcsd_m.o"
echo "------------------------------------------------------------------"
ls -l /lib/modules/2.4.18-rmk7-pxa3-embedix/kernel/drivers/block/sharp_mmcsd_m.o
echo
echo "cat /proc/driver/mmcsd/00/* result"
echo "------------------------------------------------------------------"
echo -n "  detect      : "
cat /proc/driver/mmcsd/00/detect
echo -n "  manufacture : "
cat /proc/driver/mmcsd/00/manufacture
echo -n "  product     : "
cat /proc/driver/mmcsd/00/product
echo -n "  type        : "
cat /proc/driver/mmcsd/00/type
echo
echo "mount | grep /dev/mmcda1 result"
echo "------------------------------------------------------------------"
mount | grep /dev/mmcda1
echo
echo "df /dev/mmcda1 result"
echo "------------------------------------------------------------------"
df /dev/mmcda1
echo
echo "fdisk -l result"
echo "------------------------------------------------------------------"
fdisk -l
echo
echo "dmesg result"
echo "------------------------------------------------------------------"
dmesg
SDメモリーカードテスト専用のシェルスクリプトの実行例

Transcend 1GB SD メモリーカード [:title=TS1GSDC])の例

SL-C750/SL-C760/SL-C860 SD/SDHC driver and memory card information
==================================================================
PRODUCT : SL-C860

SD memory card driver           : use bucchi SL-C750/SL-C760/SL-C860 SD/SDHC memory card driver Ver1.0
SD memory card driver file size : 48185

ls -l /lib/modules/2.4.18-rmk7-pxa3-embedix/kernel/drivers/block/sharp_mmcsd_m.o
------------------------------------------------------------------
-rw-r--r--    1 root     qpe         48185 Feb  6 04:03 /lib/modules/2.4.18-rmk7-pxa3-embedix/kernel/drivers/block/sharp_mmcsd_m.o

cat /proc/driver/mmcsd/00/* result
------------------------------------------------------------------
  detect      : 1
  manufacture : 27
  product     : 00000
  type        : SD

mount | grep /dev/mmcda1 result
------------------------------------------------------------------
/dev/mmcda1 on /usr/mnt.rom/card type vfat (rw)

df /dev/mmcda1 result
------------------------------------------------------------------
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mmcda1             997504     12864    984640   1% /usr/mnt.rom/card

fdisk -l result
------------------------------------------------------------------

Disk /dev/mmcda: 32 heads, 63 sectors, 989 cylinders
Units = cylinders of 2016 * 512 bytes

     Device Boot    Start       End    Blocks   Id  System
/dev/mmcda1             1       990    997764+   6  FAT16
Partition 1 does not end on cylinder boundary:
     phys=(989, 30, 62) should be (989, 31, 63)

dmesg result
------------------------------------------------------------------
Linux version 2.4.18-rmk7-pxa3-embedix-021129 (zaurus@sharplinux) (gcc version 2.95.2 19991024 (release)) #1 Thu, 6 Nov 2003 09:29:23 +0900
CPU: Intel XScale-PXA255 revision 6
Machine: SHARP Shepherd
Converting old-style param struct to taglist
Memory clock: 99.53MHz (*27)
Run Mode clock: 199.07MHz (*2)
Turbo Mode clock: 398.13MHz (*2.0, active)
 :
途中省略
 :
pxa_sd_wait_response: card removed (cmd=00)
pxa_sd_wait_response: card removed (cmd=00)
pxa_sd_wait_id_response: card removed (cmd=00)
pxa_sd_wait_id_response: card removed (cmd=00)
SD Driver Initialized.
sharp_mmcsd 0.21 27 Sep 2002
 :
途中省略
 :
monitor_modinit: finished
block_size: 512
write_block_size: 512
block_count: 1995776
total_size: 1021837312
SDHC=0
[SD]-clustsize = 4000
VFS: Disk change detected on device mmcd(60,1)
Partition check:
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
 mmcda: mmcda1
EXT2-fs: Unrecognized mount option noatimei
VFS: Disk change detected on device mmcd(60,1)
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
 mmcda: mmcda1
cramfs: wrong magic
VFS: Disk change detected on device mmcd(60,1)
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
 mmcda: mmcda1
VFS: Can't find a Minix or Minix V2 filesystem on device 3c:01.
VFS: Disk change detected on device mmcd(60,1)
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
 mmcda: mmcda1
MSDOS FS: IO charset utf8
VFS: Disk change detected on device mmcd(60,1)
VFS: busy inodes on changed media.
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
VFS: busy inodes on changed media.
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
VFS: busy inodes on changed media.
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
VFS: busy inodes on changed media.
 mmcda: mmcda1
VFS: Disk change detected on device mmcd(60,1)
VFS: busy inodes on changed media.
 mmcda: mmcda1