FreeBSD Daily Topics

2014年4月24日2014年第一四半期SR:システムコンソールで日本語を表示する方法、vt(4)ドライバ

SR

2014Q1 SR

2014年第一四半期におけるステータスレポートが公開されました。中からとくに興味深いものをピックアップして紹介します。

newcons and CJK fonts

FreeBSDのシステムコンソール(起動時にディスプレイに表示されている画面)の作り替えが進められています。現在はsc(4)コンソールドライバが担当していますが、新しく実装が進められているコンソールドライバはvt(4)という名前になります。

vt(4)の主な目的はユニコードをサポートすることにあります。sc(4)はユニコードに対応していませんので、日本語を含む多くのフォントを表示することができません。これまでシステムコンソールで日本語などを扱いたい場合にはjfbtermやkon2などのソフトウェアを使う必要がありました。vt(4)からはデフォルトで日本語などを含むユニコードが表示できるようになる見通しです。

vt(4)のコードはHEADやSTABLEの最新版にマージされています。有効化するにはカーネルを再構築する必要があります。sc(4)とvga(4)ドライバを無効化し、vt(4)とvt_vga(4)を有効化する必要があります。カーネルの設定ファイルは次のとおりです。

リスト vt(4)コンソールドライバを有効化するためのカーネル設定ファイル
includ    GENERIC
ident           VT
nodevice        sc      # 従来のコンソールを無効化する
nodevice        vga     #
devic           vt      # 新しいコンソールを有効化する
devic           vt_vga  #

VTというカーネル設定ファイルがソースコードに含められるようになったので、KERNCONF=VTとしてカーネルを再構築してもよいでしょう。vt(4)コンソールドライバを有効にしたカーネルでシステムを起動すると次のような出力が得られます。sc(4)コンソールドライバ経由で表示されるフォントとは異なっていることを確認できます。

 vt(4)コンソールドライバで起動したFreeBSD 11-HEAD
図 vt(4)コンソールドライバで起動したFreeBSD 11-HEAD

現状では日本語フォントが含まれていませんので、次のように日本語を表示しようとしても豆腐が表示されます。

 日本語フォントが存在しないので日本語が豆腐で表示される
図 日本語フォントが存在しないので日本語が豆腐で表示される

フォントを設定するためのツールとしてsetfont(1)というコマンドがソースコードに含まれています。このコマンド(/usr/src/tools/tools/vt/setfont/)をビルドして、さらにCJKフォント(emaste)をダウンロードしてきてフォントを設定してあげると日本語も表示されるようになります。

 フォントを読み込ませるツールをビルドして、日本語フォントをダウンロードしてきて設定
cd /usr/src/tools/tools/vt/setfont/
make
fetch http://people.freebsd.org/~emaste/newcons/b16.fnt
./setfont < b16.fnt

setfont(1)でemasteフォント(CJKフォント)を設定すると豆腐で表示されていた部分が適切なフォントで表示されるようになります。

 日本語フォントを読み込ませると豆腐が日本語に動的に置き換わる
図 日本語フォントを読み込ませると豆腐が日本語に動的に置き換わる
 日本語のマニュアル閲覧例
図 日本語のマニュアル閲覧例
 カレンダーの出力など
図 カレンダーの出力など

システムコンソールで日本語を扱うケースはそれほど多くありませんが、データセンターでシステムをデプロイする段階であったり、障害発生時などはシステムコンソールで日本語が表示できた方が便利といったケースがあります。

また、システムコンソールでユニコードが扱えるようになると、ベースシステムのコマンドやドキュメントなどでユニコード対応が進めやすくなるといった側面もあるかと思います。vt(4)がデフォルトで有効になるのは11.0-RELEASE移行になるとみられますが、デフォルトで対応されるようになると用途の幅が広がって便利です。

告知

技評×オングス FreeBSD 10新機能紹介と変更点説明

