CentOS 5 で認識されないハードウェアを使うとき ELRepo がべんり

CentOS 5 (RHEL5) のサードウェアレポジトリとしては EPEL や RPMForge が有名だと思いますが,ハードウェアドライバ(カーネルモジュール)に特化した ELRepo というのもあります。

歴史は浅いんですが,RPMForge のドライバモジュールが DKMS ベースなのに対して ELRepo のドライバは KMP ベースなので*1,OS のメジャーバージョンアップをおこなわない限り素直にアップデートに追随できます。

提供されているドライバの一覧は ELRepo : Packages を参照してください。

実例 1: D945GCLF2 遣いは kmod-r8168 でハッピー

Intel Atom 330 を搭載した Mini-ITX マザーである D945GCLF2 にはギガビットネットワークインタフェースとして Realtek RTL8168B という NIC を搭載しています。が,こいつが CentOS ではうまくハンドリングできませんでした*2

そのへんの事情は AdditionalResources/HardwareList/RealTekRTL8111b - CentOS Wiki にくわしいのですが,対処するには Realtek からドライバソースをダウンロードして自力でビルドしたり RPMForge の DKMS r8168 モジュールをインストールする必要がありました。

でも今では,ELRepo に KMP ベースの r8168 ドライバが登録されているので,ここからインストールするだけです。

実例 2: NEC Express 5800/110Gd 遣いは kmod-it87 等でハッピー

NEC Express 5800/110Gd にはセンサモジュールとして ITE 8718F というチップが搭載されているのですが,これは CentOS 5 ベースの it87 カーネルモジュールではサポートされていませんでした。

わたしは自作の RPM モジュールを作って対処していた(IT8716F / IT8718F 用 it87-kmod for el5 をリリースしました - daily dayflower)のですが,今では ELRepo により新しい kmod-it87 が登録されているので,これを使っています。

しかも Core2 系のセンサを読み取る kmod-coretemp もパッケージとしてある*3ので,あわせて入れています。


ELRepo をレポジトリとして追加するともともと enable=0 となっているので,enable=1 とするか,

$ sudo yum --disablerepo=base --disablerepo=updates \
           --enablerepo=elrepo \
           install kmod-it87 kmod-coretemp lm_sensors

のように,--disablerepo--enablerepo を駆使していれてみてください。

(センサ系のカーネルモジュール kmod-it87 や kmod-coretemp を使う際には,ELRepo で提供されている lm_sensors パッケージもあわせてインストールする必要があります)


昔は CentOS を入れたときには RPMForge 系レポジトリを追加していたのですが,いまでは EPEL*4 と(必要に応じて ELRepo と)あとは自前レポジトリを追加するだけにしています。EPEL にないパッケージは単体で拾ってきていれるか,自前パッケージを作成するかですね。

*1:違いについては RHEL 5 と KMP (Kernel Module Package) - daily dayflower で書きました。

*2:一応,RHEL 5.2 〜 5.3 あたりから標準ドライバで一部統計データを除きうまく動くのですが……わたしの環境だけかもしれません。

*3:こいつも CentOS 5 の標準モジュールでは認識されない

*4:出自からして仕方ないんですが,CentOS の extra レポジトリと重複することが多いような……どちらを優先すればいいんだろ