この特集のトップページへ
この回のトップページへ

USBカードリーダを使う
 ここまでで環境が整ったら,次にUSBカードリーダを制御するのは簡単だ。まず,次のようにしてUSB Mass Storageのデバイスドライバを読み込む。

# /sbin/insmode usb-storage

 これでカードリーダからのUSBケーブルを接続すれば,SCSIデバイスとして認識できるはずだ。

 USBカードリーダを接続した後に,次のように/proc/scsi/scsiを参照すると,接続されたUSBカードリーダのデバイス名を見ることができるだろう。

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: HAGIWARA Model: CompactFlash R/W Rev: 2.00
Type: Direct-Access ANSI SCSI revision: 02


USBデバイスは抜き差しすると,システムメッセージが/var/log/messagesファイルにも出力される(ただし,/etc/syslog.confファイルの設定による)

 上記の出力例では,scsi0にUSBカードリーダが接続されていることが分かる。Linuxでは,SCSIデバイスはscsi0から順に/dev/sda,/dev/sdb/dev/sdc,…のように連なる。

 つまり,scsi0/dev/sdaのデバイス名に対応し,その第1パーティションは/dev/sda1となる。次のようにしてマウントすれば利用できるのだ。

# mount -t vfat /dev/sda1 /mnt/floppy

 上記のコマンドでは,VFAT(MS-DOS)形式で/mnt/floppyにマウントする例を示している。このように指定すると,/mnt/floppyを通してコンパクトフラッシュカードやスマートメディアなどが読み書きできる。

!マウント後は,いくら手で抜き出せるからとはいえ,アンマウントするまでコンパクトフラッシュカードやスマートメディアなどのメディアを抜き差ししてはならない。メディアを抜き差しする際には,必ずumountコマンドを使ってアンマウント操作してからにしよう。


当然であるが,VFAT形式でマウントするためにはカーネルがVFATをサポートするよう構築されている必要がある。もしもメジャー番号やマイナー番号が異なるといったメッセージが表示される場合には,カーネル再構築で[File System --->]階層下の[DOS FAT fs support]項目が有効,またはモジュールとして組み込まれているかどうかを確認しよう。

 もちろん実際には/mnt/floppyではなく,適当なマウントポイントを作って利用するだろうし,よく使うのであれば/etc/fstabにマウントの設定を記述することになろうが、それは各自におまかせする。

 なお,ここではFAT形式でマウントする例を示したが,もちろんLinuxのネイティブなファイル形式ext2でマウントしたり,フォーマットすることも可能だ。ext2形式でフォーマットするためには,次のように指定すればよい。

# /sbin/mkfs.ext2 /dev/sda1

 ただし,当然のことながらext2形式でフォーマットしたメディアはデジカメなどでは利用できなくなる。このため,ext2形式のカードメディアが活躍する場は現実的とはいえないだろう。

PREV 13/21 NEXT