日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Linux中用ALSA驅(qū)動(dòng)聲卡流程詳解

 todaytomo 2006-12-30
一、什么是ALSA ;

Advanced Linux Sound Architecture 的簡稱為 ALSA ,譯成中文的意思是 Linux 高級(jí)聲音體系(這是我直譯的,可能譯的不對(duì));一談到體系就有點(diǎn)范圍就太大了,所以ALSA不僅僅是包括對(duì)聲卡的支持和驅(qū)動(dòng);

ALSA具有如下特征:

代碼:

1、對(duì)所有音頻接口的高效支持,從普通用戶的聲卡到專業(yè)級(jí)別多路音頻設(shè)備;

2、聲卡驅(qū)動(dòng)完全模塊化設(shè)計(jì);

3、SMP and thread-safe design.

4、開發(fā)庫(alsa-lib) 為程序設(shè)計(jì)提供了簡單、方便,并且擁有有高級(jí)的效果和功能;

5、支持舊版本的OSS API 結(jié)口,能為大多數(shù)的OSS應(yīng)用程序提供兼容;OSS是一個(gè)商業(yè)性的驅(qū)動(dòng),OSS有一個(gè)簡裝本的代碼已經(jīng)移入內(nèi)核和ALSA,其中alsa-oss就是; OSS公司據(jù)說目前已經(jīng)并不存在了;我們沒有必要用OSS 公司提供的商業(yè)版本;用ALSA和OSS簡裝版足夠;

二、關(guān)于硬件驅(qū)動(dòng)驅(qū)動(dòng)的必備基礎(chǔ) ;

1、如何查看硬件芯片;

在Linux操作系統(tǒng)中,所有的硬件都是以芯片組來區(qū)分的,品牌并不是最重要的;硬件最重要的標(biāo)識(shí)是芯片組;所以您在討論區(qū)求助的時(shí)候,只說硬件品牌,而不提供芯片組,大家是幫助不了您的,切記;

我們查看硬件的芯片組是的命令是 lspci -v 或者是dmesg,由于dmesg輸出的信息不太多,不夠直觀;所以經(jīng)常用的還是lspci -v ;也可以用lshal 獲??;最方便的還是lspci -v;初學(xué)者還是用 lspci -v 更好一點(diǎn);

代碼:
[root@localhost beinan]# lspci -v

我們運(yùn)行l(wèi)spci -v 后,如果查看聲卡芯片組,發(fā)會(huì)現(xiàn)有類似下面的一段;

代碼:
[root@localhost beinan]# lspci -v

Multimedia 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
Flags: bus master, medium devsel, latency 0, IRQ 5
I/O ports at 1c00 size=256
I/O ports at 18c0 size=64
Memory at e0100c00 (32-bit, non-prefetchable) size=512
Memory at e0100800 (32-bit, non-prefetchable) size=256
Capabilities: [50] Power Management version 2

2、系統(tǒng)內(nèi)核版本;

代碼:
[root@localhost beinan]# uname -r -m -p -i
2.6.11-1.1369_FC4 i686 i686 i386

上面的表示的是系統(tǒng)的內(nèi)核版本,處理器架構(gòu)等;

  提示:如果您自己編譯內(nèi)核,還要安裝kernel-devel (或 kernel-source), 這個(gè)是在系統(tǒng)光盤或者映像文件中有帶;如果您想自己用 kernel.org 下載內(nèi)核,自己編譯,然后再來驅(qū)動(dòng)聲卡,也可以到 kernel.org 上下載最新的內(nèi)核源碼;

  一般情況下,如果系統(tǒng)默認(rèn)的內(nèi)核不能驅(qū)動(dòng)聲卡,大多得更換內(nèi)核,我們建議您先從發(fā)行版所提供的升級(jí)包來升級(jí)內(nèi)核及源碼;比如Fedora 的擴(kuò)展項(xiàng)目軟件包更新速度極快,我們能通過apt和yum進(jìn)行kernel的升級(jí);在啟用新內(nèi)核時(shí),我們不建議您刪除老內(nèi)核;因?yàn)楝F(xiàn)在Fedora / Redhat 引入apt和yum 更新工具,系統(tǒng)的完整性極為重要;如果系統(tǒng)被破壞,用更新工具變得極為困難;

  比如Fedora 的apt和yum升級(jí)源升級(jí)的內(nèi)核也解決不了您的問題,我們可能需要自己通過 kernel.org 下載內(nèi)核來編譯;但也不能刪除以前的內(nèi)核包及源碼包;一是為了安全,畢竟我們自己編譯內(nèi)核不是百分之百的成功;另外系統(tǒng)自帶的內(nèi)核及源碼包被系統(tǒng)很多軟件 依賴;apt和yum 每次更新軟件包的時(shí)候都要檢查系統(tǒng)的完整性;

