web-dev-qa-db-ja.com

USBデバイスが挿入されたときに通知を表示する方法は?

WebカメラのようなUSBデバイスを接続すると、動作するかどうかが通知されることを知っておくといいでしょう。

6
Keyvan

libnotify-binパッケージには、表示されるバイナリnotify-sendが含まれています通知。呼び出しの例を次に示します。

notify-send「新しいUSBデバイスが接続されました」「新しいデバイスが接続されました:何とか何とか」

「追加」アクションと「削除」アクションのudevルールを作成して、通知を呼び出す小さなスクリプトをトリガーできると思います。これについてはまだ調べていませんが、ストレージデバイスの暗号化/ミュートコマンドを呼び出す同様のスクリプトを見てきました。

Guadalinexプロジェクトには、2005年にUDS Sevilleでデモを行ったこのタイプの機能[1]もありました(!)。上流で作業を提出した場合、または別のパッケージとしてどこかで入手できる場合は、追跡が容易になるでしょう。 Debianバグで言及されているパッケージをインストールしないでくださいこれは、誰かがそれを調査することにした場合の参照目的のためだけです。

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458405

3
MagicFab

2014年にデフォルトでこの機能がまだ機能していないことは本当に驚きです。この機能を必要とする人はほとんどいないようですが、私は本当に必要です。

まず、 dev-notify パッケージを見つけましたが、残念ながらほとんど機能しません。ごくわずかな時間(1〜2分)で動作し、その後、接続/切断するとどのデバイスでも、クラッシュします:

Traceback (most recent call last):
  File "./udev-notify.py", line 319, in <module>
    notification.show()
glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.1061 was not provided by any .service files

解決策が見つからなかったため、削除する必要がありました。 (提出 bugreport も)

これまでに見つかった同様のユーティリティはありません。したがって、私は独自のソリューションを実装する必要がありましたが、それはおそらく素晴らしいではありませんが、それは私のために機能します:それは私がプラグ/プラグを抜くanyデバイスのサウンドとビジュアル通知で私に通知しますデバイスのタイトルはlsusbを介して受信されるため、何らかの不明なデバイスを接続すると、少なくともそのvendor_id:product_idが表示されます。私はそれが好きです。

次のようになります。

enter image description here

インストールの詳細

Ubuntu 12.04、Xubuntu 12.04、Xubuntu 13.04、Linux Mint 13でテスト済みです。他のUbuntu派生製品でも動作するはずです。udevを使用して* nixシステムで動作することを願っています。

  • プロジェクトページ に移動し、そこからソースを取得して、どこかに配置します。メインスクリプトはmy-udev-notify.shの1つだけですが、アーカイブにはプラグ/アンプラグ通知のサウンドに加えていくつかの情報が含まれています。詳細についてはreadme.txtを参照してください。
  • 次の内容のファイル/etc/udev/rules.d/my-udev-notify.rulesを作成します(my-udev-notify.sh!を解凍した実際のパスにパスを変更することを忘れないでください)。

 ACTION=="add",    RUN+="/bin/bash /path/to/my-udev-notify.sh -a add    -p '%p' -b '$attr{busnum}' -d '$attr{devnum}'"
 ACTION=="remove", RUN+="/bin/bash /path/to/my-udev-notify.sh -a remove -p '%p' -b '$attr{busnum}' -d '$attr{devnum}'"

この後、新しく接続されたデバイスで動作するはずです。つまり、デバイスのプラグを抜いた場合、通知は表示されません。しかし、プラグを差し戻すと、それが可能になります。 (はい、私にとっては、udevを再起動することなく動作します。うまくいかない場合は、再起動してみてください)

すべてのデバイスで機能させるには、システムを再起動するだけです。最初の起動時に多くの通知がある場合があることに注意してください(readme.txtの既知の問題を参照)。 2回目の起動では、通知はありません(システムがオフのときに新しいデバイスを接続しない限り)

カスタマイズ(視覚的および音声による通知のオン/オフ、または音声の変更)、アーカイブ内のreadme.txtで詳細を確認できます。

3
Dmitry Frank

Gnome-panel用のアプレットがあり、プラグインされたデバイスを確認して、それらを取り出すことができます。たとえば、ejecterがあります。これは、マウントされたリムーバブルデバイスを表示し、それらを取り出すことができるアプレットです。 KDEには、最近接続されたデバイスを確認できる非常にクールな通知システムがあります。デバイスが検出されたかどうかを確認するには、lsusbコマンドを使用してみてください。そして、あなたが冒険的なタイプなら、独自のudevルールを書くことができます。

2
tinhed

私はまだそのような通知があるとは思わない(そして今は通知を設定する場所を覚えていないようだ).

uSBデバイスを挿入すると、通常デスクトップに表示されます。Webカメラが実際に機能するかどうかを確認するには、Webカメラで使用する予定のプログラムを使用する必要があります。

たとえば、スカイプと言うと、誰も呼び出さずに、動作するかどうかをテストすることができます(オプション-ビデオデバイス-(それからかなり明白です(つまり、正しいことを覚えている場合)))

これがあなたの質問に答えることを願っています:-)

0
Stenen