目次

FreeBSD 11のvtで日本語を表示する

FreeBSD 11で新生コンソールドライバvtがデフォルトで有効となり、いわゆるマルチバイト文字のコンソールでの表示が容易になった。しかし、現時点では対応フォントが組み込まれていないため、日本語は豆腐になってしまう。

試した環境

手順

日本語フォントの準備

vtで使用する日本語フォントを準備する。今回はUFOHEXファイルから、vt用のfntファイルを生成することにした。

フォントの生成にはvtfontcvtコマンドを使う。-vオプションを付ける必要は全くないのだが、記事的には付けたほうが見栄えがするので(←

$ fetch https://github.com/akahuku/ufo/raw/master/build/ufo.hex
$ vtfontcvt -v ufo.hex ufo.fnt
Statistics:
- glyph_total:                 119866
- glyph_normal:                 63456
- glyph_normal_right:           56410
- glyph_bold:                       0
- glyph_bold_right:                 0
- glyph_unique:                 82238
- glyph_dupe:                   37628
- mapping_total:               119865
- mapping_normal:               63455
- mapping_normal_folded:        18832
- mapping_normal_right:         56410
- mapping_normal_right_folded:  11709
- mapping_bold:                     0
- mapping_bold_folded:              0
- mapping_bold_right:               0
- mapping_bold_right_folded:        0
- mapping_unique:              119865
- mapping_dupe:                     0

フォントの移動

生成したフォントをvt用のフォントディレクトリ/usr/share/vt/fonts/に移動する。

# cp ufo.fnt /usr/share/vt/fonts/

FreeBSDの流儀からすると/usr/local/以下にユーザー追加用フォントの場所がありそうなものだが、vidcontrolmanを見てもそれっぽい事が書かれていない。sysconsの流れからそうなってるのかしら?まぁ無いものは仕方ないので、素直に先のディレクトリに放り込んでおく。

フォントを適用してみる

ここで試しにフォントを適用してみる。

vidcontrolコマンドでコンソールのフォントを変える事ができ、先のディレクトリに入れたフォントについてはパスと拡張子を付ける必要はない。リアルタイムでフォントが切り替わる様子は結構新鮮。

# vidcontrol -f ufo

一部のグリフの半分が変なのは何でだろう…?実用面ではこちらのページで配布されているfntを使った方がいいかも。

デフォルトフォントの設定

お馴染rc.confでデフォルトフォントを指定しておくと、日本語を表示できる状態で起動するようになる。

/etc/rc.conf
font8x16="ufo"

参考サイト