Linux音訊系統分析(一)

2021-06-06 15:00:21 字數 2241 閱讀 1643

linux的音效卡驅動中alsa與oss的區別和簡單流程介紹

在音效卡的驅動中一種是oss(開放聲統音系,一種是alsa(先進linux聲音架構)。oss是乙個商業音效卡驅動程式,需要花錢購買。一般我們現在使用的是alsa的聲音架構。

advanced linux sound architecture 的簡稱為 alsa,譯成中文的意思是 linux 高階聲音體系,alsa不僅僅是包括對音效卡的支援和驅動;

它的特徵如下:

1、對所有音訊介面的高效支援,從普通使用者的音效卡到專業級別多路音訊裝置; 

2、音效卡驅動完全模組化設計; 

3、smp and thread-safe design. 

4、開發庫(alsa-lib) 為程式設計提供了簡單、方便,並且擁有有高階的效果和功能; 

5、支援舊版本的oss api 結口,能為大多數的oss應用程式提供相容;oss是乙個商業性的驅動,oss有乙個簡裝本的**已經移入核心和alsa,其中alsa-oss就是;oss公司據說目前已經並不存在了;我們沒有必要用oss 公司提供的商業版本;用alsa和oss簡裝版足夠;

如何檢視硬體晶元; 

linux作業系統中,所有的硬體都是以晶元組來區分的,品牌並不是最重要的;硬體最重要的標識是晶元組;所以您在討論區求助的時候,只說硬體品牌,而不提供晶元組,大家是幫助不了您的,切記; 

我們檢視硬體的晶元組是的命令是 lspci -v 或者是dmesg,由於dmesg輸出的資訊不太多,不夠直觀;所以經常用的還是lspci -v ;也可以用lshal 獲取;最方便的還是lspci -v;初學者還是用 lspci -v 更好一點; 

**: 

[root@localhost beinan]# lspci -v 

我們執行lspci -v 後,如果檢視音效卡晶元組,發會現有類似下面的一段; 

[root@localhost beinan]# lspci -v 

********** audio controller: intel corporation 82801db/dbl/dbm (ich4/ich4-l/ich4-m) 

ac'97 audio controller (rev 03) 

subsystem: hewlett-packard company: unknown device 3080 

2.6.11-1.1369_fc4 i686 i686 i386

上面的表示的是系統的核心版本,處理器架構等;

lsmod 檢視已經載入的核心模組; 

如果乙個裝置在核心的編譯中是以模組方式載入的,主要是通過lsmod 來檢視; 

[root@localhost beinan]# lsmod 

可能初學linux的弟兄會問,核心的module存放在**,我們能不能自己來手工載入模組;核心的模組放在 /lib/modules/核心的版本/kernel/ ,比如在fedora 4.0 中,我們可以看到如下的: 

[root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_fc4/kernel/ 

arch/  crypto/ drivers/ fs/   lib/   net/   sound/其中,sound 就是音效卡模組存放目錄,大多數的硬體驅動放在 drivers目錄,fs 是檔案系統模組的目錄;net是與網路有關的存放目錄,比如一些網路協議支援的模組、防火牆支援的模組等;arch 是cpu方面 ... ... 

如果我們想自己載入模組,就到這些目錄中檢視相應模組的資訊,然後用 modprobe 來載入; 

[root@localhost beinan]# modinfo snd-intel8x0 

檢視乙個模組的資訊,我們用 modinfo 來檢視,所要檢視的模組不要帶 .ko 或者.o 之類的;比如檢視到類似下面的資訊; 

description: intel 82801aa,82901ab,i810,i820,i830,i840,i845,mx440; sis 7012; ali 5455 

通過這個我們足可以知道這是intel 整合音效卡,通過lspci -v 得到的音效卡資訊,感覺他們很相近;所以就能嘗試用這個模組來驅動; 

[root@localhost beinan]# modprobe snd-intel8x0 

用 modprobe 載入了模組,然後我們通過 lsmod 就能看到了;對於音效卡模組是這麼載入的,其它裝置的驅動模組也是如此;

Linux輸入子系統分析一

輸入裝置分散不堪,用input子系統可以對分散的,不同類別的輸入裝置進行統一驅動。好處 1.統一了物理形態各異的輸入裝置相似的裝置處理,例如各種滑鼠,鍵盤,觸控螢幕。2.提供了用於分發輸入報告給使用者應用程式的簡單事件介面。你的驅動不必建立管理 dev節點以及相關的訪問方法。因此他能夠很方便的呼叫輸...

Linux作業系統分析

馮諾依曼體系結構如圖所示,其中運算器 儲存器 控制器 輸入裝置和輸出裝置5大基本型別部件組成了計算機硬體。計算機內部採用二進位制來表示指令和資料,將其存入儲存器中,然後啟動計算機工作,這就是儲存程式的基本含義。cpu從記憶體中不斷取下一條指令來執行,cpu負責解釋和執行這些指令,它們通過匯流排連線起...

推薦系統 分析

收集使用者資訊的行為記錄模組 分析使用者喜好的模型分析模組 推薦演算法模組 推薦演算法 1.基於內容的推薦系統 content based recommendation 2.協同過濾推薦系統 collaborative filtering recommendation 3.混合推薦系統 hybrid...