對(duì)于有些發(fā)行版,可以直接從從 kernel.org 下載最新的內(nèi)核;如果從系統(tǒng)提供的內(nèi)核源碼(kernel-devel或kernel-source)編譯,可能解決不了您的問題;

3、modprobe.conf的內(nèi)容;

  在Fedora Core 4.0 中,內(nèi)核模塊的添加或定義別名是在 /etc/modprobe.conf 文件;在其它版本可能是 modules.conf ;如果您的系統(tǒng)中存在modprobe.conf ,我們就以這個(gè)文件為準(zhǔn);不同發(fā)行版有不同的定義文件,比如 slackware 是定義在/etc/modules.conf 中,但也要在 /etc/rc.d/rc.modules 打開相關(guān)驅(qū)動(dòng)模塊;

  modprobe.conf 或者module.conf就是對(duì)系統(tǒng)已經(jīng)加載的模塊進(jìn)行相應(yīng)的配置,比如設(shè)置別名等;這些一般都是自通過工具自動(dòng)生成的,我們也可以通過查看硬件的文檔 和站點(diǎn),也可以自己添加。為什么這樣添加,而不是那樣的呢?我也不懂了,因?yàn)槿思椅臋n那樣說的,我不會(huì)開發(fā),如果懂的開發(fā)的,可能會(huì)明白;請(qǐng)理解理解我;

比如我用的是855的主板,系統(tǒng)驅(qū)動(dòng)用的是 snd-intel8x0,在/etc/modprobe.conf的配置是如下的內(nèi)容; 下面這段內(nèi)容是通過 alsaconf 配置工具自動(dòng)生成的;

代碼:
alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0

4、lsmod 查看已經(jīng)加載的內(nèi)核模塊;

如果一個(gè)設(shè)備在內(nèi)核的編譯中是以模塊方式加載的,主要是通過lsmod 來查看;

代碼:
[root@localhost beinan]# lsmod

可能初學(xué)Linux的弟兄會(huì)問,內(nèi)核的module存放在哪里,我們能不能自己來手工加載模塊;內(nèi)核的模塊放在 /lib/modules/內(nèi)核的版本/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 就是聲卡模塊存放目錄,大多數(shù)的硬件驅(qū)動(dòng)放在 drivers目錄,fs 是文件系統(tǒng)模塊的目錄;net是與網(wǎng)絡(luò)有關(guān)的存放目錄,比如一些網(wǎng)絡(luò)協(xié)議支持的模塊、防火墻支持的模塊等;arch 是cpu方面 ... ...

如果我們想自己加載模塊,就到這些目錄中查看相應(yīng)模塊的信息,然后用 modprobe 來加載;

代碼:
[root@localhost beinan]# modinfo snd-intel8x0

查看一個(gè)模塊的信息,我們用 modinfo 來查看,所要查看的模塊不要帶 .ko 或者.o 之類的;比如查看到類似下面的信息;

description: Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455

通過這個(gè)我們足可以知道這是Intel 集成聲卡,通過lspci -v 得到的聲卡信息,感覺他們很相近;所以就能嘗試用這個(gè)模塊來驅(qū)動(dòng);

代碼:
[root@localhost beinan]# modprobe snd-intel8x0

用 modprobe 加載了模塊,然后我們通過 lsmod 就能看到了;對(duì)于聲卡模塊是這么加載的,其它設(shè)備的驅(qū)動(dòng)模塊也是如此;

  <font color=red>注意:[/b][/size]這些只是教您一點(diǎn)基礎(chǔ)知識(shí),遇到什么問題,知道怎么去查看解決;如果您在論壇求助的時(shí)候,是必須 把 lsmod 輸入內(nèi)容以及 /etc/modprobe.conf 或 modules.conf 的內(nèi)容帖出來。這樣能節(jié)省很多時(shí)間,否則大家不會(huì)明白問題出在哪里;

