LoginSignup
1
2

Raspberry Pi 400 を PC のキーボードにする方法

Last updated at Posted at 2024-01-09

Raspberry Pi 400 は、 Raspberry Pi とキーボードとが一体化されている端末です。
このキーボードを PC で使えたら便利なのになと思って調べてみました。

何故かビルドしないとうまく動かなかったので、今回はビルドする方法から紹介します。

環境

今回の環境は下記のとおりです。

開発端末

  • OS: Windows 11 Pro
  • CPU: Intel Core i7-9750H
  • メモリ: 64GB
  • GPU: NVIDIA GeForce RTX 2070 Max-Q

Raspberry Pi

  • 端末: Raspberry Pi 400
  • OS: Raspberry Pi OS with desktop
  • System: 64-bit
  • Kernel version: 6.1
  • Debian version: 12 (bookworm)

Raspberry Pi OS のセットアップ

まずは Raspberry Pi 400 を使うために Raspberry Pi OS のセットアップを行います。
特に特殊な作業はありませんが、よく分からない方は下記を参考にしてください。

OTGモードでの起動設定

sudo nano /boot/config.txt

末尾に追記します。

/boot/config.txt
dtoverlay=dwc2

再起動します。

sudo reboot

USB HID キーボードのビルド

前述の通り、ビルドを行う必要があります。
手順の通り行えば問題なく動くと思います。

必要なパッケージのインストール

sudo apt -y install libconfig-dev git cmake

GitHub リポジトリのクローン

git clone https://github.com/Gadgetoid/pi400kb

ディレクトリの移動

cd pi400kb

サブモジュールの更新

git submodule update --init

ビルド用のディレクトリの作成

mkdir build

ビルド用のディレクトリに移動

cd build

ビルド手順の生成

cmake ..

ビルドの実行

make

ビルドしたファイルの実行

PC と Raspberry Pi 400 を USB A to C ケーブルなどで接続します。
USB A 側を PC に接続し、 Type-C 側を Raspberry Pi 400 に接続します。

USB ケーブルで接続したら、 Raspberry Pi 400 を起動します。

モジュールの読み込み

sudo modprobe libcomposite

ビルドしたファイルの実行

sudo ~/pi400kb/build/pi400kb

PC と Raspberry Pi 400 の制御の切り替えは、 Ctrl + Raspberry でできます。
終了するには Ctrl + Shift + Raspberry を押します。

スタートアップへの登録

毎回、起動するのは面倒なので、スタートアップへ登録しておきます。

libcomposite モジュールの自動読み込み設定の追加

sudo nano /etc/modules

末尾に下記を追記して保存します。

libcomposite

設定例
環境によって異なりますが参考にしてみてください。

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

i2c-dev
libcomposite

ビルドした実行ファイルのコピー

sudo cp ~/pi400kb/build/pi400kb /usr/sbin/pi400kb

サービスへの登録

下記のコマンドを実行し、 pi400kb.service の中身をコピペして保存します。

sudo systemctl edit --force --full pi400kb.service
pi400kb.service
[Unit]
Description=pi400kb USB OTG Keyboard & Mouse forwarding

[Service]
ExecStart=/usr/sbin/pi400kb
User=root
Group=root
Type=simple
Restart=on-failure

[Install]
WantedBy=multi-user.target

サービスの開始

sudo systemctl start pi400kb.service

ステータスの確認

Active: active (running) と表示されていれば問題ありません。

sudo systemctl status pi400kb.service

スタートアップへの登録

sudo systemctl enable pi400kb.service

参考文献

下記のサイトを参考にさせて頂きました。

1
2
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
1
2