
Ubuntu日本語フォーラム

ログインしていません。
ビープ音が端末にprintf '\a'とやっても鳴りません。
ビープ音を鳴るようにしたいのですがどうすればいいのでしょうか。
windows7では鳴るのでハード的なことが原因ではないと思われます。
Ubuntuのバージョンは12.10です。
どなたか願いします。
オフライン
使用している端末はgnome-terminalやxtermなど(端末エミュレーター)ですか?
Ctrl + Alt + (F1-F7) で移動できる仮想コンソールですか? ttyコマンドで確認できます。
オフライン
$ ttyの結果は
/dev/pts/1
でした。
ランチャにもともとあったものを使っているので端末は
gnome-terminalだと思います
オフライン
ubuntuの対象バージョンは古いものですが、beepを消す方法が書いて有ります。
https://wiki.ubuntulinux.jp/UbuntuTips/ … pBeepSound
逆に鳴らしたい方向で考えて確認すれば良いかと思います。
このページにある"方法2"の所をubuntu12.04で確認する限りでは、blacklistに登録されています。
$ grep pcspkr /etc/modprobe.d/*
/etc/modprobe.d/blacklist.conf:blacklist pcspkr
ので、これをコメントアウトしてbeepが出せるか試してみてはどうでしょうか。
他にもこのフォーラムを検索するとbeepに関しての記述が色々出てきますよ。
フォーラムで検索すると何件かヒットするのはわかっていましたが、
どれも少しわかりにくいと感じ、
自分で聞きたいことが聞けるこの形を選択させてもらいました。
ご提示して下さった
$ grep pcspkr /etc/modprobe.d/*
/etc/modprobe.d/blacklist.conf:blacklist pcspkr
このコマンドをコピペして実行した後、
printf '\a'
とやりましたがビープ音はなりませんでした。
オフライン
このコマンドをコピペして実行した後
先のコマンドはblacklist.confの中にpcspkrと言うモジュール名が記述してあるか検索しただけです。
$ grep pcspkr /etc/modprobe.d/* <-- このコマンド
その結果/blacklist.confと言うファイルの中にpcspkrが記述されていたので
/etc/modprobe.d/blacklist.conf:blacklist pcspkr
の様に表示されたわけです。
blacklist.confに記述されているモジュールはロードされないので、それをロードされる様に変更しなければなりません。
その為にblacklist.confをエディターで開いて、該当する行をコメントアウトして確認してみてください。
#blacklist pcspkr <--行の先頭にシャープを入れる。
(エディターは管理者権限で実行しないと、このファイルは保存できません。)
検索するコマンドだったのですか、調べもせずすみませんでした。
管理者権限で
blacklist pcspkr
をコメントアウトしましたが、ビープ音はなりませんでした。
オフライン
ご質問のビープ音というのは警告音のことでしょうか?
もしそうだとしますと、ランチャーかダッシュから「システム設定」を開き、そして「サウンド」を開きます。
サウンドのダイアログが出たら、「音響効果」のボタンをクリックします。
つぎに、「警告音の音量(A)」のスイッチを「オン」にし、ヴォリュームを適当にスライドさせます。
これで、警告音がでるはずです。
さらに、一応いちばん下の「出力の音量(O)」のヴォリュームと「オン」も確認しておいて下さい。
間違ってたらゴメンナサイです。
オフライン
警告音のことです。
システム設定のサウンドから警告音の音量を半分ぐらいに上げ、
ミュートをオフにした状態で実行して見ましたが鳴りませんでした。
オフライン
どうでもいいことなのだが、ビープといったら起動時に鳴る、マザーボードに繋いであるスピーカーから鳴る音で、Ubuntuの警告音とは別物の完全なハードの話だと思ってたのだが、このトピの話は違うのね。
オフライン
実現したいことを整理すると、最初の投稿にある
による投稿:
ビープ音が端末にprintf '\a'とやっても鳴りません。
これが成功すればいいわけですね?
ビープ音に関して、最近のマザーボードは一昔前のものと異なり、ビープ音出力をアナログライン出力に回していたり(=別途スピーカーをつなげる必要がある)、ビープ音の制御をHDAコントローラーに任せていたり(=ビープ音だけどソフトウェアからドライバーを通じて制御できる。ミュートしたりボリュームコントロールできる)と、ちょっと実情が変わっています。
ですので、マザーボードがどのように作ってあるのかというところから詰めていかないと、問題解決には結びつかないと思います。今回はWindowsであればビープ音が鳴るということなので、マザーボード上にビープ音を鳴らすためのスピーカーが載っていると考えていいような気がします。ここらへんの確認と、マザーボードの情報の提供があれば、問題解決に結びつきそうな気がします。
オフライン
説明書の欄にマザーボードの情報は記載されておりませんでした。
スレテオスピーカー内蔵とは書いてありましたが・・・
オフライン
ある程度ネットで探しましたが
マザーボードの情報やせつめいWebページが見つかりませんでした。
すみません
参考になるかわかりませんが
メーカ :FUJITSU
品名 :LIFEBOOK AH52/C
型名 :FMVA52CRJ
です
オフライン
私もあれこれ試みたのですが結局 pcspkr は諦めました。しかし、
ビープ音が端末にprintf '\a'とやっても鳴りません。
を鳴らすようにするのは以下の手順で解決できました。私の Ubuntu のバージョンは 8.04 を 12.04 にアップグレードインストールしたものでどの設定が 8.04 から引き継がれていてどの設定が 12.04 なのか分からないのですが、ご参考になれば幸いです。
* ビープ音にするファイルを決めます。(pulseaudio の動作確認も兼ねています。)
cd /usr/share/sounds/ubuntu/stereo pacat bell.ogg
でテーマ ubuntu の bell が鳴るはずです。お好みで他のファイルも試して決めてください。どのファイルでも何も聞こえなければ pulseaudio の設定に何らかの問題が有ります。
* xkbbell で上のファイルが鳴るようにします。具体的には:ホームディレクトリのディレクトリ .pulse にdefault.pa というファイルを(無ければ /etc/pulse/defalut.pa をコピーしてから)以下のように変更します。
load-sample-lazy が(コメントアウトされて)ある場所の付近に
load-sample-lazy x11-bell /usr/share/sounds/ubuntu/stereo/bell.ogg
を追加し、module-x11-bell をロードする所のコメントを外してサンプル名を合わせます。
load-module module-x11-bell sample=x11-bell
ファイルの変更を pulse audio に認識させます。(logout/login でも可。)
* gnome-terminal から xkbbell を実行して先に決めた音が鳴ることを確認します。鳴らなければ default.pa の設定に問題がある可能性が有ります。
printf '\a' でも同じ音がでるはずですが、鳴らなければ gnome-terminal の設定(特に「端末ベルを鳴らす」)を調べます。
* xterm もベルを鳴らす設定になっていれば beep 音が鳴るはずです。
* ベルが鳴るのが遅れる(emacs で CTRL-g を打ったときなどこの遅延はかなり気になります)場合はArchlinux Wikiの解説が参考になりました。
rxvt (rxvt-unicode-9.15) ではこの方法ではベルは鳴りません。これは rxvt が XkbBell ではなくXBell を使っているのが原因で、しかたがないので私はソースファイルの screen.C を直して使っています。こういうことが有るので他の XBell を使っているアプリケーションの事も考えると pcspkr を鳴らすようにするのが本筋のような気がしますが冒頭にも書いたとおり諦めました。
オフライン
端末で
cd /usr/share/sounds/ubuntu/stereo
pacat bell.ogg
とやると「ザッ」って鳴ります。
GUIのファイルそこまでいってダブルクリックしてRhythmboxで鳴らすと「ポコ」って鳴ります。
~/.pulse/default.paにご提示してくてたコードどうり、指定して下さった付近に追加しました。
ログアウト、ログイン後。
端末上でxkbbellとprintf '\a'とも実行しましたが音は鳴りませんでした。
オフライン
すいません、音を再生するコマンドを間違えてしまいました。
pacat ではなく正しくは paplay です。
これで rhythmbox で再生した時と同じように聞こえますか?
オフライン
ということはサウンドカード回りはちゃんと動いていて問題は pulseaudio daemon より手前に有ると考えられます。
bell のボリューム(とミュート)はどうなっていますでしょうか?
pavucontrol(もし無ければパッケージ pavucontrol をインストールしてください)で「再生」タブをクリックするとシステム音という項目が表示されます。スライダーを 100% 付近のところで左右に少し動かした時にオレンジ色のバーが表示されますか?もし、スライダーを動かせないまたはスライダーノブの左側が灰色ならミュートされていますので右の方にあるスピーカーアイコンをクリックしてミュートを解除してください。スライダーノブが動かせてバーがオレンジ色に変わるはずです。
その状態で
xkbbell -v 100
(v と 1 の間は必ず space が必要です)を実行して beep が鳴りますか?もし鳴った場合、オプションなしの xkbbell だけではどうですか?
オフライン
未だにどこに問題が有るのか私には分かりません。すいませんが、以下の3つを教えてください。
pactl list short modules
の出力結果。module-x11-xsmp の引数列にはホスト名が含まれていますが、その部分は適当に消してくださって結構です。
pactl list samples
の出力結果。
pactl play-sample x11-bell
(x11-bell は ~/.pulse/default.pa の load-sample-lazy で指定した名前に合わせてください)で音が鳴るかどうか。
オフライン
一番最初のコードはこれです。
0 module-device-restore 1 module-stream-restore 2 module-card-restore 3 module-augment-properties 4 module-alsa-card device_id="0" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=no card_properties="module-udev-detect.discovered=1" 5 module-udev-detect use_ucm=0 6 module-bluetooth-policy 7 module-bluetooth-discover 8 module-native-protocol-unix 9 module-gconf 10 module-default-device-restore 11 module-rescue-streams 12 module-always-sink 13 module-intended-roles 14 module-suspend-on-idle 15 module-console-kit 16 module-position-event-sounds 17 module-filter-heuristics 18 module-filter-apply 19 module-x11-bell sample=x11-bell#追加 20 module-switch-on-port-available 21 module-x11-publish display=:0 22 module-x11-bell display=:0 sample=bell.ogg 23 module-x11-cork-request display=:0 24 module-x11-xsmp display=:0 session_manager=local/ken-FMVA52CRJ:@/tmp/.ICE-unix/1698,unix/usrname:/tmp/.ICE-unix/1698
二個目です
サンプル #0
名前: x11-bell
サンプル仕様: n/a
チャンネルマップ: n/a
ボリューム: 無効)
無効)
バランス 0.00
継続期間: 0.0s
サイズ: 0 B
レイジー: yes
ファイル名e: /usr/share/sounds/ubuntu/stereo/bell.ogg#追加
プロパティ:
media.role = "event"
media.filename = "/usr/share/sounds/ubuntu/stereo/bell.ogg#追加"三個目です
失敗: そのようなエンティティはありません
オフライン
ソースで確かめたわけではありませんが、default.pa で # がコメントになるのは行頭だけのようです。(行末の空白文字も引数の値として扱われるようです。)ですから、
#追加
の部分を別の行に(行末にも余分な空白文字を入れないように注意して)編集してから pulseaudio を再起動(logout/login あるいは pulseaudio -k)してもう一度
pactl list short modules, pactl list samples を実行してみてみてください。「#追加」が有ったところが
19 module-x11-bell sample=x11-bell
ファイル名e: /usr/share/sounds/ubuntu/stereo/bell.ogg
media.filename = "/usr/share/sounds/ubuntu/stereo/bell.ogg"
となるようにしてから pactl play-sample x11-bell を実行してbeepがなるかどうか教えてください。
オフライン
「#追加」が有ったところが
19 module-x11-bell sample=x11-bell
ファイル名e: /usr/share/sounds/ubuntu/stereo/bell.ogg
media.filename = "/usr/share/sounds/ubuntu/stereo/bell.ogg"
となるように
というところの意味が少しわからなかったのですが、
load-module module-x11-bell sample=x11-bell
load-sample-lazy x11-bell /usr/share/sounds/ubuntu/stereo/bell.ogg
のところの"#追加"を別の行に移動させた後、
pactl play-sample x11-bell
と実行したら「ポン」と鳴りました。
オフライン
ということは、音源ファイルが pulseaudio にサンプルとして認識されているところまでは o.k. ということですね。
xkbbell -v 100 を実行すると beep 音(今は「ポン」ですが)が鳴りますか?鳴らない場合は、すいません、私にはこの先どうすればいいか分かりません。
xkbbell -v 100 では鳴るけれども引数なしの xkbbell で beep 音が鳴らなければ x のサーバーのボリューム設定(xset b off の状態では xkbbell は鳴りません)を調べて見てください。
xkbbell では鳴るけれども printf '\a' で鳴らなければ gnome-terminal(あるいはお使いの terminal emulator)の bell を鳴らす設定を調べてください。
printf '\a' でも鳴ったなら一応問題は解決したということになるのだと思います。
ここから先は好みの問題ですが、/usr/share/sounds/ubuntu/stereo/bell.ogg の「ポン」という音はどうも beep らしくないように思います。もっと beep らしい音源ファイルが手に入るならそれを使うように default.pa を書き換えた方が良いと思います。
オフライン