通过 PC 扬声器发声
PC 扬声器是一个驱动程序,用于大多数(可能所有?)IBM PC 兼容机标配的适中声音输出设备。 它作为内核的一部分安装,或作为可加载模块安装; 无论哪种方式,都需要更改内核。 PC 扬声器附带一小组程序,可以配合使用——我在我的系统上毫无困难地编译了这些程序。
该驱动程序以补丁文件的形式提供,必须将其应用到 Linux 源代码目录(/usr/src/linux)。 应用补丁后运行 make<\!s>config 时,它会询问您是否需要 PC 扬声器支持——回答“yes”。 给出命令
make depend; make clean; make zImage
您的新内核将准备就绪。 对源代码的补丁包括 /usr/include/sys 的一些头文件,这些头文件对于制作驱动程序随附的实用程序是必要的。
该驱动程序支持以下设备:
/dev/pcsp:原始数据设备
/dev/pcaudio:SUN 音频设备
/dev/pcmixer:混音器设备
我的机器上只定义了 /dev/pcsp
crw--w--w- 1 root root 13, 3 Aug 27 20:25 /dev/pcsp
程序 pcsel 设置 PC 扬声器的选项,用于在系统启动时配置 /dev/pcsp 设备并测试新设备。您还可以使用 pcsel 程序将输出设备分配给 /dev/pcsp。支持的输出设备有
立体声-单声道(由 Mark J. Cox 设计),在内核启动期间自动检测到,并且默认选择。
PC 扬声器,如果未找到立体声-单声道,则选择该扬声器。
单声道 DAC,用于一个 lp 端口。
立体声 DAC,用于两个 lp 端口。
在 pcsel 命令行上指定 help 选项
$ pcsel -help
会为您提供所有 pcsel 选项及其含义的列表。未指定任何选项时,pcsel 会以这种方式报告实际的输出设备及其参数:
$ pcsel PCSP driver version 1.0 Actual PCSP output device: PC-Speaker Volume : 100 %, real samplerate : 18356 Hz Maximum Samplerate is 51877 Hz 16bit Stereo Emulation enabled
这两个程序,vplay 和 vrec,可用于录制和播放以下类型的文件:
Creative Labs 语音文件
Microsoft 波形文件
原始音频数据文件
这两个程序都接受相同的选项,可以通过指定 help 选项来列出这些选项
vplay --help
此命令的输出显示在 列表 2 中。
好的,坦白时间到了——我向内核添加此驱动程序的主要原因是为了在 Doom 中获得声音效果。 这是另一个关于您可以使用 PC 扬声器做什么的简单示例。 我有一个 .wav 和 .au 文件的目录。 每次我登录时,从我的 .profile 文件调用的这个 shell 脚本会随机播放其中一个音频文件。
#!/bin/sh # random-sound.sh: play a random file from the # sounds directory export count="`ls sounds/*|wc -l|sed s/ //`" export count=`expr $count + 0' (1>/dev/null 2>&1 vplay `echo sounds/*| \ awk BEGIN{srand()}{x=1+int(rand()*number) print $x} number=$count') &
最新版本的 PC 扬声器可以在 ftp://ftp.informatik.hu-berlin.de/ 的 /pub/os/linux/hu-sound/pcsnd* 目录中找到(其中 * 表示最新的版本号)。
Paul Dunne 是一位自由撰稿人和顾问,专门从事 Linux。 他的第一本书《Webmasters 的 Linux》将于今年晚些时候由 Digital Press 出版。