2014年5月22日に技術評論社本社ビル5F会議室において技評×オングス FreeBSD 10新機能紹介と変更点説明 ~新世代のFreeBSDについて知ろう~を開催します。参加申し込みはこちらからどうぞ。

先日、次世代メジャーアップグレードバージョン「FreeBSD 10.0-RELEASE」が登場しました。10.0-RELEASEではいくつ大きな変更があるほか、これまで望まれてきたさまざまな機能が追加されています。10で導入される新機能や大きな変更点などを取り上げ、新しい機能をどのように扱ったらよいのか、変更に関してどのように対処すればよいのかを詳しく解説します。Linuxを扱っている方にもぜひご参加いただきたい発表会です。

  • 次世代パッケージ管理システムpkg(8)
  • 次世代ハイパーバイザ/仮想環境基盤 BHyVe
  • BINDをベースシステムから廃止/UnboundとLDNSの導入と活用方法
  • GCCをベースシステムから廃止/LLVM Clangの導入
  • Amazon EC2デフォルト対応/Microsoft Hyper-Vデフォルト対応
  • ZFS機能強化(LZ4とその効果、L2ARC圧縮による性能向上、NOP Write最適化、SSD対応、今後の開発方針など)
  • オンラインでファイルシステムを拡張できるUFS growfs(8)
  • 新しいカーネルレベルiSCSIターゲット/イニシエータ
  • ファイアウォールpf(4)マルチコア対応
  • ファイアウォールipfw(8)機能強化マルチコア/メニーコアで性能向上 Unmapped VMIOバッファ
  • 高速ネットワーク通信機能NetMap
開催日時2014年5月22日(木)19:00~21:30(18:30開場)
場所技術評論社 本社5F会議室 ⁠東京都新宿区市谷左内町21-13)
参加申込http://atnd.org/events/49883
第29回 FreeBSD勉強会

2014年6月2日(月)に東京、KDDIウェブコミュニケーションズさまの会議室において第29回 FreeBSD勉強会 シェルとコマンド~実践的企業システム開発手法を開催します。参加申し込みはこちらからどうぞ。

近年、企業の基幹システム(売上管理システム、商品マスタ管理システム、販売管理システム、在庫管理システム、勘定系システム、MDシステム、勤怠管理システム、給与系システム、データ分析システム、ログ分析システムなど)の開発手法として超高速開発手法と呼ばれる開発手法が注目されつつあります。

現在の企業活動に求められるシステムの開発時間はますます短くなっており、従来のウォーターフォール型の開発では経営の要求に応えることが難しくなりつつあります。高性能なシステムを短期間に開発できる開発手法の需要が高まってます。

本勉強会ではFreeBSDを企業システムのベースに採用し、シェルとコマンドを組み合わせて企業システムを開発する手法を紹介します。この手法は企業システムの開発速度がきわめて高速で、開発される成果物も高性能という特徴があります。こうした開発手法の草分け的存在がユニバーサル

  • シェル
  • プログラミング研究所が開発しているユニケージ開発手法です。オングスではトリプル
  • ティー開発手法と呼ばれるシェルとコマンドをベースとした開発手法を活用して企業システムを開発しています。
  • 本勉強会ではこうした企業システム開発の実践経験などをベースに、どのような発想で企業システムを開発するのか、シェルとコマンドをベースとしたシステム開発とはいったいどのようなものなのか、コマンドとしてはどういったものが活用できるのか、などを紹介します。

    開催日時2014年6月2日(月)19:00~21:30(18:30開場)
    場所KDDIウェブコミュニケーションズ会議室 / 東京都千代田区麹町三丁目6番地 住友不動産麹町ビル3号館
    参加申込http://atnd.org/events/49885

    発表のあとはその場で簡単な懇親会を開きます。軽いつまみとアルコール類は用意しますが、お好きなお酒の持ち込みも大歓迎です。

    おすすめ記事

    記事・ニュース一覧