@ひろP

    - Welcome to Hiroshi's Home Page -
    趣味を中心とした個人のホームページです


@ひろP / ホビー / プロフィール / ブックマーク / 掲示板 / アルバム / サイトマップ / memo

▼ ▼ ▼

Linux関連 / OpenBlockSS関連 / 電波時計関連 / GPS関連 / USB関連 / プログラミング

▼ ▼ ▼

インストール及び設定 / 日本語化 / デバイスドライバ / その他

▼ ▼ ▼

Linux日本語コンソール / i815でフレームバッファ / GV-BCTV2/PCI用bttvドライバ

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

続いて、カーネルのコンフィグレーションは、以下のように行います。

# 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)
"Support Japanese EUC_JP Encoding"及び"Japanese Kanji 16x16 font"はモジュールとしても設定可能です。

"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)

Linux日本語コンソール / i815でフレームバッファ / GV-BCTV2/PCI用bttvドライバ

▲ ▲ ▲

インストール及び設定 / 日本語化 / デバイスドライバ / その他

▲ ▲ ▲

Linux関連 / OpenBlockSS関連 / 電波時計関連 / GPS関連 / USB関連 / プログラミング

▲ ▲ ▲

@ひろP / ホビー / プロフィール / ブックマーク / 掲示板 / アルバム / サイトマップ / memo

@ひろP

(c) Copyright 1998-2002 Hiroshi OHNO All right reserved.
E-MAIL: hirop0730@hotmail.com / hiroshi@bigfield.com