「Voyage コンパイル」の版間の差分
(→パッケージの追加) |
(→UID/GIDの調整) |
||
(同じ利用者による、間の8版が非表示) | |||
1行目: | 1行目: | ||
Voyage Linuxを使ってAsteriskをコンパイル(セルフ)する環境の構築方法。<br> | Voyage Linuxを使ってAsteriskをコンパイル(セルフ)する環境の構築方法。<br> | ||
+ | 以下はVoyage Linux 0.5.xの場合の情報です。<br> | ||
==パッケージの追加== | ==パッケージの追加== | ||
Voyage Linuxをインストールしただけでは開発環境が不足しているため、Asteriskをコンパイルすることができません。そこで以下のパッケージをapt-get installなどで追加します。一緒に付いてくるパッケージがある場合には、それもインストールします。 | Voyage Linuxをインストールしただけでは開発環境が不足しているため、Asteriskをコンパイルすることができません。そこで以下のパッケージをapt-get installなどで追加します。一緒に付いてくるパッケージがある場合には、それもインストールします。 | ||
11行目: | 12行目: | ||
ncurses-dev | ncurses-dev | ||
perl-modules | perl-modules | ||
+ | patch | ||
+ | Asteriskサーバに使うなら ntp も入れておいた方がいいでしょう。 | ||
+ | |||
==カーネルソースの準備== | ==カーネルソースの準備== | ||
カーネルソースを/usr/srcに展開します。<br> | カーネルソースを/usr/srcに展開します。<br> | ||
19行目: | 23行目: | ||
CONFIG_LOCALVERSION="-486-voyage" <これ | CONFIG_LOCALVERSION="-486-voyage" <これ | ||
CONFIG_LOCALVERSION_AUTO=y | CONFIG_LOCALVERSION_AUTO=y | ||
− | カーネルモジュールをmake modulesでコンパイルします。実際に欲しいのはmodpostコマンドなので、これがコンパイルできればCTRL-Cブレークしてかまいません。ただし、モジュールがコンパイルされていないとzaptel/ | + | カーネルモジュールを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> | ||
+ | Filesystem Size Used Avail Use% Mounted on | ||
+ | rootfs 4.0G 1.1G 2.7G 29% / | ||
+ | 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を作り直し、オーナ/グループを設定してやります。