什麼是ALSA 

ALSA是Advanced Linux Sound Architecture,高級Linux聲音架構的簡稱,它在Linux作業系統上提供了音訊和MIDI(Musical Instrument Digital Interface,音樂設備數位化介面)的支援。在2.6系列內核中,ALSA已經成為預設的聲音子系統,用來替換2.4系列內核中的OSS(Open Sound System,開放聲音系統)。  ALSA的主要特性包括:高效地支援從消費類入門級音效卡到專業級音訊裝置所有類型的音訊介面,完全模組化的設計, 支援對稱多處理(SMP)和執行緒安全,對OSS的向後相容,以及提供了使用者空間的alsa-lib庫來簡化應用程式的開發。

 

Gentoo上的ALSA
從歷史上來說,Gentoo提供了兩種方法可以使ALSA運行在您的系統上:內核自帶的驅動和外部的alsa-driver套裝軟體。這兩種方案基本上完成的是同一項任務;這使得提供對外部套裝軟體的支援異常困難和耗時。Gentoo維護者決定不再繼續對alsa-driver套裝軟體進行支援,而是將他們的資源集中在Linux內核中的ALSA驅動部分。這份指南將只集仲介紹如何通過在內核自帶的驅動來配置ALSA。  Jaroslav Kysela過去是這個專案的領導者,這個專案開始于為1998年Gravis Ultrasound所開發的驅動,它一直作為一個單獨的套裝軟體開發,直到2002年他被引進入 linux內核的開發版本 (2.5.4-2.5.5)1。從2.6 版本開始ALSA成為Linux內核中預設的標準音頻驅動程式集,OSS則被標記為廢棄。  ALSA是一個完全開放原始碼的音訊驅動程式集,除了像OSS那樣提供了一組內核驅動程式模組之外,ALSA還專門為簡化應用程式的編寫提供了相應的函式程式庫,與OSS提供的基於ioctl的原始程式設計介面相比,ALSA函式程式庫使用起來要更加方便一些。利用該函式程式庫,開發人員可以方便快捷的開發出自己的應用程式,細節則留給函式程式庫內部處理。當然 ALSA也提供了類似于OSS的系統介面,不過ALSA的開發者建議應用程式開發者使用音訊函式程式庫而不是驅動程式的API。  Linux中ALSA的主要檔:  include/sound/driver.h  sound/core/*.c




  注:OSS(Open Sound System)是Linux中的另外一個音訊驅動程式框架。




來自百度百科:HTTP://baike.baidu.com/view/1558228.htm




上面是對於linux音訊系統概念的解釋。總的來說,Alsa在整個linux系統中還是比較複雜和重要的。需要花很多的時間去學習和實踐。




寫文的目的主要還是將學習成果記錄下來。




文章內容可以分為三部分:




1, ASoc Linux 平臺部分

 

2, 音訊晶片驅動部分

 

3, AudioInterface 或者說所 Audio HAL 部分
arrow
arrow

    戮克 發表在 痞客邦 留言(0) 人氣()