FreeBSD(4) FreeBSD とGhostBSD のTips 集


## はじめに

FreeBSD 12.1 、GhostBSD 20.1 をインストールしました。
インストールとか使っていて気付いたことをまとめました。以前の投稿と重複しています。

### GhostBSD をUSB メモリにインストールした場合、ブート時のシステムの自動マウントで失敗

ブート時に、コマンド待ちで停止:

```
mountroot>
```
→ただし、下記のように、関係のない違うメッセージが重なって埋もれます。

```
mountroot>ugen0.5: <ELCOM MF-TKU3> at usbus0
```

それだけでなく、もっと下の別の表示で止まったように見えます。そこを調べていたので進展しませんでした。

```
arc4random: no preloaded entropy cache
```
arc4(rc4) 暗号には、エントロピーというファイルのロードが必要だけどないみたい。

おまけに、USB マウス「Logicool M100r」の接続エラーまで、繰り返し表示されます。

```
ugen0.3: <Logitech USB Optical Mouse > at usbus0 (disconnected)
ugen0.3: <Logitech USB Optical Mouse > at usbus0
```
ここで、「Enter」キーのみを押すと再起動になります。わけがわからなくなります。

実は、ここで、「.」または「?」キーを押すと、プロンプトが再表示され、判断しやすくなります。「?」キーだとデバイス一覧が表示されます。

そして、下記（の呪文）を入力すると立ち上がります。
英語キーボードなので「:」は Shift+「;」です。スペースは含まれていません。手持ちのBIOS 立ち上げのPC だと、帯表示になるので目隠しでキー入力が必要です。

ufs フォーマットの場合はラベル名での指定が確実:
（zfs フォーマットの指定方法は未確認）　

```
ufs:/dev/label/rootfs0
```

もしくは、BIOS 立ち上げで、ディスクがMBR の場合:

```
ufs:/dev/da0s1a
```
UEFI 立ち上げで、ディスクがGPT の場合:

```
ufs:/dev/da0p2
```

→/etc/fstab は、ラベル名で指定されています。そのままで良さそうですが、自動でマウントしてくれません。
ちなみに、FreeBSD はデバイス番号の指定になっています。

```config:/etc/fstab
/dev/label/rootfs0 /    ufs  rw  1  1
/dev/label/swap0 none swap sw  0  0
```
→デバイス番号での指定に修正してみてもダメでした。
毎回、（帯表示なら、目隠しで）手入力で面倒ですが、立ち上がるからいいかな。今までこの回避方法（呪文）がわからず前に進めなかったわけです。

ちなみに、オンライン検索してみると、GhostBSD にて、fat 以外のフォーマットの外部記憶の自動マウントがうまく行かないことがあるとのこと。USB メモリにインストールした場合は、自分自身も含まれるということかな。


### FreeBSD 、GhostBSD ともに、BIOS 立ち上げだとフルHD で表示できません。

BIOS 立ち上げでは、vesa ドライバーを使うことになります。そのときのデフォルトが1024x768 です。もしかして、vesa ドライバーの上限が1024x768 なのかもしれません。

UEFI 立ち上げの場合は、gop コマンドで高解像度(FHD) にできます。

ブート時のメニューでEsc キーを押してブートローダーに入ります。

```
gop set 4
boot
```
するとFHD(1920x1080) 表示に変更できます。
下記で、使える解像度の一覧が表示できます。数字を指定します。

```
gop list
mode 0: 1280x1024x32, stride=1280
mode 1: 1024x768x32, stride=1024
mode 2: 640x480x32, stride=640
mode 3: 800x600x32, stride=800
mode 4: 1920x1080x32, stride=1920
```
ちなみに、mode 2 は画面真っ暗で使えませんでした。

UEFI 立ち上げのとき、/boot/loader.rc.local または、/boot/loader.conf に指定すれば自動化できるかトライしましたが失敗しました。

---
##### デフォルトの1024x768 の画面で工夫

デスクトップのフォント: 8、アイコン: 小

フォントを小さくすれば、使えます。フォントがボケるので、描画の処理を「サブピクセルのスムージング」にしましたがあまり変わりません。

![GhostBSD-desktop-01.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/b84771c8-76ec-2d84-837f-f961e3da0c78.jpeg)
→マウスカーソルの大きさは指定できませんでした。下パネル: 自動で隠す にして画面を広く使えるようにしています。

MATE Terminal および Pluma のフォント: Monospace Regular 8、Firefox: フォント: 10

![GhostBSD-desktop-02.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489751/f8cf9bba-7879-b2b2-8e60-6ac1906b55dc.jpeg)
→フォントが横に間延びするので、横の狭いフォントにすればきれいに見えると思います。


### BIOS 立ち上げで、ブート途中に画面上部にカラフルな帯になるPC があります。

こうなると、表示されている内容がわかりません。FreeBSD、GhostBSD ともに発生します。

ちなみに、Ubuntu のライブ立ち上げだと、「live」と入力が必要で、インストール後は、ブート時に同じように白い帯が画面上部に表示されます。そのようなPC だと同じ現象になるかもしれません。

