3桁機用 SDHC ドライバ!

3桁機でも4GB限定ですがSDHCを認識できるようになりました! →ダウンロードページ

4GB SDHC対応だけでなく、オリジナルでは認識できない2GB以上のSDにも対応させています。

3桁機といっても、SL-C750/760/860用です。SL-C760で確認してますが、たぶん、750/860でも動作すると思います。

3桁機でもSDHC認識!
3桁機でもSDHC認識!

オリジナルのSDドライバに対してバイナリパッチを当てる形でインストールしますので、他のSDドライバに置き換えられているとインストールに失敗します。SD-Link11b用や、2GB以上を認識させるSDドライバ(現在はサイトが閉鎖されているようです)などのSDドライバは、必ずアンインストールしてから、本パッケージをインストールしてください。インストール後再起動すると本ドライバが使用可能になります。

SD-Link11bを使用されている方には申し訳ないですが、併用はできないです。

まだ不安定な可能性もありますが、是非試してみたい!という冒険家の方はお試しください。
試してみた方はコメントに結果を書いていただけるとありがたいです。

SDHCドライバ v1.2 リリース

えーと、v1.1 をリリースしてすぐなのですが、問題があったのでまたまたリリースします。→ダウンロードページ

以前のバージョンをアンインストールしてからインストールしてください。

今回の修正は以下の2点です。

  • SDHCメディアの 2GB 以降へのアクセスができない (mond さんからのご報告)
  • ipk ファイルに不要なファイルが入っていた (ブースカさんからのご報告)

2GB以降へのアクセスができない(というかフリーズする)のは、お恥ずかしながら、また同じ原因でした照れる

SDHC はブロック単位でのアクセスなので、32bit アドレスを単純に 512 で割ってブロックアドレスに変換したんですが、int 型で計算てしまったので 2GB 以上のアドレスになると結果がおかしくなってました。

4GB の SDHC カードに前半 3GB と後半 1GB (確実に2GB以降のアドレスになる)の2つパーテーションを作って、後半1GBのパーテーションに対して問題なく読み書きできることを確認しました。

ipk ファイルの方はバージョン管理のための svn 関連の隠しファイルがそのまま入ってしまっていたようです。

どちらも修正しましたので、何度もお手数ですが、再度確認していただけると幸いです。

SDHCドライバ修正

SDHCドライバを修正しました! →ダウンロードページ
新しいドライバを試すときは一度前のドライバをアンインストールして再起動してからインストールし直してください。

先日リリースした SDHC ドライバですが、多くの方に動作確認していただきました。ありがとうございました。

動作確認の結果、一部のSDカードが認識できない事が分かり、慌てて私が持っているSDカードを片っ端から試してみると、確かに認識しないカードがありました。

ブースカさんがブログで詳細に状況をまとめてくださっていて、私のカードも認識しない時の状況はまったく同じでした。

幸い手持ちのSDカードで再現することができたので原因を探してみると、ブースカさんが指摘されていたとおり、block_count が異常な値として認識されてしまうのが根本の原因でした。

で、どうして block_count が異常だったかというと。。。お恥ずかしいですが、初歩的なミスでした照れる

ビット操作する元の値に signed int を使っていたので、右シフト時に最上位ビット(符号)が引きずられてしまってました。

  • ((unsigned int)0x80000000) >> 16 = 0x8000
    (2147483648 / 65536 = 32768)
  • ((signed int)0x80000000) >> 16 = 0xffff8000
    (-2147483648 / 65536 = -32768)

これが影響してブロック数が異常な値になっていました。

以上の対処を行った今回リリースのドライバでは、手持ちのSDカードが認識するようになりました。

確認したカードは以下の通りです。

  • KINGMAX MSD-128M (miniSD 128MB)
  • Sandisk SDSDM-512 (miniSD 512MB)
  • pqi QMSD-512 (miniSD 512MB)
  • ハギワラシスコム SD-M512 (SD 512MB)
  • GREEN HOUSE GH-SDCM1GC (miniSD 1GB)
  • A-DATA MCSD2GB (microSD 2GB)
  • アイオーデータ SDMC-2G (microSD 2GB)
  • Transcend TS4GSDC (SD 4GB)
  • Transcend TS4GSD133 (SD 4GB)
  • Sandisk SDSDQ-4096 (microSDHC 4GB)

