本身的機子是聯想Y410p,以前安裝完arch系統一直不能播放聲音(桌面環境用的是i3-wm
),本身又不懂得設置,今天對電腦進行配置,順帶把聲音的問題解決了。php
ALSA參照arch官網,wiki傳送門linux
高級 Linux 聲音體系(Advanced Linux Sound Architecture,ALSA)是Linux中提供聲音設備驅動的內核組件,用來代替原來的開放聲音系統(Open Sound System,OSSv3)。除了聲音設備驅動,ALSA還包含一個用戶空間的函數庫,以方便開發者經過高級API使用驅動功能,而沒必要直接與內核驅動交互。
Arch 默認的內核已經經過一套模塊提供了 ALSA,沒必要特別安裝。
udev會在系統啓動時自動檢測硬件,並加載相應的聲音設備驅動模塊。這時,你的聲卡已經能夠工做了,只是全部聲道默認都被設置成靜音了。git
目前版本的 ALSA
安裝後,全部聲道默認是靜音的,必須手動解除。ide
使用 alsamixer
的 ncurses
界面,配置十分簡單:函數
$ alsamixer
此外,還能夠在命令行下使用 amixer:工具
$ amixer sset Master unmute
在 alsamixer 中,下方標有 MM 的聲道是靜音的,而標有 00 的通道已經啓用。
使用 ← 和 → 方向鍵,選中 Master 和 PCM 聲道。按下 m 鍵解除靜音。使用 ↑ 方向鍵增長音量,直到增益值爲0。該值顯示在左上方 Item: 字段後。太高的增益值會致使聲音失真。
要想獲得完整的 5.1 或 7.1 環繞立體聲,還得解除 Front、Surround、Center、LFE (subwoofer) 和 Side 這些聲道的靜音(上述名稱是 Intel HD Audio 聲卡使用的聲道名,可能因設備不一樣而有所差別)。注意,僅有這些設置,系統不會自動將立體聲源(多數音樂)提高(upmix)成環繞立體聲。若是須要這些功能,請閱讀#Upmixing/Downmixing。
要啓用麥克風,切換至 Capture 選項卡,按下 F4,按下 空格 啓用其中一個聲道便可。
按下 Esc 鍵退出 alsamixer。命令行
使用alsamixer設置以後仍是沒有聲音的,就使用第二種方法,出現error:code
amixer: Unable to find simple control 'Master',0
表示不能設置,或是找不到聲卡設備,我還覺得安裝完沒有聲卡驅動。開發
用命令獲取聲卡的聲卡ID和設備IDget
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: PCH [HDA Intel PCH], device 0: ALC282 Analog [ALC282 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: PCH [HDA Intel PCH], device 1: ALC282 Digital [ALC282 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0
聲卡信息應該是沒有問題的。
在amixer配置音頻
scontrols " show all mixer simple controls
$ amixer scontrols Simple mixer control 'IEC958',0 Simple mixer control 'IEC958',1 Simple mixer control 'IEC958',2
然而並無「Master」,這種狀況應該是默認聲卡不對。
-c,--card N " select the card
$ amixer -c 1 scontrols Simple mixer control 'Master',0 Simple mixer control 'Headphone',0 Simple mixer control 'Speaker',0 Simple mixer control 'PCM',0 Simple mixer control 'Mic',0 Simple mixer control 'Mic Boost',0 Simple mixer control 'IEC958',0 Simple mixer control 'IEC958 Default PCM',0 Simple mixer control 'Beep',0 Simple mixer control 'Capture',0 Simple mixer control 'Auto-Mute Mode',0 Simple mixer control 'Internal Mic Boost',0
問題就出如今默認聲卡不對,解決問題的辦法就是修改默認聲卡。
在剛纔 aplay -l
裏面選擇聲卡1,設備ID爲0的聲卡
把下列配置添加到系統級別的 /etc/asound.conf 或用戶級別的 ~/.asoundrc 文件。若是文件不存在,能夠手動建立。其中的各個ID,請根據實際狀況調整:
defaults.pcm.card 1 defaults.pcm.device 0 defaults.ctl.card 1
pcm
選項決定用來播放音頻的設備,而ctl
選項決定那個聲卡可以由控制工具(如 alsamixer)使用。
上述配置在重啓音頻程序(如 mplayer)後當即生效。
在i3-wm還要本身配聲音,我也是醉了,強大如gnome的都給配置好了。