このページの本文へ

行っとけ! Ubuntu道場! 第47回

~師範、使っているPCの中身を知りたいです!~

2011年08月18日 16時00分更新

文● hito(Ubuntu Japanese Team) イラスト●瀬尾浩史

  • この記事をはてなブックマークに追加
  • 本文印刷

ドライバはどうやって調べるの?

編集S:でだ。Windowsのデバイスマネージャだとドライバを読み込ませたりできるけど、あれができないのはなんで?

あわしろいくや:すでにLinuxカーネル本体に大部分が含まれているから必要ない、というのが答えですな。

ミズノ:言い換えると、Windowsだと追加でドライバ入れないといけないけど、Linuxではすでにドライバがありったけインストール済みだから、というのが基本的な答えですね。

瀬尾浩史:追加でインストールしないといけないこともあるけど、少なくとも「カーネルリリース時点で準備されているドライバ」はありったけ入っているペン。

さかもっちー:あとは、ドライバのあり方がいろいろと違うから、というのもありますね。

編集S:うぬ。そなの?

hito:えーと、世の中のハードウェアには基本的に、「デバイスID」というのが割り振られていますです。いわゆるPCIデバイスの場合は、っていう限定がついてますけど。

ミズノ:たとえばIntel製だと8086っていうベンダIDに加えて、枝番がくっついてる感じですね。で、これはハードウェアの種類ごとに別のものがついてます。

hito:で、ドライバは基本的には、このデバイスIDに応じてハードウェアを識別して動作しますです。このドライバはこのデバイスIDにマッチする、みたいな。Linuxだとdepmod -aで更新されるファイルにそんなのが書いてあるんですけども。

編集S:ほうほう。

ミズノ:Linuxの基本的な考え方は、「そーいうので自動的にドライバロードできるんだから、事前にOS側でデータベース準備して勝手にドライバ入れるよー」っていうやりかたです。

小林:Windowsだとそうではなくて、「ハードウェアベンダーがドライバ付けて売ってよ、OS側でやろうとするとパンクするから」というようなアプローチに見えますね。

hito:まあ、Linuxだとカーネルバージョンごとにドライバをリビルドする必要があるのに対して、Windowsだとバイナリドライバをとにかく添付しておけば、Windowsのカーネルバージョンとはあまり関係なくドライバをロードできることとか、そもそものエコシステムの大きさの差とかいろいろ周辺環境の差もありますね。

編集S:なんかよく分かんないんで、セオペン先生まとめてください。

瀬尾浩史:またムチャぶりペン!?

やまね:でもこの先生はムチャぶりに乗るんだこれが。

さかもっちー:外堀が……外堀がうめられていく……。

瀬尾浩史:くっ。「Linuxは本体にドライバ添付」「Windowsはハードウェアにドライバ添付」ってことだけ知っておけばきっと大丈夫なのペン。

さかもっちー:そのうち壁にぶつかるので、そこでここを読めばOK、と。

編集S:ふむー。そういえば、読み込まれてるドライバを一覧できるらしいけど。

さかもっちー:「lsmod」というコマンドを使ってください。

hito:まあ今時のOSだとどれでもそうなんですが、「あるデバイス用のドライバ」は複数のドライバから成り立ってるので、結構な数が出てくるハズです。

編集S:うむ、見る気がなくなった。

さかもっちー:そういう場合は、「lspci -v」とすると、それぞれのデバイスでロードされるドライバが見えますね。「Kernel driver in use: HDA Intel」と「Kernel modules: snd-hda-intel」がそれです。さっき出てきた「lshw」でも同じような情報を確認できます。

hito:後者がドライバファイルで、前者が「ドライバファイルに含まれるうち、どのデバイス向けのドライバで動作しているか」ぐらいの認識で。

編集S:ドライバファイルってどこかに格納されてるので?

さかもっちー:/lib/modules/`uname -r`/kernel/drivers/の下にある、「なんちゃら.ko」というファイルがそれですね。

hito:「modinfo (ドライバ名)」ってやると出てきますね。ここで出てくる「alias」っていうのが、さっきのデバイスIDなんですが、まあ知らなくても使えますし。

瀬尾浩史:深く知りたい時はこれで調べられるペン。

やまね:やろうと思えば調べられる、っていうのが重要かな。

さかもっちー:簡単にまとめると、まず「lspci -v」でデバイスとロードされているドライバを一覧して、ドライバが確定できたら「modinfo (ドライバ名)」ってやると、どのファイルを読んでいるのかが分かります、と。

ミズノ:油断してると、想定してるのと違うドライバで動作してたりするからねぇ……。

小林:ここまで把握できると、買ってきたPCでどんな部品が使われているのかが分かるようになりますね。

hito:まあ「見たことも聞いたこともないメーカー」がなくなるところまで修練すれば、というところかなぁ……。


カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン