CMI9880のalsaによる認識

Intel High Definition Audio ICH6 CMI9880をLinuxに認識させたかったのだけれど、 5月7月 のインストール時にはうまく認識させられなかった。

時空番長さんのレポート によれば公式にはサポートされていないけれどもALSAでうまくいったとのこと。でも、5月時点ではうちの環境ではその方法では認識されなかった。

結局、 LinuxQuestions.orgUnixBoard.de によればKernel 2.6.12以降でDevice-Drivers --> Sound --> Advanced Linux Sound Architecture --> PCI devicesのIntel HD Audioを有効に設定してカーネルを構築し、ALSAも1.0.9以降が必要らしい。

Debian sargeだと、sidやetchからいくつかパッケージを借りて来ることになる。

  • linux-source-2.6.12をaptで入れる。
  • /usr/src/linux-soure-2.6.12.tar.bz2 ができるので、展開
  • /usr/src/linux-soure-2.6.12 にて、

    • make menuconfig で適宜設定
    • fakeroot make-kpkg --init-rd --append-to-version '-SOMETHING-UNIQUE' kernel-image
  • dpkg -i /usr/src/kernel-image-2.6.12-SOMETHING-UNIQUE_10.00.Custom_i386.deb

  • ブートローダーの設定を確認したらreboot

なお、うちの環境の場合、kernel-2.6.12では pci=nosort を付けないとカーネルパニックを起こした。それと、initrdを使わないとrootファイルシステムのマウント中にカーネルパニックが起きた。これは何かモジュールが足りてないんだと思うけれども、使ってるハードディスクもファイルシステムも(*)にしてあるし、良く分からなかったのでとりあえずinitrdの形で運用した。

次にALSA関係を入れる。alsa-utilsとalsaplayerとその依存物を入れた。alsa-utilsを1.0.9以上にしようとすると依存関係でlibc6がetchのものになるけれども、まあ、いいとしよう。

これで、alsaconfして設定すれば完了。