三、針對(duì)自己系統(tǒng)的聲卡不發(fā)聲,我是否有必要來升級(jí)內(nèi)核解決;

可能存在這樣的情況,比如有時(shí)我在Mandriva Linux時(shí),聲卡是有聲音的,但安裝好Fedora 系統(tǒng)后卻沒有聲音了;所以我們有必要弄清楚如下的幾個(gè)問題;可能聲卡已經(jīng)驅(qū)動(dòng)起來了,只是我們不太了解系統(tǒng)的原因所致;下面我們以Fedora 為例;

1、聲卡是不是被系統(tǒng)識(shí)別支持了;

我們可以用Fedora 提供的配置工具 system-config-soundcard 來測試;

代碼:
[beinan@localhost ~]# system-config-soundcard

通過測試,如果能聽到聲音,證明聲卡已經(jīng)驅(qū)動(dòng)好了;如果聽不到聲音,但反應(yīng)在也不遲鈍,不是打開 system-config-soundcard ,按測試播放聲音時(shí)會(huì)出現(xiàn)假死的情況;可能是聲量沒有打開;

2、是否把聲卡的音量打開了,比如PCM 和MASTER等;

我們可以用下面幾個(gè)工具;

代碼:
[beinan@localhost ~]# gnome-volume-control
[beinan@localhost ~]# kmix
[beinan@localhost ~]# alsamixer
[beinan@localhost ~]# aumix

上面的四個(gè)工具,可以嘗試一下,有時(shí)這幾個(gè)工具存在BUG的事;所以我們還要引入一個(gè)工具 aumix ,目前已經(jīng)被Fedora 刪除了;我們自己安裝上就行了;

3、我的聲卡是測試時(shí)是有聲音的,但我為什么不能播放CD和聽mp3呢?

  自從Redhat 8.0以后,也就是說 Redhat 9.0 ,F(xiàn)edora 1.0,F(xiàn)edora 2.0,F(xiàn)edora 3.0 ,F(xiàn)edora 4.0的媒體播放軟件不再對(duì)mp3提供支持;究其原因是版權(quán)方面的原因;但這不是意味著我們不能在Fedora 系統(tǒng)中讓播放軟件支持 mp3;我們可以安裝mp3支持補(bǔ)丁或者下載全新的播放器;而這一切都離不開在線安裝工具 apt或yum ;

  至于CD為什么不能播放的問題,在論壇上已經(jīng)說過多次了;首先要保證CDROM的音頻線和主板相連接;有的弟兄會(huì)問,Windows為什么就 能直接播放,我也沒有把CDROM的音頻線接在主板上;我答復(fù)您的是:咱們得轉(zhuǎn)換觀念,咱們是在用Linux,而不是Windows;

4、查看聲卡是否有模塊沖突;

  比如Intel 主板集成了貓和聲卡、網(wǎng)卡等,這時(shí)可能貓的蜂鳴器會(huì)被系統(tǒng)識(shí)別為聲卡,所以要通過 lsmod 來查看,是否有 snd-intel8x0m;如果有則要處理一下;把在/lib/modules/內(nèi)核的版本/kernel/sound/pci 中或 /lib/modules/內(nèi)核的版本/kernel/drviers/sound/pci中的 snd-intel8x0m.ko改名為 snd-intel8x0m.koBAK ;

  還有類似的主板,比如 VIA 主板集成了聲卡和貓的, 如果聲卡不發(fā)聲,大多也與這有關(guān),比如內(nèi)核模塊有snd-via82xx.ko 和snd-via82xx-modem.ko,可能系統(tǒng)會(huì)把 snd-via82xx-modem.ko模塊當(dāng)成是聲卡的驅(qū)動(dòng)。如果您出現(xiàn)這樣的情況,也要改名;

5、通過 alsaconf 來配置聲卡;

  一般的情況下,系統(tǒng)在安裝的時(shí)候,會(huì)自動(dòng)把聲卡配好;如果能識(shí)別的,就基本沒有問題了;但如果出現(xiàn)識(shí)別了,但還是不發(fā)聲;或者識(shí)別成貓的蜂鳴 器;所以我們除了要把前面所說的貓的蜂鳴器模塊改名后,還要重新運(yùn)行一下聲卡配置工具 alsaconf ;可能我們還需要前面的一點(diǎn)知識(shí),比如 modprobe 、lsmod等;有必要的時(shí)候還要啟新啟動(dòng)機(jī)器;

