62. ブック型ベアボーンキット (2) (2000/6/6)


戻る前回次回

前回から、ブック型ベアボーンキットに関する話を三回に分けて書いている。第二回目の今回は、Linux のディストリビューションの一つである Vine Linux を入れたレポートである。

■Linux をインストールする

そこで気になったのは、この付属CD-ROM には Linux 用のドライバまで用意されていたことである。さすがにモデム用のドライバは付いていなかったが、サウンドとネットワークインタフェイスカードに関してはきちんとドライバがついていた。ものはためしと、Linux も入れることにする。

入れることにしたパッケージは Vine Linux 2.0 である。先輩が、開発者用の Mandrake 最新版を持っていたのだが、日本語環境がないそうなので、日本語環境に強いと勧められた Vine を入れることにした。

私は Slackware が 1.4 の頃の Linux を 486 マシンに入れて卒業研究をやったこともあったので、Linux のインストールなんて朝飯前だと思っていた。ところが、Vine Linux 2.0 のインストールにはかなり手間取った。結論から先に言うと、パーティションの分け方が悪かったのである。

Vine Linux 2.0 は非常に見た目の良いインストール画面を持ち、私はこれを見たときに時の流れを感じた。ひょっとすると Windows 系よりもインストール画面が綺麗なのである。しかしそこに大きな落とし穴があったのだった。

私はこれまでに、Turbo Linux 3.0 を自分の VAIO に入れてクライアントマシンとして使用したり、RedHat Linux 6.0 を家のサブマシンに入れて CGI 開発用マシンとして使ったりしたので、一応ここ最近の Linux のインストールは普通にできると思っていた。そこで今回も、基本的なこと、特にパーティションの分け方に関しては、これまで通りの方針をとることにした。ルートパーティションを 64MB とり、スワップに 128MB とり、残りの 2GB を /usr にした。これは、最低限のパーティション分けよりも一歩だけ進めた、実のところそんなによくないパーティション分けだということは自分でも分かっている。しかし最低でも、ルートぐらいは安全のために別々にとっておこうと思ったのである。

インストールの設定は難なく進み、それが終わるとファイルのコピーが始まった。結構欲張りにソフトを選んでしまったので、1GB 近くのファイルをコピーすることになった。私が最初に Linux を入れたのは、スワップを含めて 80MB 内だったので、もう十倍以上になっている。ファイルのコピーは 40分ぐらいで順調に終わった。その後、
「インストール後の設定を行います」
の表示が出て、しばらくディスクアクセスをしたと思うと固まってしまうのである。マウスカーソルは動くので、完全に固まったわけではないだろう。しかしボタンを押しても何の変化もない。仕方なく私はリセットボタンを押して再起動した。ここまでの作業を私はあと五回ぐらい繰り返すことになる。

私は、何が起こったのかさっぱり分からなかった。そこへ先輩が来て、
「テキストモードでインストールしたほうがいいよ」
と教えてくれた。そこで私は、最初にインストールモードを選ぶときに text と入力して、テキストモードでのインストールを試みた。テキストモードでのインストールも、インタフェイスは実質あまり変わらず、X か何かで実現されていた綺麗なグラフィックスが単なるテキストになっただけである。なぜか不明だが、グラフィカルなモードよりもテキストモードの方が明らかにファイルのコピーが速かった。ファイルのコピーが 20分強で終わったあとで、例によって「インストール後の設定]を行っているようであった。ところがその途中で変なウィンドウが出て中断するのである。ウィンドウ内にはメッセージが入っており、そのメッセージを読んでみると「デバイスの空き領域が足りません」と最後に書いてあった。なるほど。これまでインストーラが固まってしまうのは全て、ディスクパーティションの空き容量が足りなかったからだったのだ。

そこへ丁度、Mandrake の最新版を持っている先輩がやってきたので、これまでのことを簡単に説明した。するとその先輩は、
「そりゃそうだ。ルートパーティションが 64MB しかないんだから」
彼は、スワップとルートの二つのパーティションしか作らずにインストールしているらしい。だから何の問題も起きなかったのだろう。私は、パーティション分けというごく常識的なことをやったつもりなのだが、それが裏目にでて失敗してしまった。どういうことかと簡単に説明すると、1GB 近くあるファイルはちゃんと 2GB 用意した /usr パーティションにぶちこまれたのであるが、インストール後の設定やらログやらなにやらで、どうやら 64MB しかないルートパーティションが全部埋まってしまったようなのだ。/var やら /etc やらがインストール後の設定で増えてしまったのだろう。

