「Voyage コンパイル」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(カーネルソースの準備)
(UID/GIDの調整)
 
(同じ利用者による、間の6版が非表示)
12行目: 12行目:
 
  ncurses-dev
 
  ncurses-dev
 
  perl-modules
 
  perl-modules
 +
patch
 +
Asteriskサーバに使うなら ntp も入れておいた方がいいでしょう。
 +
 
==カーネルソースの準備==
 
==カーネルソースの準備==
 
カーネルソースを/usr/srcに展開します。<br>
 
カーネルソースを/usr/srcに展開します。<br>
20行目: 23行目:
 
  CONFIG_LOCALVERSION="-486-voyage" <これ
 
  CONFIG_LOCALVERSION="-486-voyage" <これ
 
  CONFIG_LOCALVERSION_AUTO=y
 
  CONFIG_LOCALVERSION_AUTO=y
カーネルモジュールをmake modulesでコンパイルします。実際に欲しいのはmodpostコマンドなので、これがコンパイルできればCTRL-Cブレークしてかまいません。ただし、モジュールがコンパイルされていないとzaptel/dhadiのmakeが何ぞ文句言うかもしれませんが。<br>
+
カーネルモジュールをmake modulesでコンパイルします。実際に欲しいのはmodpostコマンドなので、これがコンパイルできればCTRL-Cブレークしてかまいません。ただし、モジュールがコンパイルされていないとzaptel/dahdiのmakeが何ぞ文句言うかもしれませんが。<br>
 +
  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等をコンパイルした場合の使用量は以下のようになっています。<br>
 
[[たかはし]]は開発環境用にはHDDを入れてますが、上記の条件でAsterisk等をコンパイルした場合の使用量は以下のようになっています。<br>
26行目: 35行目:
 
  rootfs                4.0G  1.1G  2.7G  29% /
 
  rootfs                4.0G  1.1G  2.7G  29% /
 
cleanしないでもこの状態なので2GBもあればコンパイル環境ができるでしょう。<br>
 
cleanしないでもこの状態なので2GBもあればコンパイル環境ができるでしょう。<br>
 +
==UID/GIDの調整==
 +
ユーザ名、グループ名をAsteriskで動作させるには以下の調整が必要です。<br>
 +
*/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                                                          ---ここまで
 +
ユーザ名、グループ名の設定は普通に、このスクリプト内のコメントを外します。
 +
# Uncomment the following and set them to the user/groups that you
 +
# want to run Asterisk as. NOTE: this requires substantial work to
 +
# be sure that Asterisk's environment has permission to write the
 +
# files required  for  its  operation, including logs, its comm
 +
# socket, the asterisk database, etc.
 +
AST_USER="asterisk"
 +
AST_GROUP="asterisk"
 +
*/etc/asterisk/asterisk.conf を修正します。
 +
[directories]
 +
astetcdir => /etc/asterisk
 +
astmoddir => /usr/lib/asterisk/modules
 +
astvarlibdir => /var/lib/asterisk
 +
astagidir => /var/lib/asterisk/agi-bin
 +
astspooldir => /var/spool/asterisk
 +
astrundir => /var/run/asterisk          <--ここ
 +
astlogdir => /var/log/asterisk
 +
[options]
 +
languageprefix=
 +
Voyage Linuxでは/var/runはメモリディスク上に作成されるため、起動の度にディレクトリを作り直す必要があります。このため、Asteriskの起動スクリプト内で/var/run/asteriskを作り直し、オーナ/グループを設定してやります。

2009年2月5日 (木) 21:38時点における最新版

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                                                           ---ここまで

ユーザ名、グループ名の設定は普通に、このスクリプト内のコメントを外します。

# Uncomment the following and set them to the user/groups that you
# want to run Asterisk as. NOTE: this requires substantial work to
# be sure that Asterisk's environment has permission to write the
# files required  for  its  operation, including logs, its comm
# socket, the asterisk database, etc.
AST_USER="asterisk"
AST_GROUP="asterisk"
  • /etc/asterisk/asterisk.conf を修正します。
[directories]
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk          <--ここ
astlogdir => /var/log/asterisk
[options]
languageprefix=

Voyage Linuxでは/var/runはメモリディスク上に作成されるため、起動の度にディレクトリを作り直す必要があります。このため、Asteriskの起動スクリプト内で/var/run/asteriskを作り直し、オーナ/グループを設定してやります。