問題タブ [rndis]
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.
windows - RNDIS ガジェットを開始できません
TI Davinci dm365 ボード上で Linux カーネルを使用してビデオ カメラを構築しています。
このボードは RNDIS ドライバーをサポートしているため、私のカメラは Windows で「プラグ アンド プレイ」できます。これはある種の「Ethernet over USB」ネットワーク アダプタです。
Windows は RNDIS ドライバー usb8023.sys をロードして、ハードウェアと対話します。
複数のカメラが接続されていると、地獄が壊れて多くの問題が発生します。すべての USB ポートが機能しなくなることもありますが、ほとんどの場合、2 台のカメラのうちの 1 台が機能しなくなります。
古いドライバーをインポートして、usb8023.sys をコピーし、カメラごとに個別のドライバーをロードしようとしましたが、うまくいきませんでした。IP設定を確認し、再確認しました。
android - Android アプリと USB 経由の通信
わかりました、私はこれをいくらか調査しましたが、奨励されていませんが、とにかく尋ねて、私がやろうとしていることを具体的に説明します. 多分それは役立つでしょう!
USB 2.0 OTG コントローラを搭載した DaVinci プロセッサを搭載したカスタム ボードがあります。ハブとさまざまな周辺機器が接続されたホストとして構成しました。このプロセッサは、2.6.18 ベースのカーネルで Monta Vista Linux (MVL) 4.0 を実行します。このカスタム ボードは、いくつかのビデオ処理とストリーミングを行います。
Moto Droidも持っています。電話を USB デバイスとして DaVinci システムに接続すると、MVL が電話を列挙しますが、使用するドライバーが明らかにわかりません。私が修正できること。
したがって、私が理想的にやりたいことは、ボードと電話の間にデータ接続を確立し、電話をカスタムアプリで構成ツールとして使用できるようにすることです (最初は)。RNDIS は素晴らしいと思いますが、Android が USB ポートでそれをサポートしているかどうかはわかりません。次に、カスタム アプリが USB 経由でカスタム ボード上のサーバーへの接続を確立します。
adbとフラッシュファイルシステム以外に、AndroidがUSB経由でサポートしているものを誰かが証明できますか?
他の提案は大歓迎ですが、「Bluetooth」とは言わないでください。ビデオ用の帯域幅がありません。これは将来の目標です。
ありがとう!
cxf - RNDIS が接続を失った / 遅延の問題
Windows モバイル デバイスからデスクトップ上の CXF サービスに接続する、C# で記述されたその場しのぎの SOAP クライアントがあります。このデバイスが ActiveSync 経由で接続されると、RNDIS 接続用の仮想アダプターが作成されます。この仮想アダプタは、ゲートウェイ IP をホストに割り当てます169.254.2.2
。
ホスト名またはホストの IP を C# クライアントのアドレスとして設定して接続を試みると、すべてが完全に機能します。ただし、IP を RNDIS ゲートウェイ ( 169.254.2.2
) に設定すると、サーバー側で定期的に接続が失われます。CXF サービスは接続を試行し続け、最終的には成功しますが、これにより接続が大幅に遅くなります。モバイル C# 側のログにはエラーは報告されておらず、CXF サーバーでのみ報告されています。
なぜこれが起こっているのか、誰にも手がかりがありますか? 169.254.2.2
除外する前に、有効なエンドポイントとして使用できない可能性があると断言する必要があります。
ああ、それが役立つ場合に備えて、C# クライアントには169.254.2.1
、ActiveSync 接続後に DHCP を介して IP が付与されます。
windows - ネットワーク接続名を変更するカスタム Windows USB / RNDIS .inf ファイル
g_ether
Linux のドライバーを使用して、Ethernet over USB 経由で Windows 7 と通信する組み込み Linux デバイスがあります。デバイスが「ローカル エリア接続 2」以外のものとして Windows ネットワーク接続ダイアログ ボックスに表示されるようにするためにlinux.inf
、カーネル ソースのサンプル ファイルを変更しようとしています。src/Documentation/usb/
「ローカル エリア接続 2」のメイン タイトルの下にサブストリングとして表示されるカスタム文字列を指定するよう[strings]
に、ファイルの一部を変更しただけです。linux.inf
たとえば、「Local Area Connection 2」ではなく「Phils Device」とデバイスに表示させる方法がわかりません。誰かがこれを行う方法を教えてくれれば幸いです! ありがとう -
変更した .inf ファイルの例の一部:
参考文献:
http://msdn.microsoft.com/en-us/library/ff570620.aspx
http://msdn.microsoft.com/en-us/windows/hardware/gg463293.aspx
usb - RNDIS "複合デバイス" を起動できません
RNDIS デバイス、usbnet デバイス、モデム デバイス、自己定義の CDC デバイスを含む RNDIS 複合デバイスを開発しています。
PC は Win7 32 ビットを実行しており、デフォルトの RNDIS ドライバーを使用しています。RNDIS デバイスのみで Windows 列挙に応答すると、すべて正常に動作します。しかし、4 つのデバイスすべてを複合デバイスとして記述子に構成すると、Windows は引き続き正しく列挙され、他の 3 つのデバイスは正常に動作しますが、RNDIS デバイスで「エラー コード 10 を開始できません」という問題が発生します。
USB アナライザーを使用して USB データ フローをトレースしたところ、 Windows RNDIS ドライバーが「Set Configuration」の後に RNDIS 初期化メッセージを送信していないことがわかりました。
複合デバイス記述子は次のとおりです。
linux - Linux ベースの USB ガジェット デバイスによる静的ホスト RNDIS IP
Linux ベースのボードとホスト マシン (WinXP/Win7/Ubuntu など) の間で RNDIS 接続を確立する必要があります。
RNDIS ケーブルを使用してボードを接続すると、すべてのホストが IP アドレスを認識して解決を開始します。ボード側では、起動時にコマンドを実行して静的 IP を与えました。
しかし、ホスト マシンが RNDIS IP をネゴシエートするのに長い時間がかかり、そのたびに169.254.abc.xyz
.
169.254.1.2
この Linux ボードに接続されている任意のホストに静的 RNDIS IP (たとえば ) を割り当てたいと考えています。誰かがこれを達成する方法を決定するのを手伝ってくれますか? ホスト側では、特別な RNDIS ドライバーは使用しません。デフォルトの USB-Ethernet ドライバーがダウンロードされます。Linux のバージョンは 2.3.62 です。
usb - Windows CE 6 デバイスでレジストリ設定を表示/編集するにはどうすればよいですか?
ここでの 2 番目のコメントで、PaulH は、このリンクを提供して、レジストリ設定を変更することを提案しています。
ハンドヘルドへのファイルのコピーは昨日遅くまで問題なく機能していたため、レジストリの編集が本当にやりたいことかどうかわかりません。また、レジストリに変更が加えられて問題が発生したとは思えないので、レジストリを変更しても問題が解決するかどうかはまったくわかりません。
とにかく、レジストリにある値と、上記のリンク先の msdn ページに表示されている値を比較したかったのです。このページの「USB Function RNDIS Client Driver Registry Settings」セクションは、HKEY_LOCAL_MACHINE\Drivers の下のレジストリに保存されているいくつかの値を参照しています。
しかし、Windows CE ハンドヘルド デバイスで [スタート] > [ファイル名を指定して実行] > [regedit] を実行すると、RegEdit が何であるかがわかりません。
PC でそのようなブランチを探しましたが、HKEY_LOCAL_MACHINE の下に "Drivers" フォルダーがありません。私が持っているのは次のとおりです。
では、ハンドヘルド デバイスのレジストリ設定を調べるにはどうすればよいでしょうか。私のソフトウェアが古すぎる (レジストリの日付よりも古い) のではないかと思いましたが、上記のページは Windows CE 5.0 用であるため、明らかにそうではありません。
アップデート
以下、PaulHが推奨する「リモートレジストリエディタ」をダウンロードしました。ただし、ここではレジストリ設定を RNDIS から Serial_Class に変更することを推奨していますが、既に Serial_Class に設定されています。
これは、RNDIS に変更して何が起こるかを確認する必要があるということですか?
android - AndroidのUSBテザリングで作成したRNDISアダプタのIPを取得する?
USB テザリングを介して Android デバイスを Windows PC に接続すると、ネットワーク アダプター (リモート NDIS) が作成されます。このアダプターのIPアドレス、ゲートウェイなどの値は、Androidフォンによって設定されます(私は思う)。Android コードまたはアプリでこれらの値を取得する方法はありますか。ここのIPアドレスは動的です(そのままにしておきたい、静的IPを使用したくない)、このIPを使用して、USBケーブルを介してPCまたはサーバーにhttpリクエストを送信します。
linux - 複合 USB CDC ガジェットが Windows ホストで動作しない
USB デバイス インターフェイスを備えた組み込み Linux 3.19 システムを使用しています。デバイスは、仮想ネットワーク インターフェイス (RNDIS または CDC ECM) と 2 つの仮想シリアル ポート (CDC ACM) の 3 つの USB インターフェイスをホストに公開する必要があります。デバイスは、最新の Windows (7 以降) および Linux (3.16 以降) ホストと連携する必要があります。
Windows は CDC ECM をネイティブにサポートしていないため、2 つの USB 構成を実装することにしました (これは一般的なアプローチです)。
- 構成 1、次のインターフェイスを使用:
- RNDIS
- CDC ACM 0
- CDC ACM 1
- 構成 2、次のインターフェイスを使用:
- CDC ECM
- CDC ACM 0
- CDC ACM 1
これは、Windows がネイティブでサポートされている RNDIS で最初の構成を使用できるようにすることを目的としています (Windows は常に最初の USB 構成を選択します)。Windows 以外のホストが CDC ECM で 2 番目の構成を使用できるようにします。
スクリプトをまとめました (David Lechner による同様のスクリプトに基づく): http://pastebin.com/VtAusEmf。スクリプトの関連部分を以下に示します (スクリプト全体を表示するにはリンクをたどってください。かなり大きいです)。
結果として得られるガジェット構成は、Linux ホストでは問題なく動作します (2 番目の構成が選択され、3 つのインターフェイスすべてが使用可能で機能しています)。ただし、Windows ホスト (8 および 10 でテスト済み) は RNDIS インターフェイスのみを検出し、ACM インターフェイスを無視します。ただし、RNDISはうまく機能します。
RNDIS インターフェイスを無効にすると、Windows ホストは最初の ACM インターフェイスのみを検出し、2 番目のインターフェイスは無視します。
Windows が複合 USB デバイスを適切に処理できないのではないかと思います。そうですか、それとも私は何か間違ったことをしていますか? .inf
その場合、どのクラス ドライバをロードする必要があるかを指定して、独自のファイルを作成する必要がありますか?