Raspberry Pi 4B に FreeBSD 13.0-RELEASE ARM64を入れて SSDからブート

Raspberry Pi 4B で FreeBSD 13.0-RELEASE を USB接続した SSD にインストールしてみました
結構手間がかかります


１．準備
　　インストールイメージファイルをSSDに書き込むパソコンまたは Raspberry Pi OS からもできます
　　ラズパイで書き込む場合はラズパイOSのSDカードで立ち上げて、SSDを接続して書き込みます
　　ラズパイのファームウェアを最新にしておきます
　　コンセントから電源供給できるUSBハブ（ラズパイからSSDへ電源供給するとラズパイが電源容量不足になる場合があります）
　　USB接続できるSSD
　　ラズパイは４Gか８G、無線LANは使用できないのでLANケーブルを接続します

２．インストールイメージを書き込むツールは Raspberry Pi Imager を使用します
　　https://www.raspberrypi.org/software/
　　を参照してください

３．インストールイメージファイルのダウンロード
　　https://download.freebsd.org/ftp/releases/arm64/aarch64/ISO-IMAGES/13.0/FreeBSD-13.0-RELEASE-arm64-aarch64-RPI.img.xz

４．イメージファイルの書き込み
　　SSD をパソコンまたはラズパイに接続して Raspberry Pi Imager を起動します
![Screenshot at 2021-08-03 19-38-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1061326/c134b080-c480-0d82-4d6f-abb4ff046104.png)

　　CHOOSE OS を選択します
　　Operating System で一番下の Use custom を選択します
　　ダウンロードのフォルダーへ移動し FreeBSD-13.0-RELEASE-arm64-aarch64-RPI.img.xz を選択します
　　CHOOSE STRAGE を選択します
　　接続したSSDが表示されていると思いますので選択してください
　　WRITE を選択します
　　確認のメッセージが表示されますのでYESを選択します
　　Writing Verifying が終了すると Write Successful が表示されますので CONTINUE を選択します 

　　このルールを使うとラズパイ用イメージの書き込みには便利です

５．FreeBSDの起動
　　いよいよ、FreeBSDが無事起動するか、という段階がきました
　　SSDをUSBハブ経由でラズパイに接続し、SDカードがセットされていないことを確認し電源投入
　　画面表示の最後のほうが
　　FreeBSD/arm64 (generic) (ttyv0)
　　login:
　　と表示されていれば、とりあえずブート成功です
　　マウスが接続されていばマウスの矢印も動くと思います
　　Enterキーを入力するとlogin:が新たに表示されるとキーボードにも反応しています

６．Loginします
　　仮想コンソールになっていてAltキーを押しながらF2キーを入力すると(Alt+F2)
　　FreeBSD/arm64 (generic) (ttyv1)
　　login:
　　という表示 ttyv1 に変わっていると思います
　　Alt+F1を入力すると ttyv0 に変わっていると思います
　　ここでUSBキーボードを抜いたり、差したりするとシステムメッセージが表示されると思います
　　ttyv0はシステムコンソールも兼ねているので、通常は使用しないで ttyv1~ttyv7で作業してください

　　login:のところでrootと入力しEnterキーを入力します
　　Password:のところでrootと入力しEnterキーを入力します
　　正しく入力できると、いろいろ表示されて
　　root@generic:~#が最後に表示されているとログイン成功です

７．いろいろ設定をしていきます
　　とりあえず日本語キーボードの設定をします
　　kbdcontrol -l jp
　　ｋｂｄｃまで入力してTabキーを入力するとｋｂｄｃｏｎｔｒｏｌと表示されます
　　タイムゾーンを日本時間（JST)に設定します
　　タイムゾーンを設定するコマンドは tzsetup というのがあります
　　tzsetup
　　Yesが選択されているのでEnterキーを入力します
　　下矢印キーで 4 Asia を選択してEnterキーを入力しましす
　　下矢印キーで　18 Japan を選択してEnterキーを入力します
　　ConfirnationでYesが選択してあるのでEnterキーを入力します
　　現在の日時を設定します
　　ntpdate ntp.nict.jp
　　日時が正しく設定できたか確認します
　　date

　　Cpuクロックの確認
　　sysctl -a | grep freq
　　いろいろ表示されますが dev.cpu.0.freq: 600 となっていると cpu速度が６００Mhzに設定されています

　　だんだんややこしくなってきましたが、タイムゾーン以外は応急処置的な設定をしましたので
　　設定ファイルに定義します
　　/etc/rc.conf というファイルに以下の３行を追加します
　　keymap="jp"
　　ntpdate_enable="YES"
　　powerd_enable="YES"

　　疲れてきましたので、ここでシャットダウンして休憩しましよう
　　shutdown -p now または poweroff でシャットダウンできます