如果我沒有alsaconf 這個(gè)命令怎么辦?

代碼:
[root@localhost beinan]# /usr/sbin/alsaconf

  比如在Fedora Core 4.0 中,可能您不能發(fā)現(xiàn)這個(gè)命令;您采取的辦法只能是重新編譯 alsa-utils ;但也要保守編譯;不能把a(bǔ)lsa相關(guān)的包全都刪除,只能是選擇對(duì)應(yīng)版本來編譯;現(xiàn)在的Fedora 通過yum和apt升級(jí),如果系統(tǒng)所依賴的包出被移除,比較重要的,alsa 就是其中的一個(gè);會(huì)導(dǎo)致一些程序不能用;因?yàn)橛邪姹緦?duì)應(yīng)關(guān)系;我們不能把系統(tǒng)整體的依賴關(guān)系打破;當(dāng)然無關(guān)緊要的,比如這個(gè)軟件包是依賴于其它包,而這個(gè) 包不為其它包提供依賴的包,這樣的包是可以移除的;

自己編譯alsa-utils 的辦法是:

首先,確認(rèn)系統(tǒng)alsa軟件包的版本;

代碼:
[root@localhost alsa]# rpm -qa |grep alsa
alsa-utils-1.0.9rf-2.FC4
alsa-lib-1.0.9rf-2.FC4
alsa-tools-1.0.9-1.fc4

  我們要到 alsa-project.org 中下載 1.0.9的源碼包;主要下載alsa-lib-1.0.9 和 alsa-utils-1.0.9a;不要卸載原來的RPM包;先安裝 alsa-lib-1.0.9,然后再安裝alsa-utils-1.0.9a ;編譯方法無非是 tar zxvf file.tar.gz 或者 tar jxvf file.tar.bz2 ,然后是進(jìn)入相應(yīng)的解壓目錄 ./configure;make;make install ;

當(dāng)然您要有安裝開發(fā)工具、開發(fā)庫等;如果不能進(jìn)行源碼包安裝alsa等,所以我們要補(bǔ)裝系統(tǒng)所缺少的軟件;請(qǐng)參考 《Fedora / Redhat 軟件包管理指南》

這樣我們就有 alsaconf 工具可用了;這樣編譯 alsa也不會(huì)對(duì)系統(tǒng)造成破壞;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
中場休息:我已經(jīng)精疲力盡,上面所提到的我都嘗試了,但還是不能驅(qū)動(dòng)聲卡;我該怎么辦?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

如果上面的的內(nèi)容您都明白了,那我得為您祝賀,說明您對(duì)硬件的驅(qū)動(dòng)方法已經(jīng)有所了解了;雖然聲卡的問題還是沒有解決,但您把基本的必備知識(shí)掌握,解決聲卡的發(fā)聲還不是什么難事;

您看到這里已經(jīng)是很疲憊,呵,我寫到這里也有點(diǎn)累;但為了初學(xué)者在Linux能聽到音樂,我還得接著努力,直到把您的問題解決為止;

四、安裝新版本的ALSA;

1、對(duì)ALSA軟件包的說明;

  通過上面的一系列工程,可能您發(fā)現(xiàn)還不能解決您的問題,這時(shí)我們有必要升級(jí)ALSA;至于是否升級(jí)內(nèi)核,我們還得等完成這步,看是否有必要; 比如在Fedora 4.0 中,我們通過 rpm -qa |grep alsa 查詢時(shí)會(huì)發(fā)現(xiàn)沒有 alsa-driver 這個(gè)包,這是怎么回事?

代碼:
[root@localhost alsa]# rpm -qa |grep alsa
alsa-utils-1.0.9rf-2.FC4
alsa-lib-1.0.9rf-2.FC4

現(xiàn)就ALSA 相關(guān)的軟件包做一說明(在alsa-project.org 上有列出);

