「PC スピーカー」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(校正)
 
(2人の利用者による、間の18版が非表示)
7行目: 7行目:
 
{{Related articles end}}
 
{{Related articles end}}
   
  +
最初の IBM PC 以来、ほとんどの PC には ''PCスピーカー'' (または ''beeper'') が内蔵されており、ビープ音を発生させることができます。このスピーカーは高音質再生が可能なものではなく、単にビープ音という聴覚的なフィードバックを得るための簡単な手段です。ウェブブラウザ、エディタ、端末などのソフトウェアでは、ユーザーが望むと望まざるとにかかわらず、ビープ音を発生させることがあります。そこで、この記事では、これらのビープ音を設定する、あるいは無効にする方法について説明します。
こちらの思惑とは関係なく、コンピュータはいろいろな場面でビープ音を頻繁に鳴らします。設定によって、ビープ音を鳴らすか、鳴らすならいつ鳴らすかを設定することができます。サウンドカードやスピーカーが使えない場合にシンプルな音声通知を使用したい場合は [[#Beep]] を見てください。
 
   
  +
サウンドカードやスピーカーがなく、単純な音声通知が必要な場合は、[[PC スピーカー#Beep|Beep]] をご覧ください。
コンピュータが発する音にはケース内のスピーカーによるものと、サウンドカードに接続されたスピーカーによるものがあります (その場合、急にうるさくなることがあります)。
 
   
  +
== メカニズム ==
{{Note|ビープ音は BIOS (Basic Input/Output System) や、OS (オペレーティングシステム)、DE (デスクトップ環境) など様々なプログラムから生じます。BIOS の場合は特に扱いが難しくなります。BIOS はマザボードの EPROM チップの中にあるので、ユーザーが BIOS に対して直接行える操作はオンオフだけだからです。BIOS のセットアップに望む設定があるか、チップをリプログラムしない限り、BIOS の設定を変えることは全く出来ません。BIOS によるビープ音はここでは触れませんが、あなたのコンピュータのケーススピーカーを抜いてしまえば音はしないでしょう(自己責任で行なって下さい)。}}
 
  +
  +
PC スピーカーは通常、マザーボードの前面接続ヘッダーに接続された物理的なユニットです。マザーボードメーカーによっては、マザーボードに PC スピーカーを搭載して出荷していない場合や、PC スピーカーが表面に直接ハンダ付けされている場合があります。ノートパソコンでは、通常、物理的な PC スピーカーはなく、beeper はノートパソコンの内蔵スピーカーにルーティングされています。また、サウンドカードの通常出力 (スピーカーやヘッドフォンなど) で鳴らす場合もあり、その場合は予想外の音量になる傾向があります。
  +
  +
起動時、BIOS は従来、POST 中にビープ音を発生させます。最近のマザーボードでは、OS を高速に起動させるために POST ビープ音を省略するモデルもあります。BIOS は通常、POST ビープ音を切り替えることができますが、PCスピーカーを完全にオフにする設定はできません。
  +
  +
システムが Linux で起動し、{{ic|pcspkr}} が起動すると、[[カーネルモジュール]] が起動します。[[カーネルモジュール]] がロードされると、PC スピーカーは環境によって使用され、ユーザによって手動で起動され、ある程度まで設定することができるようになります。PC スピーカーは CPU によって直接制御されており、また、ビープ音のためだけに作られているため、PC スピーカーを音声の再生に使用することはできません。
   
 
== PC スピーカーの無効化 ==
 
== PC スピーカーの無効化 ==
19行目: 25行目:
 
=== グローバル ===
 
=== グローバル ===
   
  +
PC スピーカーを取り外すと、システムはビープ音を発することができなくなります。これは、ユニットをマザーボードから物理的に取り外すことで実現できます(可能な場合)。メーカーによっては、これをオフにするためのジャンパヘッダを提供している場合があります。
PC スピーカーは {{ic|pcspkr}} モジュールを[[カーネルモジュール#手動でモジュールを扱う|アンロードする]]ことで無効化できます:
 
  +
  +
{{Warning|PC スピーカーは起動時の問題を診断するのに役立つツールであり、その後、障害源に関連する独自のビープ音パターンを生成することがあるため、一般に取り外すことはお勧めしません(マザーボードのマニュアルを参照してください)より良い解決策は、BIOS で POST ビープ音をオフにし、以下に記述するように beeper をブラックリスト化するシナリオを強くお勧めします。}}
  +
  +
=== Linux の場合 ===
  +
  +
PC スピーカーは、{{ic|pcspkr}} [[カーネルモジュール]] を [[カーネルモジュール#手動でモジュールを扱う|アンロード]] することで無効にできます。
  +
 
# rmmod pcspkr
 
# rmmod pcspkr
   
起動時から無効にするには {{ic|pcspkr}} モジュールを[[カーネルモジュール#ブラックリスト|ブラックリスト入り]]させて [[udev]] ロードさせないようにます:
+
[[カーネルモジュール#ブラックリスト|ブラックリストへ登録]] すると、起動時に [[udev]] がモジュールをロードないようになります
   
# echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
+
{{hc|/etc/modprobe.d/nobeep.conf|
  +
blacklist pcspkr}}
   
[[カーネルモジュール#カーネルコマンドラインを使う|カーネルコマンドラインを使ってブラックリストに入れる]]こと可能です。ブートローダ kernel 行に {{ic|1=modprobe.blacklist=pcspkr}} を追加するだけです。
+
[[カーネルモジュール#カーネルコマンドラインを使う|カーネルコマンドラインブラックリストに登録]] はさらにう1つの方法です。ブートローダのカーネルラインに {{ic|1=modprobe.blacklist=pcspkr}} を追加するだけです。
   
 
=== コンソール ===
 
=== コンソール ===
   
以下のコマンドを {{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
   
65行目: 79行目:
   
 
$ gsettings set org.gnome.desktop.wm.preferences audible-bell false
 
$ gsettings set org.gnome.desktop.wm.preferences audible-bell false
  +
  +
=== KDE Plasma ===
  +
  +
Bell 通知設定は "System Settings"->"Accessibility Options"->"Bell" で変更できます。
   
 
=== Cinnamon ===
 
=== Cinnamon ===
72行目: 90行目:
 
$ dconf write /org/cinnamon/desktop/wm/preferences/audible-bell false
 
$ dconf write /org/cinnamon/desktop/wm/preferences/audible-bell false
   
=== GTK+ ===
+
=== GTK ===
   
 
{{ic|~/.gtkrc-2.0}} に以下の行を追加:
 
{{ic|~/.gtkrc-2.0}} に以下の行を追加:
84行目: 102行目:
   
 
上記の設定は [https://developer.gnome.org/gtk3/stable/GtkSettings.html Gnome Developer Handbook] に載っています。
 
上記の設定は [https://developer.gnome.org/gtk3/stable/GtkSettings.html Gnome Developer Handbook] に載っています。
  +
  +
=== PulseAudio ===
  +
  +
[[PulseAudio#X11_Bell_Events|PulseAudio を使用]]して、PC スピーカーのビープ音の代わりに音声を出力します。
   
 
== Beep ==
 
== Beep ==
  +
Beep は PC スピーカーのビープ音を鳴らす高度なプログラムです。サウンドカードやスピーカーが利用できない環境で音声による通知を使いたい場合に有用です。
 
  +
[[仮想コンソール]]にログインした際に、ユーザーが短い音を鳴らすことができます。詳しくは [[Wikipedia:bell character#usage]] をご覧ください。
  +
  +
Beep は高度な PC スピーカービーププログラムです。サウンドカードやスピーカーがなく、シンプルな音声通知が必要な場合に便利です。
   
 
=== インストール ===
 
=== インストール ===
   
{{Pkg|beep}} パッケージを[[インストール]]してください
+
{{Pkg|beep}} パッケージを[[インストール]]します
   
Beep を使うには [[ALSA]] で PC スピーカー[[#ALSA|アンミュート]]する必要があ
+
[[ALSA]] で PC スピーカー[[#ALSA|ミュートを解除]]する必要があるかもしれせん
   
 
=== root 以外のユーザーによる使用 ===
 
=== root 以外のユーザーによる使用 ===
   
デフォルトでは {{ic|beep}} は root からしか実行することができません。通常ユーザーは [[sudo]] を使って呼び出すことができます。{{ic|users}} グループのユーザーがパスワードを入力なくも {{ic|sudo beep}} を (クリプトなどで) 使えるようにするには、{{ic|/etc/sudoers}} を[[Sudo#visudo 使う|編集]]してください:
+
{{ic|beep}} は {{ic|/dev/input/by-path/platform-pcspkr-event-spkr}} を使って PC スピーカーを制御しています。非 root ユーザーしてアクセスするには、適切なパーミッションを設定する必要があります。{{ic|/etc/udev/rules.d/70-pcspkr-beep.rules}} を作成し、以下のルール追加してください
   
  +
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", TAG+="uaccess"
%users ALL=(ALL) NOPASSWD: /usr/bin/beep
 
   
  +
これにより、現在アクティブなバーチャルコンソール・セッションにログインしているユーザーであれば、誰でも PC スピーカーを使用することができます。
もしくは、特定のユーザーだけに実行を許可するには:
 
   
  +
または、新しいユーザーグループ(例:{{ic|beep}})を作成し、デバイスファイルに正しい権限を設定するための対応するルールを設定することもできます。
username ALL=(ALL) NOPASSWD: /usr/bin/beep
 
   
  +
ACTION=="add", SUBSYSTEM=="input", ATTRS{name}=="PC Speaker", ENV{DEVNAME}!="", GROUP="beep", MODE="0620"
{{ic|/usr/bin/beep}} にスティッキービットを設定するという方法もあります:
 
   
  +
このソリューションでは、{{ic|beep}} グループに属するユーザーであれば誰でもスピーカーをコントロールすることができます。
# chmod 4755 /usr/bin/beep
 
   
  +
再起動せずに新しいユーザー権限を適用するために、ルールとデバイスファイルを強制的に再読み込みするには、以下を実行します。
ただし、上記の設定では誰でも {{ic|/usr/bin/beep}} を root 権限で実行できるようになってしまいます。また、{{ic|pacman -Qkk}} でローカルコピーとパッケージに差異があると表示されるようになります。
 
  +
  +
$ udevadm control --reload && rmmod pcspkr && modprobe pcspkr
   
 
=== ヒントとテクニック ===
 
=== ヒントとテクニック ===
119行目: 146行目:
   
 
* {{man|1|xset}}, {{man|1|setterm}}, {{man|3|readline}}
 
* {{man|1|xset}}, {{man|1|setterm}}, {{man|3|readline}}
  +
  +
{{TranslationStatus|PC_speaker|2022-01-24|696012}}

2022年11月17日 (木) 16:10時点における最新版

関連記事

最初の IBM PC 以来、ほとんどの PC には PCスピーカー (または beeper) が内蔵されており、ビープ音を発生させることができます。このスピーカーは高音質再生が可能なものではなく、単にビープ音という聴覚的なフィードバックを得るための簡単な手段です。ウェブブラウザ、エディタ、端末などのソフトウェアでは、ユーザーが望むと望まざるとにかかわらず、ビープ音を発生させることがあります。そこで、この記事では、これらのビープ音を設定する、あるいは無効にする方法について説明します。

サウンドカードやスピーカーがなく、単純な音声通知が必要な場合は、Beep をご覧ください。

メカニズム

PC スピーカーは通常、マザーボードの前面接続ヘッダーに接続された物理的なユニットです。マザーボードメーカーによっては、マザーボードに PC スピーカーを搭載して出荷していない場合や、PC スピーカーが表面に直接ハンダ付けされている場合があります。ノートパソコンでは、通常、物理的な PC スピーカーはなく、beeper はノートパソコンの内蔵スピーカーにルーティングされています。また、サウンドカードの通常出力 (スピーカーやヘッドフォンなど) で鳴らす場合もあり、その場合は予想外の音量になる傾向があります。

起動時、BIOS は従来、POST 中にビープ音を発生させます。最近のマザーボードでは、OS を高速に起動させるために POST ビープ音を省略するモデルもあります。BIOS は通常、POST ビープ音を切り替えることができますが、PCスピーカーを完全にオフにする設定はできません。

システムが Linux で起動し、pcspkr が起動すると、カーネルモジュール が起動します。カーネルモジュール がロードされると、PC スピーカーは環境によって使用され、ユーザによって手動で起動され、ある程度まで設定することができるようになります。PC スピーカーは CPU によって直接制御されており、また、ビープ音のためだけに作られているため、PC スピーカーを音声の再生に使用することはできません。

PC スピーカーの無効化

音声自体をオフにしないで、特定のサウンドだけをオフにするには、そのサウンドが使用している環境のどの部分から生まれているのか認識する必要があります。カスタマイズできるサウンドの選択範囲はいろいろあるため、他のユーザーにとっても有益であるような設定の組み合わせ例を見つけた時はこの wiki ページに追加していただけると幸いです。

グローバル

PC スピーカーを取り外すと、システムはビープ音を発することができなくなります。これは、ユニットをマザーボードから物理的に取り外すことで実現できます(可能な場合)。メーカーによっては、これをオフにするためのジャンパヘッダを提供している場合があります。

警告: PC スピーカーは起動時の問題を診断するのに役立つツールであり、その後、障害源に関連する独自のビープ音パターンを生成することがあるため、一般に取り外すことはお勧めしません(マザーボードのマニュアルを参照してください)より良い解決策は、BIOS で POST ビープ音をオフにし、以下に記述するように beeper をブラックリスト化するシナリオを強くお勧めします。

Linux の場合

PC スピーカーは、pcspkr カーネルモジュールアンロード することで無効にできます。

# rmmod pcspkr

ブラックリストへ登録 すると、起動時に udev がモジュールをロードしないようになります。

/etc/modprobe.d/nobeep.conf
blacklist pcspkr

カーネルコマンドラインでブラックリストに登録 はさらにもう1つの方法です。ブートローダのカーネルラインに 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#チャンネルのミュートを解除するを見てください。

ヒント: PulseAudio を使っていてデフォルトの ALSA デバイスで PC スピーカーのチャンネルが表示されない場合、サウンドカードに対応するデバイスを選択してください。PulseAudio のプロキシコントロールは PC スピーカーを表示しません。

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 スピーカービーププログラムです。サウンドカードやスピーカーがなく、シンプルな音声通知が必要な場合に便利です。

インストール

beep パッケージをインストールします。

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

参照

翻訳ステータス: このページは en:PC_speaker の翻訳バージョンです。最後の翻訳日は 2022-01-24 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。