他のカードで問題が解決しているかも知りたいので、認識し無かったカードをお持ちの方は、ドライバをアップデートしてもう一度試してみていただけるとありがたいです。

SDHC認識!(4GB限定)

SL-C1000 で 4GBのSDHCの認識に成功しました!

経過を書こうかと思っていたのですが、動いたのでとりあえず修正したドライバを公開します。 → ダウンロードページ

——–2010/01/26追記——–

ドライバをインストール後、再起動してください。

また、SL-C1000, 3000, 3100 をお使いの方で、tetsu さんのところで配布されている 4GB 対応 SD ドライバをインストールしている人はアンインストールしてからインストールしてください。

———————————–

一応動作確認はしましたが、 動作保証はできません。ご自身の責任でお試しください。

壊れてもいいから試してみたい!というチャレンジャーのみお試しください。
試された方は結果をコメントの方に書いていただけるとありがたいです。

注意事項としては、SDHC対応は4GBのみという点です。 8GB,16GB 等の SDHC は使用できません。絶対に差し込まないでください。

いままでは認識すらしなかったため、挿入してもそれほど害はありませんでしたが、4GBを超えるSDを入れると中途半端に認識してしまうため、中のデータを壊す可能性が高いです。

手持ちの以下のメディアで認識することを確認しました。今まで通り、ノーマルSDも使用できています。

  • SD 512MB
  • SD 2GB
  • SD 4GB
  • SDHC 4GB

4GBのみ対応というのはオリジナルのドライバの作り上、SDへのアクセスにブロック番号ではなく、32bit長のオフセットアドレスを用いているためです。32bit なので 4GB が上限となります。

これはオリジナルの作りが悪いというわけではなく、SDの仕様では32bitアドレス指定でREAD/WRITE する仕様のためです。これが SDHC では4GB以上の容量に対応するために、仕様上ブロック指定に変更されています。

上記の通り、READ/WRITE に関する関数はすべてアドレス指定で設計されており、4GBを超えるSDHCに対応するには、それらの関数すべてをブロック指定に修正する必要があります。ソースがあればまだ容易なのですが、ソースなしで関数の仕様を大幅に変更するのは非常に厳しいものがありますので、4GBを超えるSDHCのサポートはかなり困難です。

一応、解析は進めますが、今まで以上に可能性は低いと思ってください。

SDHCドライバ

SL-A300、SL-Cシリーズ、SL-6000用のSD+SDHCドライバです。

SL-A300/C700/C750/C760/C860/6000 ではSDHCだけでなく、オリジナルドライバでは認識しない 2GB, 4GB SDにも対応しています。

動作報告も多くあり、だいぶ安定していますが、動作保証はできません。自己責任でご使用ください。

また、オリジナルのインストーラ(SL-C3200以外)では、2GB以上のSD, CFの容量計算が正しくできず、ipkg をインストールできません。この問題を解消するには qinstall-fix をインストールしてください。SL-A300のみ、SDドライバに同梱されています。

ipkパッケージ

v2.x 系 (32GB SDHC 対応)

v1.x 系 (4GB以下の SD, SDHC に対応)

※注意※ v1.x系では4GBを超えるメディアは絶対に差し込まないでください!壊れます!

開発用ソース&パッチファイル

SL-Cxx00用にはtetsuさんのところのSDドライバからSDHC対応ドライバへ修正する環境一式が入っています。

4桁機以外は、SL-A300/C750/C760/C860/6000のオリジナルSDドライバは同梱されていません。実機からsharp_mmcsd_m.oをコピーするとビルドできるようになっています。

v1.x 系については更新履歴のリンクから取得してください。

動作環境

SL-A300/C700/C750/C760/C860/C1000/C3000/C3100/C3200/6000 で動作報告があります。

私が動作確認したのは SL-A300, SL-C760, SL-C1000, SL-C3000, SL-6000 の5機種です。