alsa-lib 是alsa-driver 或者alsa其它包的時(shí)候,必須先安裝這個(gè)包;

  alsa-driver 是音頻設(shè)備的驅(qū)動(dòng);一般內(nèi)核都集成在里面,大多是以模塊的方式,安裝在了 /lib/modules/內(nèi)核的版本/kernel/sound 或 /lib/modules/內(nèi)核的版本/kernel/drviers/sound/ 中了;每個(gè)版本的內(nèi)核都是如此;這也是我們沒有在 Fedora Core 4.0 中沒有發(fā)現(xiàn) alsa-driver的原因 ;如果我們自己編譯升級(jí) alsa,其中 alsa-driver 也是被安裝在 /lib/modules/內(nèi)核的版本/kernel/sound 中或 /lib/modules/內(nèi)核的版本/kernel/drviers/sound 中 ;明白了吧;

alsa-utils 這個(gè)包主要是一些聲卡配置工具,比如 alsaconf 、 alsamixer等;

  alsa-oss 這個(gè)包和alsa-driver 一樣,也沒有以獨(dú)立的包出現(xiàn)在 Fedora Core 4.0 中,原因和alsa-driver 一樣,是集成在內(nèi)核了,這個(gè)包極有必要的;如果我們升級(jí)ALSA的話,有些聲卡用ALSA是驅(qū)動(dòng)不起來的,是必須用alsa-oss才行;alsa- oss 包括了oss驅(qū)動(dòng)庫;alsa-oss,我們自己安裝一般是默認(rèn)放在了 /usr目錄中;

alsa-tools 這個(gè)是額外的工具包,不是必須的;是針對(duì)一些特別的聲卡的工具或者解碼器之類,您可以根據(jù)自己的聲卡來安裝;不安裝也是可以的;

其它的包就不說了,到 alsa-project.org 上去看吧;比較重要的就是 alsa-lib 、alsa-driver、alsa-utils 、alsa-oss ;

2、ALSA的編譯安裝的前期準(zhǔn)備;

  編譯安裝ALSA,我們需要什么環(huán)境,就如同我們在Windows中打開一個(gè)file.doc文檔一樣,是需要先把Word安裝上一樣; Linux也是如此,我們必須先把軟件包編譯所需要的工具安裝上;另外還要安裝kerenel-devel或者其它一些支持的庫,如果您沒有安裝這些,編 譯無法進(jìn)行;這樣開發(fā)工具都在系統(tǒng)安裝盤中;如果您不知道如何安裝,對(duì)于Fedora /Redhat 請(qǐng)參見 《Fedora / Redhat 軟件包管理指南》

  您也要在線升級(jí)內(nèi)核及內(nèi)核的源碼包,以Fedora 4.0為例,必須保證kernel 和kernel-devel 包是同一個(gè)版本;可能您看到好多kernel的包,還有什么smp之類的;如果您只是單處理器的,就不要用smp的;看圖作業(yè)(點(diǎn)擊看大圖,升級(jí)內(nèi)核時(shí), 請(qǐng)選擇圖中標(biāo)記的顏色對(duì)應(yīng)的內(nèi)核和源碼升級(jí),也就是說版本要對(duì)應(yīng))

<img src="

重要:通過在線升級(jí)內(nèi)核可能會(huì)解決您的聲卡所存在的問題,要試著用前面所說的來嘗試解決;您還可以通在在線升級(jí)alsa-lib ;alsa-tools ;alsa-utils 等包;

如果通過在線升級(jí)內(nèi)核及alsa-lib;alsa-utils;alsa-tools 等能解決您的問題,請(qǐng)不必看以下的內(nèi)容;

  為什么說,通過在線長級(jí)內(nèi)核能解決呢?因?yàn)橥ㄟ^內(nèi)核的升級(jí),內(nèi)核包內(nèi)置的alsa-driver 可能也得到了升級(jí),如果打包的人升級(jí)了alsa-driver的話;如果是不能解決,說明alsa-driver 還是老版本;起重要作用的是alsa-driver ; 如果在線升級(jí)的過程中,alsa-lib沒有新版本,肯定新內(nèi)核中的alsa-driver 也沒有更新,因?yàn)樗麄兪桥涮椎?;明白了吧?

判斷是否有必要重編內(nèi)核:

代碼:
[root@localhost beinan]# modinfo soundcore
filename: /lib/modules/2.6.11-1.1369_FC4/kernel/soundBAK/soundcore.ko
description: Core sound module
author: Alan Cox
license: GPL
alias: char-major-14-*
vermagic: 2.6.11-1.1369_FC4 686 REGPARM 4KSTACKS gcc-4.0
depends:
srcversion: E11490DC3F523551C4C2A6D

如果出現(xiàn)上面類似的信息,則不必編譯內(nèi)核;

  誤區(qū)之一:看到論壇的好多弟兄,總認(rèn)為只要在線升級(jí)了alsa-lib 和alsa-utils 或 alsa-tools 就能解決聲卡不發(fā)聲的問題;其實(shí)不是這樣的;因?yàn)槠痍P(guān)健作用的是內(nèi)核,而內(nèi)核中的聲卡驅(qū)動(dòng)也是來自alsa-driver ;所以我們要嘗試升級(jí) alsa-driver 才能解決問題,只升級(jí)alsa-lib和alsa-utils 有何用?聲卡的驅(qū)動(dòng)并沒有更新;有時(shí)升級(jí)alsa-lib 和alsa-utils 或許也能讓聲卡發(fā)聲;只能說明是alsa-lib或alsa-utils存在了問題才導(dǎo)致聲卡不發(fā)聲;

  誤區(qū)之二:也有弟兄認(rèn)為驅(qū)動(dòng)聲卡是一定要重新從 kernel.org 下載內(nèi)核,然后自己編譯內(nèi)核來解決聲卡的問題;通過kernel.org 下載的內(nèi)核,是能解決您的問題;但kernel.org 的內(nèi)核集成聲卡驅(qū)動(dòng)也是來自于 alsa-project.org ;如果我們?yōu)榱私鉀Q聲卡驅(qū)動(dòng),沒有在嘗試用 alsa-driver 新版本的情況下,是沒有必要重新編譯內(nèi)核的;

  正確觀點(diǎn):只要內(nèi)核中的soundcore 是以模塊的形式編譯的,并且通過modinfo soundcore查看版本信息輸出,我們就沒有太大必要重編內(nèi)核;因?yàn)橄到y(tǒng)幾乎對(duì)所有的聲卡及設(shè)備都有編譯進(jìn)去;所以我們先不要重編內(nèi)核;除非做了升級(jí) alsa-driver后,還是不能解決問題,這時(shí)才能重編譯核;alsa-driver 是和內(nèi)核配置文件相關(guān)聯(lián)的;也就是說,alsa-driver 是根據(jù)內(nèi)核的配置文件來進(jìn)行判斷,對(duì)哪些聲卡應(yīng)該支持等;如果內(nèi)核的配置文件沒有配置對(duì)您的聲卡進(jìn)行支持;這時(shí)才需要我們來配置內(nèi)核;另外內(nèi)核中對(duì)聲卡的 支持的驅(qū)動(dòng)也是來自于 alsa-driver ;

3、嘗試編譯安裝ALSA ;

比如我下載了alsa 1.0.10rc1 版本,要下載配套的,比如 alsa-driver、alsa-lib、alsa-oss、alsa-utils 要下載同一系列的版本;我們先要安裝alsa-lib;然后再安裝其它的包;

  警告: 在編譯alsa所有包的時(shí)候,對(duì)于Fedora Core ,請(qǐng)不要卸載系統(tǒng)自帶的alsa-lib 及alsa-utils 等;這樣能欺騙系統(tǒng),說明系統(tǒng)完整的;alsa是基礎(chǔ)包之一,不是隨便可以卸載的,因?yàn)橛泻芏嗟陌蕾囘@幾個(gè)舊的包;比如xmms,如果您把a(bǔ)lsa- lib系統(tǒng)自帶的包卸掉了,xmms就不能用 alsa驅(qū)動(dòng),只能用oss驅(qū)動(dòng)了,除非您在升級(jí)alsa-lib后重新編譯xmms;另外最嚴(yán)重的后果,如果卸掉了這幾個(gè)包,會(huì)破壞系統(tǒng)整體的依賴關(guān) 系,yum和apt升級(jí)系統(tǒng)將無關(guān)正常運(yùn)行;

代碼:
[root@localhost alsa]# tar jxvf alsa-lib-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-lib-1.0.10rc1
[root@localhost alsa-lib-1.0.10rc1]# ./configure ;make ;make install

