Linux Driver Setup Guide for REX-sma03 (Beta Release) for Linux kernel 2.4.x 30/Nov./2001 RATOC Systems,Inc. ---------------------------------------------------------------- This document is written in the Japanese character. If you want to read English version, refer to README-E-sma03. ■はじめに 本ドキュメントでは、USB SmartMedia Reader/Writer REX-SMA03F を Linux上で使用するための手順について説明しています。 ここでは、RedHat Linux 7.1環境でのSetup手順を例に説明していき ます。 RedHat7.1 の Kernel Version は 2.4.2-2 となっています。 この環境で REX-SMA03Fを使用するためのドライバ(β版)はUSB のMassStorage用ドライバ usb-storage.o の一部として動作します。 このドライバの作成および登録の手順について以下で説明していきます。 あらかじめ ROOT ユーザでログインしてください。 ここでは、/root ディレクトリにダウンロードしたファイルが解凍され ていることを前提に説明しています。 ファイルを解凍すると、[sma03] というディレクトリの下に [ src ] [ patch ] [ samples ] というディレクトリができます。 [ src ] にはドライバモジュールのソースファイルが格納されています。 [ patch ] にはドライバモジュールを作成するために必要なパッチファイル が格納されており、さらに [ Redhat7-1 ] と [ turbo7 ] というディレク トリがあり、Redha Linux 7.1用および Turbolinux 7 用のパッチファイル が格納されています。 [ samples ] には、ドライバモジュールを作成するために編集する各種 ファイルの記述サンプルが格納されています。 ■ RedHat7.1 でのREX-sma03用ドライバ登録手順 【 Step1 】ドライバソースファイルのコピー usb/storage のディレクトリへ移動します。 # cd /usr/src/linux-2.4/drivers/usb/storage ドライバソースファイル (sma03.c)をこのディレクトリへコピーします。 # cp /root/sma03/src/* . sma03.c, sma03.h, の2つのファイルがコピーされます。 【 Step2 】Patch の実行 usb/storage ディレクトリにある usb.c, unusual_devs.h, transport.c の3つのファイルに Patch を行います。 (1) usb/storage ディレクトリへ移動します。 # cd /usr/src/linux-2.4/drivers/usb/storage (2) sma03/patchディレクトリの usb-storage.patch を実行します。 # patch -p1 ] を選択します。 SCSI Support のメニューで [ SCSI Support ]へカーソルを移動さ せます。この項目の先頭が<*>以外の場合は、スペースバーを押して <*>へ変更して build-in に設定します。 さらに、[ SCSI disk support ] についても項目の先頭を<*>に設定し ます。 ・File systems の設定 SmartMediaのフォーマット形式は、FATフォーマットのため、DOSのFAT ファイルシステムを有効にする必要があります。 MainMenuから [File systems -> ] を選択します。 FIle systems のメニューで DOS FAT fs support へカーソルを移動さ せます。この項目の先頭が< > 空白の場合は、スペースバーを押して または<*>へ変更して有効に設定します。 さらに、[ MSDOS fs support ] [ VFAT(Windows 95) fs support ] に ついても項目の先頭を<*>に設定します。 ・USB Support の設定 MainMenuから [USB Support -> ] を選択します。 USB Support のメニューで USB Mass Storage support へカーソルを 移動させます。この項目の先頭が 以外の場合は、スペースバーを押 してへ変更して module に設定します。 さらに、 USB Mass Storage support カテゴリの [RATOC SMA03 SmartMedia reader support (New)] へカーソルを移動さ せます。 スペースバーを押して、先頭の [ ] を [*] へ変更します。 [ Exit ]を押して画面を戻って行くと最後に[ Do you wish to save your new kernel configuration ? ]という確認画面が表示されるので、 を選択して menuconfig を終了します。 (2) module の作成 # make dep # make modules # make modules_install 作成された module (usb-storage.o) が USB関連の module が格納 されているディレクトリ(/lib/modules/2.4.2/kernel/drivers/usb/storage) にコピーされます。 また、/lib/modules/2.4.2-xx/modules.usbmap も更新されます。 【 Step6 】Restart PC 更新した情報を有効にするため、システムを再起動します。 # reboot ■ REX-sma03用ドライバ起動の確認 REX-sma03 は、kernel 2.4 からカーネルに新しく追加された Hotplug という機能により認識されます。 USBストレージデバイスは、scsi ドライブとして認識されます。 以下の作業は、X-Window を起動する前のコンソール画面で確認してください。 (1) REX-SMA03F の認識の確認 SmartMediaを装着したREX-SMA03FをUSBポートに接続すると、SMA03の緑の LEDが点灯し、赤のLEDもしばらく点灯します。 そして、画面に以下のメッセージが表示されます。 Vendor: RATOC Model: SmartMediaReader Rev: 0306 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sda: 131072 512-byte hdwr sectors (67 MB) sda: Write Protect is off sda: sda1 ドライブが正常に認識されない場合、画面に何も表示されません。 /var/log/messages にエラー内容が表示されるので確認してください。 * X-Window のコンソール画面の場合もメッセージは表示されません。 (2) SmartMedia の認識の確認 SmartMedia用のマウントポイントとして /mnt/sm0 を割り当てる場合、以下の ように入力します。 # mkdir /mnt/sm0 # mount -t msdos /dev/sda1 /mnt/sm0 ls コマンド等でディレクトリ内容を確認してください。 ■ REX-SMA03の取外し REX-SMA03をUSBポートから取外す場合は、先にunmountをそしてrmmodを実行し、 最後にREX-SMA03を取り外してください。 (1) sma03経由でマウントしているドライブをアンマウントします。 例えば、/dev/sda をマウントしている場合は、以下のように入力します。 # umount /dev/sda1 (2) usb-storage をアンロードします。 Redhat 7.1 の hotplug ではドライバのアンロードはサポートされてお りません。 したがって、rmmod コマンドを手動で実行してアンロードさせる必要が あります。 # rmmod usb-storage (3) REX-SMA03をUSBポートから取り外します。 ■ SmartMediaのみの取外し Linux上では、SmartMediaのような取外し可能なメディアを取り外す場合は、 メディアを取り外す前にunmountを実行する必要があります。 (1) sma03経由でマウントしているドライブをアンマウントします。 例えば、/dev/sda をマウントしている場合は、以下のように入力します。 # umount /dev/sda1 (2) メディアを取り外します。 ■ 別のSmartMediaへ交換する場合 今回リリースしたドライバは、メディア交換後の自動認識をサポートしていません。 したがって、以下の手順でSmartMediaを交換する必要があります。 (1) unmount, rmmod を実行した後でREX-SMA03をUSBポートから一旦取り外す。 (2) 別のSmartMediaへ交換した後、再度REX-SMA03FをUSBポートに接続する。 (3) mount コマンドで新しく装着されたSmartMediaをマウントする。 ■他のディストリビューションの場合 Kondara MNU/Linux 2.0 Kernel Source のディレクトリ名が若干異なる ( /usr/src/linux ) だけで、 それ以外はRedHat7.1 と全く同じ手順となります。 REX-SMA03FをUSBポートに装着した時の認識音は鳴りません。 Turbolinux 7 基本的な手順は、RedHat7.1 と同じですが、Patchの対象となるファイルが 異なります。 sma03/patch/usb-storage.patch および sma03/patch/turbo7 ディレクトリ にある unusual_devs.patch を実行してください。 (1) usb/storage ディレクトリへ移動します。 # cd /usr/src/linux/drivers/usb/storage (2) sma03/patchディレクトリの usb-storage.patch を実行します。 # patch -p1