私は、新たなパーティションを作るのが馬鹿馬鹿しくなったので、これまでルートパーティションだったものを /boot パーティションにして、残りの 2GB をルートパーティションにすることにした。そうして行った数度目かのインストールはあっさりうまくいった。

■Linux に各種デバイスを認識させる

・ビデオカード

ここまでは良いのである。ここまではよほど変わったマシンでない限りうまくいく。インストール時に特殊なデバイス、たとえば ftp でインストールしたいだとか、LAN で接続された CD-ROM なりネットワークカードを介してインストールしたいだとかいう人は、ここまでがかなり苦労するポイントなのである。

まず私は X を起動したいと思ったので、X のビデオカードの設定から行うことにした。とはいっても、インストール中は VGA モードまたは SVGA モードが認識されており、これ以上なにか面倒なことが起こるとは思えない。しかし実際に X をセッティングしようとしてもうまくいかない。さあこれから試行錯誤していかなければならない、と思った時に先輩が通りかかった。そこでそのS先輩に全てやってもらった。彼は少しだけつまずきながらもあっさりと X を立ち上げた。S先輩に礼を言いつつ次へ進むとする。

・ネットワークインタフェイスカード

次はネットワークインタフェイスカードである。どうやら私のベアボーンには Davicom という会社のチップが載っているらしい。そして一昔前なら考えられなかったことに、なんと付属 CD-ROM に Linux 用のドライバが入っていたのである。そこでまずはそのドライバをインストールしようと試みる。ところが、カーネルのバージョンが異なる、みたいなメッセージが出て正常にドライバを読み込んでくれないようであった。そこへまたまたS先輩とW先輩が通りかかって関心を持ってきたので、私は窮状を話した。彼らはネットワークの設定を色々とやってくれたのだが、あとで分かったことなのだが、そもそもドライバが組み込まれていないのだから動くはずがない。

そうなると、バイナリはあきらめて、ドライバをソースコードからメイクして作る必要がある。メイクというかコンパイルは非常に簡単だった。なにせ打つべきコマンドラインがドキュメントにきっちり書かれていたので、そこからコピー&ペーストするだけである。しかし、コンパイル中に warning が出て、古いドライバインタフェイスを利用したドライバソースをコンパイルしている、みたいなメッセージが出てきた。そのメッセージは仕方がないので無視して、insmod でそのドライバを読み込ませることにした。しかし、unsolved symbol の表示が出てうまくドライバが読み込めなかった。

そこで私はインターネットでドライバのページを見つけて、最新のドライバをダウンロードしてきた。ドライバは以下のページにあった。

Davicom Semiconductor - Download Driver:
http://www.davicom.com.tw/download/download_driver.htm

ここにあるパッケージには、ドライバのソースコードと、予めいくつかのカーネルにあわせてメイクされたバイナリが用意されている。Vine Linux 2.0 CR は RedHat 6.2 をベースに作られているらしいので、私は 6.2 のドライバを読み込ませてみた。ところが、カーネルのマイナーマイナーバージョンが合わないらしく、全く読み込めなかった。そこでまた例によってソースコードからドライバのバイナリを作り、そいつを insmod で読み込ませたところ、何もメッセージが出なかったのでうまくドライバを読み込むことが出来たようだった。やれやれ。

後日友人から聞いたところによると、insmod ではなく modprobe というコマンドを使うべきだったのではないかと言われた。たかだかカーネルのマイナーバージョンアップでここまでデバイスドライバで面倒なことになるとは思わなかった。しかも、マイナーマイナーバージョンが違うぐらいでドライバの読み込みを拒否されるのは全く腹が立つ。というわけで、Windows が嫌いなその友人に対して、Linux は Windows より腐っている、とメールで送っておくことにする。

ドライバがインストールされると、諸先輩が行ってくれた設定が適切だったせいか、再起動もなにも必要なくうまくインターネットに接続できるようになった。

・サウンド

私のベアボーンに内臓されているサウンドデバイスは cmedia CMI8738 らしい。こいつは非常にあっけなく認識された。sndconfig を実行して数少ない質問に答えるだけで一発みたいだった。ただし、私は現在、実際に音が出ているところを確認したわけではない。ホームページで同じベアボーンを買った人のレポートでも全く問題はなかったようだし、ここで問題が起きるとは考えられにくい。…あ、カーネルのバージョン問題をすっかり忘れていた。後日確認することにする。

・モデム

