我用的是HASEE優雅HP530 D3本子,然後用VM6.5裝Fedora11,裝好後聲卡發聲不正常,用xmms播放Mp3時,發出的聲音根本不是音樂,而是“咚咚 。。。”的聲音,並且關了xmms後,也一直髮出這種聲音。另外,在網上找幾個視頻播放,也沒有聲音。原因是什麼,不清楚。於是搜索聲卡方面的資料,最後找到Linuxsir.org的北南文章《 用ALSA驅動聲卡流程詳解 》,按照這篇文章來做,也不清楚是怎樣做的,突然發現聲卡沒有發出聲音了,並且調節音量到最大,也沒有聲音。再在百度中搜索《速度與激情》在線觀看,點擊發現可以聽到聲音了,就這樣,這個聲卡不能發志或是發出“咚咚。。。”之類的聲音的問題,被我稀裏糊塗地給解決了。按照北南的文章,我做了以下幾步:
0.查看聲卡是不是已經能發聲了
[root@localhost ~]# cat /usr/share/sounds/pop.wav > /dev/audio
[root@localhost ~]# cat /usr/share/sounds/pop.wav > /dev/dsp
[root@localhost ~]#
什麼也沒有聽到,什麼也沒有看到
1.查看硬件芯片
[root@localhost beinan]# lspci -v
輸出結果爲:
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
Subsystem: VMware Inc Virtual Machine Chipset
Flags: bus master, medium devsel, latency 0
Kernel driver in use: agpgart-intel
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01) (prog-if 00 [Normal decode])
Flags: bus master, 66MHz, medium devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
Subsystem: VMware Inc Virtual Machine Chipset
Flags: bus master, medium devsel, latency 0
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 8a [Master SecP PriP])
Subsystem: VMware Inc Virtual Machine Chipset
Flags: bus master, medium devsel, latency 64
[virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
[virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
I/O ports at 1460 [size=16]
Kernel driver in use: ata_piix
00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (prog-if 00 [UHCI])
Subsystem: VMware Inc Virtual Machine Chipset
Flags: bus master, medium devsel, latency 64, IRQ 19
I/O ports at 1060 [size=32]
Kernel driver in use: uhci_hcd
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
Subsystem: VMware Inc Virtual Machine Chipset
Flags: medium devsel, IRQ 9
Kernel modules: i2c-piix4
00:0f.0 VGA compatible controller: VMware Inc Abstract SVGA II Adapter (prog-if 00 [VGA controller])
Subsystem: VMware Inc Abstract SVGA II Adapter
Flags: medium devsel
I/O ports at 1470 [size=16]
Memory at f0000000 (32-bit, non-prefetchable) [size=128M]
Memory at e8000000 (32-bit, non-prefetchable) [size=8M]
[virtual] Expansion ROM at 30010000 [disabled] [size=32K]
00:10.0 SCSI storage controller: BusLogic BT-946C (BA80C30) [MultiMaster 10] (rev 01)
Subsystem: BusLogic BT-946C (BA80C30) [MultiMaster 10]
Flags: medium devsel, IRQ 17
I/O ports at 1440 [size=32]
Memory at e8800000 (32-bit, non-prefetchable) [size=32]
[virtual] Expansion ROM at 30018000 [disabled] [size=16K]
Kernel modules: BusLogic
00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
Subsystem: Advanced Micro Devices [AMD] PCnet - Fast 79C971
Flags: bus master, medium devsel, latency 64, IRQ 18
I/O ports at 1080 [size=128]
[virtual] Expansion ROM at 30000000 [disabled] [size=64K]
Kernel driver in use: pcnet32
Kernel modules: pcnet32
00:12.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)
Subsystem: Ensoniq Creative Sound Blaster AudioPCI64V, AudioPCI128
Flags: bus master, medium devsel, latency 64, IRQ 19
I/O ports at 1400 [size=64]
Kernel driver in use: ENS1371
Kernel modules: snd-ens1371
2.系統內核版本
[root@localhost sounds]# uname -rmpi
2.6.29.4-167.fc11.i686.PAE i686 i686 i386
3.modeprob.conf的內容
沒有找到modeprob.conf這個文件,但是根據文章,找到名爲modules.conf的文件也可以。
modules.conf的內容如下:
# Added by VMware Tools
alias eth0 vmnics
probeall vmnics vmxnet pcnet32
alias char-major-14 es1371
看不懂是什麼意思,本人Linux菜鳥一隻。
4. lsmod查看已加載的內核模塊
[root@localhost sounds]# lsmod
Module Size Used by
fuse 49780 2
ipt_MASQUERADE 2364 1
iptable_nat 5152 1
nf_nat 14736 2 ipt_MASQUERADE,iptable_nat
sco 9324 2
bridge 41488 0
stp 1944 1 bridge
llc 4780 2 bridge,stp
bnep 10888 2
l2cap 18884 3 bnep
bluetooth 44768 5 sco,bnep,l2cap
sunrpc 152352 1
ip6t_REJECT 3160 2
nf_conntrack_ipv6 11368 2
ip6table_filter 3132 1
ip6_tables 10712 1 ip6table_filter
ipv6 232288 22 ip6t_REJECT,nf_conntrack_ipv6
dm_multipath 13512 0
uinput 6496 0
ppdev 6304 0
snd_ens1371 20196 4
gameport 9708 1 snd_ens1371
snd_rawmidi 18728 1 snd_ens1371
snd_seq_device 5988 1 snd_rawmidi
snd_ac97_codec 91576 1 snd_ens1371
ac97_bus 1400 1 snd_ac97_codec
snd_pcm 62632 2 snd_ens1371,snd_ac97_codec
snd_timer 17888 1 snd_pcm
snd 49056 14 snd_ens1371,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm,snd_timer
pcnet32 27968 0
parport_pc 22216 0
soundcore 5404 1 snd
parport 28496 2 ppdev,parport_pc
i2c_piix4 8480 0
snd_page_alloc 7644 1 snd_pcm
i2c_core 18056 1 i2c_piix4
mii 4028 1 pcnet32
pcspkr 2156 0
BusLogic 61836 3
什麼意思,也不清楚,照着文章做就是了。
再接着來,
[root@localhost sounds]# ls /lib/modules/2.6.29.4-167.fc11.i686.PAE/kernel/
arch crypto drivers fs lib net sound
下面的,就是比較關鍵的了,因爲我就是做了下面的,然後就突然發現聲卡可以發聲了的。
[root@localhost sounds]# modinfo snd-intel8x0
filename: /lib/modules/2.6.29.4-167.fc11.i686.PAE/kernel/sound/pci/snd-intel8x0.ko
license: GPL
description: Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455
author: Jaroslav Kysela <[email protected]>
srcversion: 76A91B3ED19728E89DFCF7D
alias: pci:v000010B9d00005455sv*sd*bc*sc*i*
alias: pci:v00001022d00007445sv*sd*bc*sc*i*
alias: pci:v00001022d0000746Dsv*sd*bc*sc*i*
alias: pci:v000010DEd0000026Bsv*sd*bc*sc*i*
alias: pci:v000010DEd000000EAsv*sd*bc*sc*i*
alias: pci:v000010DEd000000DAsv*sd*bc*sc*i*
alias: pci:v000010DEd0000008Asv*sd*bc*sc*i*
alias: pci:v000010DEd00000059sv*sd*bc*sc*i*
alias: pci:v000010DEd0000006Asv*sd*bc*sc*i*
alias: pci:v000010DEd0000003Asv*sd*bc*sc*i*
alias: pci:v000010DEd000001B1sv*sd*bc*sc*i*
alias: pci:v00001039d00007012sv*sd*bc*sc*i*
alias: pci:v00008086d00007195sv*sd*bc*sc*i*
alias: pci:v00008086d00002698sv*sd*bc*sc*i*
alias: pci:v00008086d000027DEsv*sd*bc*sc*i*
alias: pci:v00008086d0000266Esv*sd*bc*sc*i*
alias: pci:v00008086d000025A6sv*sd*bc*sc*i*
alias: pci:v00008086d000024D5sv*sd*bc*sc*i*
alias: pci:v00008086d000024C5sv*sd*bc*sc*i*
alias: pci:v00008086d00002485sv*sd*bc*sc*i*
alias: pci:v00008086d00002445sv*sd*bc*sc*i*
alias: pci:v00008086d00002425sv*sd*bc*sc*i*
alias: pci:v00008086d00002415sv*sd*bc*sc*i*
depends: snd-ac97-codec,snd-pcm,snd-page-alloc,snd
vermagic: 2.6.29.4-167.fc11.i686.PAE SMP mod_unload 686
parm: index:Index value for Intel i8x0 soundcard. (int)
parm: id:ID string for Intel i8x0 soundcard. (charp)
parm: ac97_clock:AC'97 codec clock (0 = whitelist + auto-detect, 1 = force autodetect). (int)
parm: ac97_quirk:AC'97 workaround for strange hardware. (charp)
parm: buggy_semaphore:Enable workaround for hardwares with problematic codec semaphores. (bool)
parm: buggy_irq:Enable workaround for buggy interrupts on some motherboards. (bool)
parm: xbox:Set to 1 for Xbox, if you have problems with the AC'97 codec detection. (bool)
parm: spdif_aclink:S/PDIF over AC-link. (int)
parm: enable:bool
parm: joystick:int
然後是
[root@localhost sounds]# modprobe snd-intel8x0
WARNING: All config files need .conf: /etc/modprobe.d/vmware-tools, it will be ignored in a future release.
操作到這一步,突然發現之前的“咚咚。。。”的聲音沒了,然後就找在線觀看,發現好久未聞的聲音,終於出來了。然後又試了一下Mp3,有聲音了,雖然比較卡,但總比之前沒有強。
這時,再來lsmod查看加載的內核模塊
[root@localhost sounds]# lsmod
Module Size Used by
snd_intel8x0 27440 0
fuse 49780 2
ipt_MASQUERADE 2364 1
iptable_nat 5152 1
nf_nat 14736 2 ipt_MASQUERADE,iptable_nat
sco 9324 2
bridge 41488 0
stp 1944 1 bridge
llc 4780 2 bridge,stp
bnep 10888 2
l2cap 18884 3 bnep
bluetooth 44768 5 sco,bnep,l2cap
sunrpc 152352 1
ip6t_REJECT 3160 2
nf_conntrack_ipv6 11368 2
ip6table_filter 3132 1
ip6_tables 10712 1 ip6table_filter
ipv6 232288 22 ip6t_REJECT,nf_conntrack_ipv6
dm_multipath 13512 0
uinput 6496 0
ppdev 6304 0
snd_ens1371 20196 4
gameport 9708 1 snd_ens1371
snd_rawmidi 18728 1 snd_ens1371
snd_seq_device 5988 1 snd_rawmidi
snd_ac97_codec 91576 2 snd_intel8x0,snd_ens1371
ac97_bus 1400 1 snd_ac97_codec
snd_pcm 62632 3 snd_intel8x0,snd_ens1371,snd_ac97_codec
snd_timer 17888 1 snd_pcm
snd 49056 15 snd_intel8x0,snd_ens1371,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm,snd_timer
pcnet32 27968 0
parport_pc 22216 0
soundcore 5404 1 snd
parport 28496 2 ppdev,parport_pc
i2c_piix4 8480 0
snd_page_alloc 7644 2 snd_intel8x0,snd_pcm
i2c_core 18056 1 i2c_piix4
mii 4028 1 pcnet32
pcspkr 2156 0
BusLogic 61836 3
發現比上次使用lsmod的結果多了一行(沒有認真地對比前後兩次的結果)如下:
snd_intel8x0 27440 0
我想,這行輸出的原因,可能就是通過modprobe snd-intel8x0這句把聲卡加載了的原因。
並且,再次運北南用來測試聲卡的語句,還是什麼也沒有聽到,什麼也沒有看到
[root@localhost ~]# cat /usr/share/sounds/pop.wav > /dev/audio
[root@localhost ~]# cat /usr/share/sounds/pop.wav > /dev/dsp
既然北面說命令是用來檢測聲卡是否發聲的語句,之前能時聲發不沒有聽到任何東西,現在能發聲了,也沒有聽到什麼,這是爲什麼,不清楚。