問題タブ [udev]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4564 参照

linux - Ubuntu Linux Udev ルール: udev ルールを使用して C で記述されたプログラムを実行することは可能ですか?

私は現在、USB デバイスが接続されているときに C で書かれたプログラムを実行するプロジェクトに取り組んでいます。これは udev ルールで可能ですか?

現在、デバイスを接続したときに Hello World スクリプトを実行するようにしています。ただし、複数回実行されます。

現在のパス:/etc/udev/rules.d/98-local.rules

現在のルール:

SUBSYSTEMS=="usb"、ACTION=="追加"、RUN+="/usr/local/bin/USB.sh"

スクリプトのパス: /usr/local/bin/USB.sh

脚本:

実行可能ファイルを実行するために、次のようなことを試しました。

ターミナルでは usr/games/blackjack と入力しても機能しますが、USB デバイスが挿入されていると機能しません。ただし、スクリプトが実行されていることはわかっています。これらを同じファイルにまとめており、hello world が作成されているからです。

また、次のように、ユーザー アカウントから実行可能ファイルを実行しようとしました。

ただし、これも機能しません。

デバイス権限の問題ですか、それとも実行可能ファイルを実行できないだけですか?

*注: http://reactivated.net/writing_udev_rules.htmlにある udev ルールの説明をよく読みました。

0 投票する
2 に答える
6692 参照

python - python udisks - デバイス情報の列挙

udisks バイナリを使用して、接続されたディスクに関する多くの情報を取得できるようです。

udisks は明らかに、利用可能な udev のデータを列挙しているだけです。

Pythonを使用してこの情報を取得することは可能ですか? たとえば、デバイスのシリアル、マウント ポイント、およびサイズを取得したいだけだとします。

0 投票する
1 に答える
4454 参照

linux - LinuxでのUSBデバイスの取り出し

Pythonでdbusを介してUdiskを使用してusbデバイス(この場合はKindle)をアンマウントしていますが、KindleをUSBモードから通常のインターフェイスに戻すため、イジェクト信号を送信したいと思います。

Udiskは、実際のドライブではないため、DriveEjectを許可しません。これは、機能であると私は考えています。与えられたエラーは次のとおりです。

Udisksのドキュメントには、排出可能なプロパティが記載されています。

ID_DRIVE_EJECTABLE

ドライブ内のメディアが物理的に排出可能かどうか。ドライブが本当にイジェクト可能なメディアを使用する(または使用しない)場合にのみ、これを1(または0)に設定します。特に、eject(1)を介してコマンドを送信する必要があるiPodやKindleデバイスなどでは、これを設定する必要はありません。デスクトップユーザーセッションでは、リムーバブルデバイスがイジェクト可能かどうかに関係なく、このオプションが提供されるためです。このプロパティが設定されていない場合、ヒューリスティックを使用してメディアがイジェクト可能かどうかを判断します(オプティカル、Zip、またはJazメディアを使用するドライブはイジェクト可能と見なされます)。

ただし、デスクトップユーザーセッションからこれを行う方法については説明していません。

(Nautilusを使用すると、デスクトップシェルから問題なくイジェクトでき​​ます。「eject」シェルコマンドはアンマウントされますが、sudoがないとイジェクト信号をデバイスに送信しません)

Udisksを使用してこれを行うための合法的な方法はありますか?そうでない場合、nautliusはどのようにそれを実行しますか?

0 投票する
2 に答える
18567 参照

python - USBデバイスUDevおよびD-BUS

