メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

Raspberry Pi3 Model BにOpenBSDをインストール

しばらくの間使わずに本棚に放置されていたRaspberry Pi3 Model BにOpenBSDをインストールし、家庭内用のsftpサーバを構築した。LinuxやFreeBSDはモニターとUSB接続のキーボードをRaspberry Pi3に繋げばサクッとインストール出来たが、OpenBSDはUSB/UARTコンバータの準備が必要だった。
当記事は、USB/UARTコンバータとRaspberry Pi3 Model Bとの接続に関するちょっとしたメモ。
※2024/3/9 追記有り


当方の環境
Windows10 64bit版 / RAM: 8GB / CPU: Intel Core i5 M460 2.53GHz
・Tera Term 4.106
OpenBSD 7.4 ARM64版
Raspberry Pi3 Model B Element14版
・CPU:Broadcom BCM2837 1.2GHz 4コア ARMv8 Cortex-A53
・RAM:1GB
・LANポート:RJ-45 10BASE-T / 100BASE-TX
・WLAN:IEEE802.11b/g/n(2.4GHz)
・USBポート:USB2.0 Standard A x4
・ストレージ:MicroSDカード差込み口 x1


USB/UARTコンバータの準備
Raspberry Pi3 Model BにOpenBSDをインストールする際や、SSHやTelnet等でログイン出来ない時のコンソール接続の際に、USB/UARTコンバータが必要となる。設定作業やトラブルシューティングの際にルータやスイッチ等通信機器にコンソール接続するような感じと捉えて良い。
Raspberry Pi4 Model Bの場合も、USB/UARTコンバータが必要なようである。
https://qiita.com/bsd-hacker/items/513449dab2a9b144373f

自分の場合、Amazonにて以下を購入した。
YMS PARTS CP2102 USB-TTLシリアル変換アダプターモジュール データ転送 5V/3.3V UART (1)
https://www.amazon.co.jp/gp/product/B09XMPPZYT/

購入したUSB/UARTコンバータをWindows PC側で認識させる為、以下のサイトからドライバをダウンロードしインストール。CP210x Universal Windows Driverではなく、インストーラの.exeファイルが含まれているCP210x Windows Driversの方がインストールが簡単ですぐ終わる。
https://jp.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads

ダウンロードしたCP210x_Windows_Drivers.zipを解凍し、CP210xVCPInstaller_x64.exeをダブルクリックをドライバのインストール開始。


Rasiperry Pi3とUSB/UARTコンバータの接続
USB/UARTコンバータの基盤にはTXDやRXD等の文字列が印字されているがRaspberry Pi3側は印字が無い為、以下のサイトを参照し、USB/UARTコンバータとRaspberry Pi3を接続した。
http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_uart_tips/
 
Raspberry Pi3のGPIO端子が右側に来るように置いた場合、USB/UARTコンバータ~Raspberry Pi3間の結線は以下のとおり。結線しづらい場合は、ケーブル同士がくっついている箇所を裂けるチーズみたいな感じで適当な長さまで裂くと結線しやすくなる。
USB/UARTコンバータ側もRaspberry Pi3側もきっちりと奥まで挿さないと、文字化けを起こすので注意。
・TXD:上から5番目の右側のGPIO端子
・RXD:上から4番目の右側のGPIO端子
・GND:上から3番目の右側のGPIO端子
 
以下の画像は、Raspberry Pi3 Model BとUSB/UARTコンバータの結線の様子


Tera Termの設定
自分の環境ではCOM6で認識。設定は以下のとおり。
Serial Port
・Speed:115200
・Data:8 bit
・Parity:none
・Stop bits:1 bit
・Flow control:none
Serial Portの設定が上記の内容である事を確認し、設定内容を保存。


OpenBSDのインストール開始
OpenBSDのイメージファイルをPCにダウンロード。自分の場合、miniroot版(miniroot74.img)を使用した。
MicroSDカードをフォーマットし、MicroSDカードにOpenBSDのイメージファイルを書き込みを行った後、Raspberry Pi3 Model BのMicroSDカードスロットにMicroSDカードを挿入。SDカードのフォーマットはSD Card Formatter、OpenBSDのイメージファイルの書き込みはWin32 Disk Imagerを使用した。
USB/UARTコンバータをPCに挿入し、LANケーブルをRaspberry Pi3に接続した後にRaspberry Pi3の電源を投入。OpenBSDのインストールが始まる。TeraTermの起動はRaspberry Pi3の電源投入の後で良い。
当記事ではOpenBSDのインストール手順や初期設定は割愛する。

ここから先はVirtualBoxやサーバやPCにOpenBSDをインストールする手順と同じだが、パーティション設定の際はWindowsの領域(MSDOSの領域)は消去せず残しておく点に要注意。自分の環境では、Windowsの領域を消去したらOpenBSDのインストールに必要なファイルセット取得元サーバの入力から先に進む事が出来なかった。


OpenBSDの稼働状況
低スペックなRaspberry Pi3 Model Bだが、家庭内向けのsftpサーバとして使うのであれば問題無いと思われる。
以下は、2ユーザがOpenBSDにsftp接続した状況でtopコマンドを実行した結果である。CPUおよびメモリの空き状況に余裕が有る状態だ。

