0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi Zero 2 Wを最新OS「Trixie」でHIDのマウスにする

0
Posted at

1. はじめに

雑談

前回に引き続き「外出先から自宅PCをマウスで操作したい」を実現するためにシステム構築(主に要素の実使用確認)を続けていく。
なお、前回このシステムを”遠隔ハードウェア環境”と呼称していたが、世の中ではKVMやIP-KVMと呼ばれているらしい。
「PiKVM」なる物があるとの事なので、そのうち使ってみたいと考えている。

本筋

Raspberry PiとPCを接続した時、PCから見てマウスやキーボードのようなHIDとして振舞わせるUSB OTGという機能がある。
これによりマウスの移動や右クリック、左クリックをRaspberry PiからPCへ送ることができる。
ただし、この機能はすべてのRaspberry Piでは使えないようである。少し調べてみたがRaspberry Pi ZeroシリーズとRaspberry Pi 4では確実に使えるということしか分からなかった。

2. 環境

■ Raspberry Pi OS
本記事投稿時点で最新の2025-12-04版
Based on Debian Trixie
Linux kernel 6.12.47 - 359f37f0faefb712add32a39f98751aea67d5c1f

■ 接続先PC
Windows10機

3. 実装方法

ポイント

・Raspberry PiにはBluetoothでキーボードを接続しておくこと
・Raspberry PiのOTG対応USBポートとPCを接続(電源供給と通信兼用)

1つ

user@RaspberryPi:~$ sudo nano /boot/firmware/config.txt
config.txt
dtoverlay=dwc2

を最終行に追記する。
前行に同じ記述があるが、構わず追記する。下図は参考。
ここで筆者はハマった。
image.png

2つ

user@RaspberryPi:~$ sudo nano /boot/firmware/cmdline.txt
cmdline.txt
dwc2

をtxt内の"rootwait"の直後に追記する。

3つ

user@RaspberryPi:~$ echo "dwc2" | sudo tee -a /etc/modules
user@RaspberryPi:~$ reboot

ここでPCでは「不明なデバイス」として認識されるはずである。

4つ

RapberryPi Zero WをUSBマウスにの中にあるhid.shを適当な場所に置く。ここでは以下の場所。
なおserialnumber等は好きに変更しても動作に影響はない。

user@RaspberryPi:~$ sudo nano /home/user/hid.sh

5つ

user@RaspberryPi:~$ chmod 777 /home/user/hid.sh
user@RaspberryPi:~$ sudo /home/user/hid.sh

ここでPCでは「USB入力デバイス」として認識されるはずである。

4. 動作確認

user@RaspberryPi:~$ sudo su
root@RaspberryPi:/home/user# echo -ne "\0\x30\0" > /dev/hidg0

右へマウスのポインタが移動したはずである。
/dev/hidg0のHIDマウスのレポートにX移動を書き込んだことで指定量が反映された結果である。

送信しているはマウスレポートは3バイト構成になっている。

# echo -ne "\[ボタン(byte0)]\[X移動(byte1)]\[Y移動(byte2)]" > /dev/hidg0
byte位置 役割 動作
byte0 ボタン x00 クリック解放
  x01 左クリック維持
  x02 右クリック維持
  x03 左+右クリック維持
  x04 中クリック維持
byte1 X移動 x01〜x7f 右へ移動 (x7fが最大)
xff〜x81 左へ移動 (x81が最大)
byte2 Y移動 x01〜x7f 下へ移動 (x7fが最大)
xff〜x81 上へ移動 (x81が最大)

右クリックをする場合は

# echo -ne "\x01\0\0" > /dev/hidg0
# echo -ne "\0\0\0" > /dev/hidg0

のように右クリック維持+クリック解放をすると動作する。

5. おわりに

RaspberryPiをマウスにする記事が複数あるが、どれもBullseyeやBookwormがベースOSとなっている頃のものが多く、現行のTrixieベースの記事がなかった。以下参考記事。
https://qiita.com/sgrk/items/7a818b2a059d5b06b209
https://toki-blog.com/pi4-gadget-mouse/
https://tomosoft.jp/design/?p=41233

Bullseyeで動作することを確認後、やはり最新OSで動かしたいと正月前から格闘し、ようやく動かすことができた。
初めTrixieで動作させようとした際にChatGPTにアドバイスを求めたが、最終的には「Trixieベース、Linux kernel 6.12.47では動かない」と結論付けられてしまった。学習元データにない、やや突っ込んだ内容には弱いのかもしれない。

次回はRaspberryPiのIPアドレスにアクセスするとマウスを動かすインターフェースが出るようなものを作りたい。ChatGPTが大いに役立つことを期待しながら筆を置く事とする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?