「Asteriskインストールメモ」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(Debian)
(Debian)
87行目: 87行目:
 
:DebianではパッケージでAsteriskが提供されています。lennyではAsterisk 1.4系が提供されています。
 
:DebianではパッケージでAsteriskが提供されています。lennyではAsterisk 1.4系が提供されています。
 
*Debian lenny上でのソースからのコンパイル
 
*Debian lenny上でのソースからのコンパイル
DAHDIのコンパイルにちょっとコツが要ります。コンパイルされたカーネル・ツリーが必要なため、カーネルソースなど一式を入手・展開しておいてください。<br>
+
DAHDIのコンパイルにはlinux-headers-2.6.26-686と、linux-kbuild-2.6.26が必要です。aptitudeでインストールすると付いてくるものも一式インストールしておきます。
/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)が異なる場合があるので、使用している環境にあわせます。<br>
 
ローカルバージョンを調整します。.configファイルを編集して以下の箇所を修正します。
 
CONFIG_INIT_ENV_ARG_LIMIT=32
 
CONFIG_LOCALVERSION="-2-686" <-ここ
 
CONFIG_LOCALVERSION_AUTO=y      <-ここ
 
これでカーネルをmakeします。makeするだけでかまいません。インストールしないように注意してください。<br>
 
カーネルmakeが終わればDAHDIをコンパイルすることができます。<br>
 
後の設定等は[[DAHDIインストール]]のページを参照してください。<br>
 

2009年11月11日 (水) 00:20時点における版

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のコンパイルにはlinux-headers-2.6.26-686と、linux-kbuild-2.6.26が必要です。aptitudeでインストールすると付いてくるものも一式インストールしておきます。