[root@localhost alsa]# tar jxvf alsa-utils-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-utils-1.0.10rc1
[root@localhost alsa-utils-1.0.10rc1]# ./configure ;make ;make install

[root@localhost alsa]# tar jxvf alsa-driver-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-driver-1.0.10rc1
[root@localhost alsa-driver-1.0.10rc1]# ./configure ;make ;make install

[root@localhost alsa]# tar zxvf alsa-oss-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-oss-1.0.10rc1
[root@localhost alsa-oss-1.0.10rc1]# ./configure ;make;make install

提示:其中alsa-driver 可以定義聲卡來編譯,這個(gè)對(duì)于老手還比較適用,如果您還不太會(huì)查看alsa的文檔的話,就直接用通用的./configure;make;make install 來安裝;這樣所有的聲卡都安裝進(jìn)去了;

4、嘗試通過用新的ALSA驅(qū)動(dòng)來配置聲卡 ;

在這個(gè)時(shí)候,我們才用到前面講的基礎(chǔ)知識(shí);呵。。。。。書到用時(shí)方恨少;不學(xué)習(xí)怎么也不行;

1)通過alsaconf 來配置聲卡;

我們要通過alsaconf 來配置,看能否找到聲卡;在運(yùn)行alsaconf的時(shí)候,對(duì)于FC4請(qǐng)修改/etc/modprobe.conf 對(duì)其它的版本按前面的說,可能是 /etc/modules.conf ,把所有關(guān)于聲卡的項(xiàng)目前面加#注掉,或者刪除;

在選行alsaconf時(shí),我們有必要運(yùn)行一下如下的兩個(gè)命令;目的是更新文件的索引數(shù)據(jù)庫;

代碼:
[root@localhost beinan]# rpm -rebuilddb 這個(gè)是針對(duì)RPM包的系統(tǒng)的;
[root@localhost beinan]# updatedb然后再來運(yùn)行alsaconf

代碼:
[root@localhost beinan]# /usr/sbin/alsaconf

我們用過alsaconf后,要查看 /etc/modprobe.conf 或/etc/modules.conf ;還要lsmod ,看聲卡模塊有沒有加載進(jìn)來。如果沒有加載進(jìn)來,我們還要會(huì)用 modprobe 加載模塊,前面有說,請(qǐng)回頭看看;

  如果運(yùn)行 alsaconf 后,配置文件 /etc/modprobe.conf 并沒有發(fā)生變化,沒有發(fā)現(xiàn)聲卡的配置內(nèi)容;您要到 alsa-project.org 上查看相應(yīng)的信息,只看關(guān)于 /etc/modprobe.conf 的內(nèi)容就行;比如他在上面說的是modules.conf 的,您可以直接寫到 modprobe.conf (如果是Fedora 的話),各個(gè)系統(tǒng)的配置文件都差不多,如果不是modprobe.conf就是modules.conf ;

請(qǐng)參見:ALSA 聲卡支持列表和文檔

請(qǐng)根據(jù)文檔所說的來加載模塊和配置 modprobe.conf或 modules.conf ;

2) 調(diào)節(jié)音量;

我們可能已經(jīng)把聲卡驅(qū)動(dòng)起來了,但沒有聲音,所要一定要打開音量;調(diào)節(jié)工具:kmix 、aumix 、alsamixer及system-config-soundcard等工具;

3)值得注意是的,如果您播放mp3時(shí),要注意以下系統(tǒng);

  自從Redhat 8.0以后,也就是說 Redhat 9.0 ,F(xiàn)edora 1.0,F(xiàn)edora 2.0,F(xiàn)edora 3.0 ,F(xiàn)edora 4.0的媒體播放軟件不再對(duì)mp3提供支持;究其原因是版權(quán)方面的原因;但這不是意味著我們不能在Fedora 系統(tǒng)中讓播放軟件支持 mp3;我們可以安裝mp3支持補(bǔ)丁或者下載全新的播放器;而這一切都離不開在線安裝工具 apt或yum ;

提示:測試。。。。能成功嗎? 不成功接著看下面。。。。。。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
下半場:前半場下來,您還是不能解決聲卡,只能用最后一招;重新編譯內(nèi)核~
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

