PCスピーカーをエミュレートするには?

PCスピーカーをエミュレートするには?

最新のノートパソコンを購入しましたが、ハードウェアスピーカーがないようです。 ALSAを介してこれをエミュレートできるカーネルモジュールはありますか?最新のカーネルバージョンではほとんど機能しない90年代後半の非常に古いパッチモジュールしか見つかりませんでした。

ベストアンサー1

安価なAMDミニPCでも同じ問題が発生しました。私は年齢が高く、視力が悪くて編集したり、端末を使用するときにビープ音がするのが好きです。キーボードを叩いて眠くても通知音で覚醒できます:)

ボードクロロと議論した後、彼は自分の質問にここに答えるべきだと提案しました。私は2つの解決策を見つけましたが、どちらも完璧ではありません。

ビープ音を復元する方法を探しています。 Lennart Poetteringは、2002年にLD_PRELOADメソッドを使用してSoftbeepを作成しました。試してみましたが、私には合わなかった。

それから私は見つけました。https://github.com/mozzwald/Fancy-Beeper-Daemonパッチとテストの後、Arch Linux AURを書いてdkmsモジュールとしてビルドしました。 https://aur.archlinux.org/packages/fancybeep-dkms 合理的なビープ音を生成するために、単純なalsaビープルーチンを追加しました。これは機能しますが、デーモンがモジュール(/ dev / beep)によって生成されたデバイスの1つで停止しているため、モジュールが使用中であるため、modprobe -r fancybeepは失敗します。したがって、まずユーザースペースビープ音デーモンを終了する必要があります。

SIGUSR1信号からビープ音が鳴るようにデーモンを変更し、追加のデバイス/ dev / beepを削除しました。このモジュールには、デーモンがPIDを送信できるパラメータがあります。その後、モジュールは、ビープ音が鳴る必要があるときにデーモンにシグナルを送信できます。この方法https://aur.archlinux.org/packages/alsabeep-dkmsまた可能ですが、明らかに少し安全ではありません。モジュールのPIDパラメータをクリアせずにデーモンが終了するように、モジュールに残っているPID信号が古くなり、後で問題が発生する可能性があります。

正しい方法は、PIDを取得し、信号を使用するか、ネットリンクを使用してビープ音を要求できるデーモンのモジュールを直接起動することです。私はこれを行う方法を理解するのに十分なハードコアではありません。

おすすめ記事