Moiz's journal

プログラミングやFPGAなどの技術系の趣味に関するブログです

FreeBSDをインストールしてみる

長いことUnixを触ってないので、FreeBSDを実機にインストールして触ってみたくなりました。 たんなる作業メモで、特別な知見はありません。

環境

手元に使わなくなったNUC6CAYがあったのでこれを使います。

スペック

項目 内容
CPU Intel Celeron J3455
メモリ 8 GiB (拡張済み、もとは2 GiB)
ストレージ 1 32 GiB eMMC (オンボード)
ストレージ 2 Kingston SATA SSD 120 GiB (あとから追加)

もとはWindows 10が入っていたのですが、さすがにスペック的にきつくなり、使用頻度がさがったものです

モニターとして以前紹介したNexdock2を使用しました。
モニター・バッテリー・キーボード・USBハブ一体型のものです。

FreeBSDのインストール

インストールはFreeBSD公式サイトのガイド通りに行いました。 また、福山大学金子邦彦研究室FreeBSDインストールガイドがとても親切で参考になりました 以下は作業ログです。

インストール時の設定は、基本的にデフォルトで問題ありませんでした。変更したのは以下の部分です

  • ホスト名がよくわからないので適当な名前(NUCとか)を入れた
  • Optional System Componentでパッケージ類をすべて選択
    • この後のダウンロードサイト選択肢にエラーを誘発発生する物があった(理由不明)。インストールをやりなおし、リストのトップのものに変更してインストール成功
  • ディスクのフォーマットとしてZFSを選択し、ZFSのConfigure Option->Pool Type/DisksからStripeを選択し、インストール先SSDを指定
  • WIFIアダプタを選択し1DHCPを使用
  • タイムゾーンとしてPDTを選択(起動後時間がずれていたので、コマンドラインから修正)
  • Serviceの設定、mmoused、powerdを選択
  • ユーザーを追加し、cshを設定(インストール後にbashに替えます)

これでリブートするとログインできるようになっていました

起動後の設定

以下、起動後に行った設定です

ユーザーをsudo可能グループにいれる

# sudo pw group mod wheel -m username 

/usr/local/etc/sudoersの以下の行をアンコメント

# %wheel ALL=(ALL:ALL) ALL

シェルをbashに変更

まずbashをインストール

# sudo pkg install bash

デフォルトシェルをbashに変更

# chsh -s /usr/local/bin/bash username

.profile.bashrcを読み込むように以下の行を追加

if [ -n "$BASH_VERSION" ]; then
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    if
fi

再起動後bashが使えるようになります。この後.bashrcを変更し自分の好みの環境に変更しました。

GUI環境

FreeBSDインストーラーはGUI環境はインストールしないので、自分で設定します。 以下、作業ログです。

Xorgのインストール

公式サイト2の説明に従いX Window Systemをインストールします

# sudo pkg install xorg
# pw groupmod video -m username

NUC6CAY独特の設定

# sudo pkg install drm-kmod   
# sudo sysrc kld_list+=i915kms
  • 公式ガイドのTipに従い、そのほかのドライバーもインストールしました
# pkg install libva-intel-driver mesa-libs mesa-dri
  • デフォルトではNexdock2のタッチパッドが認識されないので、再起動の前に追加でドライバーをインストール3
# sudo pkg install xf86-input-synaptics

デスクトップの環境のインストール

今回は軽そうなXFCEを選びました
公式ガイドにしたがってインストールし再起動するとXFCEで立ち上がります。

ブラウザのインストール

次のコマンドでChromiumがインストールできます

# sudo pkg install chromium

これでchromechromiumが起動しますが、日本語が文字化けします

日本語フォントの設定

こちらのブログを参考にフォントを設定しました

symfoware.blog.fc2.com

参考にしたブログにならいipaフォントを選択します

# sudo pkg install ja-font-ipa-00303_7

これで、Chromiumで日本語の表示ができるようになります。 タスクバーのアプリケーションタイトルは再起動後日本語表示ができるようになるようです

日本語入力ソフト

こちらのブログを参考にmozcをインストールします

retrotecture.jp

# sudo pkg install ja-fcitx-mozc ja-mozc-server ja-mozc-tool
# sudo pkg install zh-fcitx zh-fcitx-configtool

一度ログアウトしてログインしなおすと、fcitx-config-gtkからmozcが選択できるようになっていました。 これで日本語入力もできます

その他の設定

CPUの周波数設定

初期状態ではCPUクロックが1.5GHz固定だったので、powerdを有効化します

こちらのブログを参考にしました

www.ateamsystems.com

以下の行を/etc/rc.confに追加します

powerd_enable="YES"
powerd_flags="-a hiadaptive"

再起動後、800MHzや1501MHz4といった、1.5GHz以外の周波数も使われるようになります。

SSHの使用

こちらのブログを参考にしました。

ostechnix.com

Ubuntu等と違い、OpenSSHサーバーはFreeBSDの標準インストーラーでデフォルトでインストールされるようです。 SSHDをスタートするには、/etc/rc.conf/に以下の行を追加します

sshd_enable="YES"

再起動後は、自動でSSHDが起動し他のPCからSSH接続ができるようになります。(/etc/rc.d/sshd startで即実行もできるようです)

リモートデスクトップサーバーのインストール

こちらのブログによるとxrdpを使うと簡単なようです5

www.jeremymorgan.com

私の環境はxfceなので、/usr/local/etc/xrdp/startwm.shではexec startxfce4の行をアンコメントしました

まとめ

これでどうにかFreeBSDGUI環境で実行できるようになりました。 ここまでくると普段使っているLinuxと似た感じに使えます

インストールしたFreeBSD。日本語で表示できている。ELFファイルヘッダーのOS/ABIがFreeBSD


  1. どういうわけかNUC6CAYのWi-Fiがとても遅かったので、あとから有線接続に変更しました。
  2. X11関係のインストールは英語ドキュメントの方が詳しいようです
  3. https://chat.openai.com/share/016f3681-376a-45b8-bca2-ec07797b942f
  4. 場所は失念しましたが、どこかの掲示板で+1MHzがTurbo boost 状態をあらわすというコメントをみた記憶があります
  5. 私の環境ではXRDPでログインすると、どういうわけかPATHに/usr/sbinが含まれないので、原因を調べています。