Ubuntu 10.10で現在接続されているUSBデバイスのリストを取得し、UDevとD-BUSを使用して接続または接続解除されているデバイスなどの変更を監視しようとしています。私はD-BUSを使ったプログラミングにかなり慣れていません。私は1つの例を見ました:Linux:USBキーボードが接続されているかどうかを検出する方法は、HALを使用しているものだけであり、HALが非推奨であることを知っています。動作するコードを見つけて少し変更しましたが、USBスティック、メディアプレーヤー、CD-ROMデバイスなどのストレージデバイスのみでは動作しません。私は、マウス、キーボード、USBカメラ、USBに接続されているものすべてを充電し、プログラムに認識させたいと思っています。これは基本的に私が持っているものです(http://moserei.de/2010/01/08/accessing-devicekit-with-dbus-and-python.html):

どんな助けでも感謝されるでしょう。よろしくお願いします、Calota Romeo

0 投票する
5 に答える
22272 参照

linux - Intelグラフィックで「monitorplugged」のコールバックを作成するにはどうすればよいですか?

Intelグラフィックスを搭載したeeepcを持っています。VGA経由で接続されたモニターのイベントにスクリプトをフックしたいと思います。どうやってするか?

0 投票する
2 に答える
6100 参照

linux - udev デバイス情報ではなく、デバイス応答に基づいて udev でデバイス シンボリック リンクを作成します

3 つの USB シリアル コンバーター (FTDI USB-RS232) に 3 つの異なるシリアル デバイスを接続しています。それらを接続すると、期待どおりに一般的なデバイス名 /dev/ttyUSBx が取得されます。いくつかの udev ルールを記述しようとすると、udevadm は、一部のデバイス シリアル ID 属性を除いて、3 つのデバイスに対して同じ出力を表示します。

これらのシリアル ID はすべてのデバイスで変更されるため、別の USB シリアル コンバーターを使用すると、ルールが機能しなくなります。そのため、シリアル コンバーターに接続されている特定のデバイスと通信し、その応答によってデバイスを識別する方法が必要です。

"Writing udev rules" HOWTOでは、PROGRAM 機能を使用して外部プログラムを呼び出してデバイスに名前を付ける方法について次のように述べています。

PROGRAM は、デバイス名を生成するプログラムを実行するために使用されます (それ以外のことはすべきではありません)。それらのプログラムが実行されているとき、デバイスノードはまだ作成されていないため、デバイスに対して何らかの操作を行うことはできません。

ルールの例: SUBSYSTEM=="usb", PROGRAM="/bin/device_namer %k", SYMLINK+="%c"

そのため、デバイスを識別するためにそこから /dev/ttyUSBx に書き込むことはできません。次に、RUN機能がありますが、udevがRUNの出力を取得しないため、新しいSYMLINKを作成できないようです。

ルールの例: SUBSYSTEM=="usb", RUN="/bin/program"

その RUN スクリプトから udev にシンボリック リンクを作成するように指示できますか? または、そこから手動でそのシンボリックリンクを作成できますか?

ありがとう

0 投票する
1 に答える
1087 参照

usb - udev および usb フレームバッファ デバイス

特定の USB フレームバッファ デバイス (DisplayLink) の固定デバイス名を取得したい。ベンダー ID を使用すると、udev ルールを使用して一致を取得できます: SUBSYSTEM=="usb", ATTRS{idVendor}=="17e9", GROUP="video"

しかし、SYMLINK+="fbdl" を使用すると、/dev/fbX デバイス (X=1,2,3..) へのシンボリック リンクは取得されませんが、bus/usb/... へのシンボリック リンクは取得されません。これは同じではありません。 device-file (リンク) は xorg.conf では機能しません。SYMLINK の代わりに NAME を設定することは同じです: 実際のデバイス /dev/fbX はそこにとどまって動作し、指定された NAME は追加で作成されますが、他のターゲットです (動作しません)。ここで何が起こっているのですか?? /dev/input/eventX と SYMLINK のような場合、その eventX へのリンクを取得します。なぜここにいないのですか?

ありがとう!(Ubuntu 11.04)

0 投票する
1 に答える
829 参照

usb - udevを介してプロセスにコマンドライン引数を送信する方法は?

USBデバイスの検出時に、udevにプロセスを起動させ、USBデバイスのシリアル番号を引数としてプロセスに渡そうとしています。

ファイル:/etc/udev/rules.d/10-FTDI2232H-usb.rules

ACTION=="追加"、SUBSYSTEM=="usb"、ATTR{idVendor}=="0403"、ATTR{idProduct}=="6010"、RUN+="/opt/usbprog %s" ATTR{シリアル}

printf スタイルの引数がこれを達成する方法であるかどうかはわかりません。どんな助けでも大歓迎です。

0 投票する
3 に答える
2903 参照

linux - UNIXの「特殊文字」ファイルを作成する

/ dev / zeroの精神で、読み取られるたびに文字「7」を生成するファイル/ dev/sevenを作成したいとします。このようなことをどのようにすればよいですか?カーネルを変更する必要がありますか?

0 投票する
1 に答える
880 参照

linux - ポーリングしないとudevモニターが遅い

推奨どおりにudevを試しました(udevadm monitor)。VGA-Plug は、約 10 分後に報告されます。二秒。ポーリングすると、変更はほぼ即座に報告されます。そこで何が起こるの?