この特集のトップページへ
>
この回のトップページへ
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形式のカードメディアが活躍する場は現実的とはいえないだろう。