問題タブ [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 - Linux - 同じデバイス ノードに書き込む 2 つのデバイス
さて、私の Linux ボックスには 2 つのジョイスティックが接続されており、/dev/js0 と /dev/js1 として表示されます。私の問題は、ジョイスティックを使用するサードパーティのアプリケーション (変更できない) があり、1 つのノードしかリッスンできないことです (したがって、一度に 1 つのジョイスティックしかリッスンできません)。
アプリケーションがどのノードを「リッスン」するか (/dev/js0 など) を決定できますが、指定できるノードは 1 つだけです。これは、アプリケーションが使用するジョイスティックを決定できることを意味しますが、一度に 1 つのジョイスティックしか使用できないことも意味します。私は、このアプリケーションが両方のジョイスティックを両方のジョイスティックを同時に使用できる方法を考え出すことを任されました。
2 つのジョイスティック ノードの出力を 3 番目のノードにリダイレクトし、アプリケーションをそのノードにリダイレクトする方法はありますか? これらの 2 つのドライバー/ノードを 1 つに「マージ」する別の方法はありますか?
mknod を使用して新しい 3 番目のノード (dev/js2) を作成しようとしましたが、js0 と js1 の出力を js2 にリダイレクトする方法がわかりませんでした。
また、小さなプログラムと udev を使用してこれを行うことに反対しているわけではありませんが、どうすればよいかわかりません。
ありがとう
linux - udev での hal-get-property と hal-find-by-capability の置き換え?
hal-get-property
またはhal-find-by-capability
udevなどの非推奨の HAL ツールを使用する bash スクリプトを移植する必要があります。HALは、HAL が udev にマージされたと述べていますが、このスクリプトを udev に適切に移植する方法に関する有用な情報を見つけることができませんでした。
例: すべてのストレージ ハードウェア (HAL を使用) のリストが必要な場合は、実行できます。
hal-find-by-capability --capability storage
次のような UDI (Unique Device Identifier) のリストが表示されます。
/org/freedesktop/Hal/devices/storage_model_Virtual_disk
/org/freedesktop/Hal/devices/storage_serial_00000000000000000001
/org/freedesktop/Hal/devices/platform_floppy_0_storage
/org/freedesktop/Hal/devices/storage_model_Virtual_disk
リムーバブル かどうかを知りたい場合は、次のクエリを発行できます
hal-get-property --udi /org/freedesktop/Hal/devices/storage_model_Virtual_disk --key storage.removable
そしてそれは答えるでしょうtrue
or false
.
私の質問は、
HAL なしでこれらのことを行うにはどうすればよいですか?
sysfsutils ( systool
) は機能する可能性がありますが、適切な代替品ではないようです。
これは動作しudevadm info
ますか?
notifications - kset->uevent_ops にフックしてデバイス通知を取得する
Linux カーネル バージョン 2.6.34 より前は、uevent_ops にフックして、ブロック デバイス ドライバーの init_module でデバイスの追加/削除通知を取得していました。
現在、ドライバーを 3.2 に移植したいのですが、kset->uevent_ops が定数になっているため、それに接続できません。デバイスドライバーでブロックデバイスドライバーの通知を取得する方法はありますか? また、ブロック デバイスに通知チェーンを使用できますか?
前もって感謝します。
shell - udev ルール ファイルからシェル スクリプトに引数を渡す
rules ファイルでは、マウント用の引数「LABEL」と「DEVNAME」を渡すことでスクリプトが実行されます。
usb_mount.sh ファイルで、引数の値を次のように出力します。
一部のデバイスには空の LABEL フィールドがあるため、DEVNAME がラベルとして出力されます。bash スクリプトでは、引数を二重引用符で囲むことができ、引数が null の場合でも機能します。
args を udev ルールに渡すのと同じことは何ですか?
この問題の回避策は、引数の順序を入れ替えることです。信頼できる方法はありますか?
c - RHEL 5 libudev.h のコンパイル エラー そのようなファイルまたはディレクトリはありません
すべて、「apt-get」からudevライブラリを取得した後、Ubuntuでコンパイルされるコードをコンパイルしようとしています。RedHat 5 でコンパイルしようとしていますが、次のコンパイル エラーが発生します。
エラー: libudev.h: そのようなファイルまたはディレクトリはありません
質問は次のようなものです: QSerialDevice: Compilation error "libudev.h: No such file or directory"
ただし、Ubuntu で発生する障害ではなく、RedHat 5 で発生しています。udev ライブラリの RPM ファイルを探してみたところ、次のリンクから 1 つの RPM ファイルを取得しました。RPM ファイルをダブルクリックすると、次のように表示されてインストールに失敗しました。
「ソースパッケージをインストールできません」「インストール用のパッケージが指定されていません」
udev-147-2.42.el6.src.rpm は RPM の名前です
どんな助けでも大歓迎です。Google で検索すると、この libudev.h は Ubuntu 専用だと思われ始めていますか? これは本当ですか!?
linux - どのデバイスがどの/dev/ttyUSBポートに接続されているかを知る方法
2つのWavecom16ポートモデムを使用しています。モデムをシステムに接続すると、すべての/dev/ttyUSB
ポート名を一覧表示できますが、どのモデムにポート0〜16が含まれていて、どのモデムにポート17〜32が含まれているのかを知りたいのですが。
モデムは1日に何度も取り付けたり取り外したりする可能性があるので、モデムが切断されて再び接続されたときにもログを記録したいと思います。
c / c ++ / php script / node.jsを使用してこれを行う方法はありますか?
linux - シリアル ポートから一貫してデータをログに記録するにはどうすればよいですか?
2 つのシリアル接続を介してデバッグ データを送信する 2 つのカスタム ハードウェアを処理する必要があります。これらのシリアル接続は、2 つのシリアル - USB コンバーターを経由します。Serial-to-USB デバイスは、同じベンダー番号、デバイス番号、および明らかに同じシリアル番号を持っています。
問題は次のとおりです。2 つのシリアル ポートを別々にログに記録したいのです。カスタム ハードウェアは常に再起動する必要があり、同じものに接続するかどうか/dev/ttyUSB*
は完全にランダムです。毎回同じデバイス パスを選択させるにはどうすればよいですか? 接続されているポートに依存するようにすることもできますが、それはハックのようです。
そこで、次のように udevadm の出力に対して diff を実行しました。
シリアルの grep (両方で同じ):
他の情報:
シリアルポートから読み取るために PuTTY を使用しています。
OS:
linux - udevadm 解決の使用は何ですか?
udevadm setlet コマンドの使用を見てきました。init スクリプトでそのようなコマンドを使用するのは何ですか?
ubuntu - Stellaris Launchpad のサンプル UDEV ファイル
Stellaris LaunchpadをEnergia IDEで動作させようとしています。プログラムをアップロードし、udev エントリを作成する必要があるシリアル ポートを実行するように指示されました。
私はLinuxに比較的慣れていないので(Ubuntuではありませんが)、サンプルのudevファイルを提供してください。
Stellaris ボードはポート /dev/ttyACM0、VID=1cbe、PID=00fd にあります。
今のところこれを使っています - >
前もって感謝します
python - システムに 32 個以上の USB サウンド カードが必要
私は、36 個のキーボードと 36 個の USB サウンド カードを 1 台のコンピューターに接続する必要がある教育的なマルチシート プロジェクトに取り組んでいます。3.6.3-030603-generic カーネルで Ubuntu Linux 12.04 を実行しています。
これまでのところ、36 のキーボードから入力を取得し、カーネル パニック (カーネルの更新前に発生) を発生させることなく 36 のサウンド カードを認識することができました。$ lsusb | grep "Audio" -c
出力36
. _
ただし、$ aplay -l
合計で 32 の再生デバイスがリストされています (「内部」サウンド カードを含む)。また、$ alsamixer -c 32
「無効なカード インデックス: 32」と表示されます (0 から 31 までしか機能しません。合計でも 32 です)。
私の質問は、これらのコマンドでリストされていない場合、他のサウンド カードにアクセスするにはどうすればよいですか? 私は Python でアプリケーションを作成しており、選択できるライブラリがいくつかありますが、このため、合計で 32 台のデバイスに制限されるのではないかと心配しています。どんなガイダンスも役に立ちます。
ありがとう。