また、以下のSDで確認しました。

  • KINGMAX MSD-128M (miniSD 128MB)
  • Sandisk SDSDM-512 (miniSD 512MB)
  • pqi QMSD-512 (miniSD 512MB)
  • ハギワラシスコム SD-M512 (SD 512MB)
  • GREEN HOUSE GH-SDCM1GC (miniSD 1GB)
  • A-DATA MCSD2GB (microSD 2GB)
  • アイオーデータ SDMC-2G (microSD 2GB)
  • Transcend TS4GSDC (SD 4GB) ※ SL-A300で認識せず
  • Transcend TS4GSD133 (SD 4GB) ※ SL-A300で認識せず
  • Sandisk SDSDQ-4096 (microSDHC 4GB)
  • A-DATA SDHC8GB (SDHC 8GB)
  • PCI PL-SDHC08G (SDHC 8GB)

制限事項

  • 4GBを超えるSDHCは使用不可能 (v1.x)
  • 非SDHC 4GSDが認識せず (SL-A300用 v2.x)

インストール

SL-A300

本体のROMバージョンが1.50Jか確認してください。
ROM 1.50J でないとインストールできません。

SL-A300用のパッケージを本体にインストールしてください。
自動的に再起動はしませんので、インストール後再起動してください。

SL-A300用だけは特別に qinstall-fix 相当の修正も同梱されてきます。

SL-C700/750/760/860, SL-6000

2GB以上の SD を認識させるために他のSDドライバ(SD-Link11b用など)をインストールされている場合は、アンインストールしてください。

機種にあったパッケージ(SL-C700, SL-6000は別なので注意)を本体にインストールしてください。
再起動すると2GB以上のSD、SDHCが使用可能になります。

2GB以上の SD,SDHC への ipkg インストールを可能にするqinstall-fix もあわせてインストールすることをお勧めします。

SL-C1000/3000/3100/3200

tetsuさんのところで配布されているSDドライバをインストールしている場合は、アンインストールして、再起動した後に本パッケージをインストールしてください。

インストールする際には本体にインストールしてください。SDカードなどの外部メディアにはインストールできません。

本体にインストールし、「ソフトウェアの追加/削除」アプリを終了後、再起動すると2GB以上のSD, SDHCが使用可能になります。

SL-C3200 以外の機種をお持ちの方は、2GB以上の SD,SDHC への ipkg インストールを可能にするqinstall-fix もあわせてインストールすることをお勧めします。

使い方

今までと同じです。SDHCカードを入れると下にSDのアイコンが表示されます。

ファイル操作も取り出し方も通常のSDと同じです。

注意事項

無保証です。自己責任でご使用ください。

以下のことを絶対に行わないでください。

  • 4GBを超えるSDHCカードの挿入 (v1.x)

更新履歴

SL-6000用

  • ver2.0 (2010/10/01ipk src
    SL-6000用、初リリース。32GBまでのSD, SDHC に対応。

SL-A300用

  • ver2.0 (2010/03/23ipk src
    SL-A300用、初リリース。32GBまでのSD, SDHC に対応。

SL-C700用

  • ver2.0 (2010/02/20ipk src
    SL-C700用、初リリース。32GBまでのSD, SDHC に対応。

SL-C750/760/860用

  • ver2.1 (2010/03/05ipk src
    取り外し操作後の電源OFF中のカード交換に対応。
  • ver2.0 (2010/02/15ipk src
    4GBを超える容量に対応。
  • ver1.0 (2010/02/05ipk src
    初リリース。2GB以上のSD、4GB SDHCに対応

SL-Cxx00用

  • ver2.1 (2010/02/13ipk src
    Read性能が著しく低下する問題を修正。
  • ver2.0 (2010/02/06ipk src
    4GBを超える容量に対応。
  • ver1.2 (2010/02/02ipk src
    SDHC カードで 2GB 以降にアクセスするとフリーズする問題を修正。
    ipkファイルに不要なファイルが入っていたのを削除。
  • ver1.1 (2010/02/01ipk src
    一部のSDカードが認識できない問題を修正。
  • ver1.0 (2010/01/24ipk src
    初リリース。4GB SDHCに対応

免責事項

このソフトウェアで発生したいかなる損害も、作者は責任を負いません。

使用する本人の責任でご使用ください。