Linuxで既に対応していたデスクトップ用PCカードアダプタ


2001.2/26


○デスクトップのPCMCIAカードアダプタは動くのか

 現在、プロジェクトで、Linux用のPCカードアダプタのことをごちゃごちゃやってます。 私自身もかなり前から、自宅のデスクトップにはISA版のカードアダプタを買って来てつけていました。 デジカメとかのデータを取り込んで、CDRに焼くとき便利だし、PDAやノートパソコン、 会社のマシンとのデータのやりとりでも便利だからです。特に、ノートパソコンが、FDD欠品の中古だったので、LANで直結する方法を除くと、唯一のデータ交換方法がメモリカードです。
 しかし、Winではもちろん動くのですが、FreeBSD、Linuxでは、そもそも認識がうまく行かず、ノートパソコンでは概ね動作するPCカードも、 デスクトップではまだまだという状況のようでした。実際、ネットで調べてみても、PCカードの動作報告について、大半はノートパソコンでの実績ですし、カードアダプタの情報については、 「ノートでサポートしているコントローラと同じものであれば、デスクトップでも動作するはず」などという曖昧な表現に留まっているものしか得られないような状況でした。現実的に、今回いろいろ調べてみて分かったことは、デスクトップでは動くはずのものも動かない、という状況は多く、仮に動かせたとしても、広くオススメできるという性質のものではなく、 ついつい情報をあけっぴろげにすることがためらわれる、ということは言えるようでした。

 それはともかく、今回、RedHatでかなりつっこんでPCMCIAのドライバモジュールや各種設定、ハードの構成などを調査した結果、もしかしてもうそろそろ動くようになっているのではないか、という気がし始めました。 特に、使用されるドライバモジュールや、起動時及びカード挿入時のカード認識と関連モジュール読み込みのための設定ファイルの仕組みが理解できたため、 問題があったとしてもどこが悪いかは確定しやすいし、また、必要に応じてソースレベルで調査することも可能だと思われました。

○FreeBSDとLinuxの標準インストール後の状況

 自宅でのFreeBSD4.1Rでは、実はすでにPnP機能で、カードアダプタは認識していますし、カードの抜き差しも検出します。カードがささっていると、CIS(カード自身が持っているカードの種類や機能に関する情報)も読み出せるのです。 ただ、おそらくリソースの配分の問題だと思うのですが、実際に例えばメモリカードのドライブをコンフィギュレーションしようとすると、失敗します。これは、いずれ本腰をいれて調査しようと考えています。その前に新しいバージョンでは解決するかも知れませんが。
 で、今回動くかどうか試してみようという気になったのは、Linuxの方です。自宅のノートパソコンでは、ディフォルトのLinux(Vine 2.0)インストール状態で問題なくPCカードアダプタが使えています。しかし、同じバージョンのVineで、デスクトップではまったく認識している気配がありません。
 今回プロジェクトのほうで扱っているのはRedHat 6.2Jで、Vineなら2.1、RedHatでは6.2Jか7.01Jがいいのですが、とりあえず現在載っているバージョンで試してみることにしました。

○最初から動いていたはずだった!!

 とにかく、立ち上がったときはカードアダプタを認識していないわけなので、lsmodコマンドなどで、カレントの状況を確認します。そして、必要と思われる、あるいは可能と思われるドライバモジュールを、lsmodとrmmodを使いながらいろいろ入れ換え、さらにIRQを指定したりしながら確かめてみます。そして、認識したら、今度はカードを挿してみて、CISを確認したり、そのカードのドライバモジュールを試したりします。

 作業開始から数十分、予想に反し、このバージョンのVineでも、ものの見事にカードアダプタを認識し、差し込んだメモリカードを認識し、そして、マウントできたのです。おお、この感動!!!
 さて、次に、起動したとき自動的にPCMCIAが利用可能となるようにするため、現在の設定状態を、lsmodで確認して行き、メモします。で、ざっと見たとき、思わず「ん!?」と声を漏らしてしまいました。出て来たのは、あまりに何の変哲もないモジュール群です。
 「ちょっと待てよ、これならほとんど標準構成やんか」とつぶやき、それならば、と、試しに最低限の設定を行いました。つまり、/etc/sysconfig/pcmciaファイルに、
    PCMCIA=no → PCMCIA=yes
    PCIC= → PCIC=i82365
という二つの修正を加えるだけです。
 一行目は、起動時にPCMCIA機能をONする、という指定、二行目は、PCカードコントローラのドライバモジュールとして、最も一般的なIntel 82365またはその互換チップ用のものをロードする、という指定です。大半のノートパソコンで、ディフォルトのインストール状態でこうなっているというありきたりのものです。
 そして、リブート数分、起動メッセージはPCMCIAサービスの正常な起動を表示し、差し込んだメモリカードはピッピと認識され、そのメモリカードは何らの問題もなくマウント及びアクセスできたのです。思いがけない余慶に喜びを感じる反面、自分がすごくアホに思えた瞬間でした。

○これからの生活に、大きなメリット

 過ぎたことは忘れるとして、このことは非常に大きなメリットを生むことになります。
 まず、Windowsを立ち上げなくとも、Linuxでカードアダプタにアクセスできるということは、かなり大きなサイズのファイルも、 会社のマシンとの間や、PDA、ノートパソコンと簡単にやりとりできるようになったことを意味します。これがもともとPCカードアダプタを取り付けた理由ではあるのですが、これまで以上のメリットもあります。 なぜなら、Windowsでは、このアダプタを介してのメモリカードアクセスが極めて不安定だったのです。Win95の時はお話にならないくらいで、メモリカードの内容を更新すると、数秒でハングしました。つまり、読み出し専用の使い方を強いられたのです。それでも、 ひんぱんに固まりました。Win98では多少ましになりましたが、やはり時々固まるので、メモリカードを抜き差しした後は、リブートしない限りCDRを焼くような恐い真似は出来ませんでした。ところが、Linux + メモリカードは、極めて安定していて、まったく問題がないのです(マウントした状態で抜くとどうなるか知りませんが)。
 次に、デスクトップでカードアダプタが使えるということは、今後の常時接続などで、無線LANカードを差し込むことなどにより、非常に簡単に家庭内LANを構成することができるということを意味します。無線LANカードのメジャーなものは、すでにLinuxでドライバが作られていますから問題ありません。
 また、同様に、PHS等でプロバイダに接続することが可能となり、いちいち電話線を引っ張ったり、電話が空くのを待ったりする必要がなくなります。
 当然、それ以外のPCカードについても、Linuxのドライバが存在する限り使用できるようになったわけです。

 まあ、もともと使えたものを使えないと思い込んでいたというおマヌーはあったにせよ、大きな大きな、そしてとてもうれしいメリットですし、これで確実に、Windowsを立ち上げなければならない大きな理由の一つが消え去ったわけです。



技術者のにっき帳・インデックス

メール neyubacca@yahoo.co.jp

Back Home