インストールメモ

コンパイルにかかった時間が書いてある所がありますが、うちのPCは、Pentium 90MHz, RAM 40MB, RedHat Linux 7.2 です。もしかするとHGWの方が高性能かも...。

cross binutils-2.13

パッケージを解凍します。

% tar xvfz binutils-2.13.tar.gz

ビルド用のディレクトリを作ります。

% mkdir build-binutils

configureスクリプトを実行します。

% cd build-binutils
% ../binutils-2.13/configure --target=ppc-linux2.4 --prefix=/usr/local

コンパイルします。うちのPCでは、40分かかりました。

% make

インストールします。

% su
# make install
# exit
%

/usr/local/bin/ppc-linux2.4-ld, /usr/local/ppc-linux2.4/bin/ld などがインストールされます。

% ppc-linux2.4-ld -v
GNU ld version 2.13

cross gcc-2.95.3

libcのヘッダーが必要になるので、とりあえずi386用の /usr/include を /usr/local/ppc-linux2.4/include にコピーしておきます(このやり方が正しいのか不明)。これは gcc のコンパイルが終ったら削除します。

# mkdir /usr/local/ppc-linux2.4/include
# cp -r /usr/include/* /usr/local/ppc-linux2.4/include

gccのパッケージを解凍します。

% tar xvfz gcc-core-2.95.3.tar.gz

ビルド用のディレクトリを作ります。

% mkdir build-gcc

configureスクリプトを実行します。

% cd build-gcc
% ../gcc-2.95.3/configure --target=ppc-linux2.4 --prefix=/usr/local --with-cpu=860

コンパイルします。うちのPCでは70分かかりました。

% make

インストールします。

% su
# make install

/usr/local/bin/ppc-linux2.4-gcc, /usr/local/ppc-linux2.4/bin/gcc などがインストールされます。

i386用のヘッダーを削除します。

# rm -rf /usr/local/ppc-linux2.4/include

cross glibc-2.1.3

4つのパッケージを入手します。glibc-2.1.3.tar.gz, glibc-linuxthreads-2.1.3.tar.gz, glibc-crypt-2.1.tar.gz, linux-2.4.4.tar.gz

カーネルのヘッダーが必要になります。カーネルのパッケージを解凍します。

% tar xvfz linux-2.4.4.tar.gz
% cd linux

Makefileを編集します。変更点は以下のとおりです。

#ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
ARCH = ppc
CROSS_COMPILE = ppc-linux2.4-

カーネルのconfigを実行します。いろいろ聞かれますが、適当に答えておきます。わからないときは、ただEnterを押せば、デフォルト値になります。

% make config

カーネルのバージョン情報を示すファイルを作ります。

% make include/linux/version.h

glibcのパッケージ3つを解凍します。

% cd ..
% tar xvfz glibc-2.1.3.tar.gz
% cd glibc-2.1.3
% tar xvfz ../glibc-linuxthreads-2.1.3.tar.gz
% tar xvfz ../glibc-crypt-2.1.tar.gz

locale/C-ctype.c に文法誤りがあるので、修正します。終りから6行目の最後に、カンマを追加します。

    { string: (const char *) (_nl_C_LC_CTYPE_tolower + 128) },

浮動小数点プロセッサを使うソースを削除しておきます。

% cd sysdeps/powerpc
% mkdir backup
% mv e_* s_* t_* w_* backup
% mv fclrexcpt.c fe_nomask.c fegetenv.c fegetround.c feholdexcpt.c fenv_const.c fenv_libc.h fesetenv.c fesetround.c feupdateenv.c fgetexcptflg.c fpu_control.h fraiseexcpt.c fsetexcptflg.c ftestexcept.c backup
% mv bits/fenv.h bits/mathinline.h backup
% cd ../..

sysdeps/powerpc/Makefile を少し書き換えます。2行目をコメントアウト

ifeq ($(subdir),math)
#libm-support += fenv_const fe_nomask t_sqrt
endif

configure スクリプトを実行します。/home/masa/linux は、カーネルを解凍したディレクトリです。

% cd ..
% mkdir build-gilbc
% cd build-glibc
% CC=ppc-linux2.4-gcc AR=ppc-linux2.4-ar RANLIB=ppc-linux2.4-ranlib ../glibc-2.1.3/configure --host=ppc-linux2.4 --prefix=/usr/local/ppc-linux2.4 --enable-add-ons=yes --disable-profile --without-fp --with-headers=/home/masa/linux/include 

make と make install を実行します。うちのPCはmakeに3時間かかりました。

% make
% su
# make install

カーネルのヘッダーをインストールします。/home/masa/linux は、カーネルを解凍したディレクトリです。

# cd /usr/local/ppc-linux2.4/include
# mkdir linux
# cp -r /home/masa/linux/include/linux/* linux/
# mkdir asm
# cp -r /home/masa/linux/include/asm/* asm/
# exit

GNU software

ソースプログラムは、RINGなどからダウンロードできます。

configure スクリプトを実行するときに、いくつかの環境変数を設定しておきます。浮動小数点プロセッサは使わない設定にします。

% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' ./configure --host=ppc-linux2.4 --prefix=/mnt/local

make, make install を実行すると、/mnt/local にインストールされます。HGWに転送する時は、/mnt/local 以下をtarでまとめて、転送します。

HGW の /mnt/local には、シンボリックリンクが作れません。例えば、/mnt/local/lib に libXXXX.so へのシンボリックリンクがあるときは、コピーを作るか、HGW の /lib に /mnt/local/lib/libXXXX.so へのシンボリックリンクを作って対応します。

