「Asteriskインストールメモ」の版間の差分
(新しいページ: 'AsteriskおよびZaptelのインストールでOS依存部分などのまとめページです。 ==Zaptel + CentOS 4.3== RedHatのカーネルソースバグによりZaptelの...') |
(相違点なし)
|
2007年4月8日 (日) 02:59時点における版
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/ 2007年4月8日 (日) 02:59 (JST)2007年4月8日 (日) 02:59 (JST)~~ たかはし 2007年4月8日 (日) 02:59 (JST)
ファイルspinlock.hの以下の部分を探します。
#define DEFINE_RWLOCK(x) rw_lock_t x = RW_LOCK_UNLOCKED
この行を以下のように修正します。
#define DEFINE_RWLOCK(x) rwlock_t x = RW_LOCK_UNLOCKED 2007年4月8日 (日) 02:59 (JST)たかはし
これで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