○ Linux kernel 2.5.3 → 2.5.14 【関連】kernel 2.4.4
最初にビルドに使われるツール群を更新。
binutils-2.11.90.0.8-5 --> 2.12.90.0.7-1
e2fsprogs-1.18-15 --> 1.27-3
gcc もアップしておきたかったけど、面倒なので後回しにしておく。(後述)
make menuconfig で適当にコンフィグをする。make bzImage すると、
ld -m elf_i386 -T /usr/src/linux-2.5.14/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \ --start-group \ arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \ /usr/src/linux-2.5.14/arch/i386/lib/lib.a /usr/src/linux-2.5.14/lib/lib.a /usr/src/linux-2.5.14/arch/i386/lib/lib.a \ drivers/parport/driver.o drivers/base/base.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/char/agp/agp.o drivers/ide/idedriver.o drivers/cdrom/driver.o sound/sound.o drivers/pci/driver.o drivers/net/tulip/tulip_net.o drivers/pnp/pnp.o drivers/video/video.o \ net/network.o \ --end-group \ -o vmlinux arch/i386/kernel/kernel.o: In function `intel_thermal_interrupt': arch/i386/kernel/kernel.o(.text+0x7c41): undefined reference to `ack_APIC_irq' arch/i386/kernel/kernel.o: In function `intel_init_thermal': arch/i386/kernel/kernel.o(.text.init+0x2d9c): undefined reference to `apic_read' arch/i386/kernel/kernel.o(.text.init+0x2de3): undefined reference to `apic_write_around' arch/i386/kernel/kernel.o(.text.init+0x2e03): undefined reference to `apic_read' arch/i386/kernel/kernel.o(.text.init+0x2e13): undefined reference to `apic_write_around' make: *** [vmlinux] エラー 1
Processor type and features + Local APIC support on uniprocessors --> Y + IO-APIC support on uniprocessors --> Y
○ gcc 2.96.96 → 3.1.0 【関連】-
rpm をダウンロードしてきて、一度アップテストをしてみる。依存性などの関係でそのまま通るとは思わないので。
# rpm -Uvh --test gcc-3.1-0.27.i386.rpm cpp-3.1-0.27.i386.rpm gdb-5.1.92-1.i386.rpm
gcc-c++-3.1-0.27.i386.rpm gcc-objc-3.1-0.27.i386.rpm libobjc-3.1-0.27.i386.rpm
エラー: 依存性の欠如:
rpmlib(PartialHardlinkSets) <= 4.0.4-1は gcc-3.1-0.27 に必要とされています
rpmlib(PartialHardlinkSets) <= 4.0.4-1は gcc-c++-3.1-0.27 に必要とされています
# su
$ rpm -Uvh rpm-4.0.4-7x.i386.rpm rpm-devel-4.0.4-7x.i386.rpm rpm-build-4.0.4-7x.i386.rpm
rpmfind-1.7-4.7x.i386.rpm rpm2html-1.7-3.7x.i386.rpm rpm-python-4.0.4-7x.i386.rpm
gnorpm-0.96-12.7x.i386.rpm popt-1.6.4-7x.i386.rpm kpackage-1.3.10-8.i386.rpm
$ rpm -Uvh gcc-3.1-0.27.i386.rpm cpp-3.1-0.27.i386.rpm gdb-5.1.92-1.i386.rpm
gcc-c++-3.1-0.27.i386.rpm gcc-objc-3.1-0.27.i386.rpm libobjc-3.1-0.27.i386.rpm
Preparing... ########################################### [100%]
1:libobjc ########################################### [ 16%]
2:cpp ########################################### [ 33%]
3:gcc ########################################### [ 50%]
4:gdb ########################################### [ 66%]
5:gcc-c++ ########################################### [ 83%]
6:gcc-objc ########################################### [100%]
○ GD 1.6.2? → 2.0.1 【関連】PHP 4.0.8
一週間くらい前の内容なんで間違った内容や必要な手順が抜け落ちてるかもしれないです。前から興味のあった PHP から gd を使ってみました。それで、ImageTTFText関数を使ったサンプルを作ってみると、
Warning: libgd was not built with TrueType font support in /var/www/html/result.php on line 56
GD Support | enabled |
GD Version | 1.6.2 or higher |
FreeType Support | enabled |
FreeType Linkage | with freetype |
JPG Support | enabled |
PNG Support | enabled |
WBMP Support | enabled |
と古いバージョンみたいなので、バージョンアップしておこう。
まず、gd をバージョンアップ。RedHat で使える 2.0 の rpm パッケージが見つからなかったので、自前で rpm をビルドする。まず、1.8.4 のソースrpm を拾ってきて、インストール。gd-2.0.1.tar.gz も拾ってきて適当な場所に解凍。
# rpm -ivh gd-1.8.4-4.src.rpm
# cp gd-2.0.1.tar.gz ~/sources/ # 適当なディレクトリとして ~/sources/ を使う
# cd ~/sources/
# tar xzf gd-2.0.1.tar.gz
# cd ~/work
# mkdir gd-2.0.1
# cp ~/sources/gd-2.0.1/Makefile gd-2.0.1/ # 作業用ディレクトリにオリジナルの Makefile をコピー
# cp gd-2.0.1 gd-2.0.1.new # 更新用ディレクトリとして gd-2.0.1.new を用意
# vi gd-2.0.1.new/Makefile
# diff -uN gd-2.0.1/Makefile gd-2.0.1.new/Makefile > gd-2.0.1-redhat.patch
# cp gd-2.0.1-redhat.patch ~/RPMS/SOURCES/ # (RPM_BUILD_ROOT)/SOURCES/ にコピー
# cp ~/sources/gd-2.0.1.tar.gz ~/RPMS/SOURCES/ # tar.gz もコピー
# cd ~/RPMS/SPECS
# vi gd.spec # spec ファイルを編集
# rpm -bb gd.spec # gd-2.0.1-1 として RPM をビルド
# cd ../RPMS/i386/
# su
$ rpm -ivh gd-2.0.1-1.i386.rpm # ビルドした RPM をインストール
$ rpm -Uvh gd-devel-2.0.1-1.i386.rpm gd-progs-2.0.1-1.i386.rpm
# cd ~/RPMS/SPECS
# vi php.spec # spec ファイルを編集
# rpm -bb php.spec
# cd ../RPMS/i386/
# su
$ rpm -Uvh php-*4.0.6-12.i386.rpm # ビルドした RPM をインストール
$ /sbin/service httpd restart # Apache を再起動して PHP をロードしなおす
GD Support | enabled |
GD Version | 2.0 or higher |
FreeType Support | enabled |
FreeType Linkage | with freetype |
JPG Support | enabled |
PNG Support | enabled |
WBMP Support | enabled |
大丈夫なよう。早速サンプルコードを試してみる。
## gdsample.php ## <?php mb_http_output("SJIS"); // イメージの作成 $font = "/usr/share/fonts/ja/TrueType/kochi-gothic.ttf"; $im = ImageCreate(170, 110); $white = ImageColorAllocate($im, 255, 251, 249); $blue = ImageColorAllocate($im, 120, 130, 250); ImageFilledArc($im, 85, 55, 150, 90, 0, 360, $blue, IMG_ARC_PIE); ImageTTFText($im, 24, 0, 20, 62,$white, $font, "サンプル"); // PNG書き出し ImagePng($im, "images/sample.png"); ImageDestroy($im); ?> <html> <head> <title>GD 2.0 テスト</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <img src="images/sample.png" width="170" height="110" alt="GD 2.0 テスト"> </body> </html>