重要なおしらせ

VD UNICON のメンテナンスは 2009/10/26 に 2.6.31 対応 patch を最後に終了しました。長らくのご利用ありがとうございました。 現在、UTF-8 対応コンソールとして utf-8 kernel が開発されています。なお、一切関与していません。

はじめに

UNICON は Linux のフレームバッファ上で CJK(中国語/日本語/韓国語)を表示するための仕組みです (UTF-8 には未対応)。TurboLinux 北京オフィス にて開発されていましたが、長らく更新が停止した状態になっています。dai が非公式に VD UNICON の名称でメンテナンスを続けていましたが、2009/10/26 に 2.6.31 対応 patch を最後に終了しました。

この文章およびパッチなどは無保証です。UNICON による Linux 日本語 console テストに際し、UNICON を使って日本語コンソールを実現しよう および UNICON を参考にさせて頂きました。多謝。

Kernel 編

Kernel にパッチを当てる

kernel に フォントのパッチと VD UNICON 本体のパッチの両方を当てる。

これらのパッチは Turbolinux の kernel SRPM に含まれている UNICON パッチを元に、UNICON を使って日本語コンソールを実現しようOkpos.com:: Unicon にて提供されているパッチ、dai による修正を加えてある。

% cd /usr/src/linux-2.*.*

# font patch
% bzcat .../vd_unicon-kernel-fonts-YYYYMMDD.patch.bz2 | patch -p1

# unicon patch
% cat .../vd_unicon-kernel-YYYYMMDD-2.*.patch | patch -p1

Kernel の再構築

実験的機能のサポート、ローダブルモジュールのサポート、フレームバッファサポートをそれぞれ有効にし(詳細は Framebuffer HOWTO を参照)、 UNICON サポートを組み込み、表示したい言語のフォントをモジュールとする。

CONFIG_UNICON=y
CONFIG_UNICON_GB=m
CONFIG_UNICON_GBK=m
CONFIG_UNICON_BIG5=m
CONFIG_UNICON_EUCJP=m
CONFIG_UNICON_JIS=m
CONFIG_UNICON_SJIS=m
CONFIG_UNICON_KSCM=m

通常は EUCJP のみでかまわないだろう。 (GB/GBK は簡体字中国語、BIG5 は繁体字中国語、 EUCJP/JIS/SJIS は日本語、 KSCM は韓国語それぞれのフォントサポート)

bootloader の設定

UNICON はフレームバッファ上で動作するため、フレームバッファを利用するように bootloader で設定を行う。詳細は Framebuffer HOWTO、コンソールを高解像度で表示するには(GRUB編, LILO編)を参照。

2.6.24 以降、boot option に「vt.default_utf8=0」が必要となる場合がある。

GNU GRUB では kernel 行に

kernel /boot/vmlinuz root=/dev/sda1 ro video=vesafb vga=0x305 vt.default_utf8=0

LILO では append 行に

append="vt.default_utf8=0"

のように追加する。

Userland 編

unicon-tools を取得

unicon-tools-0.0.0.20050707.tar.gz を拾ってくる。

これは unicon-3.0.4-20010924.tar.gz (Turbolinux 北京オフィスではもう配布されていないようなのでここで配布) に vd_unicon-userland-20031122.patch (UNICON を使って日本語コンソールを実現しようUNICON にて提供されているパッチ及び dai による修正)を当て、必要な部分のみを取り出したものである。

unicon-tools の make

% ./configure --prefix=/usr
% make
# make install

デバイスファイルの作成

devfs, udev を使っていれば必要ない。

# mknod /dev/unikey c 10 202
# chmod 640 /dev/unikey

起動設定

以下を適当な boot script に追加。

#!/bin/sh
#
# VD UNICON for EUC-JP

if [ \( -f /lib/modules/`/bin/uname -r`/kernel/drivers/video/unicon/unikey.o \
     -o -f /lib/modules/`/bin/uname -r`/kernel/drivers/video/unicon/unikey.ko \) \
     -a -x /usr/bin/uniconctrl \
     -a -e /dev/fb0 ]; then
        /sbin/modprobe unikey
        /sbin/modprobe encode-eucjp

        # console-tools
        if [ -x /usr/bin/consolechars ]; then
                /usr/bin/consolechars --sfm /usr/lib/unicon/direct.uni
        # kbd
        elif [ -x /usr/bin/setfont ]; then
                /usr/bin/setfont -u /usr/lib/unicon/direct.uni
        # kbd (obsoleted)
        elif [ -x /usr/bin/loadunimap ]; then
                /usr/bin/loadunimap /usr/lib/unicon/direct.uni
        fi

        /usr/bin/uniconctrl --eucjp tty1
        /usr/bin/uniconctrl --eucjp tty2
        /usr/bin/uniconctrl --eucjp tty3
        /usr/bin/uniconctrl --eucjp tty4
        /usr/bin/uniconctrl --eucjp tty5
        /usr/bin/uniconctrl --eucjp tty6