私のベアボーンに内臓されているモデムは、PCTel の HSP 56K というチップを使ったモデムらしい。よく分からないのだが、私のベアボーンには、先ほどのサウンドチップにモデムが含まれているらしい。HSP 56K というのは DSP を使ったモデムであり、ひょっとするとサウンドで使用する DSP と同じチップ上に機能が集約されているのかもしれない。ただし、その場合でもあくまで DSP が同じというだけなのか、ともかくドライバは別途必要みたいであった。

Linux の世界では、悪名高い製品やメーカーの名が語り継がれているらしいのだが、その中の一つに 3com 社が作った Winmodem という呼称がある。Winmodem は 3com 社の商標登録かそれに類するものだが、この呼称はいわゆるソフトウェアモデムの代名詞ともなっている。ソフトウェアモデムとは、従来全てハードウェアでやっていた処理を、高速な Pentium クラス以上の CPU を使うことでソフトウェアで代替してしまったモデムのことである。だから当然、ソフトウェアの部分として高度なドライバが必要となる。モデムという製品は各社大体似たような性質を持っているみたいなのだが、この高度なソフトウェア処理を行うドライバに関しては各社各様なので、メーカー側からドライバが提供されなければ、かなりの技術力を持った人でもドライバを作ることはほとんど不可能と言っても良いと思う。ところが、大抵のメーカーは Windows 用のドライバしか作らない上に、自社の技術仕様を秘匿する傾向にあるためか、フリーウェアの作者がドライバを作るのに必要な情報を公開してくれないことがほとんどである。

ところが、ここ最近になって新しい動きが出てきた。一部のメーカーが Linux 用のドライバを提供するようになったのである。どうやらその先陣を切ったのは Lucent Technology 社の DSP モデムのようである。DSP モデムというのは、基本的にはソフトウェアモデムの仲間なのであるが、処理に CPU パワーを食う多くの処理を DSP と呼ばれる専用プロセッサにやらせるのである。ただし DSP モデムの場合、DSP をソフトウェアで制御してやる必要があるため、やはりソフトウェアの部分をドライバで補ってやる必要があるらしい。

しかしこのような Lucent Technology 社も Linux コミュニティからは完全な歓迎を受けることが出来なかった。なぜなら、Lucent Technology が用意したドライバはバイナリ形式であり、ソースが添付されていなかったのである。つまりこれでは、カーネルのバージョンアップにあわせてドライバを修正したり、Linux の最大の利点であるコミュニティによる改良といったことが出来ないからである。

それはともかくとして、このように一部のメーカーが自社のソフトウェアモデムに Linux 用のドライバを付けたことで、ソフトウェアモデムの別名として使われてきた Winmodem という不愉快な呼称とは別に、Linux コミュニティでは Linux をサポートしたソフトウェアモデムのことを Linmodem と呼ぶことにしたらしい。

前置きが長くなったが、私が買ったベアボーンについているモデムはその Linmodem であった。これはまことに幸運と言って良い。しかし残念ながら、私の手に入れたドライバはカーネルのバージョンが一致せず、うまくインストールできなかった。

■OS インストールに関する不満

Vine Linux 2.0 はどうやら 386 互換でコンパイルされているらしい。つまり、486 や Pentium 以上の CPU で追加された命令セットを全く使わないコードでカーネル以下が動いているらしい。友人の話によれば、主要なソフトだけでも Pentium 以上のマシンの設定でコンパイルもといメイクもといビルドしてコードを作り直せば、体感速度が倍程度にまで速くなるらしい。私は面倒なのでそこまでやる気にはなれないのでやめた。

最近の Linux のデバイスドライバは、Windows ほどではないにせよ、意外に簡単にインストールできることに驚いた。もちろんコマンドラインを叩いて、命令を打ち込まなければならなかったり、ドライバ設定用のアプリケーションを実行してちょっとした質問に答えなくてはならなかったりするのだから、なれていない人には一大事だと思う。

先輩の話によれば、CD-R を使えるようにするにはカーネルの再構築を行わなければならないらしい。カーネルの再構築と簡単に言うが、これは要するにソースコードからプログラムを作らなければならない。私は最近は Linux の勉強をしていないのでさっぱり分からない。どこをどうすればいいのか見当がつかない。Linux をそれなりに使っていた人間がこうなのだ。多分ちょっとインターネットで調べたら、やりかたが分かるに違いないが、敷居が高いことには違いがない。

