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)

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

関連した記事:


5 comments

  1. 他に報告が無いようですので私だけかもしれませんが、4GBのSDHCカードにて問題が発生しています。
    あまりデータの入っていない状態では正常に動作するのですが、2.4GB程度のデータを入れて使用しようとするとフリーズしてしまいます。
    ver1.0とver1.1の両方のドライバで試しましたがダメでした。
    SDHCでないSDカードでは同じようにデータを入れても正常に使用できます。
    また、PC上では正常に使用できています。
    パナソニックのSDフォーマッターでフォーマット(クラスタサイズ:32KB)しても、windowsエクスプローラー上でFAT32フォーマット(クラスタサイズ:4KB)しても、結果は同じで、データが少ない時は正常に動作して、たんまり入れるとフリーズします。
    ちなみにザウルス上でフォーマットしようとして
    mkfs.vfat -F 32 /dev/mmcda1
    を実行してみましたがエラーになってしまいました。(fdiskは使用できた)
    単に私の持っているSDHCカードが不良なだけかもしれませんが、報告させていただきました。

    • 不具合報告ありがとうございます。
      症状から大体原因が想像つきました。
      また同じ原因だと思います (^^;
      修正したら公開しますので、しばしお待ちを・・・。

  2. bucchi さん
    こんにちは、ブースカです。
    SDHC対応ドライバーの修正版のリリースありがとうございます。
    いつもながら仕事、早っ!
    あと、私のテスト結果が少しはお役に立てたようでうれしいです。
    で、さきほどいつも持ち歩いている SL-C860 でインストールパッケージ(zaurus-sd-driver-update_1.1+bucchi_arm.ipk)をダウンロードして、いつも使っている自作のシェルスクリプト(ipk_info)で内容を確認したところ大量の不要ファイル(/.svn/* というファイル名からすると開発環境のものと思われます)が混入していることがわかりました。
    インストールされるディレクトリとファイル内容から動作には問題なさそうですが、ちょっと大量で気持ちが悪いので、みなさんがダウンロードされてインストールされる前にお知らせしておいた方が良いかと思い急いでお知らせしました。
    なお、詳細は私のサイトに ipk の内容確認結果ログをアップロードしましたので、ご確認ください。
    また、参考まで内容確認に使用した自作のシェルスクリプト(ipk_info、ipk 形式)もアップロードしておきましたので、ご参考まで。
    取り急ぎお知らせまで。

    なお、修正版ドライバー動作確認は今日、帰宅してから実施してご報告します。
    では…….

    ・ipk の内容確認結果ログ(ipk_info_result_zaurus-sd-driver-update_1.1+bucchi_arm.ipk.txt):
      http://fsasaki.sakura.ne.jp/Zaurus/text/ipk_info_result_zaurus-sd-driver-update_1.1+bucchi_arm.ipk.txt
    ・ipk の内容チェックにいつも使っている自作のシェルスクリプト:ipk-info_1.2-1_arm.ipk(ダウンロード:http://fsasaki.sakura.ne.jp/Zaurus/ipk/ipk-info_1.2-1_arm.ipk)

    【参考】ipk_info(シェルスクリプト、ipk-info_1.2-1_arm.ipk)の使い方
     ・イントールディレクトリ:/home/QtPalmtop/bin(PATH が通っているディレクトリ)
     ・コマンド名:ipk_info
     ・使い方:bash-2.05$ ipk_info ipkファイル名

    • あちゃー、svn のファイルが入っちゃってるみたいですね。
      確かに動作に影響はないですが、不要なので次のリリースで削除するようにします。
      ご報告ありがとうございました。

      あと、コメントの改行が抜けてしまって読みづらかったので、コメントに改行を入れる修正をしちゃいましたのでご了承ください。

      • bucchi さん、こんばんは。ブースカです。
        >あと、コメントの改行が抜けてしまって読みづらかったので、コメントに改行を入れる修正をしちゃいましたのでご了承ください。
        いえいえ、急いでいたので外から SL-C860 の NetFront v3 でコメント投稿したのですが、改行が有効にならなかったんですね。帰って来てパソコンで見たら、つながっていて見づらいこと、改行の修正ありがとうこざいました。
        これから、再修正版の Ver1.2 試してみます。また、ご報告します。では……

コメントを残す

メールアドレスが公開されることはありません。

*