８．FreeBSDの設定確認
　　今までの設定が正しく行われたか確認してみましょう
　　ラズパイの電源をいれます
　　FreeBSDが起動できたらttyv1でroot/rootでログインします
　　date
　　で表示された日時を確認します
　　＠キーを入力して＠が表示されたか確認します
　　sysctl -a | grep freq
　　で dev.cpu.0.freq: 1500 となっているか確認します

９．FreeBSDのアップデート
　　13.0-RELEASEが公開されてから、多少アップデートされていますので、最新の状態へアップデートしてみます

　　pkg update
　　と入力するとメッセージが表示されますので y を入力してください
　　パッケージ管理情報の取得

　　pkg install git
　　と入力するとメッセージが表示されますので y を入力してください
　　いろいろメッセージが表示されますが git というアプリケーションがインストールされます

　　git clone -b releng/13.0 --depth 1 https://git.freebsd.org/src.git /usr/src
　　ソースコードの取得
　　このコマンドは初めてソースコードを取得するときに使います

　　ここまでが準備で、これからアップデートします
　　freebsd-update fetch
　　アップデートするファイル名が表示されています
　　スペースキーを入力して最後まで表示されたら q を入力します
　　freebsd-update install
　　アップデートをインストールします
　　reboot
　　再起動します

　　rootでログインすると 13.0-RELEASE-p3 になっていました

１０．パッケージソフトのインストール
　　パケージソフトは好みで自由にインストールしてください
　　とりあえずGUI環境をインストールしてみます
　　pkg install xorg mate firefox-esr　ja-font-std
　　メッセージが表示されるので y を入力します
　　/etc/rc.conf に dbus_enable="YES" を追加します
　　インストールはrootで行いますが、使用するのはfreebsdというユーザでやってみます
　　普通は adduser でユーザを登録するのでしょう
　　Alt+F? で使っていないttyに切り替えて freebsd/freebsd でログインします
　　.xinitrc というファイル（多分、新規作成になると思います）に
　　export LANG=ja_JP.UTF-8
　　exec mate-session
　　という２行を書き込みます

１１．mateの起動
　　startx
　　でウィンドウシステムが起動されると思います
![Screenshot at 2021-08-05 18-33-42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1061326/046a3caa-5f81-67bf-5d93-a296ccdff08d.png)
　　解像度がおかしいですね
　　システムー＞設定ー＞ハードウェアー＞ディスプレイを選択すると
![Screenshot at 2021-08-05 18-43-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1061326/e448dfae-3058-a3f6-ce8d-a9d4c945e945.png)
　　解像度が５９２ｘ４４８ですね
　　閉じる を選択して システムー＞freebsdのログアウト を選択して　ロクアウト　を選択します

１２．解像度の調整
　　Alt+F? で　root のttyへ移動します
　　cd /boot/msdos へ移動します
　　config.txt というファイルで
　　[pi4]
　　hdmi_safe=1
　　のところで hdmi_safe=1 をコメント化します
　　先頭に # をつけます
　　#hdmi_safe=1 このように変更できたら保存します
　　
　　reboot
　　再起動します

　　画面の文字が小さくなっていますね
　　freebsd でログインして解像度を確認してみます
![Screenshot at 2021-08-05 19-13-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1061326/41cc7807-29be-15bf-7e96-0df7e7e66dad.png)
　　１８２４ｘ９８４ですね
　　Alt+F? でログインできるttyへ移動し root でログインします
　　/boot/msdos/config.txt に修正を加えます
　　[pi4]
　　#hdmi_safe=1
　　disable_overscan=1　　＜ー　追加して保存します

　　reboot
　　再起動します

　　freebsd でログインして解像度を確認してみます
![Screenshot at 2021-08-05 20-03-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1061326/1cc58daf-ced2-6971-d0f3-fe63f7688d65.png)

　　これで正しい解像度になりました

１３．パスワードの変更
　　root と freebsd のパスワードを変更します
　　rootでログインします
　　passwd
　　New Password: 新たなパスワードを入力します
　　Retype New Password: もう一度新たなパスワードを入力します

　　freebsd のパスワードを変更するときは freebsd でログインして passwd で変更してもいいですが
　　rooot で passwd freebsd と入力して変更することもできます

１４．この先は
　　あと、日本語入力とか環境構築についてはネット検索でいろいろ見つかると思います
　　freebsd-update fetch
　　freebsd-update install
　　pkg update
　　pkg upgrade
　　で、たまには最新にしてください

　 hirsute-preinstalled-desktop-arm64+raspi.img.xz のSSDインストールにtryしてみようと
　　思いますので、ここらへんで失礼します