ただし、Linux に限らず OS のインストールはそれなりに面倒なものである。最近私の弟が、Windows が腐ってきたので Windows を再インストールすることにしたそうである。Windows が腐るというのは、Windows を使っているうちに何故か動作が不安定になっていく現象のことを言う。一度 Windows が腐ると、どんなに Windows について知っている人であろうと、再インストール以外に有効な方法がない。そこがこの OS の重大な欠陥であり、こんなものを平気で出荷しているマイクロソフトに非難が集中する理由となっている。Linux が腐ったという話はあまり聞いたことがない。

弟はいつもパソコンを使ってはいるのだが、ドライバのインストールに関しては当然あまり経験がない。さすがに Windows 向けにはメーカーがドライバインストールを簡単にしてくれていることが多いので、たとえばエプソンのプリンタドライバなんかは、弟でも CD-ROM を渡すだけでうまくインストールできたようである。しかしマザーボードについているドライバ群は無理がある。まずメッセージが全て英語だったりするし、マザーボードの付属 CD-ROM としてありがちなのは複数タイプのマザーボードで兼用だったりして、自分がどのマザーを買ったかを選択しなければならない。それに、Windows でも 95 と 98 と NT とでインストールしなければならないドライバが異なる場合が多い。私が経験した最悪のケースは、95 では必要なのに 98 では不要なドライバがあって、そんなときに間違って Windows 98 に 95 向けのドライバを組み込んで Windows が立ち上がらなくなってしまったことがあった。軽いケースでも、ドライバを組み込むときに、必要なファイルが見つからない、とのメッセージが出て、そのファイルがどこにあるのかを手動で見つけてやる必要があったりすることも多い。  

■Linux はまだ使えない

ところで私の最近の疑問は、マウスカーソルの動きを速くするにはどうすればよいのか、というっことである。Linux の GUI はいくつかあり、GNOME や KDE が最近では有名なのであるが、私が使っているのは Vine Linux の標準である Window Maker という GUI である。Windows の GUI は、たとえば Windows のバージョンが 3 だった頃の GUI と 95 以降のものは大きく変わっているので、私は 95 を初めて触った時にはずいぶん戸惑ったのを思い出す。にしても、私は色々と Window Maker をいじってはみたものの、マウスカーソルの動きを速くする方法がいまのところ全く分からないのである。

Vine Linux 2.0CR は 9,800円するソフトウェアである。この値段にはサポート料がついているのだから、分からないことは電話で聞けば良いのだと思う。しかし、サポートというのは本当に困った時に利用するものだと私は思っている。つまらないことでサポートに電話しなければならないのは憂鬱である。いま秋葉原では五千円くらいで Windows 95 が手に入ることを思えば、不親切な Linux に 9,800円払うことは馬鹿げている。マイクロソフトのサポートは非常にいい加減でかつ高額だという話を聞くが、Windows に関して言えばつまらないことを質問する必要がないくらいに簡単だし、書店に行けばいくらでも本が溢れている。Linux の本も沢山あるのだが、次から次へと進歩していく Linux に追いついていてかつ易しく説明されている本が簡単に見つかるのだろうか。

Linux は中身が素晴らしいことなら私も認めるが、ここまで素晴らしいソフトウェアなのに一般的な消費者にアピールすることを長く怠ってきたのは、商業的なプロフェッショナルに対する崇高なアマチュアリズムとやらの敗北を意味すると私は思う。私は、GNU Public License を条件にフリーウェアを提供するプログラマなのだが、Free Software Foundation のような集団をなぜ営利組織にしなかったのか疑問である。恐らく欧米では、営利組織というととにかく利益だけを求めつづける組織だという認識が強いのだと思う。利益をほどほどに追求しつつも、ソフトウェアの進歩に寄与する、といったような柔軟な姿勢を打ち出せなかったのも無理はないと思う。そんな中で、ディストリビューションという商業的な形にしやすいやりかたで RedHat などが Linux を広めることに貢献してはいるものの、リーナス・トーバルズを中心とする非営利組織と RedHat その他の営利組織との連携(もちろん彼らには互いに連携しているという意識は全くないだろう)がいまいちうまくいっていないように思う。これが彼らのやり方なのだろう。日本だとしたら、大学の研究室での研究を企業が気長にバックアップして、特に利益を追求することなく良いものを作ろうとしただろうが、致命的なことに日本企業は閉鎖的なので、良いものを他社と作っていこうという流れが起きにくい。そのあたりを打破できると良いと私は考えている。


戻る前回次回
gomi@din.or.jp