問題タブ [libusb-1.0]

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 投票する
1 に答える
1305 参照

libusb - カーネル ドライバーが libusb-0.1 に接続されているかどうかを確認する方法は?

libusb-1.0 では、これに使用できますlibusb_kernel_driver_active:

libusb-0.1 を使用して確認するにはどうすればよいですか?

0 投票する
0 に答える
512 参照

c++ - Unicode をサポートする libusb c++ 文字列記述子

デバイスに関する情報を取得するために libusb を使用したいと考えています。すべての記述子を読み取り、これらの記述子内に関連付けられているすべての数値を出力できます。しかし、弦に問題があります。c++ で文字列記述子を適切に管理するにはどうすればよいですか?

次のような単純な関数を実装したいと思います。

インデックスに関連付けられた文字列を内部的に取得します。デバイス ハンドルは、クラス (関数はクラス メンバー) の属性と libusb_get_string_descriptor が静的に割り当てられるバッファーから取得されます。それ?

これらのものでユニコードを管理するにはどうすればよいですか? 何か案は?std::string の使用は正しいですか?

0 投票する
0 に答える
83 参照

usb - openSUSE-11.3 でのカーネル空間関数の変更

私は、学習目的で K-space USB ドライバーに取り組んできました。

announce_devices()USB ドライバーがルーチンを実行している間に含まれるカーネル空間ソース ファイルを調査した限り、バスに接続されているすべての USB デバイスの情報を出力する機能があることがわかりました。

USB デバイス ( BeagleBoard-xM、製品 ID とベンダー ID およびその他の記述子を設定し、それらはすべてlibusbコードを使用してユーザー空間で検証されます) を接続し、コンピューターを起動しました。を実行したときdmesg、自分のデバイスが表示されることを期待していました。しかし、それは現れませんでした。次に、作成したlibusbコードを実行すると、デバイスが表示されます。このため、デバイスが正常に列挙されていると想定しています。

質問 #1: libusb コードが完全に正常に動作している場合、挿入したモジュールで問題が発生しているはずですよね? コードは以下で共有されます。(このコードは、スタック オーバーフローの質問の回答として採用されています。1月に書いた Linux プラットフォーム上の USB デバイスのベンダー ID、製品 ID をプログラムで取得したところ、問題なく動作しました)。私のドライバーは正常に動作していますか?上記のコードを実装した後、(多数の動的モジュールに対して) カーネルを何度も再構築しました。

質問 #2: Kernel-Space 関数を変更announce_devices()して、自分のマシンでカーネルを再構築して検証することはできますか?

PS: 必要な組み込みが行われました。

必要なヘッダー ファイルのほとんどすべてを確認したので、 USBstruct usb_device{}デバイスのベンダ ID、製品 ID、および製造元の詳細に、メンバを持つ構造体を通じてアクセスできるはずであることがわかりましたstruct usb_device_descriptor{}。このネストされた構造にはidVendor, idProductiManufacturerおよびその他のメンバーがあります。//********************************************

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

linux - libusb_bulk_transfer() の読み取りが、USB 大容量記憶装置への libusb_bulk_transfer() の書き込みが最初に成功した後にハングする

USB大容量記憶装置で libusb_bulk_transfer() の書き込み/読み取りを実行しようとしています。しかし、最初の libusb_bulk_transfer() 書き込みが成功した後、私のプログラムはただハングし、libusb_bulk_transfer() 読み取りを実行しません。USB デバイスが取り外されていることがわかります。読み取りを実行できないのはなぜですか?

以下は私のコードのスニペットです:

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

arm - USB経由でswd出力を読み取るには?

USB 経由でデバイス ( STM32Fx Discovery )で実行されている組み込みアプリケーションから変数を読み取るstmicro STM-STUDIOに似たアプリケーションを作成しようとしています。ボード、できれば C# アプリケーションを使用するアプリからの出力 (変数) を読み取るにはどうすればよいですか?

0 投票する
0 に答える
1329 参照

linux - UbuntuのEclipseでネイティブhidapiとlibusb-1.0ライブラリをリンクする

私はUbuntuを初めて使用し、2日間オンラインで検索し、多くのソリューションを試しましたが、まだ運がありません. 誰かがこれを手伝ってくれるなら、私は感謝します。

WindowsでEclipseを使用してJavaでプログラムを作成しました。私のプログラムは、C 版 hidapi ライブラリ (.dll) の Java ラッパーである Java hidapi ライブラリを使用しています。Eclipse では、Java hidapi をビルド パスに追加し、C hidapi をネイティブ ライブラリとして設定すると、すべてが正常に機能します。