GNU wget-1.8.2

wgetは、HTTPやFTPで、インターネット上のファイルを取得するツールです。

パッケージを解凍したら、config.cacheファイルを作ります。configure スクリプトが、byte order や sizeof を自動検出できないからです。

ac_cv_c_bigendian=${ac_cv_c_bigendian=yes}
ac_cv_sizeof_long=${ac_cv_sizeof_long=4}
ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8}

configureスクリプトを実行します。

% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' ./configure --host=ppc-linux2.4 --prefix=/mnt/local --cache-file=config.cache

コンパイルしてインストールします。/mnt/local にインストールされます。

% make 
# make install

HGWの/mnt/localに送ります。

GNU bash-2.05b

ash よりも使い勝手の良いシェルです。

bash-2.05b.tar.gz を解凍します。

config.cache ファイルを作ります。

ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed='yes'}
bash_cv_have_mbstate_t=${bash_cv_have_mbstate_t='yes'}

configure を実行します。

% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' ./configure --host=ppc-linux2.4 --prefix=/mnt/local --config-cache

コンパイルしてインストールします。/mnt/local にインストールされます。

% make 
# make install

HGWの/mnt/localに送ります。

‾/.bashrcを作ります。

PS1="[¥u@¥h ¥W]¥$ "
alias ls='ls -CF'
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'

bash を実行します。

# bash
[root@beta2 root]$

システム起動時に .bashrc が /root に復元されるようにする手順は、.profile と同じです。設定メモを参照してください。

/etc/passwd を修正して bash を root のログインシェルにするのはやめましょう。万一の時にログインできなくなるため。

GNU less-358

less をコンパイルする前に、libtermcap をインストールします。termcap-1.3.1.tar.gz を解凍します。

configure, make, make install を実行します。/usr/local/ppc-linux2.4/ にインストールされます。

% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' ./configure --host=ppc-linux2.4 --prefix=/usr/local/ppc-linux2.4
% make
# make install

less-358.tar.gz を解凍します。同じディレクトリに less-358-iso254.patch.gz を解凍します。

日本語対応パッチを当てます。

% patch < less-358-iso254.patch

configure, make, make install を実行します。

% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' ./configure --host=ppc-linux2.4 --prefix=/mnt/local
% make 
# make install

HGWに転送します。lessを使う前に、以下の環境変数をセットしてください。‾/.profile に記述しておけばログイン時にセットされます。

JLESSCHARSET=japanese-ujis
LESS=d
export JLESSCHARSET LESS

GNU grep-2.5

grep-2.5.tar.gz を解凍します。

% CC=ppc-linux2.4-gcc CPPFLAGS=-I/usr/local/ppc-linux2.4/include CFLAGS='-msoft-float -O2' LDFLAGS=-L/usr/local/ppc-linux2.4/lib ./configure --host=ppc-linux2.4 --prefix=/mnt/local

(以下省略)

GNU gawk-3.1.1

gawk-3.1.1.tar.gz を解凍します。

config.cache ファイルを作ります。

ac_cv_func_getpgrp_void=${ac_cv_func_getpgrp_void=yes}

configure を実行します。

% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' ./configure --host=ppc-linux2.4 --prefix=/mnt/local --cache-file=config.cache

(以下省略)

mgetty 1.1.21

「ZAURUSをHGWにつなぐ」を見てください。普通にモデムにつないでダイヤルアップサーバ用に使う場合は、ザウルスモデムエミュレート用のパッチは不要です(試してはいません)。

Apache 1.3.27

apache_1.3.27.tar.gz を解凍します。

HTTP PUT に対応させる場合は、同じディレクトリにmod_put.tar.gz を解凍します。

configure スクリプトを実行します。

% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' RANLIB=ppc-linux2.4-ranlib LD_SHLIB=ppc-linux2.4-ld ./configure --prefix=/mnt/local/apache --enable-module=so --add-module=mod_put-1.3/mod_put.c

src/main/Makefile を4箇所修正します。ppc-linux2.4-gcc ではなく、gcc を使わなければならない所があるからです。

gen_uri_delims: gen_uri_delims.o
	gcc $(CFLAGS) $(LDFLAGS) -o gen_uri_delims gen_uri_delims.o $(LIBS)

gen_test_char: gen_test_char.o
	gcc $(CFLAGS) $(LDFLAGS) -o gen_test_char gen_test_char.o $(LIBS)

...

gen_test_char.o: gen_test_char.c $(INCDIR)/httpd.h ¥
 $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h ¥
 $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h $(INCDIR)/ap_ctype.h ¥
 $(INCDIR)/hsregex.h $(INCDIR)/ap_alloc.h $(INCDIR)/buff.h ¥
 $(INCDIR)/ap.h $(INCDIR)/util_uri.h
	gcc -c  -I../os/unix -I../include   -DLINUX=22 -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -msoft-float -O2 `../apaci` gen_test_char.c
gen_uri_delims.o: gen_uri_delims.c
	gcc -c  -I../os/unix -I../include   -DLINUX=22 -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -msoft-float -O2 `../apaci` gen_uri_delims.c

コンパイルしてインストールします。/mnt/local/apache にインストールされます。

% make 
# make install

HGWの/mnt/localに送ります。

運用する前に、/mnt/local/apache/conf/httpd.conf を良く読んで、修正してください。

apache を開始/停止するには、/mnt/local/apache/bin/apachectl を使います。


ホームに戻る

Valid HTML 4.01!