見出し画像

Raspberry Pi Zero 2 W で Stream Deckを無線化

こちらの記事で知ったStream Deckの無線化をRaspberry Pi Zero 2 Wで実現できたので手順をまとめておきます。

なお初めてRaspberry Piを使うこともありスターターキットを使用しました。スターターキットにはOSインストール済のmicroSDカード、電源ケーブル、変換アダプタが付属しているので迷いと手間が減り助かりました。

起動まで

  1. microSDカードを本体スロットに挿入

  2. USB-A接続キーボードをMicro USBに変換し左側のOn-The-Go(OTG)ポートに接続

  3. miniHDMIの出力をHDMIに変換しモニタに接続

  4. 電源ケーブルを右側のUSB Micro Bソケットに接続
    これで自動で電源が入る

初期設定

起動後に画面に表示される初期設定を進めた。

  1. Welcome to Raspberry Pi
    Next

  2. Set Country
        - Country: Japan
        - Language: Japanese
        - Timezone: Tokyo
        - Use US Keyboard: チェックなし

  3. Change Password
    必要であれば変更

  4. Select WiFi Network
    WiFiネットワーク選択。後ほどMacbookからログインし操作したかったためここでパスワード入力し接続した。

  5. Update Software
    一旦飛ばした。ここでUpdateしても良いと思う。

余談だがiPhoneで画面表示して作業。少しテンションが上がった。

sshログイン設定

ここでsshで外部ログインする設定を追加した。

  1. 本体から電源コードを抜き、microSDカードを取り出し

  2. microSDカードにアダプタを付けMacbook Proで読み込み

  3. bootフォルダ直下に「ssh」という空ファイルを作成

  4. 再度microSDカードを挿し込み起動

macOSでterminalを起動し以下実行。問題ない場合はsshでログインできる。

$ ssh pi@raspberrypi.local

そもそも疎通しているか分からない場合はpingを打ってみる

$ ping raspberrypi.local

追加設定

sshログイン後に各種追加設定をmacOSから行った。
パッケージ更新

$ sudo apt-get update
$ sudo apt-get upgrade -y

IPアドレス固定化のため、まずは現在の設定確認

$ ifconfig

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (ローカルループバック)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.2  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::b0c1:1b42:55ef:52fe  prefixlen 64  scopeid 0x20<link>
        ether d8:3a:dd:45:ce:31  txqueuelen 1000  (イーサネット)
        RX packets 132  bytes 19174 (18.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 140  bytes 22615 (22.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

dpcpcd.conf を開く

$ sudo nano /etc/dhcpcd.conf

以下の内容を記載。ここでは「192.168.11.201」とした。

# IPアドレス固定化
interface wlan0
static ip_address=192.168.11.201/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

本体再起動で反映される。

VirtualHereインストールと設定

$ cd /usr/local/sbin
$ sudo wget https://virtualhere.com/sites/default/files/usbserver/vhusbdarm
$ sudo chmod +x vhusbdarm

$ sudo vi /etc/systemd/system/virtualhere.service
[Unit]
Description=VirtualHere USB Sharing
Requires=avahi-daemon.service
After=avahi-daemon.service
[Service]
ExecStartPre=/bin/sh -c 'logger VirtualHere settling...;sleep 1s;logger VirtualHere settled'
ExecStart=/usr/local/sbin/vhusbdarm -i
Type=idle
[Install]
WantedBy=multi-user.target

$ sudo systemctl daemon-reload
$ sudo systemctl enable virtualhere
$ sudo systemctl start virtualhere

$ sudo reboot

注意: Raspberry Pi Zero 2 Wは64bit CPUだがmicroSDに既存で入っていたOSは32bitだった。vhusbdarm64では動作せずvhusbdarmを使用。カーネルbit数は以下で確認可能

$ getconf LONG_BIT

32

起動しているサービスを確認するにはこちら

$ sudo systemctl list-unit-files -t service | grep enabled

Stream Deckを接続し動作確認

Stream DeckをMicro USBに変換し左側のOn-The-Go(OTG)ポートに接続。
本体の電源を入れる。電源にモバイルバッテリー使用すると無線化された状態となる。

macOSにVirtualHere USB Clientをインストールし起動。
https://www.virtualhere.com/usb_client_software
無事動作していると「Stream
 Deck」が表示される。

Stream Deck を右クリック
Use this device でネットワーク越しにStream Deckが使用可能となる

Windowsの場合

VirtualHere Clientアプリを起動後、Specify Hubs…からHubを追加する必要がありました。
Hubs > Add から 192.168.11.xxx:7575 (例) を追加

別PCで設定する際

別の場所でssh接続する際に "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" と表示される場合があります。以下で解決できるはず。

$ ssh-keygen -R 対象名

トラブル対応

1. VirtualHere Clientアプリで対象が表示されない

Raspberry Pi Zero本体に設定した固定のIPアドレスが他端末と重複していて、Clientアプリで対象が表示されないことがありました。


参考リンク

この記事が気に入ったらサポートをしてみませんか?