可以*你*只使用Linux内核驱动程序吹一个PC扬声器?

2021-06-19 02:44:04

我们不经常在裸体安全上进行编程呼吁,特别是当我们正在寻找的代码是危险和破坏性的。

但是这次我们准备出现异常,因为这是我们所处的下午下午的一个下雨,而且这个问题现在连续十五年。

我们的注意力由来自众所周知的Google Cyber​​security研究员Tavis Ormandy的推文吸引了问题,他今天发布说:

传说继续,这个问题已连续15年发布! 👻https://t.co/nktngoopoy.

只有一个例外我知道(2008年7月出现的电子邮件),同一个人已在6月份的某个时候通过电子邮件发送了Linux内核邮件列表(LKML),自2007年以来,询问同样的问题

每年连续15年,包括2021年,神秘的R.F.烧伤(是的,我们认为这也是一个双关语)我也想知道:

来自:" r.f。烧伤" to:[email protected] 主题:PC扬声器 日期:星期一,14六月2021 23:32:32 -0400 是否有可能编写内核模块, 加载时,会吹电脑扬声器吗?

尽管每年有很多乐于助人,但不太有用的答案,但神秘的质询仍然似乎没有想到如何完成这项工作。

在提问的第一次说明的舌头交易所解释了潜在的网络字体主义的原因如下:

我正在帮助一个有许多Linux的小学系统 工作站。以前,学生(中学) 滥用系统中的声卡。这是通过变化来补救的 声音设备的权限使得非root用户将是 被拒绝访问(轻易地进行远程完成,并在自动化 基础。) 此时,学生开始找到滥用的创造性方式 PC扬声器,这变得相当分散注意力。我们卸载和禁用 PC扬声器内核模块,纠正了一个情况 尽管。 所以,看看看到是否有一种方法可以吹推电脑 加载内核模块的扬声器。如果是这样,群众部署 核心模块过夜会照顾PC扬声器问题一次 而对于所有人。

当然,他们有扬声器内置,但它们连接到也建立在内的声卡,因此它们仅提供了一个低质量版本的相同声音输出,如果您已插入耳机。

但是那些只是发言者,而不是专门的PC扬声器,根本没有连接到声电路。

原版PC扬声器只旨在用于使蜂鸣声向您提醒您到某种错误,特别是在屏幕可能无法正常工作的启动期间,您无法查看可能已显示的任何错误消息。

回到当天,大多数PC组件在5伏特DC中运行,扬声器没有不同:它在其正端子上连接到5V电源,另一个。

5V输入线可以通过键盘控制器中的否则未使用的位(端口0x61的位1)打开和关闭,以防您想要尝试编写自己的PC扬声器代码)。

如果将值1写入扬声器控制位,则扬声器磁铁会致动,扬声器将跳转到其“通电”位置。

将位返回为零,扬声器锥将返回其“静音”位置。

以合适的频率翻转魔术位,并且您将有效地创建恒定间距和体积的平方波。

通常经常改变频率,而且你可以改变球场来播放基本的曲调,当我们说出基本时,我们真的是指它。

以及通过称为位撞击的内容直接控制扬声器(通过您自己编写一个定时的1s和0s的定时流直接编程控制线),您还可以将扬声器的电压线连接到PC的可编程间隔定时器(坑)。

然后,您可以通过每种情况下重新编程坑,这意味着您对扬声器频率进行更精确的控制,并且您不需要在紧密的循环中运行的代码以生成来进行更精确的控制特定音符所需的位翻转。

相反,您可以致力于您使用的小CPU电源,以便连续推进坑,以便以不同的频率驱动扬声器,包括比实际处理更快的频率,因为PC扬声器既有小巧且肛门一样,只能重现窄频带。

代替在恒定体积中产生非常高的频率,扬声器的机电限制 - 基本上,其惯性或在通电时开始移动 - 意味着它根本不会有时间描述一个完整的方波。

通过这种方式,您可以在正常的较低卷上产生受控声音,因此您可以模拟支持的声卡,例如6位(64个不同的声级)甚至8位(256个不同的级别),而不是有一个扬声器,只能重现1位声音(在全卷或完全沉默中播放)。

通过这种方法,粗脉冲宽度调制的粗糙形式,早期的PC游戏在没有声卡的情况下实现了惊人的结果。

许多DOS时代的游戏不仅可以播放扬声器旨在产生的正方形哔声的次数更好的音乐,但甚至再现人类演讲,虽然经常难以理解或听起来好像叙述者有一个非常奇怪的鼻腔。

所以,如果您对Linux内核级别有那种精确控制,您可以真的吹一个PC扬声器吗?

由于我们的传奇提问者一直在询问,你可以用内核驱动程序吹一个电脑扬声器吗?

单独的卷,许多廉价强大的但克利普的手段在学生挖掘中越来越长的速度太高了,已经破坏了许多不太高度高度的电力思想 - 是发言者,不会做这个伎俩。

PC扬声器应以恒定的卷运行,基于该或关闭5V输入线,因此它旨在一直以“最多10个”状态运行。

没有办法将5V输入变为5.5V,这将与10到11的转换为相同的百分比增加,并将扬声器吹动。

您可以以较低的卷欺骗扬声器以较低的卷运行,从而通过有效地将其转换在10以下,但您无法在10以上将其转换为10。

您可以通过仔细构造的频率来尝试通过将税收的级别征收其物理弹性,除了PC扬声器几乎肯定不足以注意到,更不用说,更不用说,让他们更加可靠地繁殖和你想到的混乱的物理运动。

一个舌头脸颊,但有用的响应者到r.f.烧伤(我们现在尽可能好,这个名字是笑话的一部分),在询问的第一年,建议您可以为每个扬声器找到一个特定的频率,并获得谐振它摇动自己。

谐振是旧车辆在某些速度经历的情况下的结构性干扰,当身体面板或窗户玻璃会开始振动,以便被夸张和不断增加和脑刺激对发动机的同情,直到你加速或减慢一小位。

我们很确定它不能,否则r.f. 烧伤(现在我们知道这是一个笑话,这不再是真的很有趣)肯定会在过去的14年里弄清楚魔法频率,并停止询问如何做到这一点。 所以,如果它无法完成,这个问题必须肯定,有一个隐藏的意义......