Ubuntu下创新笔记本外置pcmcia声卡的自动切换

前几日淘了块创新的Audigy2 ZS Notebook声卡,声卡的驱动还算不错,只要内核中开启pcmcia声卡支持为加上emu10k1的模块就好了。但之后设置的问题也来了,目标非常简单,希望声卡插进、拔出的时候,alsa的设置能相应自动变化。

我们可以利用udev来帮我们实现这个目标。

我们需要两个脚本和两个内容略为不同的asound.conf。

先看看两个声卡是啥名字:

代码:

ls -l /proc/asound/

我的机子上是:

代码:

lrwxrwxrwx 1 root root 5 2009-03-16 17:27 Audigy2 -> card2

dr-xr-xr-x 9 root root 0 2009-03-16 17:27 card0

dr-xr-xr-x 5 root root 0 2009-03-16 17:27 card1

dr-xr-xr-x 8 root root 0 2009-03-16 17:27 card2

-r--r--r-- 1 root root 0 2009-03-16 17:27 cards

-r--r--r-- 1 root root 0 2009-03-16 17:27 devices

-r--r--r-- 1 root root 0 2009-03-16 17:27 hwdep

lrwxrwxrwx 1 root root 5 2009-03-16 17:27 I82801DBICH4 -> card0

lrwxrwxrwx 1 root root 5 2009-03-16 17:27 Modem -> card1

dr-xr-xr-x 2 root root 0 2009-03-16 17:27 oss

-r--r--r-- 1 root root 0 2009-03-16 17:27 pcm

dr-xr-xr-x 2 root root 0 2009-03-16 17:27 seq

-r--r--r-- 1 root root 0 2009-03-16 17:27 timers

-r--r--r-- 1 root root 0 2009-03-16 17:27 version

其中板载声卡是 I82801DBICH4,外置的pcmcia声卡是Audigy2。要把名字记下,待会我们需要它们。

接下来要写两个asound.conf来指定外置声卡插拔情况下的alsa设置。先

代码:

mkdir /etc/alsa

cp /etc/asound.conf   /etc/alsa/asound.ac97

mv /etc/asound.conf  /etc/alsa/asound.audigy2

,asound.ac97是没有插外置声卡时用的,asound.audigy2就是外置声卡插上时用的。

然后在asound.ac97中加入:

代码:

# onboard

pcm.ac97 {

type plug

slave.pcm "dmix"

}

ctl.ac97 {

type hw

card I82801DBICH4

}

pcm.!default pcm.ac97

ctl.!default ctl.ac97

在asound.audigy2中加入

代码:

# pcmcia

pcm.audigy2hw {

type hw

card Audigy2

}

pcm.audigy2 {

type plug

slave.pcm "audigy2hw"

}

ctl.audigy2 {

type hw

card Audigy2

}

# onboard

pcm.ac97 {

type plug

slave.pcm "dmix"

}

ctl.ac97 {

type hw

card I82801DBICH4

}

pcm.!default pcm.audigy2

ctl.!default ctl.audigy2

要注意的是,xxx.ac97中声卡名是我板载声卡的名字,xxx.audigy2则是我外置声卡的名字,你需要替换成你自己的声卡。

这样在不同情况下,我们只要 ln -sf /etc/alsa/asound.xxx /etc/asound.conf就OK了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/28663.html