問題タブ [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.
linux - デバイスがすでに接続されている場合、udevignore_deviceは機能しません
これがこの質問をするのに適切なサイトであるかどうかはよくわかりませんでしたが、これは一種のプログラミングの質問であり、SOの群衆は3つのサイトの中で最もLinux指向であると考えたのでここに置きました。
とにかく、私は、ユーザーが物理的にデバイスを切断したかのように、ソフトウェアの観点からデバイスの切断をシミュレートする方法を見つけようとしています。これまでのところ、/ etc / udev/rules.dに10-nano.rulesというudevルールを作成しました。
このルールは、デバイスを無視する場合に正常に機能しますが、デバイスが切断されて再接続された後でのみ機能します。しかし、私がやりたいのは、ルールを記述して、デバイスが切断されたかのように無視できるようにすることです。sudoを使用した場合と使用しない場合で「udevadmtrigger」を試しましたが、何らかの理由で、デバイスが接続されている間はこのルールを適用できません。助言がありますか?
ちなみに、10-nano.rulesを削除してから、「sudo udevadm trigger」を実行することで、無視されたデバイスを再接続できますが、上記のように、その逆ではありません。(何らかの理由で、そのコマンドを実行すると、システム時間とインターネットが台無しになります)
udev - udev ルールを使用して切断中の USB デバイスを識別する方法は?
Xorg の xinerama 機能を使用する 2 つの LCD があります。各 LCD 画面にはタッチスクリーンがあり、それぞれの USB ラインに接続されています。
「/var/log/messages」ファイルを調べると、次のように表示されます。
何らかの理由で、ある時点で USB バスがリセットされたように見え (または何かおかしい)、2 つのタッチスクリーンが反転します (左の LCD を押すとマウスが右に移動し、右の LCD を押すとマウスが右に移動します)。左)。
問題をデバッグするために、デバイスがリセット/切断されたとき (または何でも) をログに記録する udev ルールを作成しようとしました。しかし、udev は接続時にデバイスの完全な詳細 (製品、製造元、idProduct、idVendor など) を報告するように見えますが、削除するといくつかのバス番号しか表示されません。どうしてこれなの?
ACTION=="remove", KERNEL=="input*" ルールを取得すると、それがどのデバイスかを知る方法がありません! 誰もこれを回避する方法を知っていますか?
linux - udev を使用した nic の自動名前変更と番号付け
特定の MAC アドレスを持つ NIC の名前を自動的に変更し、番号を付ける udev ルールについて書いています。
結果のルールは、ほぼ同じことを行うはずです75-persistent-net-generator.rules
(カードの MAC アドレスの最初の 3 バイトに一致し、このベンダーのカードがインストールされている量に応じて「mycard*」という名前を付け、名前変更ルールを に書き込みます70-persistent-net.rules
)。
これは私が今までどれだけ来たかです:
「THE PART I DON'T GET」が行うべきタスクは、カード (eth3 としましょう) の名前を mycard0 に変更すること、またはシステム内で一致する MAC アドレス mycard1 を持つ 2 番目のカードである場合などです。
前もってありがとう、フロクラ
linux - udevされたデバイスファイルの自動アクセス許可?
これはSuperUser.comからの複製です。向こうの人々は私を助けるのに十分賢くも喜んでもいませんでした。多分それは管理者の質問よりもプログラマーの質問です:
内蔵のタッチパッドに加えて、USB経由で接続された4匹のマウスからの入力を読み取るアプリがあります。これはUbuntu9.10では問題ありません。haldは新しいデバイスに気づき、udevはそれらの新しいエントリを...と呼び/dev/input/mouse4
ますmouse7
。
私のアプリは通常のユーザーアプリとして実行されます。のファイルはに/dev
属し、root
他の人が読み取ることはできません。
一度行うのは問題ありませんchmod a+r mouse?
が、デバイスは再起動するたびに、そしてダンげっ歯類がプラグインまたはプラグアウトされるたびに出入りします。
誰かが私にスクリプトか何かを操作して、私chmod
が自動的に起こるように教えてもらえますか?
linux - udev ルールのスクリプトが実行されない
ラップトップで Ubuntu 9.10 (Karmic Koala) を実行していますが、USB キーボードが接続されている (numlock オン) か、接続されていない (numlock オフ) かに応じて NumLock を自動的に切り替えたいと考えています。
これを実現するために、最初に「numlockx」パッケージをインストールしました。numlockx on
そして正常にnumlockx off
動作します。
デバイス システムに接続するには、udev を使用すると考えました。私は StackOverflow に関する他の質問を見て、「Writing udev rules」を読みました。しかし、udev ルールを機能させるのに問題があります。
まず、dmesg
出力の例を次に示します。
以前udevadm info
はデバイス情報を収集していました:
そこで、次のファイルを作成しました/etc/udev/rules.d/usb-keyboard.rules
。
udevadm test
ルールが正しいことを確認するために使用しました:
そして、これが「削除」テストです。
問題は、キーボードを差し込んだり抜いたりしても、NumLock の状態が変わらないことです。udev サービスを再起動しようとしましたが、うまくいきませんでした。私の udev ルールは間違っていますか? 私はこれについて間違った方法で進んでいますか?
bash - OSX の udev 機能の代替
外部ハードドライブ用のカスタム ファイル/チェックイン チェックアウト スクリプトを作成しようとしていますが、スクリプトの一部は Linux マシンからのもので、正常に動作することをテストしましたが、udevinfoを使用し、OS X には udev がないため、同じ機能を提供するものはありますか?
誰かが代替案を知っていますか?または、bash を使用して OSX でこれを実現する方法はありますか?
linux - Linuxでlibudevを使用して読み取りをブロックする際の問題
次のルーチン(Linuxではlibudevを使用)を使用して、USBHIDデバイスとして構成されたPICマイクロコントローラーからデータを読み取ります。データは、PICマイクロコントローラに接続されているボタンが押されたとき、または離されたときにのみ送信されます。
ルーチンにPICコントローラーからのメッセージがありません。これは、以下のポーリングの呼び出しが正常に動作していないことが原因であると思われます。
ポーリングの呼び出しは、最初のメッセージが読み取られると、1秒間確実にブロックされます。最初のメッセージが読み取られるとすぐに、ポーリングの呼び出しは、本来のように1秒間(1000ミリ秒)ブロックするのではなく、すぐに戻ります。
読み取りのたびにデバイスを閉じてから再度開くことで、この問題を回避しました。これにより、ポーリングは正しく動作しますが、デバイスを閉じて再度開くことがメッセージが失われる原因である可能性があると思います。
関数PicDeviceDescriptor()は、デバイスが存在することを確認するためにデバイスをチェックします。PicDeviceDescriptor関数の関連する詳細は、デバイスがどのように開かれるかを示しています。
私は何か間違ったことをしていると確信していますが、私はその問題をグーグルで検索し、関連する答えを見つけることができないようです。どんな助けでも大歓迎です-Thx。
linux - udev はスレッドセーフですか?
それぞれが独自の udev コンテキストを作成し、ハードウェアの変更の監視を開始する複数のスレッドを生成することに危険があるかどうかを知りたいです。各スレッドが独自の udev コンテキストを持っていれば、すべて問題ないと考えられます。ただし、呼び出しがグローバル/静的変数のようなudev_new
、またはudev_monitor_new_from_netlink
アクセスする場合、問題が発生する可能性があります。
README もドキュメントもマルチスレッドについて何も言及していないので、ここで質問します。もっと何か知っていますか?
linux-kernel - カーネルモジュールで udev をサポートするには?
Linuxカーネルモジュールを移植しています。以前はそれ自体のデバイス ファイルを作成していましたが (カーネル空間からのシステム コールでダーティ ハックを使用)、今は udev でこれを行いたいと考えています。カーネル モジュールでの udev のサポートに関するドキュメントはどこにありますか?
モジュール自体はデバイスドライバーではないことに注意してください。これは、一連のドライバーのマルチプレクサーとして機能します。そのため、デバイス (PCI デバイスなど) を登録するデフォルトの方法は、私のタスクには適していません。
python - udev を使用して、挿入されたビデオ メディア (DVD など) に関する情報を見つけるにはどうすればよいですか?
HAL の使用から純粋な udev の使用にアプリケーションを移植しようとしています。これは python で書かれており、gudev ライブラリを使用しますが、どの言語でも例を見たいと思っています。次の方法で、接続されているすべてのビデオ デバイス (カメラなど) を取得できます。
これは次のようなものを出力します:
ブロックデバイスのリストを取得することもできますが、どうすればよいですか:
CD/DVD ドライブかどうか教えてください。
ドライブがリムーバブル メディアをサポートしている場合、メディアが現在挿入されているかどうかを確認しますか?
メディアの名前/ラベルを教えてください (例: DVD の場合は FUTURAMAS1)。
移植しようとしている元のコードはhttp://github.com/danielgtaylor/arista/blob/045a4d48ebfda44bc5d0609618ff795604ee134f/arista/inputs.pyにあります。
どんな助けでも大歓迎です!
更新: 以下に回答を追加します。
上記のコードは、次のようなデータを出力します。
助けてくれてありがとう!