LoginSignup
1
6

More than 1 year has passed since last update.

Raspberry Pi4 と Mac のみで始めるラズパイ初期設定 (USB-OTG)

Last updated at Posted at 2021-01-18

用意するもの

USB OTG(USB On-The-Go)とは?

こちらサンワプライ様の公式HPから拝借しました。
https://www.sanwa.co.jp/seihin_joho/otg/index.html

USB機器同士を接続して使うために制定されたUSBインターフェース規格で、USB IF(Implementers Forum、USBの規格制定団体)が2001年12月にUSB2.0に追加する仕様として定められました。「USB On-The-Go」、「USB OTG」とも表記される。

Raspberry Pi4 簡易設定

今思っていること
「もしかしたらWi-Fi設定いらなくね?」
↑やっぱり必要ありませんでした。
とりあえずやって行きましょう。
まずやること

ssh設定

macでマウントしているMircoSDの/boot以下へsshファイルを作成する

macのshellで実行
touch /Volumes/boot/ssh

WiFi設定

今回はUSB-OTGを使用しbridgeし通信させるのでWi-Fi設定はしません。
本来の趣旨とは変わってしまいますが、Wi-FI設定までしたい方は下記のように/Volumes/boot/wpa_supplicant.confへ書き込みます。

/Volumes/boot/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=JP
network={
     ssid="アクセスポイント名"
     psk="パスワード"
}

できればコマンド1つで書き込みたいので下記を実行します。

Macのshellで実行
echo 'Wi-Fiの設定' && \
{
    echo 'ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev'
    echo 'country=JP'
    echo 'network={'
    echo '    ssid="アクセスポイント名"'
    echo '    psk="パスワード"'
    echo '}'
} > /Volumes/boot/wpa_supplicant.conf && \
cat /Volumes/boot/wpa_supplicant.conf

USB-OTG設定

この記事を参考にしました。
Web記事:Raspberry Pi 4とMacをUSB type Cケーブルで接続してMacのインターネット接続を共有する手順
Web記事:【2019年12月版】ラズパイとMacの接続はUSB-C ケーブルだけでOK?!→ラズパイ七変化@qiita
今回面倒を減らすためにsedコマンドを使用し置換作業をします。
MacにLinuxで採用されてるGNU版sedbrewを使いインストールしてください。
MacにインストールされているsedとLinuxのsedは別物です。
このWeb記事:MacでGNU版sedを使う@くにぽんず☆きちめきパラダイスを参考にしてください。

Macのshellで実行
brew install gnu-sed
Macのshellで実行
echo 'USB-OTGの設定' && \
cp /Volumes/boot/config.txt /Volumes/boot/config.txt.bak && \
cp /Volumes/boot/cmdline.txt /Volumes/boot/cmdline.txt.bak && \
echo "dtoverlay=dwc2" >> /Volumes/boot/config.txt && \
gsed -i "s/rootwait/rootwait modules-load=dwc2,g_ether/g" /Volumes/boot/cmdline.txt

やってること-

  • 念の為この2つをバックアップ
    • /Volumes/boot/config.txt
    • /Volumes/boot/cmdline.txt
  • config.txtの編集
    • dtoverlay=dwc2を末尾へ追記
  • cmdline.txtの内容をsedコマンドを使用し編集
    • rootwaitの文字列をrootwait modules-load=dwc2,g_etherへ置換

ここまでのまとめ

Mac
brew install gnu-sed
Mac
touch /Volumes/boot/ssh && \
echo 'USB-OTGの設定' && \
cp /Volumes/boot/config.txt /Volumes/boot/config.txt.bak && \
cp /Volumes/boot/cmdline.txt /Volumes/boot/cmdline.txt.bak && \
echo "dtoverlay=dwc2" >> /Volumes/boot/config.txt && \
gsed -i "s/rootwait/rootwait modules-load=dwc2,g_ether/g" /Volumes/boot/cmdline.txt

Macbook to RaspberryPi4 (TypeC to TypeC)接続の確認

さて,RaspberryPi4へMicroSDを挿しMacとTypeCケーブルで繋ぎましょう
電源が入ったのをLED点灯で確認したらMacの環境設定->共有の設定から
①RNDIS/Ethernet Gadget
②インターネット共有の順でチェックを入れてください。
ウイルス対策ソフトなどによっては画像のように新規ネットワークが検出されますので適宜対応してください。
スクリーンショット 2021-01-18 14.53.38.png

