这是我在几台不同的计算机上发现的奇怪的事情。
当我打开控制台会话时,每次滚动(例如在寻呼机中)时,每经过一行都会发出微弱的咔嗒声。如果我继续滚动,它会变得更加明显。将笔记本电脑的扬声器静音没有效果。
这是设计使然,还是有些奇怪的怪癖?
答案1
这很可能是来自 CPU 电源走线的干扰。
我特别注意到,当 CPU 调节器根据负载改变时钟速度时,这种情况会特别明显。您听到的嗡嗡声实际上是调节器改变 CPU 速度的频率。
我记得有一台旧笔记本电脑,声音不仅在电话中可以听到,实际上还表现为主板发出的嗡嗡声。有一段时间,可以通过禁用 SpeedStep 并始终以全速运行 CPU 来抑制它,但最终它几乎一直处于恒定状态,我不得不更换主板,因为担心会失去理智。
这些天我注意到当 CPU 负载动态变化时,我的手机会产生干扰 - 特别是在加载游戏时(处理资源时 CPU 活动突然增加,然后等待缓冲区从磁盘填充时暂停)。当耳机插入台式机的前面板而不是后面板时,这种情况更明显,这强化了它是电干扰的想法;前面板的走线可能更靠近 CPU。我将手机插入后置插座,似乎屏蔽效果更好。
您可能会发现,通过启用“扩频“BIOS 中的控制 - 这些控制可调整内部系统时钟的时序,使方边波不那么刺耳,并旨在产生更少的干扰。如文章所述,超频系统中通常会禁用扩频以帮助防止时钟偏差,但这些功能通常默认启用。不过,您可能不会在笔记本电脑 BIOS 上找到这些设置。
我用来解决这个问题的另一种方法是降低放大器音量。alsamixer
终端应用程序在这里很有用,可以找到所有相关音量,其中一些可以隐藏在 GUI 混音器中。将它们全部从红色区域移出到大约 80% 意味着初始干扰被放大得更少,变得听不见。这也让我在 Windows 笔记本电脑上听音乐变得可以忍受——将主音量降低到大约 30%,而不是 Wave 音量,干扰就会消失。这还可以减少某些硬件上的削波。
答案2
不确定,因为默认情况下应该关闭内置扬声器,但如果这是系统内置扬声器发出的声音,则可以使用多种方法将其关闭。
和
xset b off xset b 0 0 0
xset
是user preference utility for X
。该b
选项控制铃声音量(第一个 0)、音调(第二个 0)和持续时间(第三个 0),以毫秒为单位。您也可以通过编辑
~/.inputrc
(单个用户)或/etc/inputrc
(全局)来更改此设置set bell-style visible
将其更改为闪烁
set bell-style none
关闭系统蜂鸣声。
您还可以将模块列入黑名单
sudo vi /etc/modprobe.d/blacklist.conf
并添加
blacklist pcspkr
在我的系统上,数字 3 已设置为默认值,因此我希望您的系统上也是如此。这似乎也是关闭系统扬声器的默认方法。
答案3
我在一些较旧的台式电脑上遇到过类似的问题,据我所知,这与设备设置为共享 IRQ 但实际上无法很好地协同运行有关。
考虑到每次我在系统承受任何非平凡负载时滚动滚轮时,其中一个系统都会发出咔嗒声,它们可能是同一件事。(当我在各种电脑上遇到这种情况时,问题往往是某种形式的“键盘/鼠标输入导致音频输出咔嗒声”)
就我而言,修复该问题非常简单,只需在 BIOS 中切换“即插即用操作系统”设置即可。这会改变哪些 IRQ 分配由 BIOS 完成,哪些 IRQ 分配由 Linux 完成,进而改变 IRQ 分配,足以解决冲突。