LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 青铜镜

LFS Tips

[复制链接]
发表于 2009-8-22 17:06:14 | 显示全部楼层

镜兄的文章一律都加精!!!ALSA困扰偶已久,今终茅塞顿开,先去尝试下 Very Good!

Post by 青铜镜;1764793
Tips04

[color="Red"]故障现象:
    LFS/BLFS系统收工后却没有声音,不能听音乐、看大片。

[color="red"]分析问题:
    我们在安装Windows系统完成以后,往往需要安装一些硬件驱动,比如我们现在所说的声卡驱动。在Windows系统安装声卡驱动是件比较简单的事情。只要找到声卡驱动程序,点击SETUP.EXE文件,一路点击“下一步”便可顺利完成。如果不出什么差错的话,你的机器便可以听到美妙的音乐了。可是,在Linux里面安装声卡驱动却并不是太简单。当然啦,只要你折腾过以后,了解、掌握了其中的方法,你一定也不会觉得太难D。[color="Red"]就当是第一次结婚,没有经验啦!
    根据青铜镜的经验,在LFS系统里面要让声卡发出美妙的声音,并不是件太难的事。道理是一样的,需要给声卡加装驱动和支持的库文件,但做法不同,就象是黑土大叔所说的炖法和炒法的区别一样。在Windows系统里面装驱动是很简单的:硬件驱动和运行在驱动上为应用程序提供支持的库文件,一下子全给你装上就是了。在LFS里面装声卡驱动,得分两步走:
    1、编译内核,从内核中加载声卡驱动:在做LFS快收工时,需要给系统编译内核。这时,你得了解你的主板芯片组的南桥芯片和声卡芯片是什么型号的,在编译内核时,把相关的驱动选项编译到内核中。这一步,也就是给声卡硬件加载了底层驱动。
    2、安装ALSA-Library包,给声卡装上应用程序所需要的库文件:有了底层的驱动,还得有支持的库文件才能让运行在系统上面的应用程序正确调用硬件来完成我们的任务。我们在后来安装的ALSA-Library就是给声卡硬件装上库文件。这样,我们在应用程序才能够通过API去正确驱动硬件,让声卡发出美妙的声音。

[color="red"]解决方法:
    [color="red"]理论:
1、了解自己的硬件设备:主板南桥芯片和声卡芯片
2、在编译内核时找到相对应的硬件驱动并编译进内核中
3、安装ALSA Library包
4、打开声卡的音量试听声音
    实践:
1、青铜镜的硬件设备是:主板南桥芯片是VT8237;声卡芯片是CMI9761