fi

おしらせ等

ライセンス

元々の UNICON が GPL2 なので、この非公式パッチ VD UNICON も GPL2 として公開しています。

制限事項

UTF-8 には対応していません。例えば UTF-8 でのかな漢字は 3バイトありますが、UNICON は実装上の仕様により 2バイトまでしか扱えないため、UTF-8 を扱うことができません。かつて UNICON を Unicode Console と紹介している文書が散見されたことや、UNICON という語感から UTF-8 も扱えるという誤解があるようですが、UNICON は正確には Universal Console です。

リンク

このページへのリンクは https://vdr.jp/d/unicon.html として頂けると覚えやすいし閲覧時の見栄えもよいと思います。

貢献者(順不同,敬称略)

  • YAMAGUCHI Shingo
  • OHNO Tetsuji
  • Katsumi Kikuchi
  • Toshi

関連リンク

変更履歴

  • 2009/10/26 - メンテナンス終了。
  • 2009/10/21 - kernel patch 2.6 を 20091021 版に更新。
  • 2009/06/15 - kernel patch 2.6 を 20090615 版に更新。
  • 2009/03/24 - kernel patch 2.6 を 20090324 版に更新。
  • 2009/01/23 - kernel patch 2.6 を 20090123 版に更新。
  • 2008/10/19 - kernel patch 2.6 を 20081019 版に更新。
  • 2008/08/19 - bootloader 設定例を追加。
  • 2008/08/06 - boot script にて consolechars (console-tools)、setfont (kbd)、loadunimap (古い kbd) のどれかあるほうを利用するように変更。
  • 2008/07/18 - kernel patch 2.6 を 20080718 版に更新。
  • 2008/04/18 - kernel patch 2.6 を 20080418 版に更新。
  • 2008/01/27 - kernel patch 2.6 を 20080127 版に更新。
  • 2007/10/11 - kernel patch 2.6 を 20071011 版に更新。
  • 2007/07/09 - kernel patch 2.6 を 20070709 版に更新。
  • 2007/04/29 - kernel patch 2.6 を 20070429 版に更新。
  • 2007/02/05 - kernel patch 2.6 を 20070205 版に更新。
  • 2006/12/01 - kernel patch 2.6 を 20061201 版に更新。
  • 2006/11/30 - kernel patch 2.6 を 20061130 版に更新。
  • 2006/09/20 - kernel patch 2.6 を 20060920 版に更新。
  • 2006/06/18 - kernel patch 2.6 を 20060618 版に更新。
  • 2006/03/20 - kernel patch 2.6 を 20060320 版に更新。
  • 2006/01/03 - kernel patch 2.6 を 20060103 版に更新。
  • 2005/10/29 - kernel patch 2.6 を 20051029 版に更新。
  • 2005/08/29 - kernel patch 2.6 を 20050829 版に更新。
  • 2005/07/07 - unicon-tools を配布
  • 2005/07/06 - patch を整理
  • 2005/06/29 - kernel patch 2.6 を 20050629 版に更新。
  • 2005/04/15 - kernel patch 2.6 を 20050415 版に更新。
  • 2005/04/13 - kernel patch 2.6 を 20050413 版に更新。
  • 2005/04/12 - kernel patch 2.6 を 20050412 版に更新。
  • 2005/01/04 - kernel patch 2.6 を 20050104 版に更新。
  • 2004/12/29 - kernel patch 2.6 を 20041229 版に更新。
  • 2004/10/19 - kernel patch 2.6 を 20041019 版に更新。
  • 2004/08/23 - kernel patch 2.6 を 20040823 版に更新。
  • 2004/06/18 - kernel patch 2.6 2004051020040616 両版を追加。
  • 2004/04/04 - kernel patch 2.6 を 20040404 版に更新。
  • 2004/03/27 - kernel patch 2.6 を 20040327 版に更新。 /dev/unikey の作成についての説明を追加。
  • 2004/02/19 - kernel patch 2.4, 2.6 を 20040219 版に更新。
  • 2004/02/16 - boot script にて insmod を modprobe に変更。 /dev/fb0 の存在を調べるように変更。
  • 2004/02/01 - kernel patch 2.4 を 20031218 版に更新。
  • 2003/11/22 - patch を 20031122 版に更新。
  • 2003/11/05 - 2.6 対応に向けて、patch を分割。
  • 2003/09/10 - boot script にて loadunimap (kbd) ではなく consolechars (console-tools) を利用するように変更。
  • 2003/09/02 - kernel 2.4.22 に対応
  • 2003/08/19 - 公開