試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Gentoo LinuxにおけるGRUB 2(1.96)のグラフィカルな端末(gfxterm)のフォントについて

gfxtermとunifont

GRUB 2ではグラフィカルな端末により、フルカラーの背景画像を用いることができる他、高解像度モード*1も使用できる。Gentoo Linuxの(2008/5/10現在の)ebuildでは、そのグラフィカル端末(gfxterm)のフォント(unifont)はGRUBには付属せず、自分でフォントを入手後、独自の形式に変換を行う必要がある。変換にはrubyが必要。
なお、バージョン1.96の時点では、gfxtermはx86_32もしくはx86_64上でのみ使用できる。

作業例

unifontはDebianのミラーサーバから落としたものを使用している。使用するファイルunifont.hexは「media-fonts/unifont」パッケージのものだが、そのままインストールしてもこのファイルは配置されないため、ソースの中に含まれるものを使用する形となる。

$ sudo emerge -avf unifont "=sys-boot/grub-1.96"
$ tar zxf /usr/portage/distfiles/unifont_1.0.orig.tar.gz
$ tar zxf /usr/portage/distfiles/grub-1.96.tar.gz
$ cd unifont-dvdeug-1.0/
$ zcat /usr/portage/distfiles/unifont_1.0-4.diff.gz | patch -p1
patching file hex2bdf.unsplit
patching file Makefile
patching file debian/unifont.install
patching file debian/changelog
patching file debian/control
patching file debian/unifont-bin.dirs
patching file debian/compat
patching file debian/rules
patching file debian/unifont.dirs
patching file debian/unifont-bin.install
patching file debian/copyright
patching file Makefile.new
patching file unifont.hex
$ ruby ../grub-1.96/util/unifont2pff.rb unifont.hex > unifont.pff
$ sudo cp unifont.pff /boot/grub/

先に「GRUB 2(1.96)のインストール時の覚え書き」で触れたgenkernel向けの修正とシンボルのstripを行わない設定と、上記作業の自動化の修正を合わせた最終的なebuild
http://cid-3f9be5b1cd4a806c.skydrive.live.com/browse.aspx/%e5%85%ac%e9%96%8b/Gentoo%20Linux%20ebuild/sys-boot/grub
にアップロードした。

参考: Debian/Ubuntuでは

Debian/Ubuntuの場合、「grub2」から同時にインストールされる「grub-pc」パッケージに/usr/share/grub/unicode.pff/usr/share/grub/ascii.pff*2の2つのフォントファイルが付属している。
Ubuntu Hardy(8.04)では「grub2」パッケージを入れるだけで簡単に使用できた。スクリーンショット用に仮想マシンに入れたものを用意した。画像は下のようになる。

日本語を表示することもできている。エンコーディングにはUTF-8を使用する。

関連記事:

関連URL:

使用したバージョン:

*1:1280x1024の解像度が使えることを確認したが、動作が若干重い気がしたのと、文字が小さくて読みにくいのとで、実用性には疑問が残った

*2:確認していないが、「ruby util/unifont2pff.rb 0-127 unifont.hex > ascii.pff」で生成したものと思われる