4,726
回編集
差分
新しいページ: 'AsteriskおよびZaptelのインストールでOS依存部分などのまとめページです。 ==Zaptel + CentOS 4.3== RedHatのカーネルソースバグによりZaptelの...'
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
==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