玄箱Pro Debian+Asterisk

2009年11月7日 (土) 19:01時点におけるTakahashi (トーク | 投稿記録)による版 (カーネルソースの準備)

目次

玄箱ProをDebian化する

このへんを参考にDebian化しちゃってください。後はDebianとして扱えますので・・・

エレキジャック
http://www.eleki-jack.com/Kurobox-pro2/2009/03/debian-gnulinux-50-lenny.html#more

コンパイル環境を整える

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です。