PC のBIOS がVT 表示に対応してないからだと思います。
GhostBSD は目隠し操作でも、デスクトップ表示に持って行けます。デスクトップ表示できればインストールも可能です。ですが、FreeBSD はインストール画面が表示できないので使えません。

---
### FreeBSD では、日本語のファイル名が使えません。

Ubuntu や他のOS と、USB メモリでファイルをやり取りするときは注意。あれっ、と探してしまいます。

Ubuntu の端末での表示:

```
$ cd /media/USER_NAME/USB-fat32/BSD-data/
$ ls
無題のドキュメント-test
```

FreeBSD の端末での表示:

```
$ cd /media/USB-fat32/BSD-data/
$ ls
ls: ?????????-test: 無効な引数です
```
ファイルマネージャでの表示:

マウントする時に「無効な引数」エラーとなり、日本語のファイル名のファイルのみ、表示されません。

表示されないことには、ファイル名を英語名に修正できません。Ubuntu でファイル名の修正が必要です。

逆に、FreeBSD で使わないファイルに日本語名を付けるという手もアリです。


---
### FreeBSD ではブランチの名前に注意

Ubuntu やDebian では、STABLE 版（安定版）= RELEASE 版（公開版）ですが、FreeBSD では、STABLE 版 = RELEASE 版 ではありません。

FreeBSD には「RELEASE」、「CURRENT」、「STABLE」の 3つのブランチがあり、その中の「CURRENT」と「STABLE」は開発版になります。STABLE 版は「安定版」ではないので注意。自分も勘違いしていました。


---
### FreeBSD とGhostBSD の差は、ブランチの違い。それは大きな差。

FreeBSD 12.1 での表示:

```
$ uname -r
12.1-RELEASE
```
→「FreeBSD 12.1-RELEASE」です。 


GhostBSD 20.1 での表示:

```
$ uname -r
12.1-STABLE
```
→GhostBSD 19.10 およびGhostBSD 20.1 は、「FreeBSD 12.1-STABLE」がベースです。 

---
GhostBSD 20.1 で、FreeBSD の「セキュリティパッチの適用」をしてみます:

```
# freebsd-update fetch
```
すると、下記のメッセージで拒否されました。

```
src component not installed, skipped
freebsd-update: Cannot upgrade from a version that is not a release
(including alpha, beta and release candidates)
using freebsd-update. Instead, FreeBSD can be directly
upgraded by source or upgraded to a RELEASE/RELENG version
prior to running freebsd-update.
Currently running: 12.1-STABLE
```
→12.1-STABLE なので、ソースからアップグレードするか、RELEASE 版に更新してから、freebsd-update は使って、と言っているみたい。

「freebsd-update」ツールが使えるのは、RELEASE 版のみです。STABLE 版のときは、RELEASE 版に更新してから実行する必要があります。

また、FreeBSD「package collection」（ポートツリー）は、現在サポートされている最も古いRELEASE 版が対象のようです。

12 系なら、現在サポートされている最も古いRELEASE 版は「FreeBSD 12.0-RELEASE」です。次のRELEASE 版 (12.1-RELEASE) が出てから 3ヶ月なので、もう少しで切れます。なぜ気にするかというと、使っているアプリの依存しているライブラリがサポートされなくなる可能性があるから…。

安全に使っていくのなら、RELEASE 版を使うのがベター。アップグレードツールの「freebsd-update」で簡単に「セキュリティパッチの適用」や、次へのアップグレードができます。
RELEASE 版でないと面倒な作業になります。


---
### GhostBSD 20.1 は「freebsd-update」が使えません。

GhostBSD 20.1 は、「FreeBSD 12.1-STABLE」がベースなので、「freebsd-update」が使えません。

更新ツールは別に準備されているので、デスクトップ主体の使用なら問題ありません。ただし、GhostBSD でFreeBSD の学習を目的にしているのなら、注意が必要です。

インストールで差が出た（FreeBSD の方が柔軟）のは、ブランチの差だったみたい。FreeBSD ではできるのに、GhostBSD ではできないことがあると感じていました。


---
### 参考:


##### FreeBSD セキュリティパッチの適用:

[FreeBSD Update]
(https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/updating-upgrading-freebsdupdate.html)

```
# freebsd-update fetch
# freebsd-update install
```
→fetchで「アップデートはありません」と表示されたら、install は要りません。

---
##### RELEASE 版→RELEASE 版へのアップグレードの場合:

[FreeBSD 11.2-RELEASE アップグレード]
(https://bellett.moe.hm/index.php/2018/06/27/upgrade-freebsd-11-1-to-11-2/)

例えば、

```
# freebsd-update -r  11.2-RELEASE upgrade
```


---
##### STABLE 版→RELEASE 版へのアップグレードの場合:

まず、STABLE 版からRELEASE 版にします。
svn（subversion）を pkg などでインストールしてから、下記を参考に実行。

[FreeBSD 11-STABLEを11.1-RELEASEに変更する]
(https://decomo.info/wiki/freebsd/freebsd_11_converting_from_stable_to_release)

ちょっと面倒。
その後にfreebsd-update でのアップデートを実行。


---
### xrandr の設定登録で失敗するときは、

モニタ接続について確認が必要。

Ubuntu では、自動的に最適解像度を検知して、モニタ情報（モデル名と解像度）が正しく表示されますが、FreeBSD やGhostBSD だと、ディスプレイ設定で「モニタ: 不明」になりました。また、FHD(1920x1080) まで映るモニタですが、XGA(1024x768) までしか選べません。

2台のPC で1台のモニタを使うために**「自動HDMI 切替スイッチ」**を使っていました。これが影響して、モニタ情報を正しく取得できないときがあるようです。

接続しているときは、xrandr の設定登録で失敗しましたが、外すと「モニタ: 不明」はそのままですが、設定登録は成功しました。ただし、解像度の切替は失敗します。コネクタ名が「デフォルト」表示のままなので、原因は別にありそうです。

モニタを直接接続してインストールしてみました。
Xorg のログ(/var/log/Xorg.0.log) で解像度が表示されるようになりました。

```
[    54.929] (II) VESA(0): Searching for matching VESA mode(s):
[    54.929] *Mode: 140 (1024x768)
:
[    54.929] (II) VESA(0): Monitor0: Using hsync range of 28.00-78.00 kHz
[    54.929] (II) VESA(0): Monitor0: Using vrefresh range of 50.00-76.00 Hz
[    54.929] (II) VESA(0): Not using built-in mode "1024x768" (no mode of this name)
```
少しだけ進展しましたが、違うドライバーのインストールが必要かもしれません。


---
##### 参考: ディスプレイの解像度の規格:

VGA       :  640 x 480	→4:3 
SVGA      :  800 x 600
XGA       : 1024 x 768 
HD (720p) : 1280 x 720
WXGA      : 1280 x 768 
HD(FWXGA) : 1366 x 768
FHD(1080p): 1920 x 1080	→16:9 
WUXGA     : 1920 x 1200	→16:10 
UHD 4K    : 3840 x 2160	→16:9 
8K FUHD   : 7680 x 4320	→16:9 


---
### xrandr での設定


##### Ubuntu でのxrandr の表示:

「自動HDMI 切替スイッチ」を使っていても正常です。

```
$ xrandr --version
xrandr program version       1.5.0
Server reports RandR version 1.6

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.90  
   1280x960      60.00  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1440x576      50.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    66.67    60.00    59.94  
   720x400       70.08  
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
```
##### Ubuntu でのディスプレイ設定:

```
Iiyama North America 23"
解像度: 1920 x 1080 (16:9)
リフレッシュレート: 60.00 Hz
```

---
##### GhostBSD でxrandr の設定情報を表示:

解像度等の設定を操作するためのツールです。

```
$ xrandr --version
xrandr program version       1.5.1
Server reports RandR version 1.5

$ xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1024 x 768
default connected 1024x768+0+0 0mm x 0mm
   1024x768       0.00* 
```
→「xrandr: Failed to get size of gamma for output default」のエラー表示が出ています。
和訳: xrandr：出力のデフォルトのガンマ値の取得に失敗しました。

どこに接続されているかの「HDMI-1」connected や 「DP-1」disconnected など表示されず、代わりに「default」connected と表示されています。


##### 設定値を計算:

```
$ cvt 1920 1080
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

$ cvt 1280 1024
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync

$ cvt 1024 768
# 1024x768 59.92 Hz (CVT 0.79M3) hsync: 47.82 kHz; pclk: 63.50 MHz
Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
```

##### 設定値を登録:

```
$ xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr: Failed to get size of gamma for output default
```
→ケーブルを直接接続するとエラー表示はありますが、xrandr で見ると設定が反映されました。

##### 設定値を紐づけ:

```
$ xrandr --addmode default "1920x1080_60.00"
xrandr: Failed to get size of gamma for output default
```
→ケーブルを直接接続して紐付けるとエラー表示はありますが、xrandr で見ると設定が反映され、ディスプレイ設定にも設定した解像度が追加されました。

##### 解像度を切替:

```
$ xrandr --output default "1920x1080_60.00"
xrandr: Failed to get size of gamma for output default
```
→切り替わりません。default だとダメかな。


---
##### GhostBSD でのディスプレイ設定:

```
「モニタ: 不明」
解像度: 1024x768
リフレッシュレート: 0.00 Hz
```
→ケーブルを直接接続して紐付けると、その解像度が追加されましたが、切り替わりません。

---
xrandr での設定は、ログアウトすると消えます。
うまく行ったら恒久的に設定することになりますが、とうぶんは無理みたい。たぶん、ドライバーを変えてトライするしかなさそう。


---
### あとがき

FreeBSD およびGhostBSD をインストールしてみると、色々と問題が出てきて、その度に勉強になります。

解決すべき問題は残っていますが、少しずつでも解決できればと思います。



（[次の投稿に続く]
(https://qiita.com/FuRuYa7/items/29d86afb884b5d778474)）


---

今までの**投稿一覧**は 「[ここ](https://qiita.com/FuRuYa7/items/f82312cd7670408dfa8b#%E6%8A%95%E7%A8%BF%E4%B8%80%E8%A6%A7) 」


-