目次
はじめに
前回の記事でRaspberry Pi Zero WにOSをインストールして起動させるところまで実施しました。
この記事では、モニタやマウス・キーボードを追加購入することなく遠隔操作でRaspberry Piをセットアップ・操作する方法をまとめます。
今回使用しているのはamazonで購入した下記シリーズです。
必要なもの
ハードウェア
- Windows 10 PC(この記事ではホストPCと呼びます)
- Raspberry Pi Zero W または Raspberry Pi Zero WH
- Raspberry Pi OS入りのSDカード
- MicroUSB<->USB-A などの通信ケーブル
ソフトウェア
- ドライバ
- USB Ethernet/RNDIS Gadget
- アプリケーション
Bonjour←必要だとしているサイトもありますが、私の環境では不要でした
やること
ドライバの用意
まずは現状USB
シリアルデバイスとして認識されてしまっているRaspberry PiをUSB Ethernet/RNDIS Gadgetとして認識させる必要があります。
USB Ethernet/RNDIS Gadget とは、USBで接続されたデバイスを仮想的にネットワークデバイスとして認識させるためのドライバです。
以下のMicrosoftページが理解の助けになると思います。理解しなくても使えればよいです。
↓サムネイルだと404になっているかもしれませんが、クリックすれば閲覧できます。ハイフン2個がWordPressでうまく処理できないみたいです。。
USB Ethernet/RNDIS Gadgetをダウンロードしてきましょう。以下のサイトにある
Acer Incorporated. - Other hardware - USB Ethernet/RNDIS Gadget Windows 7,Windows 8,Windows 8.1 and later drivers
項目の[ダウンロード]をクリック。
下のような画面が出てくると思います。
通常はリンクをクリックすればダウンロードできるのですが、なぜかうまくいかないので[リンクを右クリック]->[リンクのアドレスをコピー]して普段使用しているブラウザでアクセスしてください。
ダウンロードできると思います。
cab拡張子のファイルがダウンロードできたと思います。ダブルクリックするとzipファイルのように中身を見ることができます。
全て選択して[右クリック]->[展開]を行ってください。
これでcabファイルの外に出すことができました。外に出したファイルを適当な名前のフォルダに入れておきましょう。私は今回は『RNDIS』フォルダに格納しました。
次はデバイスドライバの手動インストールを行います。
SDカードを指した状態でRaspberry Pi Zero Wの内側のMicroUSBとホストPCを接続してください。
デバイスマネージャから見たときにシリアルデバイスとして認識されているかと思います。
私の環境では『USB シリアル デバイス (COM7)』として認識されています。
[右クリック]->[ドライバーの更新]を押してください。
その後、[コンピューターを参照してドライバーを検索]をクリックしてください。
[参照]をクリック
先ほど作った『RNDIS』フォルダを選択して[OK]
[次へ]をクリック。
『ドライバが正常に更新されました』と表示されれば完了!
確認のためデバイスマネージャーを見てみましょう。
[ポート]からは『COM7』が消え、代わりに[ネットワークアダプター]に『USB Ethernet/ENDIS Gadget』が追加されています。
ネットワーク接続状況から確認するとイーサネットとして認識されていることが確認できます。
これによって、IPアドレスを指定してSSHなどで接続すれば遠隔で操作できるわけですね。
以上でドライバの用意は完了です。
SDカードのファイル修正
次にSDカードのファイルを修正しましょう。
具体的にはbootボリュームにある下記2ファイルの修正
- cmdline.txt
- config.txt
それと下記ファイルの追加です。
- ssh
これだけです。
まずはcmdline.txtの修正から。cmdline.txtをメモ帳等で開くと以下のように1行にズラッといろいろ記述されています。
console=serial0,115200 console=tty1 root=PARTUUID=e3d121de-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
こちらの最後に
modules-load=dwc2,g_ether
を追加します。下記のような感じです。
追加したらセーブしてファイルを閉じてください。
console=serial0,115200 console=tty1 root=PARTUUID=e3d121de-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles modules-load=dwc2,g_ether
次にconfig.txtを開いてください。色々書いてありますが、最後の行に
dtoverlay=dwc2
を追加してください。
追加したらセーブしてファイルを閉じてください。
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]
#dtoverlay=vc4-fkms-v3d
dtoverlay=dwc2
最後にsshという名前の何も書かれていないファイルを追加してください。
この状態で一度でもRaspberry Piを起動するとsshが有効になります。同時にbootボリュームからこのファイルが消えますが問題ありません。きちんと有効になっています。
ここまでで下準備は完了です。早速Raspberry Pi Zero Wにテスト接続してみましょう。
接続テスト
それではまずRaspberry Pi Zero WにSDカードを挿入しましょう。
そしてホストPCとRaspberry Pi Zero W内側のMicroUSBポートと接続します。
次に[Windowsキー]+[R]を押して
powershell
と入力します。powershellが起動します。
そうしましたら下記のコマンドを実行してください。
ここまでの準備がうまくいっていれば、raspberrypi.localというホスト名でRaspberry Pi Zero Wを見つけることができます。
PS C:\Users\username> Resolve-DnsName raspberrypi.local
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
raspberrypi.local AAAA 120 Answer 1234::5678:1234:5678:1234
raspberrypi.local A 120 Answer 169.254.235.14
ここまでできればあとはホスト名かIPアドレスを指定してssh接続すればよいです。
Raspberry Piの初期ユーザー名とパスワードは以下になります。
- pi
- raspberry
ssh接続の最初はknown_hostsにこのドメインが無いことを警告されますが、yesで大丈夫です。
PS C:\Users\username> ssh pi@raspberrypi.local
The authenticity of host 'raspberrypi.local (1234::5678:1234:5678:1234)' can't be established.
ECDSA key fingerprint is SHA256:1234567890123456789012345678901234567890.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
あとはパスワードを入力すれば以下のようにssh接続が成功します。
これでssh接続まで完了です。
上記画像でも言われていますが、パスワードの変更などいくつか初期設定をする必要があります。
下記リンクにRaspberry Pi Zero Wの初期設定をまとめましたのでよかったらご覧ください。
コメント