arpコマンドでIP-Addressの確認
今回Wi-Fiなどの設定はしてないので少し変わったIPアドレスが設定されているはずです。
ssh pi@ipアドレスもしくは
ssh pi@raspberrypi.localで接続してください。
もし弾かれた方はpingを送りIPアドレスを確認後ssh-keygenコマンドで削除してから再接続してみてください。

Macとssh接続できない場合
ping raspberrypi.local
ssh-keygen -R IPアドレス
Macのshellで実行
arp -a

スクリーンショット 2021-01-18 23.08.48.png

Raspberry Pi4初期設定 CLI (ヘッドレス設定)

最後は簡単に初期設定をしていきましょう。
今回はraspi-configをCLIから利用できるnonintで設定していきます。
raspi-config nonintの詳しい設定はこのGit-Hubのソースコードを参考にしてください。
今回やっていいることは以下のとおりです。

  • 日本時間に合わせる
  • localeをja_JP.UTF-8に変更する
  • Wi-Fi利用国に日本を設定し,Wi-Fiのロックを解除する
  • リポジトリを国内のミラーサイトに変更する
  • aptアップデート&アップグレード
  • NASなどで使うファイルシステム(NTFS, exFat)をインストール
  • githubアカウントに登録している公開鍵を raspiに登録
  • IP固定化(USB-OTG)
  • hostnameの設定
RaspberryPi
sudo raspi-config nonint do_change_timezone Asia/Tokyo && \
sudo raspi-config nonint do_change_locale ja_JP.UTF-8 && \
sudo raspi-config nonint do_wifi_country JP && \
sudo sed -i "s/deb.debian.org\/debian /ftp.jp.debian.org\/debian /g" /etc/apt/sources.list && \
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && \
sudo apt install -y exfat-fuse exfat-utils ntfs-3g && \
ssh-import-id gh:自分のGit-Hubユーザ名 && \
echo 'IP固定化の設定' && \
{
  echo '#イーサネットLANケーブルで接続する際のIP設定--------------'
  echo 'interface eth0'
  echo 'static ip_address=192.168.0.15/24'
  echo 'static routers=192.168.0.1'
  echo 'staitc domain_name_servers=192.168.0.1 8.8.8.8 8.8.4.4'
  echo '#Wi-Fiで接続する際のIP設定--------------'
  echo 'interface wlan0'
  echo 'static ip_address=192.168.0.15/24'
  echo 'static routers=192.168.0.1'
  echo 'staitc domain_name_servers=192.168.0.1 8.8.8.8 8.8.4.4'
  echo '#USB-OTGで接続する際のIP設定------------'
  echo 'interface usb0'
  echo 'static ip_address=192.168.2.15/24'
  echo 'static routers=192.168.0.1'
  echo 'staitc domain_name_servers=192.168.0.1 8.8.8.8 8.8.4.4'
} >> /etc/dhcpcd.conf && \
echo 'ネットワーク設定を表示します' && \
cat /etc/dhcpcd.conf && \
sudo raspi-config nonint do_hostname raspi4 && \
echo 'USB-OTGのIPアドレスは 192.168.2.15 に設定されています' && \
echo 'Wi-Fiの設定' && \
{
    echo 'ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev'
    echo 'country=JP'
    echo 'network={'
    echo '    ssid="アクセスポイント名"'
    echo '    psk="パスワード"'
    echo '}'
} > /Volumes/boot/wpa_supplicant.conf && \
sudo reboot

終わりに

大変お疲れさまでした。
後でWi-FI設定をすると予想以上に手間だったのでここで書き込んでしまうことにしました。
あまりUSB-OTGの趣旨とは違ってしまいますが私の備忘録ですのでご了承ください。
これでいろいろな接続機器がいらなくなり手元で簡単にラズパイを使えるようになりました。
このUSB-OTGという機能はどうやらRaspberryPi3 B+などのUSB to USB Type-MicroBでも動作するようです。OSは他のOS例えばUbuntuとかでもできるんですかね?
モジュールが用意されていればできそうですよね?
また時間があるときに色々試して行きたいと思います。

--追記 2021/01/20
ubuntuはわかりません。
ubuntuでは最初の状態でg_ethrモジュールが読み込めてない(と言ううより無い)気がしています。
ここでバグとして報告され修正されているようですがちょっと初期状態での始め方は見つけれませんでした。ここの報告はあくまで起動後にUSB-OTGを試しているような気がしてます。
https://bugs.launchpad.net/ubuntu/+source/linux-raspi2/+bug/1861070

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