当前位置:Linux教程 - Linux - Linux硬件通—声卡

Linux硬件通—声卡

  一些Linux用户经常询问这样的问题:Linux能兼容XXX卡么?其实,Linux是一个开放性的系统,只要通过Linux爱好者们的努力,Linux可以兼容任何硬件。

  先来说说声卡。首先要知道声卡的类型,或者是某种声卡兼容的。如果内核不能把这种声卡检测出来,那么就需要安装这种声卡的驱动模块,来安装声卡。

  例如,市面上常见的声卡Creative Vibra 128使用的驱动模块是es1371,Creative PCI 128使用的模块是es1370等等。

  redhatlinux中用sndconfig来设置声卡,如果没有某个模块,就需要重新编译内核(编译最新发布的linux内核),如果还不行,只好用ALSA 音效驱动程式。

  ALSA 音效驱动程式原本是写来取代 Gravis UltraSound 卡的Linux核心驱动程式的。当实证这取代得很成功,它和OSS/Free 及OSS/Linux音效驱动程式相容(核心的驱动程式),但它有比OSS驱动程式更好的本身介面。

  ALSA音效驱动程式可在http://www.alsa-project.org/找到。到发稿时最新版本为0.5.9d ALSA 音效驱动程式是建为模组的。下面是ALSA支持的声卡类型。

  ALSA Supported SoundCards

  Advanced Linux Sound Architecture - Supported SoundCards

  ==========================================================

  ID: SoundCard chipset/type

  SC: SoundCard name

  IF: Supported interfaces (MIXER,PCM,SYNTH,SYNTH_MIDI,SEQ,OPL,MIDI,EMUL,HWDEP)

  MA: Maintainer

  CO: Coder

  This file is maintained by Jaroslav Kysela .

  Note: OPL -> Raw (native) OPL

  Note: MIDI -> external MIDI port

  Note: EMUL -> MIDI emulation

  Note: SYNTH -> yeah, well ?

  Note: SYNTH_MIDI -> internal synth that handles MIDI data

  Note: SEQ -> kernel client for ALSA sequencer

  Note: HWDEP -> various hardware-dependent interfaces/devices

  =====

  ID: AMD InterWave

  SC: Gravis UltraSound Plug & Play

  SC: Dynasonic 3-D

  SC: STB Sound Rage 32

  SC: UltraSound 32-Pro (STB)

  SC: MED3210

  IF: MIXER,PCM,MIDI,SYNTH

  MA: Jaroslav Kysela

  ID: Gravis UltraSound MAX

  IF: MIXER,PCM,MIDI,SYNTH

  MA: Jaroslav Kysela

  ID: Gravis UltraSound Extreme

  IF: MIXER,PCM,MIDI,SYNTH

  MA: Jaroslav Kysela

  ID: Gravis UltraSound Classic/ACE

  IF: MIXER,PCM,SYNTH

  MA: Jaroslav Kysela

  ID: ESS AudioDrive ESx688

  IF: MIXER,PCM,MIDI(1688)

  MA: Jaroslav Kysela

  ID: SoundBlaster 1.0/2.0/Pro

  IF: MIXER (Pro only),PCM,MIDI

  CO: Jaroslav Kysela

  MA: Chris Butler

  ID: SoundBlaster 16/AWE

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  ID: Yamaha OPL3-SA2/SA3

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  ID: OAK Mozart

  IF: MIXER,PCM

  CO: Jaroslav Kysela

  MA: ???

  ID: S3 SonicVibes PCI

  SC: Schubert 32 PCI (PINE)

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  ID: Ensoniq AudioPCI (ES1370,ES1371)

  SC: SoundBlaster PCI 64

  SC: SoundBlaster PCI 128

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  ID: Cirrus Logic / Crystal Semiconductors CS4232/CS4232A

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  ID: Cirrus Logic / Crystal Semiconductors CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239

  SC: Turtle Beach Malibu

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  ID: Cirrus Logic / Crystal Semiconductors CS4610/CS4612/CS4615/CS4280

  IF: MIXER,PCM

  MA: Jaroslav Kysela

  ID: ESS Solo-1 ES1938

  IF: MIXER,PCM

  MA: Jaromir Koutek

  ID: ESS ES18XX

  IF: MIXER,PCM,MIDI

  MA: Abramo Bagnara

  ID: OPTi 82C9xx

  SC: Audio 16 Pro EPC-SOUN9301 (82C930 based)

  SC: ExpertColor MED-3931 v2.0 (82C931 based)

  SC: ExpertMedia Sound 16 MED-1600 (82C928 based - AD1848)

  SC: Mozart S601206-G (OTI601 based - CS4231)

  SC: Sound Player S-928 (82C928 based - AD1848)

  IF: MIXER,PCM,OPL,MIDI

  MA: Massimo Piccioni

  ID: Trident 4DWave DX/NX

  SC: Best Union Miss Melody 4DWave PCI

  SC: HIS 4DWave PCI

  SC: Warpspeed ONSpeed 4DWave PCI

  SC: AzTech PCI 64-Q3D

  SC: Addonics SV 750

  SC: CHIC True Sound 4Dwave

  SC: Shark Predator4D-PCI

  SC: Jaton SonicWave 4D

  SC: Hoontech SoundTrack Digital 4DWave NX

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  ID: ForteMedia FM801

  SC: DT-0398

  IF: MIXER,PCM,MIDI

  MA: [email protected]

  ID: SGI Indy (HAL2)

  IF: PCM

  MA: Ulf Carlsson

  ID: Turtle Beach WaveFront

  SC: Tropez Plus (Tropez+)

  SC: Tropez

  SC: Maui (models with CS4232; others use OPTi 16 which is not handled)

  IF: MIXER,PCM,MIDI,OPL,SYNTH_MIDI,HWDEP

  CO: [email protected]

  MA: [email protected]

  ID: C-Media CMI8330

  IF: MIXER,PCM

  MA: George Talusan

  ID: C-Media CMI8338/8738

  IF: MIXER,PCM,MIDI

  MA: Takashi Iwai

  ID: Avance Logic ALS100/ALS120

  IF: MIXER,PCM,MIDI

  MA: Massimo Piccioni

  ID: Diamond Technologies DT-0197H

  IF: MIXER,PCM,MIDI

  MA: Massimo Piccioni

  ID: Aztech Sound Galaxy

  IF: MIXER,PCM,MIDI

  MA: Christopher Butler

  ID: MOTU MidiTimePiece AV multiport MIDI interface

  IF: MIDI

  MA: Michael T。Mayers

  ID: EMU10K1

  SC: Sound Blaster Live!

  SC: Sound Blaster PCI 512

  SC: E-mu APS

  IF: MIXER,PCM,MIDI,SYNTH_MIDI

  MA: Jaroslav Kysela

  ID: RME Digi9652 (Hammerfall, Hammerfall light)

  IF: PCM

  MA: Paul Barton-Davis

  ID: Intel i810/i820/i830/i840/MX440

  IF: MIXER,PCM

  MA: Jaroslav Kysela

  ID: ESS Maestro 1/2/2E

  IF: MIXER,PCM

  MA: Matze Braun

  ID: VIA 82C686A (South Bridge)

  IF: MIXER,PCM,MIDI

  MA: Jaroslav Kysela

  请注意如果您想使用 ALSA 驱动程式, 那么您不应该先载入任何其它音效驱动程式。如果您的核心中内含音效驱动程式, 那么有必要重编译核心。如果您正在使用旧的 sound.o 模组, 您必须解除它。如果您使用 kerneld, 这可能就是要您删去 /lib/modules/<核心版本>/misc 目录下的 sound.o。新的 RedHat 系统的音效驱动程式组织方式不太一样, 要载入好几个模组, 这种情况您需要解除全部的模组。

  2.2 版核心对音效则采用了新的方式。您应该要包含音效的支援! 是的, 没有说错, 您在核心中加入了对音效的支援, 但没有包含任何音效卡的部份。然後重编译及安装核心, 接著编译 ALSA驱动程式。

  编译 ALSA驱动程式的步骤:

  tar zxvf alsa-driver-0.3.5.9d.tar.gz

  tar zxvf alsa-lib-0.3.5.9d.tar.gz

  tar zxvf alsa-utils-0.3.5.9d.tar.gz

  cd alsa-driver-0.3.5.9d

  ./configure

  make

  make install

  cd ../alas-lib-0.3.5.9d

  ./configure

  make

  make install

  cd ../alas-utils-0.3.5.9d

  ./configure

  make

  make install

  驱动程式目录下有个命令稿(script)可以把 ALSA 的音效设备档安装进 /dev 目录。

  在驱动程式目录下打入./snddevices

  有两种使用 ALSA 音效模组的方法:

  A.用 modprobe 安插驱动程式

  如果您有 PnP 音效卡, 您首先要设定正确的(或至少是已知的) IO/IRQ/DMA.

  举两个例子:

  Gravis UltraSound (GUS) 及相容卡:

  /sbin/modprobe snd-gusclassic

  对完全 16 位元的 SoundBlaster 卡 (SoundBlaster 16 (PnP), SoundBlaster AWE 32 (PnP), Sound BlasterAWE 64 (PnP):

  /sbin/modprobe snd-sb16

  B.使用 kerneld 来载入

  kerneld 是个在需要时插入模组, 并在不再使用时卸除它们的服务程式(daemon).

  编辑 /etc/conf.modules

  执行 modprobe snd-card, 其中 snd-card 是您的音效卡名称。

  这是 Gravis UltraSound PnP 音效卡的 /etc/conf.modules:

  alias char-major-14 snd

  alias snd-minor-oss-0 snd-interwave

  alias snd-minor-oss-3 snd-pcm1-oss

  alias snd-minor-oss-4 snd-pcm1-oss

  alias snd-minor-oss-5 snd-pcm1-oss

  alias snd-minor-oss-12 snd-pcm1-oss

  alias snd-card-0 snd-interwave

  options snd snd_major=14 snd_cards_limit=1

  options snd-interwave snd_index=1 snd_id=""guspnp"" snd_port=0x220 snd_irq=5

  snd_dma1=5 snd_dma2=6