五、重新編譯內(nèi)核;

1、為什么要編譯內(nèi)核?

因?yàn)槟穆暱]有被當(dāng)前所用的內(nèi)核版本配置進(jìn)去,所以我們要新編譯內(nèi)核;

2、我不會(huì)編內(nèi)核怎么辦?;

  可能新手弟兄會(huì)說,我不會(huì)編內(nèi)核怎么辦?答曰:不會(huì)編內(nèi)核,就得學(xué)習(xí),誰也不是天生就會(huì)的;學(xué)習(xí)改變命運(yùn),不是嗎?其實(shí)編譯內(nèi)核目前看來是極 為簡單的事,只是我們第一次接觸到Linux,太習(xí)慣Windows的點(diǎn)鼠標(biāo),不太習(xí)慣Linux的命令行操作罷了。只要努力,沒有什么做不成的;你看北 南這水平都會(huì)寫教程 。呵。。。坐在電腦前大俠如果認(rèn)為北南寫的這篇文章或許對(duì)你有所幫助的話,那您也能行;加油~~~~

3、內(nèi)核的選擇;

  一般的情況下選擇發(fā)行版所提供的內(nèi)核升級(jí)包及源碼包要好;您可以通過 apt+synaptic 來選擇裝,但不要把老內(nèi)核刪除,系統(tǒng)的完整性是很重要的;一般的情況下如果通過新內(nèi)核的在線升級(jí)能解決問題的,我們也沒有必要編譯了;我們前面已經(jīng)說過 了;如果不能用新的內(nèi)核來驅(qū)動(dòng),我們可以在新的內(nèi)核的基礎(chǔ)上進(jìn)行編譯,當(dāng)然我們必須要下載kernel-devel 或者 kernel-source 包;

為什么要選擇系統(tǒng)提供的內(nèi)核及源碼升級(jí)包呢?

一是主要是為了方便,對(duì)于大多數(shù)的選項(xiàng),我們按默認(rèn)就好了,我們只是針對(duì)比較重要的地方改一改;比如對(duì)于Fedora Core 4.0 ,目前在線升級(jí)源有很多版本可下載使用;我們要把同一版本的內(nèi)核包及源碼包都要安裝;

二是如果我們用新編的內(nèi)核啟動(dòng)不了系統(tǒng),可以用老內(nèi)核來引導(dǎo),這是為了系統(tǒng)的安全。對(duì)新手和老手都是適用的;

當(dāng)然您也能從 kernel.org 上下載最新最穩(wěn)定的內(nèi)核;目前最新版本是 2.6.13 ;kernel.org 下載的內(nèi)核包含的聲卡驅(qū)動(dòng)也是來自 alsa-driver ;

4、編譯內(nèi)核參考文檔;

《編譯內(nèi)核操作流程 ──為新手指南》

  根據(jù)《編譯內(nèi)核操作流程 ──為新手指南》 中所說的,有針對(duì)性的來解決問題;編譯好內(nèi)核后,用alsaconf 來配置聲卡;或者重新編譯 alsa-lib 、alsa-oss、alsa-utils 等;經(jīng)過我的測試,一般的情況下重新編譯過內(nèi)核后,用 alsaconf 配置一下就能用了;

后記:

  至此,關(guān)于聲卡的問題就算解決流程就算完工了;如果您認(rèn)為我的這篇文檔寫的還不夠詳細(xì),或者不能解決您的問題;問題無非是兩種,一是您的聲卡 沒有被ALSA所支持,請(qǐng)查相應(yīng)的列表;二是如果ALSA已經(jīng)支持了您的聲卡,您看了我的文檔還是不能解決您的問題(看與不看只是一個(gè)假設(shè),就看我的文檔 值不值得您一看了);

對(duì)于第二種情況無非又是有兩種原因,一是北南寫的文檔不行,您看不懂;二是您可能是真的初學(xué)者,可能需要更多的嘗試和努力;

如果還是解決不了,或行您靜下心仔細(xì)看一下本文檔所提到的流程,或許能找到一點(diǎn)對(duì)您有所啟示的內(nèi)容;最好是... ...

再解決不了怎么辦呢,如果您和北南在同一個(gè)城市的話,把機(jī)器抱到我這里,我感覺差不多能解決吧;哈哈。。。。。。。。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多