====== FreeBSD 11のvtで日本語を表示する ======
FreeBSD 11で新生コンソールドライバvtがデフォルトで有効となり、いわゆるマルチバイト文字のコンソールでの表示が容易になった。しかし、現時点では対応フォントが組み込まれていないため、日本語は豆腐になってしまう。
===== 試した環境 =====
* FreeBSD 11-STABLE (r308494)
* 諸般の事情でSTABLEとなっているが、RELEASEでも同様のはず。
* [[http://akahuku.github.io/ufo/|UFO]]フォント
===== 手順 =====
==== 日本語フォントの準備 ====
''vt''で使用する日本語フォントを準備する。今回は[[http://akahuku.github.io/ufo/|UFO]]の[[https://github.com/akahuku/ufo/blob/master/build/ufo.hex|HEXファイル]]から、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/''以下にユーザー追加用フォントの場所がありそうなものだが、''vidcontrol''の''man''を見てもそれっぽい事が書かれていない。''syscons''の流れからそうなってるのかしら?まぁ無いものは仕方ないので、素直に先のディレクトリに放り込んでおく。
=== フォントを適用してみる ===
ここで試しにフォントを適用してみる。
''vidcontrol''コマンドでコンソールのフォントを変える事ができ、先のディレクトリに入れたフォントについてはパスと拡張子を付ける必要はない。リアルタイムでフォントが切り替わる様子は結構新鮮。
# vidcontrol -f ufo
{{ :freebsd:changing_vt_console_font.gif |}}
一部のグリフの半分が変なのは何でだろう…?実用面では[[http://www.wheel.gr.jp/~dai/fonts/bdf_fbsd_vt.html|こちら]]のページで配布されているfntを使った方がいいかも。
==== デフォルトフォントの設定 ====
お馴染''rc.conf''でデフォルトフォントを指定しておくと、日本語を表示できる状態で起動するようになる。
font8x16="ufo"
{{ :freebsd:japanese_font_enabled_initial_prompt.png?640 |}}
===== 参考サイト =====
* [[https://github.com/akahuku/ufo/|Ufo by akahuku]]
* [[https://www.next-hop.net/~hiraga/FreeBSD/japanese-vt.shtml|FreeBSDで日本語コンソールvtを使う]]
* [[http://www.wheel.gr.jp/~dai/fonts/bdf_fbsd_vt.html|日本語BDFフォントを変換してFreeBSD 10.xのvt(4)コンソールで使う]]
* [[http://april.fool.jp/blogs/2014/11/freebsd-10-1-release%E3%81%AEvt4%E3%81%A7console%E3%82%92%E3%81%86%E3%81%A4%E3%81%8F%E3%81%97%E3%81%8F/|FreeBSD 10.1-RELEASEのvt(4)でconsoleをうつくしく – Nobwak's Lair]]
* [[https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/consoles.html|3.2. 仮想コンソールと端末 - FreeBSD ハンドブック]]