Raspberry Pi Zero 2WでPwnagotchiを構築する手順:Waveshare V4とPiSugar2バッテリーの組み合わせ方

Published on: | Last updated:

最近考えてたんだけど、Pwnagotchiのこと。ちょっと久しぶりに作りたくなって。でも、昔のやり方だと、今のパーツじゃ動かないことが多いんだよね。特にRaspberry Pi Zero 2 WとWaveshareの新しいディスプレイの組み合わせ。

だから、自分用のメモも兼ねて、2024年版というか…最新版の作り方を残しておく。本当に動く、最低限のステップだけ。

で、何を作るの?

一言で言うと「持ち運びできるWi-Fiハンドシェイク収集機」。AIが顔文字で状態を教えてくれる、ちょっと可愛いガジェット。

でも、大事なことだから先に。これはあくまで教育と研究目的。許可なく他人のWi-Fiに何かするのは、ダメ、絶対。

完成形のイメージ。ポケットに入れて持ち運べるサイズ感。
完成形のイメージ。ポケットに入れて持ち運べるサイズ感。

必要なものリスト

基本的にはこれだけ。日本国内ならAmazonとかでだいたい揃う。PiSugar2は公式サイトから買うのもアリだけど、まあ、時間はかかるかも。そこはトレードオフだね。

パーツ 個人的なメモ
Raspberry Pi Zero 2 W ヘッダーピンがはんだ付け済みのやつ。絶対そっちが楽。今からやるならZero Wじゃなくて「2 W」。64bitじゃないとOSが動かないから。
Waveshare 2.13インチ e-Paper HAT (V4) ここが一番のハマりどころ。V4じゃないと設定ファイルが違う。古い記事だとV2とかV3で、その通りやっても画面真っ暗になる。
PiSugar2 これがあるとモバイルバッテリーから解放される。Pwnagotchiを「ペット」として連れ歩くなら必須かな。
MicroSDカード 32GBあれば十分。それ以上は、まあ、趣味の世界。速度はそんなに気にしなくてもいい。
Micro USBケーブル 注意点。充電専用じゃなくて、データ転送できるやつ。意外と持ってない。100均のとかだと充電しかできないのが多い。

ステップ1:OSの準備

まず、SDカードにOSを焼く。公式イメージはもう更新されてないから、有志がフォークしたやつを使う。

GitHubで「pwnagotchi」で検索して、一番新しそうなリポジトリのリリースページへ。そこで「Raspberry Pi Zero 2 W」とか「64-bit」って書いてあるイメージをダウンロードする。これを間違えると起動しない。

ダウンロードしたら、Balena Etcherを使ってSDカードに書き込む。これはもう、画面の指示通りに進めるだけだから簡単。

ステップ2:PCとつなぐ(最初の関門)

OSを焼いたSDカードをラズパイに挿して、PCとUSBケーブルでつなぐ。ラズパイ側のポートは2つあるけど、真ん中の「USB」って書いてある方。

で、ここ。Windowsだと、たぶん最初はうまく認識されない。「USBシリアルデバイス」とか、そんな感じで見えるはず。

ネットワークアダプタとして認識させるために、RNDISドライバってやつを手動で入れる必要がある。これ、米国のフォーラムとかだと当たり前のように書いてあるけど、日本の記事だと意外とスルーされてたりする。

ドライバインストールの前後。左が失敗、右が成功。
ドライバインストールの前後。左が失敗、右が成功。

ドライバをダウンロードして、解凍して、`setup.inf`を右クリックして「インストール」。それでうまくいくはず。

成功すると、デバイスマネージャーの「ネットワークアダプター」に「USB Ethernet/RNDIS Gadget」ってのが現れる。これでやっと通信できる。

ステップ3:SSHでログイン

PC側でネットワーク接続の設定を開いて、さっきの「RNDIS Gadget」に静的IPを割り当てる。

  • IPアドレス: 10.0.0.1
  • サブネットマスク: 255.255.255.0

これで、Pwnagotchi(IPアドレスはデフォルトで10.0.0.2)と話せるようになる。

ターミナルからSSHで接続してみる。

ssh pi@10.0.0.2

