|
|
- Welcome to
Hiroshi's Home Page - |
|
|
|
||
|
||
|
▼ ▼ ▼ |
||
|
||
|
▼ ▼ ▼ |
||
|
||
|
▼ ▼ ▼ |
||
|
||
Linux日本語コンソール…
はじめに
Linuxカーネルのコンソールドライバ及びフレームバッファ機能(Frame Buffer)にパッチをあて、コンソールに日本語(EUCに対応)を表示可能にします。
本来、Linuxのコンソールは、コンソールドライバが、グラフィックボードのテキスト画面(?)にキャラクタコードを渡すことにより文字が表示されていました。日本語コードをサポートしていないグラフィックボード(ほとんどがそう)では、当然、表示が化けることになります。
また、フレームバッファは、コンソールドライバから受け取ったキャラクタコードを、ビットマップフォントに展開し、グラフィックボードのグラフィック画面(?)に描画をする機能を持っています。
このコンソールドライバからキャラクタコードを貰いビットマップフォントに展開する部分で、日本語コード(EUC)のハンドリングをし、日本語のビットマップフォントデータを渡すことにより、日本語の表示を可能にしています。
元となるカーネルソースは、linux-2.4.19〜linux-2.4.20です。これらのソースは、 http://www.kernel.org/ やミラーサイト等から入手して下さい。
また、同様にkernelレベルで日本語に対応しているものでは、Vine Linuxに標準で入ったuniconというコンソールドライバもあります。( 機能も豊富で、半角罫線も表示対応されます )
※このパッチによる障害等に対して、一切責任を負いません。
※サイズの関係で、現在はカーネルに対するパッチのみを公開しています。ソースからのビルド
ソースからビルドするときには、まず、パッチをあてます。
パッチは3つあり、日本語コンソールとフォントは、実質、ファイルを追加するためのものなので、2.4系のカーネルであれば、ほぼ問題なくあたると思います。
ただし、カーネルに対するパッチは、元となるソースが変更されるため異なるリビジョンやバージョンの場合、正常にあたらない場合もあります。カーネルパッチ
# cd /usr/src/linux # zcat linux-2.4.20-jconsole-kernel-021215.patch.gz | patch -p1日本語コンソールのパッチ
# zcat jconsole-core-030110.patch.gz | patch -p1フォントパッチ(2種類あるフォントのうち、どちらか1つを選んでください)
# zcat jconsole-k14-021215.patch.gz | patch -p1続いて、カーネルのコンフィグレーションは、以下のように行います。
"Support Japanese EUC_JP Encoding"及び"Japanese Kanji 16x16 font"はモジュールとしても設定可能です。# make menuconfig Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Console drivers ---> Frame-buffer support ---> [*] Support for frame buffer devices (EXPERIMENTAL) [*] Support Multi-Language Extension (EXPERIMENTAL) <*> Support Japanese EUC_JP Encoding (EXPERIMENTAL) [*] Convert from UTF8 to EUC_JP (EXPERIMENTAL) <*> Japanese Kanji 16x16 font (EXPERIMENTAL) <M> Japanese Marumoji 16x16 font (EXPERIMENTAL)"Convert from UTF8 to EUC_JP"を有効にすると、内部でUTF8のコードをEUC_JPに変換し表示します。
カーネルのビルド及びインストールは通常通りです。
設定
フォントまでを組み込んだカーネルの場合、カーネル起動時から日本語サポートを有効にすることができます。
その場合はカーネルの起動オプションにvideo=lang:euc_jpを追加します。
# cat /etc/lilo.conf prompt timeout=50 default=linux boot=/dev/hda map=/boot/map install=/boot/boot.b message=/boot/message lba32 image=/boot/vmlinuz-2.4.9-13jsmp label=linux initrd=/boot/initrd-2.4.9-13jsmp.img read-only root=/dev/hda2 append="hdc=ide-scsi video=lang:euc_jp" vga=792また、モジュールとして組み込んだ場合、また、起動後に日本語サポートを有効にするには、エスケープシーケンス(ESC]Leuc_jp;)を出力することで行えます。
# echo -e "\033]Leuc_jp;"モジュールとして組み込む場合は、fblang_euc_jp、font_kanji_16x16の順に組み込んでください。
制限事項
いわゆる半角カナ及び半角罫線はサポートしていません。
ダウンロード
日本語コンソール - core jconsole-core-030110.patch.gz 2003-01-10 31,061 bytes カーネルパッチ - linux-2.4.19用 linux-2.4.19-jconsole-kernel-021215.patch.gz 2002-12-15 5,482 bytes - linux-2.4.20用 linux-2.4.20-jconsole-kernel-021215.patch.gz 2002-12-15 5,515 bytes フォント - k14ベース jconsole-k14-021215.patch.gz 2002-12-15 454,284 bytes - kanji16ベース jconsole-kanji16-021215.patch.gz 2002-12-15 494,132 bytes k14ベースは、k14.bdf及びmaru14.bdfを使用したものですが、フォントサイズは16x16になるように余白を入れています。RedHat 7.3用 - 2.4.18-18.7.x用カーネルパッチ linux-2.4.18-18.7.x-jconsole-kernel-021215.patch.gz 2002-12-15 5,511 bytes - jconsole用config jconsole-021215.config 2002-12-15 136 bytes - 2.4.18-19.7.xのspecパッチ kernel-2.4-030110.spec.patch 2003-01-10 1,267 bytes 2.4.18-18.7.x用カーネルパッチは、2.4.18-19.7.xでも使用できます。テスト用EUCテキスト - コード表 euc.txt.gz 2002-12-15 19,791 bytes フォント(英数) - vax.psf.gz vax.psf.gz 2002-12-15 2,136 bytes vax.psf.gzは、昔X68Kで使用していた英数フォントで、kanji16と使用すると違和感のないサイズのものです。
RedHatでは/lib/kbd/consolefontsに入れ、/etc/sysconfig/i18nのSYSFONTに指定することにより使用できます。その他 ( RedHat 7.3/kernel-2.4.18-19.7.x.src.rpm に対するパッチ )
kernel-2.4.18-19.7.x.src.rpmを展開します。
# rpm -U kernel-2.4.18-19.7.x.src.rpmソースをコピーします。
# cp linux-2.4.18-18.7.x-jconsole-kernel-021215.patch.gz /usr/src/redhat/SOURCES/. # cp jconsole-core-030110.patch.gz /usr/src/redhat/SOURCES/. # cp jconsole-kanji16-021215.patch.gz /usr/src/redhat/SOURCES/. # cp jconsole-021215.config /usr/src/redhat/SOURCES/.specファイルにパッチをあてます。
# cd /usr/src/redhat/SPECS # patch -p0 < kernel-2.4-021215.spec.patchパッケージの作成については、man rpm してください。
例えば、i686用のバイナリパッケージ及びソースパッケージを作成する場合は、以下のようにします。
# cd /usr/src/redhat/SPECS # rpm -ba -target i686 kernel-2.4.specまた、i386用のバイナリパッケージを作成する場合は、以下のようにします。
# cd /usr/src/redhat/SPECS # rpm -bb -target i386 kernel-2.4.specなお、このパッチで作成されるパッケージのバージョンは、2.4.18-19j.7.x となります。( 19の後に j が付く )
specファイルに対するパッチは、以下の通りです。
バージョンの j を付加
Sourceエントリにconfig用のソースを追加
Patchエントリにパッチファイル3つを追加
パッチが実行されるように追加
configファイルをコピー後に、jconsole用configをマージRedhat 8.0についても、同様のspecファイルを作成すれば、パッチをあてたカーネルを作成できます。
履歴
日付 内容 2003-01-10 漢字の左右で、属性が異なる場合があった(例えばmanページの強調文字)が、属性の指定にかかわらず、左半分にあわせるようにした 2002-12-14 コピー&ペースト処理の追加 ( UTF8環境下では化けます )
UTF8処理の追加(2003/01/10)
|
||
|
▲ ▲ ▲ |
||
|
||
|
▲ ▲ ▲ |
||
|
||
|
▲ ▲ ▲ |
||
|
||
|
|
||
|
(c) Copyright 1998-2002 Hiroshi OHNO All
right reserved. |
||