「PC スピーカー」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (TranslationStatus を追加) |
(メカニズムの項目を翻訳して追加) |
||
11行目: | 11行目: | ||
コンピュータが発する音にはケース内のスピーカーによるものと、サウンドカードに接続されたスピーカーによるものがあります (その場合、急にうるさくなることがあります)。 |
コンピュータが発する音にはケース内のスピーカーによるものと、サウンドカードに接続されたスピーカーによるものがあります (その場合、急にうるさくなることがあります)。 |
||
− | {{Note|ビープ音は BIOS (Basic Input/Output System) や、OS (オペレーティングシステム)、DE (デスクトップ環境) など様々なプログラムから生じます。BIOS の場合は特に扱いが難しくなります。BIOS はマザボードの EPROM チップの中にあるので、ユーザーが BIOS に対して直接行える操作はオンオフだけだからです。BIOS のセットアップに望む設定があるか、チップをリプログラムしない限り、BIOS の設定を変えることは全く出来ません。BIOS によるビープ音はここでは触れませんが、あなたのコンピュータのケーススピーカーを抜いてしまえば音はしないでしょう |
+ | {{Note|ビープ音は BIOS (Basic Input/Output System) や、OS (オペレーティングシステム)、DE (デスクトップ環境) など様々なプログラムから生じます。BIOS の場合は特に扱いが難しくなります。BIOS はマザボードの EPROM チップの中にあるので、ユーザーが BIOS に対して直接行える操作はオンオフだけだからです。BIOS のセットアップに望む設定があるか、チップをリプログラムしない限り、BIOS の設定を変えることは全く出来ません。BIOS によるビープ音はここでは触れませんが、あなたのコンピュータのケーススピーカーを抜いてしまえば音はしないでしょう(自己責任で行なって下さい)。}} |
+ | |||
+ | == メカニズム == |
||
+ | |||
+ | PC スピーカーは通常、マザーボードの前面接続ヘッダーに接続された物理的なユニットです。マザーボードメーカーによっては、マザーボードに PC スピーカーを搭載して出荷していない場合や、PC スピーカーが表面に直接ハンダ付けされている場合があります。ノートパソコンでは、通常、物理的な PC スピーカーはなく、ビーパーはノートパソコンの内蔵スピーカーにルーティングされています。また、サウンドカードの通常出力(スピーカーやヘッドフォンなど)で鳴らす場合もあり、その場合は予想外の音量になる傾向があります。 |
||
+ | |||
+ | 起動時、BIOS は従来、POST 中にビープ音を発生させます。最近のマザーボードでは、OS を高速に起動させるために POST ビープ音を省略するモデルもあります。BIOS は通常、POST ビープ音を切り替えることができますが、PCスピーカーを完全にオフにする設定はできません。 |
||
+ | |||
+ | システムが Linux で起動し、{{ic|pcspkr}} が起動すると、[[カーネルモジュール]] が起動します。[[カーネルモジュール]] がロードされると、PC スピーカーは環境によって使用され、ユーザによって手動で起動され、ある程度まで設定することができるようになります。PC スピーカーは CPU によって直接制御されており、また、ビープ音のためだけに作られているため、PC スピーカーを音声の再生に使用することはできません。 |
||
== PC スピーカーの無効化 == |
== PC スピーカーの無効化 == |
||
31行目: | 39行目: | ||
=== コンソール === |
=== コンソール === |
||
− | 以下のコマンドを {{ic|/etc/profile}} や {{ic|/etc/profile.d/disable-beep.sh}} のようなファイル |
+ | 以下のコマンドを {{ic|/etc/profile}} や {{ic|/etc/profile.d/disable-beep.sh}} のようなファイル(実行可能にする必要があります)に加えてください: |
setterm -blength 0 |
setterm -blength 0 |
||
114行目: | 122行目: | ||
これにより、現在アクティブなバーチャルコンソール・セッションにログインしているユーザーであれば、誰でも PC スピーカーを使用することができます。 |
これにより、現在アクティブなバーチャルコンソール・セッションにログインしているユーザーであれば、誰でも PC スピーカーを使用することができます。 |
||
− | または、新しいユーザーグループ |
+ | または、新しいユーザーグループ(例:{{ic|beep}})を作成し、デバイスファイルに正しい権限を設定するための対応するルールを設定することもできます。 |
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", GROUP="beep", MODE="0620" |
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", GROUP="beep", MODE="0620" |
2022年5月23日 (月) 10:35時点における版
こちらの思惑とは関係なく、コンピュータはいろいろな場面でビープ音を頻繁に鳴らします。設定によって、ビープ音を鳴らすか、鳴らすならいつ鳴らすかを設定することができます。サウンドカードやスピーカーが使えない場合にシンプルな音声通知を使用したい場合は #Beep を見てください。
コンピュータが発する音にはケース内のスピーカーによるものと、サウンドカードに接続されたスピーカーによるものがあります (その場合、急にうるさくなることがあります)。
目次
メカニズム
PC スピーカーは通常、マザーボードの前面接続ヘッダーに接続された物理的なユニットです。マザーボードメーカーによっては、マザーボードに PC スピーカーを搭載して出荷していない場合や、PC スピーカーが表面に直接ハンダ付けされている場合があります。ノートパソコンでは、通常、物理的な PC スピーカーはなく、ビーパーはノートパソコンの内蔵スピーカーにルーティングされています。また、サウンドカードの通常出力(スピーカーやヘッドフォンなど)で鳴らす場合もあり、その場合は予想外の音量になる傾向があります。
起動時、BIOS は従来、POST 中にビープ音を発生させます。最近のマザーボードでは、OS を高速に起動させるために POST ビープ音を省略するモデルもあります。BIOS は通常、POST ビープ音を切り替えることができますが、PCスピーカーを完全にオフにする設定はできません。
システムが Linux で起動し、pcspkr
が起動すると、カーネルモジュール が起動します。カーネルモジュール がロードされると、PC スピーカーは環境によって使用され、ユーザによって手動で起動され、ある程度まで設定することができるようになります。PC スピーカーは CPU によって直接制御されており、また、ビープ音のためだけに作られているため、PC スピーカーを音声の再生に使用することはできません。
PC スピーカーの無効化
音声自体をオフにしないで、特定のサウンドだけをオフにするには、そのサウンドが使用している環境のどの部分から生まれているのか認識する必要があります。カスタマイズできるサウンドの選択範囲はいろいろあるため、他のユーザーにとっても有益であるような設定の組み合わせ例を見つけた時はこの wiki ページに追加していただけると幸いです。
グローバル
PC スピーカーは pcspkr
モジュールをアンロードすることで無効化できます:
# rmmod pcspkr
起動時から無効にするには pcspkr
モジュールをブラックリスト入りさせて udev にロードさせないようにします:
/etc/modprobe.d/nobeep.conf
blacklist pcspkr
カーネルコマンドラインを使ってブラックリストに入れることも可能です。ブートローダーの kernel 行に modprobe.blacklist=pcspkr
を追加するだけです。
コンソール
以下のコマンドを /etc/profile
や /etc/profile.d/disable-beep.sh
のようなファイル(実行可能にする必要があります)に加えてください:
setterm -blength 0
/etc/inputrc
や ~/.inputrc
に以下の行を加える、もしくはアンコメントする方法もあります:
set bell-style none
Less ページャ
less ページャを less -q
で起動することで最終行イベントのビープ音を無効化できます。less -Q
で全てのイベントのビープ音を無効化できます。man ページで PC スピーカーを無効にしたいときは man -P "less -Q"
を使用するか $MANPAGER
または $PAGER
環境変数を設定してください。
~/.bashrc
に以下の行を追加することでも設定できます:
alias less='less -Q' alias man 'man -P "less -Q"'
Xorg
$ xset -b
/etc/xprofile
などのスタートアップファイルにこのコマンドを加えることで、設定を永続的にすることができます。詳しくは xprofile を見てください。
ALSA
大抵のサウンドカードでは ALSA のチャンネルとして PC スピーカーが認識されます。名前は PC Speaker, PC Beep, Beep のどれかです。スピーカーをミュートにするには alsamixer または amixer を使います:
$ amixer set channel 0% mute
チャンネルのミュートを解除する方法は Advanced Linux Sound Architecture#チャンネルのミュートを解除するを見てください。
GNOME
GSettings を使用:
$ gsettings set org.gnome.desktop.wm.preferences audible-bell false
KDE Plasma
Bell 通知設定は "System Settings"->"Accessibility Options"->"Bell" で変更できます。
Cinnamon
Cinnamon では"水滴"サウンドが流れますが、dconf で無効に設定できます:
$ dconf write /org/cinnamon/desktop/wm/preferences/audible-bell false
GTK
~/.gtkrc-2.0
に以下の行を追加:
gtk-error-bell = 0
同じ行を $XDG_CONFIG_HOME/gtk-3.0/settings.ini
の [Settings] セクションに追加:
[Settings] gtk-error-bell = 0
上記の設定は Gnome Developer Handbook に載っています。
PulseAudio
PulseAudio を使用して、PC スピーカーのビープ音の代わりに音声を出力します。
Beep
仮想コンソールにログインした際に、ユーザーが短い音を鳴らすことができます。詳しくは Wikipedia:bell character#usage をご覧ください。
Beep は高度な PC スピーカービーププログラムです。サウンドカードやスピーカーがなく、シンプルな音声通知が必要な場合に便利です。
インストール
ALSA で PC スピーカーのミュートを解除する必要があるかもしれません。
root 以外のユーザーによる使用
beep
は /dev/input/by-path/platform-pcspkr-event-spkr
を使って PC スピーカーを制御しています。非 root ユーザーとしてアクセスするには、適切なパーミッションを設定する必要があります。/etc/udev/rules.d/70-pcspkr-beep.rules
を作成し、以下のルールを追加してください。
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", TAG+="uaccess"
これにより、現在アクティブなバーチャルコンソール・セッションにログインしているユーザーであれば、誰でも PC スピーカーを使用することができます。
または、新しいユーザーグループ(例:beep
)を作成し、デバイスファイルに正しい権限を設定するための対応するルールを設定することもできます。
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", GROUP="beep", MODE="0620"
このソリューションでは、beep
グループに属するユーザーであれば誰でもスピーカーをコントロールすることができます。
再起動せずに新しいユーザー権限を適用するために、ルールとデバイスファイルを強制的に再読み込みするには、以下を実行します。
$ udevadm control --reload && rmmod pcspkr && modprobe pcspkr
ヒントとテクニック
大抵の場合は伝統的なビープ音で満足するとおもいますが、音色をちょっと変えたいと思う人がいるかもしれません。以下のコマンドは少しだけ高音で短い音を2回鳴らします:
# beep -f 5000 -l 50 -r 2