今、Ubuntuでも同じことをしたいと思っています。同じ Java hidapi が使用され、Linux 用の C バージョンの hidapi ライブラリ (.so ファイル) が使用されます。Linux 用の C バージョンの hidapi ライブラリを作成するとき、libusb-1.0 という別のライブラリが必要であることがわかりました (hidapi は低レベルの通信を処理するために必要です)。libusb-1.0 をインストールし (/usr/lib/i386-linux-gnu の下に libusb-1.0.so ファイルがあります)、Linux 用の C バージョンの hidapi ライブラリを作成します。私は小さなCプログラムを持っていて、それをbashでテストしました。動作するので、この時点まで、Linux用のlibsub-1.0.soとCバージョンのhidapiライブラリの両方libhidapi-jni.soが正しくインストール/生成され、実行時にシステムが共有 libusb-1.0.so ライブラリを見つけることができる小さな C プログラムは、libsub-1.0 がどこにあるかを明示的に言及しなくても (libusb-1.0.

だから私は日食に行きます。Eclipse ワークスペースをインポートし、ビルド パスに Java hidapi を追加し (Windows で行ったように)、Linux 用の C バージョンの hidapi ライブラリ (.so ファイル) を「lib」というフォルダー (.dll バージョンのネイティブ ライブラリも存在します)。そして、「ビルドパス」->「ビルドパスの設定」->「ライブラリ」タブ->「ネイティブライブラリの場所」で、ネイティブライブラリを「lib」に設定しました。したがって、この時点までの 2 つのネイティブ ライブラリは、/usr/lib/i386-linux-gnu の下の libusb-1.0 と、'whereever eclipse workspace is'/lib の下の hidapi.so です。最後に、ソース コードに次の 2 行を追加します。

System.loadLibrary("usb-1.0"); // この行を A と呼びます。

System.loadLibrary("hidapi-jni"); // この行を B と呼びます。

プログラムを Java アプリケーションとして実行します。行 A で「java.lang.UnsatisfiedLinkError: no usb-1.0 in java.library.path」が報告されます。そのため、Java ランタイムは libsub-1.0 の場所を見つけることができないと思います。

明確にするために、私はすでに次の試行を行いましたが、どれも機能しませんでした.

  1. 2 つのライブラリはそのままにして、vm 引数を追加します (実行 -> 実行構成 -> 引数 -> VM 引数): -Djava.library.path="${workspace_loc:project_name}/lib; /usr/lib/i386- linux-gnu". 行 A に「java.lang.UnsatisfiedLinkError: no usb-1.0 in java.library.path」が表示されます。
  2. 元に戻す 1. libsub-1.0.so を 'wherever eclipse workspace is'/lib に移動して、2 つの .so ファイルを一緒にします。.jar のネイティブ ライブラリの場所をこのフォルダーに設定します。B行で「java.lang.UnsatisfiedLinkError: blablabla: undefined symbol: libusb_control_transfer」が表示されます。したがって、libusbライブラリが見つかったと思いますが、シンボル(libusbにあるはず)はまだ解決されていません。これは本当に奇妙です。

誰でも私を助けることができますか?前もって感謝します。

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

c - libusb - セグメンテーション違反: 11

私は非常に基本的な、最小限のlibusbの例をコンパイルしていますが、出力は次のアプリケーションによって生成されます:

以下のとおりであります:

障害は 13 行目で発生します。

device_count = libusb_get_device_list(context, &devices);

上記を Mac OS X 10.9 で実行しており、Homebrew 経由で libusb バージョン 1.0.9 をインストールしています。

何が問題なのですか?

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

c - Mac OS X で C + libusb を使用して USB インターフェイスを要求できない

PIC32 マイクロコントローラを使用して構築した複合 USB + CDC デバイスを持っています。デバイスに接続して、Mac から CDC データ インターフェイス エンドポイントにデータを送信しようとしています。

デバイスは両方の HID ジョイスティックとして登録され、/dev/tty.usbmodemfa132 で Zoc ターミナルを使用してデバイスに接続できるため、回路が 100% 動作することはわかっています。Zocでコマンドを送信し、回路上のいくつかの LED を点滅させることで、これらのコマンドに応答する MCU を確認できます。

私はこれを Mac OS X Mavericks で実行していますが、数週間前に Mountain Lion で断念した同様の例で同じ問題が発生しました。

私のコードは次のようになります。

次のエラー出力が表示されます。

USB デバイスを他のプロセスから解放して解放し、要求できるようにする方法はありますか?

/dev/tty.usbmodemfa132 に接続して、USB デバイスの CDC インターフェイスとの間でデータを送受信する別の方法はありますか?

おそらくlibusbの代替ですか?

0 投票する
0 に答える
299 参照

windows - インストーラーを使用してアプリケーションと共に libusbx ドライバーを自動的にインストールするにはどうすればよいですか?

デバイス用のアプリケーションを作成し、libusbxライブラリを使用しました。アプリケーションを実行するには、Zadig を使用して WinUSB ドライバーをインストールする必要がありました。現在、Inno Setupインストーラーを使用してアプリケーションをデプロイしています。libusbx ライブラリの WinUSB ドライバを自動的にインストールするにはどうすればよいですか?