netcap
(netcap)
#1
我装好系统后有两个音频设备,其中一个是显卡自带的 HDMI 输出。另外一块是创新的独立声卡。
我首先用 cat /proc/asound/modules 得到的结果是:
0 snd_hda_intel
1 snd_hda_intel
两个的名字是一样的,这样 的话使用 echo “blacklist snd_hda_intel” >> /etc/modprobe.d/50-blacklist.conf 就会把他全部屏蔽掉 。
使用 lspci 显示的的是这样
01:00.1 Audio device: NVIDIA Corporation GF110 High Definition Audio Controller (rev a1)
03:00.0 Audio device: Creative Labs Device 0012 (rev 01)
我试过吧 NVIDIA Corporation GF110 High Definition Audio Controller 这个填进去没用
请问这种情况要如何屏蔽其中一块设备呢?
Rikku
(Rikku)
#2
这个… 我的建议是不理会它, 台式机的话看看 bios 可以禁用不?
lsmod
这个命令是列出当前已经装载的内核模块。这里面你的声卡模块也是一样的吗?
1赞
netcap
(netcap)
#5
感谢 LS 帮助
lsmod 输出这样的:
snd_hda_codec_ca0132 40230 1
snd_hda_intel 48171 4
snd_hda_codec 205080 2 snd_hda_codec_ca0132,snd_hda_intel
snd_hwdep 13602 1 snd_hda_codec
snd_pcm 110211 2 snd_hda_intel,snd_hda_codec
x86_pkg_temp_thermal 14162 0
snd_seq 69752 0
snd_timer 29423 2 snd_pcm,snd_seq
snd_seq_device 14497 1 snd_seq
nvidia 10417418 29
intel_powerclamp 14705 0
coretemp 13435 0
kvm_intel 142707 0
kvm 469295 1 kvm_intel
snd 87417 16 snd_hda_codec_ca0132,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_seq,snd_timer,snd_seq_device
本来还有个 snd_hda_codec_hdmi , 我把它 blacklist 了,重启动后那个 nv 的 hdmi 声卡还在,接下来我就不知道该屏蔽哪个模块了。。。
limon
(limon)
#6
lspci
开头有设备 slot 号,你的应该是 01:00.1
在 /sys 里找到对应的文件夹,比如
find /sys/devices -name *01:00.1
文件夹里有个 remove 文件,往里面写入非 0 值就能从内核列表里删掉这个 pci 设备,重启会恢复。
可以把
echo 1 > /sys/devices/pci0000:00/0000:01:00.1/remove
这样的命令写到 /etc/init.d/boot.local 里面。
参考: kernel.org/doc/Documentation/filesystems/sysfs-pci.txt
1赞
snd_hda_codec_ca0132 对应到你的创新声卡吧, snd_hda_intel 应该是 snd_hda_codec_ca0132 的依赖,snd_hda_codec_ca0132 后面第 3 列就是它依赖的模块的个数,第 4 列是依赖模块的详情,你这里没有列出来。
我看了我的台式机,是集成 realtek 声卡的,不过也有一个 snd_hda_intel 的。
我认为你已经把你显卡自带的声卡屏蔽了呀,snd_hda_codec_hdmi 就是这个吧,你是如何判断你的 nv 的 hdmi 声卡还在的?是还能发出声音?
netcap
(netcap)
#8
右下角的音量图标里还是有两个声卡 可以选 ,一个 creative hda , 一个 nvidia xxxx hdmi ,yast 的音频设置里面那个 nvidia 也还在
你试试 @limon 的方法呢,我感觉他的思路更对些。
netcap
(netcap)
#11
非常感谢 @bruce.oy 和 @limon 的帮助,因为内核文档那篇看得不太懂,结合下面那篇文章就明白了·~~
谢谢~