2、在LFS快收工时,编译内核时注意把ALSA的相关选项选上:
Sound  --->  声卡驱动
└─→<*> Sound card support
Advanced Linux Sound Architecture
<*>  Advanced Linux Sound Architecture
<*>  Sequencer support
<*>  Sequencer dummy client
<*>  OSS Mixer API
<*>  OSS PCM (digital audio) API
[* ]  OSS Sequencer API
<*>  RTC Timer support
[  ]  Verbose printk
[  ]  Debug
Generic devices  --->
< > Dummy (/dev/null) soundcard  这个选项千万不要选为*,否则,任你怎么折腾都是白忙!
< > Virtual MIDI soundcard
< > MOTU MidiTimePiece AV multiport MIDI
< >  UART16550 serial MIDI driver
<M>  Generic MPU-401 UART driver
PCI devices  ---> 下面是声卡驱动,仔细看看里面的驱动,有没有自己用的声卡。选上与自己声卡型号相配的驱动,其他的都可以去掉。
< >  ALi M5451 PCI Audio Controller
< >  ATI IXP AC97 Controller
< >  ATI IXP Modem
< >  Aureal Advantage
< >  Aureal Vortex
< >  Aureal Vortex 2
< >  Bt87x Audio Capture
< >  Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x
< >  Cirrus Logic (Sound Fusion) CS4281
< >  Emu10k1 (SB Live!, Audigy, E-mu APS)
< >  Emu10k1X (Dell OEM Version)
< >  SB Audigy LS / Live 24bit
< >  Korg 1212 IO
< >  Digigram miXart
< >  NeoMagic NM256AV/ZX
< >  RME Digi32, 32/8, 32 PRO
< >  RME Digi96, 96/8, 96/8 PRO
< >  RME Digi9652 (Hammerfall)
< >  RME Hammerfall DSP Audio
< >  Trident 4D-Wave DX/NX; SiS 7018
< >  Yamaha YMF724/740/744/754
< >  Avance Logic ALS4000
[color="red"]<*>  C-Media 8738, 8338  青铜镜所选与声卡芯片相近似的选项
< >  (Creative) Ensoniq AudioPCI 1370
< >  (Creative) Ensoniq AudioPCI 1371/1373
< >  ESS ES1938/1946/1969 (Solo-1)
< >  ESS ES1968/1978 (Maestro-1/2/2E)
< >  ESS Allegro/Maestro3
< >  ForteMedia FM801
< >  ICEnsemble ICE1712 (Envy24)
< >  ICE/VT1724/1720 (Envy24HT/PT)
< >  Intel/SiS/nVidia/AMD/ALi AC97 Controller
< >  S3 SonicVibes
[color="red"]<*>  VIA 82C686A/B, 8233/8235 AC97 Controller 青铜镜所选与南桥芯片相近似的选项
< >  VIA 82C686A/B, 8233 based Modems
< >  Digigram VX222
< >  Intel HD Audio
USB devices  --->
< >  USB Audio/MIDI driver
< >  Tascam US-122, US-224 and US-428 USB driver
Open Sound System  ---> 如果你选上了前面的ALSA,这里的选项会自动全部去掉。当然,你也可将它做为模块加载。不过,相比之下,Open Sound System比不上ALSA优秀。
< >  Open Sound System (DEPRECATED)
< >  BT878 audio dma (NEW)
< >  C-Media PCI (CMI8338/8738) (NEW)
< >  Creative SBLive! (EMU10K1) (NEW)
< >  Crystal SoundFusion (CS4280/461x) (NEW)
< >  Crystal Sound CS4281 (NEW)
< >  Ensoniq AudioPCI (ES1370) (NEW)
< >  Creative Ensoniq AudioPCI 97 (ES1371) (NEW)
< >  ESS Technology Solo1 (NEW)
< >  ESS Maestro, Maestro2, Maestro2E driver (NEW)
< >  Intel ICH (i8xx) audio support (NEW)
< >  S3 SonicVibes (NEW)
< >  Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core (NEW)
< >  Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (NEW)
< >  Support for Turtle Beach MultiSound Pinnacle, Fiji (NEW)
< >  VIA 82C686 Audio Codec (NEW)
< >  OSS sound modules (NEW)
< >  TV card (bt848) mixer support (NEW)
< >  ALi5455 audio support (NEW)
< >  ForteMedia FM801 driver (NEW)
< >  RME Hammerfall (RME96XX) support (NEW)
< >  AD1980 front/back switch plugin (NEW)
编译内核的方法,可以到LFS部落中的群共享里面,看青铜镜的《灌水大贴》
或是到下面的链接去看看:
http://www.linuxfans.org/bbs/thread-136364-1-1.html

3、安装ALSA
参见青铜镜的水贴《大话LFS/BLFS》中关于安装ALSA的相关部分。
http://www.linuxsir.cn/bbs/showthread.php?t=303865&page=2
3.1
alsa-lib-1.0.13
3.2
alsa-plugins-1.0.13
3.3
alsa-utils-1.0.13
3.4
alsa-tools-1.0.13
3.5
alsa-oss-1.0.12

4、打开声卡的音量开关测试声卡
     在console里面输入下面的命令:
     alsamixer

青铜镜按:
青铜镜的硬件设备是:主板南桥芯片是VT8237;声卡芯片是CMI9761。但是,在内核声卡选项中没有找到相对应的选项。只好选上VIA 82C686A/B, 8233/8235 AC97 Controller和C-Media 8738,8338这两个选项。道理很简单,没有鸡,拿鸡蛋顶替。其实,如果不选上,那么安装ALSA library是没有用处的,声卡也是不能正常驱动起来的。青铜镜试验过,用1600K的打印机驱动程序,可以正常驱动1600K、1600K2、1600K3、1600K3+、1600K4、1600K3H等型号的机器,甚至是其他不同品牌的针式打印机。受这个事例启迪,青铜镜在内核里面没有找到VT8237和CMI9761的相关选项,但是有相近的选项,于是就在内核选项里面选上了VIA 82C686A/B, 8233/8235 AC97 Controller和C-Media 8738,ALSA library装好后,青铜镜的声卡就可以听到美妙动人的声音了。
总结经验:如果你在内核中没有找到与你南桥芯片和声卡相匹配的内核选项,可以参照上面的做法,看看有没有近似型号的选项,选上它试试!




[color="Red"]哈哈哈,LFS也能看A片,笑死了......


镜兄的文章一律都加精!!!ALSA困扰偶已久,今终茅塞顿开,先去尝试下 Very Good!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表