Red Hat 7.2 (內核 2.4.7-10) 預設不支援 VIA KT266 晶片組上的 VT8233 AC97 板載聲卡,導致無聲音。本文記錄從核心源碼準備、移除衝突模組、編譯安裝 ALSA 0.9.0beta10 驅動的完整實戰流程,適用於 EPoX 8KHA+ 等 KT266 主機板,RH 7.1 同樣適用。
| 項目 | 規格 |
|---|---|
| 主機板 | EPoX 8KHA+ (VIA KT266 晶片組) |
| 音訊晶片 | VT8233 南橋整合 AC97 Codec |
| 作業系統 | Red Hat Linux 7.2 (內核 2.4.7-10) |
| 桌面環境 | GNOME |
| 驅動版本 | ALSA 0.9.0beta10 (alsa-driver-0.9.0beta10.tar.bz2) |
| 核心源碼 | kernel-source-2.4.7-10 (第 2 張安裝光碟) |
autorun → 開啟 GnoRPM。Development/System/ 目錄,安裝 kernel-source-2.4.7-10 (預設不勾選)。/usr/src,將 linux-2.4.7-10 重命名為 linux:cd /usr/src mv linux-2.4.7-10 linux ls -l /usr/src/linux # 確認符號連結正確
原因:ALSA 編譯腳本預期在 /usr/src/linux 找到與執行中內核完全一致的源碼樹。
# 查看已載入模組 lsmod | grep -E 'sound|ac97|via' # 移除 soundcore 核心模組 (會連帶卸載 sound、ac97_codec 等) modprobe -r soundcore # 若提示模組正在使用,先關閉所有音訊應用,或加入啟動腳本於下次重啟自動移除
# 解壓 (bz2 格式) bzip2 -dc alsa-driver-0.9.0beta10.tar.bz2 | tar xvf - cd alsa-driver-0.9.0beta10 # 配置 (自動偵測 VIA8233/AC97) ./configure --with-cards=via82xx --with-sequencer=yes --with-oss=yes # 編譯 make # 安裝 (需 root) make install # 更新模組相依關係 depmod -a
# 載入核心模組 modprobe snd-via82xx modprobe snd-pcm-oss # OSS 相容層 modprobe snd-mixer-oss modprobe snd-seq-oss # 驗證載入 lsmod | grep snd # 測試播放 (需音訊檔) aplay /usr/share/sounds/startup.wav
編輯 /etc/modules.conf (或 /etc/modprobe.conf),加入:
alias char-major-116 snd alias snd-card-0 snd-via82xx options snd-via82xx index=0 alias sound-slot-0 snd-via82xx alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss
| 現象 | 可能原因 | 解決方案 |
|---|---|---|
| 編譯錯誤:缺少 linux/version.h | 核心源碼未安裝或路徑錯誤 | 確認 /usr/src/linux/include/linux/version.h 存在 |
| modprobe 失敗:Unknown symbol | 核心源碼版本與執行中內核不符 | 重新安裝精確匹配的 kernel-source RPM |
| 有聲音但雜音/靜電音 | AC97 Codec 偏移量錯誤 | 嘗試 options snd-via82xx dxs_support=1 或升級 ALSA 1.0+ |
| KDE/GNOME 音量控制無效 | 未載入 OSS 相容層 | 確認 snd-pcm-oss, snd-mixer-oss 已載入 |
VT8233 AC97 在 RH 7.2 上的啟用關鍵在於:精確匹配的核心源碼 + 移除衝突模組 + ALSA 0.9+ 完整編譯安裝 + OSS 相容層載入。完成上述步驟並配置 modules.conf 後,重啟即可擁有完整音訊功能,包含混音器、MIDI 接續、OSS 應用相容。