Asteriskインストールメモ
AsteriskおよびZaptelのインストールでOS依存部分などのまとめページです。
目次
Zaptel + CentOS 4.3
RedHatのカーネルソースバグによりZaptelのコンパイルが通りません。
まずカーネルのリリースとアーキテクチャを確認します。
# uname -rm
2.6.9-34.0.2.EL i686次に該当するカーネルソースのinclude/linuxディレクトリへ移動します。
# cd /usr/src/kernels/2.6.9-34.EL-i686/include/linux/
ファイルspinlock.hの以下の部分を探します。
#define DEFINE_RWLOCK(x) rw_lock_t x = RW_LOCK_UNLOCKED
この行を以下のように修正します。
#define DEFINE_RWLOCK(x) rwlock_t x = RW_LOCK_UNLOCKED
これでZaptelのコンパイルが通るようになります。
Zaptel + Fedora Core 5
とりあえずカーネルを最新のtestバージョンに上げます。
(注:testバージョンに上げなくてもできるかもしれません。どなたか追試を!)
# yum --enablerepo=updates-testing update kernel kernel-devel
リリースとアーキテクチャを確認します。
# uname -rm 2.6.17-1.2159_FC5 i686
カーネルソースをこのあたりから入手し、rpmでインストールしておきます。
rpmbuildします。
# rpmbuild -bp --target i686 /usr/src/redhat/SPECS/kernel-2.6.spec
カーネルソースをZaptelが期待している場所へ移動します。
# mkdir /usr/src/kernels # mv /usr/src/redhat/BUILD/kernel-2.6.17/linux-2.6.17.i686 /usr/src/kernels/2.6.17-1.2159_FC5-i686
カーネルソースのMakeを若干修正します。
# cd /usr/src/kernels/2.6.17-1.2159_FC5-i686
このディレクトリにあるMakefileのEXTRAVERSIONをコメントアウトします。
VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 17 #EXTRAVERSION = -prep <--コメントアウト NAME=Crazed Snow-Weasel
カーネルをconfigしますがファイルを若干修正します。
# cp configs/kernel-2.6.17-i686.config ./.config
.configのローカルバージョンを先ほど調べたリリースにあわせて設定します。
# # General setup # CONFIG_LOCALVERSION="-1.2159_FC5"
カーネルソースをconfigします。
# make oldconfig
カーネルモジュールを生成しておきます。
# make modules
ドライバ類(fs/の下など)を作り始めたらCTRL-Cブレークしてかまいません。Zaptelが必要とするスクリプト類ができていればカーネル・モジュールを全て作る必要はありません。 これでZaptelのコンパイルができるようになります。makeとmake install、make configを行ってください。
以上の作業でFC5でZaptelが動作するようになると思います。 (もっとスマートなやり方があれば、このページを更新してください)
ユーザを"asterisk"で動作させる場合にはudevの調整が必要です。zaptel+udevのページを参照してください。
Asterisk + Fedora Core 5
channels/chan_phone.cがversion.hを見に行きたがるため、そのままではコンパイルが通りません。
- 対策その1
チャネルドライバそのものを、以下のように修正してしまいます。Fedora Core 5はLinux 2.6なので以下の修正で問題はないでしょう。そもそも、このチャネル・モジュール自体も通常は要りませんが・・・。
-----channels/chan_phone.c 40行目付近 /* Still use some IXJ specific stuff */ /* #include <linux/version.h> #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) */ # include <linux/compiler.h> /* #endif */ #include <linux/ixjuser.h>対策その2
chan_phone.cがversion.hを要求するのであれば、それを用意してやります。カーネルソースにあるversion.hを/usr/include/linuxへコピーすればコンパイルが通るようになります。
# cp /usr/src/kernels/2.6.17-1.2159_FC5-i686/include/linux/version.h /usr/include/linux/.
Asterisk + 非Intel x86
非Intelのx86、例えばVIAプロセッサでは、コンパイルが通りますが実行時にエラーになります。通常はMakefileでPROC=i586を指定しますが、 configureを使う版のasteriskの場合はMakefileでの修正が利きません。以下を実行してからmakeしてください。
./configure --build=i586-pc-linux-gnu
Asterisk + Solaris
Asterisk Solarisのページへ
Debian
- Debian lenny
- DebianではパッケージでAsteriskが提供されています。lennyではAsterisk 1.4系が提供されています。
- Debian lenny上でのソースからのコンパイル
DAHDIのコンパイルにちょっとコツが要ります。コンパイルされたカーネル・ツリーが必要なため、カーネルソースなど一式を入手・展開しておいてください。
/usr/src/linux-source-2.6.26を/usr/src/linuxにシンボリックリンクしておきます。
# cd /usr/src # ln -s /usr/src/linux-source-2.6.26 /usr/src/linux
以下、作業は/usr/src/linux下で行います。
# cd /usr/src/linux # cp /boot/config-2.6.26-2-686 .config # make oldconfig
上記の例はローカルバージョン(-2-686)が異なる場合があるので、使用している環境にあわせます。
ローカルバージョンを調整します。.configファイルを編集して以下の箇所を修正します。
CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="-2-686" <-ここ CONFIG_LOCALVERSION_AUTO=y <-ここ
これでカーネルをmakeします。makeするだけでかまいません。インストールしないように注意してください。
カーネルmakeが終わればDAHDIをコンパイルすることができます。
後の設定等はDAHDIインストールのページを参照してください。