Zaptelのコンパイル

まずは展開

一応、suになって、tarボールを任意のディレクトリに展開し、そこに移動。

$su -
#cd /usr/local/src
#tar zxvf /ダウンロードディレクトリ/zaptel-1.4.6.tar.gz .
#cd zaptel-1.4.6

configureの実行

#./configure

インストールモジュールの選択

Zaptelが用意しているモジュールのうち、必要なモジュールだけを選択するために make menuselectを実行(Zaptelのztdummyモジュールだけが必要)

#make menuselect

カーソルキーでkernelを選択しenter。

   *************************************
          Zaptel Module Selection
   *************************************
    
            Press 'h' for help.
   
      ---> 1.  Kernel Modules
           2.  Utilities
           3.  Binary Firmware Packages

ztdummyのみ選択。スペースキーで選択、非選択のトグル。

   *************************************
          Zaptel Module Selection
   *************************************
   
            Press 'h' for help.
   
           [ ] 1.  pciradio
           [ ] 2.  tor2
           [ ] 3.  torisa
           [ ] 4.  wcfxo
           [ ] 5.  wct1xxp
           [ ] 6.  wct4xxp
           < > 7.  wctc4xxp
           [ ] 8.  wctdm
           [ ] 9.  wctdm24xxp
           [ ] 10. wcte11xp
           [ ] 11. wcte12xp
           [ ] 12. wcusb
           [ ] 13. xpp
           < > 14. ztd-eth
           < > 15. ztd-loc
           [*] 16. ztdummy
           [ ] 17. ztdynamic
           [ ] 18. zttranscode

x で保存して終了。

make & make install

#make
#make install

なにも問題なく、makeもmake installも完了。
make configを実行すると /etc/rc.d/init.d/zaptelを入れてくれるので便利なので実行しておく。(もちろんchkconfigも効くようになる)

#make config

udev動作

Zaptelはudev用のルールを用意してくれており、"asterisk"という名前を利用するので、そのアカウントを作っておく。

 adduser -u 5001 -s /sbin/nologin -d /var/lib/asterisk asterisk

Zaptelをインストールするとudevルールファイル(/etc/udev/rules.d/zaptel.rules)が設定されるので、この状態でzaptelを再起動すれば、udevとして動作するはず。。。。。
なのだが、実は動作しない。

どうも、/etc/udev/rules.d/50-udev.rulesにも設定が書かれているようで、こちらの書式が間違っているようだ。
udevは/etc/udev/rules.d/ディレクトリ内のすべてのファイルを読み込んで設定を行うので、この状態では設定が2つになり、これによって期待したとおりの動作がされない。
なので/etc/udev/rules.d/50-udev.rulesにあるzaptelの設定をコメントアウトしてしまう。

/etc/udev/rules.d/50-udev.rules
 KERNEL=="zapctl",              NAME="zap/ctl"
 KERNEL=="zaptimer",            NAME="zap/timer"
 KERNEL=="zapchannel",          NAME="zap/channel"
 KERNEL=="zappseudo",           NAME="zap/pseudo"
 KERNEL=="zap[0-9]*",           NAME="zap/%n"
    ↓
 #KERNEL=="zapctl",              NAME="zap/ctl"
 #KERNEL=="zaptimer",            NAME="zap/timer"
 #KERNEL=="zapchannel",          NAME="zap/channel"
 #KERNEL=="zappseudo",           NAME="zap/pseudo"
 #KERNEL=="zap[0-9]*",           NAME="zap/%n"

これで、/etc/init.d/zaptel を再起動すると

#ls -l /dev/zap
crw-rw---- 1 asterisk asterisk 196, 254 11月 22 03:28 channel
crw-rw---- 1 asterisk asterisk 196,   0 11月 22 03:28 ctl
crw-rw---- 1 asterisk asterisk 196, 255 11月 22 03:28 pseudo
crw-rw---- 1 asterisk asterisk 196, 253 11月 22 03:28 timer
crw-rw---- 1 asterisk asterisk 196, 250 11月 22 03:28 transcode

となり、一件落着。

※最近、zaptel-1.4.8をインストールしたところ、この問題は解消されているようです。

OS起動時にサービス開始

zaptelはasteriskに先立って実行しておかなければならないものなので、chkconfigでOS起動時に自動的に動くように設定しておく。

#chkconfig zaptel on

kernelのアップデート時

※2008.05.20追記
Linuxのkernelをupdateした後、OSを再起動するとzaptelのドライバが動かないようである。
うちでの現象はCentOS5の2.6.18-53 を 2.6.18-53.1.13 にyumでupdateして再起動したときに発生。
make installしなおしたらば、また動いたので、zaptel自身にkernel依存な部分があるようである。
kernel自身の大きなバージョンアップ時は最初からインストールしなおしたほうが無難だと思われる。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-30 (日) 22:36:36 (145d)