パスワードは `raspberry`。ログインできれば、とりあえず第一段階はクリア。

ステップ4:ディスプレイとバッテリーの設定

ここからが本番。ハードウェアをちゃんと動かす設定。

ディスプレイ(Waveshare V4

まず、ラズパイの電源を切って、ディスプレイをGPIOピンにしっかり差し込む。で、また電源を入れる。

この時点では、たぶんまだ画面は真っ暗なまま。設定ファイルをいじる必要がある。

sudo nano /etc/pwnagotchi/config.toml

このファイルを開いて、ディスプレイの設定を探す。で、こう書き換えるか、追記する。

ui.display.type = "waveshare_4"

`waveshare_v3`とかじゃなくて、`waveshare_4`。これがV4ディスプレイ用の設定。保存して、サービスを再起動。

sudo systemctl restart pwnagotchi.service

これで、ディスプレイに可愛い顔が表示されるはず。やっとPwnagotchiらしくなってきた。

PiSugar2バッテリーをラズパイの裏に取り付けた様子。
PiSugar2バッテリーをラズパイの裏に取り付けた様子。

バッテリー(PiSugar2)

これも後付け。まず、ラズパイとバッテリーをネジで固定する。物理的に。

次に、I2C通信を有効にする。

sudo raspi-config

「Interfacing Options」→「I2C」で有効にする。

そしたら、PiSugar2のプラグインをインストールする。これはもう、公式のコマンドをそのまま実行するのが一番早い。

# PiSugarのマネージャーをインストール
curl http://cdn.pisugar.com/release/Pisugar-power-manager.sh | sudo bash

# 必要なライブラリとプラグインをダウンロード
git clone https://github.com/PiSugar/pisugar2py.git
git clone https://github.com/PiSugar/pwnagotchi-pisugar2-plugin.git

# プラグイン用のディレクトリを作成
sudo mkdir -p /usr/local/share/pwnagotchi/installed-plugins/

# ライブラリとプラグインを正しい場所にリンクする
sudo ln -s ~/pisugar2py/ /usr/lib/python3/dist-packages/pisugar2
sudo ln -s ~/pwnagotchi-pisugar2-plugin/pisugar2.py /usr/local/share/pwnagotchi/installed-plugins/pisugar2.py

…ちょっと待って、Pythonのパスが環境によって違うかも。`python3.11`とか、自分の環境に合わせてパスは確認した方がいい。上の`python3`は汎用的な書き方。

最後に、また`config.toml`を編集して、プラグインを有効にする。

main.custom_plugins = "/usr/local/share/pwnagotchi/installed-plugins/"
main.plugins.pisugar2.enabled = true
main.plugins.pisugar2.shutdown = 5 # バッテリーが5%になったらシャットダウン
main.plugins.pisugar2.sync_rtc_on_boot = true

保存して、またサービスを再起動。これでディスプレイにバッテリー残量が表示されるようになる。%表示が出たときは、ちょっと嬉しい。

で、これからどうする?

これで、とりあえず「動く」Pwnagotchiができた。自立して、勝手にハンドシェイクを集めてくれる。

でも、これはスタート地点。`config.toml`には、もっと細かい設定がたくさんある。AIの性格を変えたり、特定のSSIDを無視したり。あとは、もっと面白いプラグインを探して追加していくのもいい。Bluetoothテザリングとか、GPS連携とか。

正直、一番楽しいのはこのカスタマイズの時間かもしれないね。


みんなはどんなプラグイン使ってるんだろう。もし「これ面白いよ」っていうのがあったら、ぜひ教えてほしいな。

Related to this topic:

Comments

  1. Guest 2025-06-20 Reply
    へえ、Pwnagotchiってマニアックな趣味感満載だね!ネットワークハッキングの世界、めっちゃ興味深いわ。素人目線だけど、ラズパイと電子ペーパーの組み合わせ、マジでクールだと思う。
  2. Guest 2025-06-04 Reply
    ちょっと待って!この手順、セキュリティリスクやばくない?個人的にはもっと安全な方法とか、詳細な倫理ガイドラインが欲しいんだけど。誰か詳しい人、アドバイスください〜