Voyage コンパイル

2009年2月5日 (木) 21:32時点におけるTakahashi (トーク | 投稿記録)による版 (要求ディスク容量)

Voyage Linuxを使ってAsteriskをコンパイル(セルフ)する環境の構築方法。
以下はVoyage Linux 0.5.xの場合の情報です。

目次

パッケージの追加

Voyage Linuxをインストールしただけでは開発環境が不足しているため、Asteriskをコンパイルすることができません。そこで以下のパッケージをapt-get installなどで追加します。一緒に付いてくるパッケージがある場合には、それもインストールします。

apt-utils
gcc
g++
libc-dev 
make 
linux-source-2.6.23-voyage 
linux-kernel-headers
ncurses-dev
perl-modules
patch

Asteriskサーバに使うなら ntp も入れておいた方がいいでしょう。

カーネルソースの準備

カーネルソースを/usr/srcに展開します。
ln -s /usr/src/linux-source-2.6.24-voyage /usr/src/linux などしてシンボリックリンクを作成しておきます。
カーネルモジュールをを途中までコンパイルします。一旦、make menuconfigなどして.configを作ります。カーネルそのものを入れ換えるわけではないので、設定は適当でもかまいません。
.configファイルのバージョンを以下のように書き直します。(menuconfigで設定してもかまいませんが)

CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION="-486-voyage" <これ
CONFIG_LOCALVERSION_AUTO=y

カーネルモジュールをmake modulesでコンパイルします。実際に欲しいのはmodpostコマンドなので、これがコンパイルできればCTRL-Cブレークしてかまいません。ただし、モジュールがコンパイルされていないとzaptel/dahdiのmakeが何ぞ文句言うかもしれませんが。

 HOSTCC  scripts/mod/file2alias.o
 HOSTCC  scripts/mod/modpost.o
 HOSTCC  scripts/mod/sumversion.o
 HOSTLD  scripts/mod/modpost           <--これが出たらCTRL-CブレークしてOK
 HOSTCC  scripts/kallsyms

要求ディスク容量

たかはしは開発環境用にはHDDを入れてますが、上記の条件でAsterisk等をコンパイルした場合の使用量は以下のようになっています。

Filesystem             Size   Used  Avail Use% Mounted on
rootfs                 4.0G   1.1G   2.7G  29% /

cleanしないでもこの状態なので2GBもあればコンパイル環境ができるでしょう。

UID/GIDの調整

ユーザ名、グループ名をAsteriskで動作させるには以下の調整が必要です。
/etc/init.d/asterisk スクリプトに以下を追加します。

if ! [ -d /etc/asterisk ] ; then
        echo "ERROR: /etc/asterisk directory not found"
        exit 0
fi

if ! [ -d /var/run/asterisk ] ; then                         ---ここから
        mkdir /rw/var/run/asterisk
fi

if [ $AST_USER ] ; then
        chown -R asterisk:asterisk /rw/var/run/asterisk
fi                                                           ---ここまで