問題タブ [hotplugging]
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 カーネルが従うシーケンスは何ですか?
Linux Device Drivers 3rd Edition の The Linux Device Model に関連する章を読んで理解したように、新しいデバイスが構成されると、カーネル (2.6) は多かれ少なかれ次のシーケンスに従います。
- デバイスがドライバー コアに登録されている (
device_register()
デバイスの初期化を含む) - kobject がデバイス モデルに登録されている
- sysfs にエントリを作成し、ホットプラグ イベントを引き起こします。
- バスとドライバーがチェックされ、どれがデバイスと一致するかが確認されます
- 調査
- デバイスはドライバーにバインドされています
私の主な疑問は、ステップ 1 で、いつdevice_register()
呼び出され、どのフィールドがdevice
構造体に既に設定されている必要があるかということです。
デバイスが接続されているバスから呼び出されますか? コードの例はありますか?
私は何か誤解しましたか?:)
linux-kernel - Hal が Linux デバイスを認識するには何が必要ですか?
Linuxカーネルのデバイスドライバーについて学習しようとしています。そのために、次の3つのモジュールを作成しました。
- バスタイプ
- デバイスドライバー
- 今は何もしない偽のデバイスが登録されているだけです
バス、ドライバー、およびデバイスを作成するモジュールをロードできます。デバイスとデバイス ドライバーがバインドされていることを示すリンクを含め、すべてが sysfs に表示されます。
udevadm monitor
また、ドライバーとデバイスが読み込まれると、いくつかのイベントが発生することもわかります。
しかし、結局デバイスは hal に表示されません。hal に見えるようにするには、他に何が必要ですか?
winapi - Windows 7 で外部ディスプレイの接続または取り外しを検出する
Windows 7 を実行しているラップトップに外付け LCD モニターが接続されているか、接続されていない場合に、受信またはフックできるイベントまたは通知はありますか?
ラップトップはこれを検出し、ディスプレイを外部画面に切り替えて、特定の種類のサイズ変更または再配置を行いますが、アプリケーションがハンドラーを提供したり、スクリプトを添付したりできるように、これはオペレーティング システムによって公開されますか?
そうでない場合、時々ポーリングできるレジストリ設定または API はありますか?
(私は C + Win32 API のプログラミングを好みます)
アップデート
以下のマイクの答えは、WM_DEVICECHANGE
私をに導きましたがRegisterDeviceNotification()
、これまでのところ実装に苦労しています...
更新 2
この質問は、異なる言い回しで数回尋ねられましたが、私の意見ではまだ完全には答えられていません:
ide - virsh コマンドの問題
virsh attah-disk を使用して、追加のストレージ ソースとして qcow2 ファイルをアタッチしようとしています。私が使用している構文は(インターネットから)です:
VM が実行中または一時停止中の場合は、次のように表示されます。
VM がシャットダウンされている場合は、次のように表示されます。
hdc パラメータについてはよくわかりません。次のようにxmlファイルでもattach-device機能を使用してみました:
しかし、これは次のことも示しています。
多くの例を見ましたが、どれも機能せず、すべてがほぼ同じ構文でした。誰かがエラーを理解するのを手伝ってくれたら。
VM の完全な構成ファイル
linux-kernel - ハードウェアがコンピューターに接続されている場合、デバイスノードはどのように作成されますか?
ハードウェアがシステムに接続されているときにデバイスノードがどのように作成されるかを知りたい。
私が知っている情報:
ハードウェアがシステムに接続されると、デバイス名がドライバー名と比較され、一致する場合はプローブが呼び出されます。
知りたい情報:
デバイスノードはどの時点で作成され、誰が作成しますか?(言い換えれば、mknodがどこで起こっているのか知りたいですか?)
これは、何ヶ月にもわたって私の心を悩ませています。これがどこで起こっているのか、プログラムで教えてください。
embedded-linux - mdev があるときに udev を使用する理由はありますか?
TI の Arago ベース イメージに基づく組み込み Linux システムを実行しています。このディストリビューションには、mdev と udev の両方が付属しています。どちらも構成されていないように見えるので、どちらかを選択しようとしています。システムは非常に強力 (ARM A8 1 GHz) であるため、CPU パワーは実際には問題になりません。
では、mdev が利用可能な場合に udev を選択する理由はありますか? mdev が対処できないシナリオはありますか?
linux-kernel - Linux での USB のホットプラグ イベントの自動化
私はミニ ルーター プロジェクトに取り組んでおり、デバイスがルーティングされているときに USB ホットプラグ イベントを自動化したいと考えています。
使用されるカーネル バージョンは 2.6.30 で、CONFIG_HOTPLUG で構成されています。
ホットプラグ スクリプトをググってスクリプト化しましたが、holplug でイベントを取得できませんでした。誰でも解決策を垣間見ることができますか。
multithreading - CPUのホットプラグと厳密な1:1スレッド
厳密なアフィニティルールを持つアプリケーションにCPUホットプラグのサポートを追加したいと思います。各物理コアには正確に1つのスレッドが固定されていますが、CPUにスレッドを固定するために使用するロジックはかなり単純で、0..Nの間のCPUがオフラインの場合は失敗します。
サイズの配列がありMAX_CPU
、システム上の各CPUがその識別子によってスロットにマップされるアプローチを選択しました。たとえば、CPU0-> threads[0]
、およびCPU1->threads[1]
などです。アイデアは、システムのセットアップをミラーリングすることです。
ただし、オフラインCPUが最後以外の場所で検出された場合、失敗します。
さらに悪いことに、実行時にCPUがオフラインになると、固定されたスレッドのアフィニティマスクが予告なしにリセットされます。
最終的には、次のような複雑なセットアップをサポートしたいと考えています。
オンラインおよびオフラインのCPUの認識をアプリケーションに組み込むにはどうすればよいですか?
私は避けて/proc
おり/sys
、他のプラットフォーム、特にさまざまなBSDへの移植に興味があるので。今のところx86_64を使用しているので、このcpuid
手順が役立つ場合があります。
qt - DirectFB /QTEmbeddedのUSBマウスホットプラグ
DirectFB1.2.9またはQtEmbedded4.7.3でUSBマウスのホットプラグを実現する方法はありますか?
現在、私のアプリケーションスタックはこうです。
DirectFBはLinux入力デバイスノードを開きます。Qtは、QSocketNotifierを使用してDirectFBイベントバッファーを待機し、マウスデータを読み取るためのスロットを設定します。ただし、ホットプラグでは、DirectFBはデバイスノードを開かず、マウスイベントは生成されません。
私がこれまで理解している限り、ホットプラグはDirectFbではサポートされていません。
DirectFBによるLinux入力デバイスの処理を無効にして(directfbrcのlinux-input-devices =オプションからdevノードを削除)、QWS_MOUSE_PROTO = "linuxinput:.."を設定しようとしましたが、何らかの理由で機能しませんでした。マウスイベントが生成されなかったようです。なんとか機能させたとしても、QTはホットプラグのサポートも提供していないと思います。
それで、サブクラスQMouseDriverPluginクラスとQWSMouseHandleクラスに代わる唯一の方法はありますか?このため、実装したサブクラスをQTに使用させる方法はまだわかりません。つまり、これらのクラスを実装したら、フレームワークを処理するQT入力デバイスにそれらをリンクして、QWS_MOUSE_PROTO = "mylinuxinput:.."のようなものを設定するにはどうすればよいですか?
linux-kernel - ホットプラグ対応デバイスの sysfs エントリ
ドライバーコアがネットリンクを介してsysfsからudevまたはそれをリッスンしているいくつかのデーモンにueventを送信し、対応するドライバーがudevによって認識されてロードされることを読みました。しかし、ホットプラグされたデバイスに対応するこの sysfs エントリはどのように作成されるのでしょうか? .
ご回答ありがとうございます。