HIDとしてのPi Zero:PiゼロからUSBを介してPCマウスを制御する方法?


10

私は何日も検索した後、この主題について明確なものが見つからなかったので、これを求めています。そのため、質問がすでに存在する場合は、申し訳ありません。

私は、Raspberry PiからPCマウスを制御したい、ただの楽しみのためのプロジェクトで働いています。ユーザー入力はRPに接続されているあらゆる種類のハードウェアによって行われますが、私の主な疑問は、RPからUSBを介してPCに移動命令を送信するように制御する方法についてです。

PCにUSBデバイスとして認識させるにはOTGモードを有効にする必要があることはわかっていますが、USBを介してマウスの動きをPCに送信し、Windows / Linuxに認識させる方法についてはわかりません。「Linux-USBガジェットAPIフレームワーク」が存在することがわかりましたが、それを使用した例はなく、実際にそれが最善のアプローチかどうかはわかりません。

手伝いや手伝いをしてくれませんか?

どうもありがとうございました。


ここが出発点だと思います:kernel.org/doc/Documentation/usb/gadget_hid.txtそこにhid_gadget_test言及されているプログラムがあります。私には便利なpiがありませんが、apt-file search hid_gadget_test(そしてapt install apt-file必要に応じて最初に)チェックしてもよいでしょう。
ゴルディロックス

@goldilocksいいえ、あなたのリンクはかなりスポットに見えます、それは確かにフェンスの右側です。反対側では、定期的なHIDドライバーのようなライブusbkbd.ko
Dmitry Grigoryev

@goldilocks nah、Linuxでは、「ガジェット」は常にホストではなくスレーブとして実行することを意味します。
ホッブズ

@hobbsそうです- g_etherゼロをイーサネットガジェットとしてテザリングするときにどちらの端が使用されているかを思い出せなかったため、2番目に推測しました(ただし、スレーブ側であり、ホスト側のドライバーがより一般的ですusbnet)。
goldilocks

回答:


6

g_hid@goldilocksで言及されているモジュールを使用してみてください。

  1. に行dtoverlay=dwc2を追加してconfig.txt再起動します
  2. ドライバドライバを挿入します modprobe g_hid
  3. を実行しますhid_gadget_test /dev/hidg0 keyboardここに提供さているサンプルコードを使用して、最初にプログラムをビルドする必要がある場合があります

(カスタムドライバーを作成せずに)目的を達成するためのもう1つのより柔軟な方法は、gadgetfsを使用することです。このアプローチを使用して、小さなARMコンピュータをUSB / Bluetoothキーボード/マウス/ゲームパッドに変えたプロジェクトが少なくとも1 つわかっています。

残念ながら、Rapsberry Piのgadgetfsのステータスは不明です。このスレッドはそれが機能しないことを示唆していますが、作者が正確に何をしようとしたのかは不明です。それでも試してみることをお勧めします。

  1. に行dtoverlay=dwc2を追加してconfig.txt再起動します
  2. ガジェットFSドライバーを挿入します modprobe gadgetfs
  3. ユーザースペースファイルシステムを mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/

あなたは、この時点ではエラーが出ない場合は、同じようgadgetfsライブラリを使用することができます。この1カスタムUSBデバイスをプログラムします。


1
ご回答どうもありがとうございました!両方の方法を試して、できるだけ早くお知らせします。
Desproposito

1
@Despropositoこれを機能させたことがありますか?私はアップデートが大好きです
サイレン

。@Sirensは、すみません、私はそれが働いて得ることができませんでした:(しかし、私はすぐに私は別の方法を試してみる時間を持っているとしてとして別のアプローチを試してみましょう買う
Desproposito

@Desproposito正確に機能しなかった理由を教えてください。あなたmodprobeは運転手にできましたか?マウントしてもらえますgadgetfsか?ビルドして実行できますhid_gadget_testか?
Dmitry Grigoryev 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.