vine-users ML アーカイブ



[vine-users:052859] CompactFlash カードの利用について

  • From: Shingo Kintaka <kintaka@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:052859] CompactFlash カードの利用について
  • Date: Fri, 16 Aug 2002 15:53:03 +0000
いつもお世話になっております。

インストールしたNotePC
		↓
NEC : VersaProNX VA20C

上記ノートパソコンにてVine2.5CRをインストールしました。
インストールは正常に終了したのですが、CompactFlash(以下CFと略)の利用
方法がわかりません。
(インストールの確認として、lsmodコマンドにてpcmcia_coreと表示されていることを確認し、
  CFを差し込んだPCMCIAカードを挿入するとビープ音が2回鳴る事を確認しております。)
						  ^^^^^^^^^^^^^^^^
							↑
						2回な鳴ると認識されていると検索結果
                                                に記述されておりました。

google検索にて調べたところ、ftl_formatと呼ばれるプログラムにてデバイスをフォーマット
すれば、CFをブロックデバイスとしてハードディスクと同じように扱うことができると書いて
あるのですが、私の環境ではgoogleにて検索した資料に記述してあるようなデバイスがありません。
資料には「mem0c」「mem0d」「ftl0」とデバイス名が書かれているのですが、私の/devディレクトリ
にはありませんでした。
似ているデバイスとして
/dev/mem
と言うデバイスがあるのですが・・・・・

Vineでの環境が違うのかと

# ftl_format -i /dev/mem

とするのですが、

get device info failed : Inappropriate ioctl for device format failed.

と表示されてしまいます。


1・PCMCIA経由でのCFを利用するにはどのようにすればよろしいのでしょうか?
2・何かしらの新しいハードウェアを追加・認識した場合、どのデバイスとして認識したか確認する
    方法はどうするのでしょうか?
    (今までは、web上の資料から「/dev/???として認識されているはずです」という文脈をそのまま
      信用して利用していたので、結局自分ではよく分かっておりません。)


下記にgoogle検索にて収集した資料を提示します。

-------------------------------------------------------------------------------------

<PCMCIA メモリカードの使い方は?>

デフォルトのメモリカード起動用のスクリプトは、カードの最初の共通メモリ (common memory)と属性メモリ(attribute memory)領域にアクセスするために、 ブロックデバイスとキャラクタデバイスを作ります。詳しくはマニュアルを見 てほしいんですが、多分使うであろうデバイスは /dev/mem0c(キャ ラクタデバイス)か/dev/mem0b(ブロックデバイス)になるはずです。 ブロックデバイスはディスクのように(ファイルシステムを作ったりマウント したり)使えます。キャラクタデバイスは "raw" モードでメモリの好きな場所 を読み書きできます。

フラッシュメモリカードを通常のディスクのようなブロックデバイスとして利 用するためには、まずフラッシュメモリ変換層(``flash translation layer'') をftl_format コマンドで作らなければなりません。

ftl_format -i /dev/mem0c

このコマンドはメモリカードの ``raw''インタフェースを使ってカードにアク セスすることに注意してください。いったんフォーマットしてしまえば、カー ドは普通のブロックデバイスとして ftl_cs ドライバ経由で使えます。 例えば:

mke2fs /dev/ftl0
mount -t ext2 /dev/ftl0 /mnt

のようにして普通のディスクと同様にフォーマット、マウントできます。

------------------------------------------------------------------------------------------------------------------------

<リニアフラッシュメモリカードの使い方>

以下の情報はいわゆる「リニアフラッシュ」メモリカードにしか当てはまりま せん。SmartMedia や CompactFlash を含む多くのフラッシュカードは、実際 は IDE ディスクデバイスをエミュレートする回路を持っています。したがっ て、こういったカードはメモリデバイスではなく IDE デバイスとして扱われ ます。

フラッシュメモリカードには有力なフォーマットが二つあります: FTL つまり ``flash translation layer'' 形式と Microsoft Flash File System 形式です。一般的には、FTL 形式 の方が柔軟性に優れています。というのも、FTL 形式のフラッシュカード上に は、通常のディスクデバイスと同様に任意の一般的な高レベルファイルシステム (ext2, MS-DOS 等)を作れるからです。FFS は全く独自のファイルシステムで す。現時点では、Linux は FFS でフォーマットされたカードを扱えません。

フラッシュメモリカードを普通のディスクのようなブロックデバイスとして使 うには、まず ftl_format コマンドを使ってデバイス上 に FTL パーティションを作成します。このレイヤはフラッシュメモリ のプログラミングにおけるデバイス固有の細かい部分を隠し、カードが単なる ブロックデバイスに見えるようにします。以下にコマンドの例を示します:

ftl_format -i /dev/mem0c0c

このメモリは ``raw'' メモリカードインタフェース経由でカードにアクセス します。一度フォーマットすると、このカードは ftl_cs ドライバ経由 で通常のブロックデバイスとしてアクセスすることができます。操作例を以下 に示します:

mke2fs /dev/ftl0c0
mount -t ext2 /dev/ftl0c0 /mnt

FTL デバイスの命名規則はちょっと変わっています。マイナーデバイス番号が 3 つの部分に分かれています。すなわちカード番号、そのカード上での領域番号、 (省略可能な)領域内でのパーティション番号です。 ある領域はパーティションテーブルを持たない単独のブロックデバイスとして 扱うこともできますし(フロッピーと同様です)、ハードディスクデバイスのよ うにパーティションを切ることもできます。``ftl0c0'' デバイスはカード 0, 共通メモリ領域 0, 全領域を使うという意味です。 領域がパーティション分割されていれば、``ftl0c0p1'' から ``ftl0c0p4'' が基本パーティションの 1 番から 4 番を表します。

FTL パーティションの設定オプションは ftl.opts で指定できます。 このファイルの構成は memory.opts に似ています。 ftl.opts に渡すデバイスアドレスは、3 個または 4 個のフィールドか ら構成されます。すなわちスキーム、ソケット番号、領域番号、(省略可能な) パーティション番号です。ほとんどのフラッシュカードはフラッシュメモリ領域 を 1 つしか持っていません。したがって領域番号は常に 0 となります。

Intel Series 100 フラッシュカードは、最初の 128K のフラッシュブロック を使ってカードの設定情報を格納しています。この情報を誤って消してしまう のを防ぐため、ftl_format は自動的にこれを検出し、FTL パーティション の作成時には最初のブロックをスキップします。

------------------------------------------------------------------------------------------------------------------------