$ uname -a
OpenBSD hoge.hogedns.jp 7.4 GENERIC.MP#0 arm64
$ 
$ 
$ top

load averages:  0.00,  0.00,  0.00                        hoge.hogedns.jp 13:16:36
33 processes: 32 idle, 1 on processor                           up 0 days 11:01:15
CPU0 states:  0.0% user,  0.0% nice,  0.4% sys,  0.6% spin,  3.6% intr, 95.4% idle
CPU1 states:  0.0% user,  0.0% nice,  0.0% sys,  0.0% spin,  0.0% intr,  100% idle
CPU2 states:  0.2% user,  0.0% nice,  0.2% sys,  0.0% spin,  0.0% intr, 99.6% idle
CPU3 states:  0.0% user,  0.0% nice,  0.0% sys,  0.0% spin,  0.0% intr,  100% idle
Memory: Real: 33M/643M act/tot Free: 219M Cache: 172M Swap: 0K/1182M

  PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
73046 root       2    0 1532K 3856K idle      kqread    0:02  0.00% sshd
    1 root      10    0 1000K  328K idle      wait      0:01  0.00% init
28740 root       2    0 1572K 3916K idle      kqread    0:00  0.00% sshd
 3359 _ntp       2  -20 1488K 2716K idle      kqread    0:00  0.00% ntpd
44798 root       2    0 1532K 3852K idle      kqread    0:00  0.00% sshd
 8588 _ntp       2    0 1368K 2432K idle      kqread    0:00  0.00% ntpd
33917 hoge      10    0 2388K 3152K idle      wait      0:00  0.00% bash
71947 _smtpd     2    0 2196K 4268K idle      kqread    0:00  0.00% smtpd
21383 root       2    0 1164K 1264K idle      kqread    0:00  0.00% cron
:
:

 
以下はneofetchコマンドの実行結果の出力内容。
OpenBSDのインストール直後はneofetchは入っていない為、使用したい場合はpkg_addコマンドを使って新たにインストールする必要が有る。
neofetchの設定ファイル.config/neofetch/config.conf を編集している為、以下の出力内容はデフォルト設定と異なっている。

$ neofetch
                                     _    hoge@hoge.hogedns.jp 
                                    (_)   ---------------------------- 
              |    .                      OS: OpenBSD 7.4 arm64 
          .   |L  /|   .          _       Model: Raspberry Pi 3 Model-B 
      _ . |\ _| \--+._/| .       (_)      Uptime: 11 hours, 4 mins 
     / ||\| Y J  )   / |/| ./             Packages: 15 (pkg_info) 
    J  |)'( |        ` F`.'/        _     Shell: bash 5.2.15 
  -<|  F         __     .-<        (_)    Terminal: /dev/ttyp0 
    | /       .-'. `.  /-. L___           CPU: ARM Cortex-A53 r0p4 (4) 
    J \      <    \  | | O\|.-'  _        GPU: VideoCore IVR 
  _J \  .-    \/ O | | \  |F    (_)       Memory Usage: 30MiB / 925MiB 
 '-F  -<_.     \   .-'  `-' L__           CPU Usage: 1% 
__J  _   _.     >-'  )._.   |-'           Disk Usage (/): 132M / 9.7G (2%) 
 `-|.'   /_.          \_|   F             NIC: RJ-45 x1 1000BASE-T 
  /.-   .                _.<              Local IP: 192.168.3.254 
 /'    /.'             .'  `\             Locale: C Lang ver.13.0.0 (POSIX) 
  /L  /'   |/      _.-'-\
 /'J       ___.---'\|                                             
   |\  .--' V  | `. `                                             
   |/`. `-.     `._)
      / .-.\
      \ (  `\
       `.\

$

 
 
2024/3/9 追記
コメント欄にてご指摘頂きましたとおり、OpenBSDの起動時にttyをfb0に向ける設定を入れる事でMDMI接続の外部モニタにOpenBSDの起動ログの出力とコマンドの実行が出来る事を確認した。

1. /etc/boot.confファイルは存在していない為、エディタで/etc/boot.confを新規作成し、set tty fb0を記入。

$ doas vi /etc/boot.conf
:
set tty fb0
(上記を編集後、保存し/etc/boot.confを閉じる)

2. 外部モニタをHDMI接続し、OpenBSDを再起動。
起動時のログが出力される事とログインおよびコマンド実行が出来る事を確認。
 
 
参照サイト
https://www.openbsd.org/ OpenBSD
https://www.openbsd.org/faq/faq4.html#Download imgファイルのダウンロード
https://iot.keicode.com/raspberry-pi/pinout.php Raspberry Pi 2/3 B ピン配置 (40ピン)
https://kraftsrv.net/openbsd/openbsd01.html Raspberry Pi 上での OpenBSD 環境構築
https://fuguita.org/ 河豚板
 
https://jp.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads CP210x Windows Driver
https://www.sdcard.org/ja/downloads-2/formatter-2/ SD Card Formatter
https://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager
https://github.com/dylanaraps/neofetch neofetch ※Linux版、 macOS版、Windows版有り