前に
ノートパソコンに Solaris を入れたことを書きましたがその時にバグで動かなかったのはオーディオデバイスでした。
SigmaTel
High Definition
Audio CODEC
これバグレポートを見ると
パッチがあるようなのに入っていないのはなんとも残念…このお休みに OpenSolaris をビルドしてなんとか動かしてやろうなんて思っていましたが今日やっと時間ができたので OpenSolaris のビルドに挑戦してみました。(といっても全部ビルドしたわけではありません)
日本語の情報だと
OpenSolaris Project: 日本ポータルからでしょうか。
あとは
と下っていって今ノートパソコンに入っているのはビルド62なので、
から
README
にしたがって以下をダウンロード、展開してビルドしました。
- on-src-b62.tar.bz2
- SUNWonbld-b62.i386.tar.bz2
- on-closed-bins-nd-b62.i386.tar.bz2
ビルド方法などは README に書いてある通りですが…自分のやった方法が正しかったのかどうかちょっと疑問です。
# nightly ./opensolaris.sh
を走らせてからこれは全部ビルドしたら時間がかかると思ったので一度止めて audiohd だけビルドしてみました。
バ
グレポートから
パッチを
持ってきて以下の二つのファイルにパッチを当てて
- /export/testws/usr/src/uts/common/sys/audio/impl/audiohd_impl.h
- /export/testws/usr/src/uts/common/io/audio/sada/drv/audiohd/audiohd.c
以下のディレクトリに移動し dmake all しました。
/export/testws/usr/src/uts/intel/audiohd
/etc/driver_aliases には、
audiohd "pci8086,27d8"
を追加しました。
最初は /export/testws/proto/root_i386/
に置かれたモジュールを何も考えないで入れ替えてみたのですが、デバッグモジュールのようで以下のようなエラーが出てしまいます。デバッグモジュールではないものを使う必要があるようです。
... genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
... genunix: [ID 826211 kern.notice] 'audio_tb_pos'
... genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
... genunix: [ID 826211 kern.notice] 'audio_tb_seq'
... genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
... genunix: [ID 826211 kern.notice] 'audio_tb_siz'
... genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
... genunix: [ID 826211 kern.notice] 'audio_tb_lock'
... genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
... genunix: [ID 826211 kern.notice] 'audio_trace_buffer'
... genunix: [ID 472681 kern.notice] WARNING: mod_load: cannot load module 'audiohd'
デバッグ版ではなく以下からモジュールを持ってくることにしました。
/export/testws/usr/src/uts/intel/audiohd/obj32
すると見事に動き出しました。やった〜
# dmesg | grep audio
... audiosup: [ID 792263 kern.info] NOTICE: audiohd0: codec info: vid=0x83847661, sid=0x00000000, rev=0x00104201
... pcplusmp: [ID 803547 kern.info] pcplusmp: pci8086,27d8 (audiohd) instance 0 vector 0x15 ioapic 0x1 intin 0x15 is bound to cpu 0
... npe: [ID 236367 kern.info] PCI Express-device: pci104d,81e6@1b, audiohd0
... genunix: [ID 936769 kern.info] audiohd0 is /pci@0,0/pci104d,81e6@1b
#