玄箱Pro Debian+Asterisk
玄箱ProをDebian化する
このへんを参考にDebian化しちゃってください。後はDebianとして扱えますので・・・
コンパイル環境を整える
Debian化したならば、以下のパッケージを追加してAsteriskがコンパイルできるようにします。
gcc g++ libc6-dev make linux-libc-dev ncurses-dev perl-modules patch
# apt-get install gcc g++ libc6-dev make linux-libc-dev ncurses-dev perl-modules patch
いろいろと一緒に付いてくるものもインストールしてしまってください。
DAHDI
カーネルソースの準備
カーネルソースを/usr/srcに展開します。カーネルソースはlinux-libc-devに付いてきます。これを/usr/src/の下で展開し、ln -s linux-source-2.6.26 /usr/src/linux などしてシンボリックリンクを作成しておきます。
カーネルモジュールをを途中までコンパイルします。一旦、make menuconfigなどして.configを作ります。カーネルそのものを入れ換えるわけではないので、設定は適当でもかまいません。
.configファイルのバージョンを以下のように書き直します。(menuconfigで設定してもかまいませんが)
CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="-2-orion5x" <これ 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
DAHDIのコンパイル
玄箱ではどのみちdahdi_dummyしか使えないので、余計なものをコンパイル&インストールするのは無駄です。必要なものだけをコンパイルするには以下のように行います。
DAHDIのソースを展開します。今ならDAHDI Completeを落としてきてください。
linux/drivers/dahdi/Kbuild を編集します。要らないものをコメントアウトします。
obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI) += dahdi.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DUMMY) += dahdi_dummy.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DYNAMIC) += dahdi_dynamic.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DYNAMIC_LOC) += dahdi_dynamic_loc.o ~略~ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_TOR2) += tor2.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_PCIRADIO) += pciradio.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_XPP) += xpp/ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_JPAH) += dahdi_echocan_jpah.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_STEVE) += dahdi_echocan_sec.o
これでDAHDIをmakeしmake installします。
Asterisk
やはりGSM CODECがasmで引っかかります。なので、codecs/gsm/Makefileを例によって修正します。
debian:~# uname -a Linux debian 2.6.26-2-orion5x #1 Thu Nov 5 08:02:07 UTC 2009 armv5tel GNU/Linux
codecs/gsm/Makefile に以下のような行が3箇所ほどあるので
ifeq (, $(findstring $(PROC) , x86_64 amd64 ultrasparc sparc64 arm armv5b armeb hppa2.0 ppc powerpc ppc64 ia64 s390 bfin mipsel mips))
次のように追加しておく
ifeq (, $(findstring $(PROC) , x86_64 amd64 ultrasparc sparc64 arm armv5b armv5tel armeb hppa2.0 ppc powerpc ppc64 ia64 s390 bfin mipsel mips))
armv5bの後ろにarmv5telを追加すればOKです。