プリンターデバイス/dev/lp*を認識させるには - DELL DIMENSION XPS D300の場合-  DELL DIMENSION XPS D300にRedHat4.2をインストールしてプリンターを使おうと思った ら使えない。lprでファイルを印刷してlpqでentryを見ると「たぶんプリンターがオフラ インだ」などと言われる。もうちょっとまじめに調べてみると症状は以下の通り。  rootになって # cat test.txt > /dev/lp0 とやると bash: /dev/lp0: No such device or address と言われる(/dev/lp1,/dev/lp2でも同様)。  またdmesgで見てみると   lp: Driver configured but no interfaces found. と言われる。  rootになって # /sbin/modprobe lp でlpというmodule(で表現は正しいのかな?lpというdevice用のmodule?)を手で組み込 んでやってから # /sbin/lsmod としてloadable module一覧を見てみる,というチェックをしようとしたのだが, /sbin/modprobe lpをすると Initialization of lp failed と言われてしまった。ちなみにちゃんとloadされたら Module: #pages: Used by: lp 2 0 nfs 12 5 (autoclean) ne 2 1 (autoclean) 8390 2 [ne] 0 (autoclean) ipx 3 10 (autoclean) とlpも一覧に入っているはずなのだが。  つまりこれはプリンタポート(これはパラレルポートだ)というデバイスがちゃんとカ ーネルに認識されていないということですな。  対処法はLinux-users-MLで親切に教えて頂いた。それをまとめて報告したメールをつけ ておく。なお,moduleとしてカーネルに組み込まれるデバイスはデバイス一覧ファイル /proc/devicesやI/Oポート一覧ファイル/proc/ioportsには載らない。カーネルの再構築 のときに「m」でなくて「y」として静的にカーネルに組み込んでやると一覧に載るように なる。RedHatのdefaultではlpはmoduleとして組み込まれるので,その場合/proc/devices や/proc/ioportsの中味を見てデバイスが認識されているかを確認する手は使えない。 ***** ここよりLinux-users-MLに送ったまとめのメール **********  筧@神戸大です。いしおかさん,三輪さん,早間さんアドバイス誠にありがとう ございました。おかげさまで/dev/lp1が使えるようになりました!  以下に経過をまとめて報告いたします。 1.症状:プリンターデバイス/dev/lp0,/dev/lp1,/dev/lp2が全て使えない。 具体的には, # cat test.txt > /dev/lp0 とやると bash: /dev/lp0: No such device or address と言われる(/dev/lp1,/dev/lp2でも同様)。  またdmesgで見てみると   lp: Driver configured but no interfaces found. と言われる。 2.環境 OS: RedHat4.2/Windows95 (カーネルは2.0.30と2.0.33の両方を試しました) (RedHatではdefaultではlpはmoduleとして組み込まれます) 機種 DELL DIMENSION XPS D300 CPU: PentiumII 300MHZ memory: 256MB IDE HDD: 8GB 内臓IDE ZIPドライブ AWE64サウンドカード  + NE2000 compatible ISA LAN Card 3.対処法  BIOSの設定を見直す。具体的には,BIOS SETUPの画面の"Advanced"の "Peripheral Configuration"の"Parallel Port"のところが,元は Parallel port : [Auto] Mode : [Bi-directional] であったのを Parallel port : [Enabled] Mode : [Bi-directional] Base I/O address: [378] Interrupt : [IRQ 7] に変更する。  実際に変更したのは[Auto]→[Enabled]のところだけでI/O addressやInterruptは defaultのままです。ちなみにI/O addressの他の候補は278,3BC,228,Interrupt の他の候補はIRQ 5でした。 4.うまくいかなかった対処法  以下の方法は残念ながら今回の場合はうまくいきませんでしたが,私にとっては 非常に勉強になりました。重ねて感謝いたします。 (1)/etc/lilo.confに append="lp=0x378,7" という行を加えて強制的にパラレルポートを認識させる。 (2)使わないパラレル機能を外してカーネルを再構築する mであったPLIPをnにしてみましたがだめでした。 (3)modprobe lpを行う # modprobe lp とやると Initialization of lp failed とはっきりと言われてしまいました。 5.その他  BIOSの設定を見直すというのは Ishioka>BIOS の設定で LPT port の アドレスとかIRQ が設定できるか見て下さい. といしおかさんに真っ先に頂いたアドバイスだったのですが,設定をいじるのに私 が臆していたため後回しにしてしまいました。貴重な時間を割いていただいた皆さ ん誠に申し訳ありません。 Yoshiko>そうすると、一つ試してもいい手としては、loadable modules を無効に Yoshiko>してしまう、というのがあります。 というアドバイスも頂きましたが,PnP機能つきのサウンドカードをisapnptoolsを 使ってPnPを無効にして使っており,これはサウンドカードをmoduleとしてkernel に組み込むことを前提にしているため,この方法は試しませんでした。  早間さんの経験談は今後SCSIカードを使うときの参考にさせていただきたいと 存じます。サウンドカードを外すというのが避けれてよかった...。  皆さん本当にありがとうございました。