しばらくの間使わずに本棚に放置されていた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版有り