2009/09/04(Fri)beep on x86_64
2009/09/04 0:50
今回はjohnathからbeepコマンドを利用させていただいたが、x86向けのx86ビルドrpmはあるものの、x64向けのx86_64ビルドrpmがなかったため、作成した。
(ちなみに作成環境はCentOS 5.3 (Final))
成果物のダウンロードはこちら: beep-1.2.2-1.x86_64.rpm
(MD5: 328B90882335103799E5733F6A99E4F1)
以下は、SRPMからRPMを作る方法のまとめと、詳しいインストール手順など。
SRPMからRPMを作る方法
とりあえずSRPMをrpmでインストールする。$ cd /tmp $ wget http://www.johnath.com/beep/beep-1.2.2-1.src.rpm $ su # rpm -ivh beep-1.2.2-1.src.rpm 1:beep ########################################### [100%]これで/usr/src/redhat/辺りに中身のファイルが作られる。
rpmbuildでパッケージを作る。
が、SPECファイルのエラーで止まった。
# rpmbuild -bb --target=x86_64 /usr/src/redhat/SPECS/beep.spec ビルド対象プラットフォーム: x86_64 ターゲット x86_64 用にビルド中 エラー: 旧来の構文はサポートされません: copyright エラー: 11 行目: 不明なタグ: Copyright: GPLこれは、構文が変更されたのが原因なので、該当ファイルのCopyrightの部分をLisenceに書き換える。
で、リトライ。
# rpmbuild -bb --target=x86_64 /usr/src/redhat/SPECS/beep.spec ビルド対象プラットフォーム: x86_64 ターゲット x86_64 用にビルド中 実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.59405 .....(中略)..... # rpm -Uvh /usr/src/redhat/RPMS/x86_64/beep-1.2.2-1.x86_64.rpm 準備中... ########################################### [100%] 1:beep ########################################### [100%]これでインストール完了。
テスト用
$ beep -f 1000 -l 100 -n -f 1500 -l 100 -n -f 2000 -l 100ピロリッ♪と鳴れば成功。
後は、サーバーの監視系スクリプトの中でこのようにbeepコマンドを叩いてやればよい。
- fで周波数(Hz)、-lで長さ(ms)、-nで区切る、という風に覚えておけば、別段困らない。
ユーザー権限で鳴らせるようにするには
setuidが一番楽かな…# chmod u+s /usr/bin/beep # ll /usr/bin/beep -rwsr-xr-x 1 root root 8704 9月 4 00:31 /usr/bin/beep不用意にユーザーに鳴らされたくない場合は、sudoers辺りにユーザーごとに権限設定するとよい。
それでもbeepが鳴らない
Fedora等では、pcspkrモジュールがデフォルトでONになってないみたいで、そのままでは鳴りません。# modprobe pcspkr再起動後も有効にするには、/etc/rc.local辺りに同じように書いておけばよい。