ここでは、PCMCIA メモリーカード(筆者の場合は、デジカメ用のSmartCardを使用)を認識させて、実際にマウントして書き込みができるように設定します。おそらく、使用しているPCMCIA
の型番によっては、ここで解説している方法ではまるで通用しないかもしれませんのであくまで参考程度に読んでみてください。また、PCMCIA
のトラブルシューティングに関してはインターネット上に多くの文献が用意されているので検索をかけてみるといいでしょう。
|
|
■pcmcia-cs のインストール
まず、PCMCIA を認識させるのに必要なpcmcia-cs がインストールされているかどうか確認してください。pcmcia-cs
は、頻繁にアップデートされているので、バージョンアップすれば正常に動作することもあるかもしれません。なお、pcmcia-cs
をバージョンアップするには、同時にカーネルもそれにあわせてバージョンアップする必要があります。
# rpm -q kernel-pcmcia-cs
kernel-pcmcia-cs-3.1.31-13 |
|
■PCMCIA の認識
まず、PCMCIA カードがシステムにきちんと認識されているかどうか
lspci コマンドで確認してみましょう。以下のように表示されていれば正常に認識されていることが確認できます。
# lspci -v | grep
CardBus
00:09.0 CardBus bridge: Ricoh Co Ltd
RL5c476 II (rev 80)
00:09.1 CardBus bridge: Ricoh Co Ltd RL5c476
II (rev 80)
# lspci -v
00:09.0 CardBus bridge: Ricoh Co Ltd
RL5c476 II (rev 80)
Subsystem: GVC Corporation: Unknown device
0810
Flags: bus master, medium devsel, latency
168, IRQ 9
Memory at 10000000 (32-bit, non-prefetchable)
[size=4K]
Bus: primary=00, secondary=02, subordinate=05,
sec-latency=176
Memory window 0: 10400000-107ff000 (prefetchable)
Memory window 1: 10800000-10bff000
I/O window 0: 00004000-000040ff
I/O window 1: 00004400-000044ff
16-bit legacy interface ports at 0001
00:09.1 CardBus bridge: Ricoh Co Ltd RL5c476
II (rev 80)
Subsystem: GVC Corporation: Unknown device
0810
Flags: bus master, medium devsel, latency
168, IRQ 11
Memory at 10001000 (32-bit, non-prefetchable)
[size=4K]
Bus: primary=00, secondary=06, subordinate=09,
sec-latency=176
Memory window 0: 10c00000-10fff000 (prefetchable)
Memory window 1: 11000000-113ff000
I/O window 0: 00004800-000048ff
I/O window 1: 00004c00-00004cff
16-bit legacy interface ports at 0001 |
|
■PCMCIAの設定
PCMCIA の設定ファイルは、/etc/sysconfig/pcmcia に格納されています。このファイルを開くと以下のような行が記述されており、
PCMCIA
は
yes になっていなくてはなりません。
PCIC は、カーネル2.4 系では、
yenta_socket
が使用されます。
# cat /etc/sysconfig/pcmcia
PCMCIA=yes
PCIC=yenta_socket
PCIC_OPTS=
CORE_OPTS= |
|
■モジュールが組み込まれているか確認する
lsmod で以下のモジュールがきちんと組み込まれているかどうか確認してみてください。
# lsmod
yenta_socket 13472 2
pcmcia_core 57216 0 [ide-cs ds yenta_socket] |
|
もし、上記のモジュールが認識されていない場合は、一度、rmmod でモジュールをアンロードしてから再び、ロードしてから再起動をかけてみてください。
# rmmod pcmcia_core
# modprobe yenta_socket
# /etc/rc.d/init.d/pcmcia restart
Shutting down PCMCIA services: cardmgr modules.
Starting PCMCIA services: cardmgr.
# tail -40 /var/log/messages |
|
以上の操作を終えたら、fdisk -l コマンドで新たなデバイスが認識されたかどうか確認してみてください。筆者の場合は、もともとFATフォーマットされているメモリーカードを使用しているので以下のように表示されています。
# fdisk -l
Disk /dev/hde: 131 MB, 131072000 bytes
255 heads, 63 sectors/track, 15 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス ブート 始点 終点 ブロック ID システム
/dev/hde1 1 15 120456 6 FAT16 |
|
■PCMCIA メモリーカードのマウント
fdisk -l でデバイスが正常に認識されていれば、あとは通常通りマウントを行うことができます。筆者の場合は、FATフォーマットされたメモリーカードを使用しているので、タイプにvfat
を指定しています。
# mkdir /mnt/pcmcia
# mount -t vfat /dev/hde1 /mnt/pcmcia |
|
■PCMCIA カード情報の確認 [ cardctl ]
モジュールが正常に組み込まれていても、PCカード自体は認識されないこともあります。基本的には、PCカードを挿入したり、抜去したりする度に、システムがビープ音を発します。もしも、PCMCIA
挿入時にビープ音がならない場合は、正常に認識されていない可能性がありますので、pcmcia-csコマンドを使用してみるといいでしょう。挿入されているカードの状態を確認するには、
cardctl
コマンドを使用します。
# cardctl ident
Socket 0:
product info: " ", " ",
"0.0"
manfid: 0x0000, 0x0000
function: 4 (fixed disk)
Socket 1:
no product info available |
|
◎cardctl オプション
|
ident |
カードの認識情報を表示する。製品の認識文字列、メーカの ID コード、function
ID コードが表示される |
|
suspend |
ソケットをシャットダウンして、電力供給を止める。 |
|
resume |
ソケットに再度を電力を供給し、再設定する。 |
|
insert |
全てのクライアントドライバにカードが挿入されたことを知らせる。 |
|
eject |
全てのクライアントドライバにカードがイジェクトされたことを知らせ、ソケットへの電力供給を止める。 |
|
status |
現在のソケット状態フラグを表示する |
|
config |
ソケットの設定を表示する。電力の状態、割り込み、I/O ウインドウの設定、設定レジスタの状態が表示される。 |
|
■IRQ の競合によって認識されない
デスクトップPC にPCMCIA カードを挿入すると正常に認識するのに、ノートPCだと正常に認識してくれないことがあります。これは、IRQの競合によって生じるもので、PCMCIAを異なるIRQに割り当てれば認識することもあります。まず、現在、PCMCIAカードがどのIRQ番号に割り当てられているか確認しておきましょう。
# cardctl ident
Socket 0:
product info: " ", " ",
"0.0"
manfid: 0x0000, 0x0000
function: 4 (fixed disk)
Socket 1:
no product info available |
|
/etc/pcmcia/config.opts を開いて以下の行を探してください。
exclude irq 4
# Second built-in serial port
#exclude irq 3
# First built-in parallel port
exclude irq 7
# PS/2 Mouse controller port, comment this
out if you don't have a PS/2
# based mouse
exclude irq 12 |
|
■トラブルシューティング
ごく単純なことでPCMCIAカードが認識しないことがあります。これは、筆者の環境(ノートPCでのみ)で起こったことなので、他の環境で通用するかはわかりませんが、PCMCIA
カードとフラッシュメモリカードが起動時に同時に挿さっていると正常に認識しないことがあります。この場合は、先にPCMCIAカードだけを挿入しておき、システムが立ち上がったらメモリーカードを挿入してみてください。筆者の場合は、認識せずに2日間も悩んでいろいろと設定をしたあげく、結局、このことが原因で認識されない状況に陥っていました(汗)。そもそも、PCMCIAカード挿入時にビープ音が鳴らない時点でおかしいとは思っていたのですが、起動後にメモリーカードを挿入したらあっさりとビープ音がなりました。なお、一度認識してしまうと次回からは起動時にメモリーカードを挿入したままでも自動で認識するようになりました。もし、PCMCIAは認識されているのに、メモリーカードが認識されない場合は試してみてください。