|
发表于 2005-9-19 10:09:38
|
显示全部楼层
先cat一下/proc/bus/input/devicces
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="C Speaker"
P: Phys=isa0061/input0
H: Handlers=kbd event2
B: EV=40001
B: SND=6
如果有类似以上信息,说明内核加载了pcspkr模块,是可以支持PC喇叭的。
然后使用如下程序,即可以发声。
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <linux/kd.h>
- #include <stdio.h>
- #define ERROR (-1)
- main() {
- int fd=open("/dev/tty0",O_RDWR|O_NDELAY);
- if (fd<0) {
- perror("/dev/tty0");
- exit(2);
- }
- /* 125 = 125 milliseconds, or 1/8th of a second;
- 0x637 is the number of clock cycles in the standard kernel beep */
- if (ioctl(fd,KDMKTONE,(125<<16)+0x637) == ERROR) {
- perror("/dev/tty0: ioctl");
- exit(2);
- }
- close(fd);
- }
复制代码
这个程序很难找,是给内核的维护者Vojtech Pavlik发mail才得到的。
版主请加精吧,谢谢。 |
|