[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:07150] Re: beep control?
佐野@浜松です。笹山さんこんにちは。
> コンソールのビープ音を制御するコマンドってないでしょうか。音
> の高さと長さが変えられれば、とりあえず用は足りるんですが。
> モニターなしのホストで、haltの前に鳴らすとかしたいので、Xが
> 必要なのとかはダメです。できればパッケージに入ってるといいの
> ですが、ソースでも可です。
たしか昔、 fj.* だったかで見かけたソースコードが
ありますが、こんなので使えますでしょうか ?
注意点として、 root 特権が無いと ioctl を拒絶されるので
root で実行する必要があります。
mktone の引数を換えることで、高さと長さを変更できると
思うので、 main() を変更して argc, argv を使うように
すればいかがでしょう。(試してはいないです。すみません。)
--- begin --- cut off --- begin --- cut off ---
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
#include <sys/param.h>
int cons_fd = -1;
#define PC_CLOCK 1193180
int mktone(double hz, int ms)
{
int tick;
if (cons_fd < 0) {
cons_fd = open("/dev/tty0", O_WRONLY);
if (cons_fd < 0)
return cons_fd;
}
tick = (int) (PC_CLOCK / hz);
if (ioctl(cons_fd, KDMKTONE, (ms << 16) | (tick & 0xffff)) < 0)
return -1;
return 0;
}
int
main(void)
{
mktone(440, 1000);
if (cons_fd != -1)
close(cons_fd);
return 0;
}
--- end --- cut off --- end --- cut off ---
--
<sano@xxxxxxxxxxxxxxxxxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)