リナックスますたぁへの道 パケット編メモ-Vine5+Soundmodem編-
□XFBB再起動編(Vine5)
XFBBはその昔一世を風靡したFWD-NET用のRBBSソフトです。
アマチュア無線のパケット通信は、データ転送速度が300bpsから1200bps、
そして9600bpsなどに速度UPしていきました。9600bpsを使うには無線機を
改造しないといけないのでこのあたりからハードルが高くなって速度UPが
止まりました。一部の人は56kや無線LAN技術を使った数Mbpsへとさらなる
高速化を図っていきましたが、技術のほか免許の関係もあって普及はしま
せんでした。
またこれらの伝送路を使っての通信手段として、最初はP2Pのやりとりから
始まった無線版パソコン通信も、浅間系といわれるスタンドアロンなRBBS
からバケツリレー式のW0RLI、MBXなどの普及が始まり、圧縮転送を取り入
れたF6FBBが爆発的に普及しました。その後はインターネットの興隆と共に
アマチュア無線そのものが下火になっていきました。
そんなF6FBBですが、このソフトがいい所は転送が無線でもネット経由でも
出来るのです。ブロードバンドかつ常時接続が当たり前となった、さらに
TNCが入手困難になっている現在では、パケット通信をするにはとりあえず
パソコン音源にTNCの代わりをさせ、F6FBBで運用する、というのが一つの
スタイルとして認められるのではないかと思います。
ただ厄介なのは、FBBとなるとLinuxが前提となります。WinFBBでもいいの
ですが、Linuxの方が楽は楽です。が、そのLinuxもKernel-2.6系になって
からはAX.25を使うにはカーネルをリコンパイルしないといけないことから
あまりにも手探りな状態になっていることも事実です。
JFの情報も2001年で止まっていますが、かなり充実しました。
http://www.linux.or.jp/JF/JFdocs/AX25-HOWTO/
とりあえずTNCがあるないに関わらず、AX.25についてはここを参照しながら
設定した方がいいと思います。
AX.25関連というかパケット関連を扱うのは今回が最後になるかもしれま
せんが、Vine5(x86_64bit版)でパケットをやるためには、を後世に伝える(?)
ために書いておきたいと思います。
□前提条件
xfbbを始めるにあたり、前提条件を決めておきます。
・パソコンのサウンド機能でRFポートを一つ設置。
・telnetでも接続できるようにする。
とします。
今回はIBMのThinkPadX31(P3-1.4GHz)を使います。
ヤフオクでもこなれた値段で売っているモニター付きTNC(無停電電源付き…
数分だけか?!笑)としてこのノートパソコンを使います。
Vine5が前提ですので、他のディストリビューションの場合には適当に変換
して読んでください。CD-ROMからインストールした場合にはカーネルの他、
エディター(Emacs)とかも入ってないし、サウンド関連も入っていないので
DVD版でインストールすることを「非常に強く」お勧めします。
□まずはKernelの再構築
cd /usr/src/linux-2.6.27/
cp ../kernels/2.6.27-52vl5-i686/.config ./
make oldconfig
make menuconfig
として、メニューモードでカーネルの設定をすると
> :
> Executable file formats / Emulations —>
> -*- Networking support —>
> Device Drivers —>
> :
この「Networking support」の中に入って、
> :
> — Networking support
> Networking options —>
> [*] Amateur Radio support —>
> :
というように「Amateur Radio support」があるので、この中に入って、
> — Amateur Radio support
> *** Packet Radio protocols ***
> <*> Amateur Radio AX.25 Level 2 protocol
> [*] AX.25 DAMA Slave support (NEW)
> <*> Amateur Radio NET/ROM protocol
> <*> Amateur Radio X.25 PLP (Rose)
> AX.25 network device drivers —>
と言うように設定して、
さらに「AX.25 network device drivers」を選択して
> <*> Serial port KISS driver
> < > Serial port 6PACK driver (NEW)
> < > BPQ Ethernet driver (NEW)
> < > BAYCOM ser12 fullduplex driver for AX.25 (NEW)
> < > BAYCOM ser12 halfduplex driver for AX.25 (NEW)
> < > BAYCOM picpar and par96 driver for AX.25 (NEW)
> < > YAM driver for AX.25 (NEW)
上記のようにとりあえず「Serial port KISS driver」を選択して、
設定画面をExitして、エクストラバージョンを書き換える。
emacs Makefile
として
> VERSION = 2
> PATCHLEVEL = 6
> SUBLEVEL = 27
> EXTRAVERSION = -52vl5-ax25
にする。
あとは
make clean bzImage modules modules_install
して、カーネルやモジュールの再構築ができたところで
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.27-52vl5-ax25
cp vmlinux /boot/vmlinux-2.6.27-52vl5-ax25
cp System.map /boot/System.map-2.6.27-52vl5-ax25
depmod -a 2.6.27-52vl5-ax25
/sbin/mkinitrd /boot/initrd-2.6.27-52vl5-ax25.img 2.6.27-52vl5-ax25
cd /boot/
ln -s System.map-2.6.27-52vl5-ax25 System.map.ax25
ln -s initrd-2.6.27-52vl5-ax25.img initrd.img.ax25
ln -s vmlinuz-2.6.27-52vl5-ax25 vmlinuz.ax25
として、あとはブートメニューの書き換え(書き足し)。
cd /boot/grub/
emacs menu.lst
として
> title Vine Linux (with AX.25 kernel)
> root (hd0,0)
> kernel /boot/vmlinuz.ax25 ro root=/dev/VolGroup00/LogVol00 resume=swap:/dev/VolGroup00/LogVol01 vga=0x314 splash=silent
> initrd /boot/initrd.img.ax25
とすればOK。
で、再起動してVine Linux (with AX.25 kernel)を選択して、
起動時のdmesgとか/var/log/bootlogかdmesgに
> :
> Initializing XFRM netlink socket
> NET: Registered protocol family 17
> NET: Registered protocol family 6 ←これ
> NET: Registered protocol family 3
> TuxOnIce 3.0.1 (http://tuxonice.net)
> :
というように、AX.25関連のドライバーが組み込まれていればOK!
え、どこに?という人もいると思いますが、2.6系になってからはドライバ
についての表示がなくなってしまいました。この「protocol family」と
いうのが何のプロトコルドライバーを読み込んだよ、ということです。
ちなみにAX.25は3、NetROMは6ですのでちゃんと読み込んでいます。
プロトコルファミリ番号については/usr/include/bits/socket.hでみる
ことが出来る。
□サウンドモデムのインストール
ThinkPadX31にVineが入ったら、まずはマイクとスピーカーがまともに
使えるかどうかを確認します。X-Windowが立ち上がっている状態なら、
サウンド関連のアプリで「サウンド・レコーダ」というのがあるので、
これを使って自分の声を録音して再生(演奏)して聞こえればOKでしょう。
Vine5ではPulseAudioが使われているので、対応するサウンドカードが
入っているパソコンならなんなくサウンド関連を使うことができるだろう。
逆に、ややこしいサウンドカードを使っている場合には、それこそ録音と
再生で一苦労なので、ここは安いノートをTNCにしてしまうのが一番です。
で、録音ができて再生ができる事を確認したら実際にサウンドモデムを
インストールする。
http://www.baycom.org/~tom/ham/soundmodem/
上記サイトから最新のサウンドモデムソースを持ってきてもいいし、下記の
ようにFWNETサーバーからとってきても良いと思います。
録音できているみたいだけど音が出なくて「?」の場合には、
> # find / -name *.wav
> /usr/share/sounds/login.wav
> /usr/share/sounds/shutdown1.wav
> /usr/share/sounds/question.wav
:
:
と、こんなところにWAVファイルがあるのでこれを再生してみるといいでしょう。
もしくはMP3をどこかから取ってきて再生するのもよいかと思います。
再生もできない場合には、音源ボード(チップ)をきちんと認識していない
と思われるので、がんばって認識させてください。
では、サウンドモデムのコンパイルに必要なパッケージファイルを
インストールします。
・ALSAの開発関係
・libxml2の開発関係
・gtk+2のの開発関係
・audiofileの開発関係
apt-get -y install alsa-lib-devel
apt-get -y install libxml2-devel
apt-get -y install gtk2-devel
apt-get -y install audiofile-devel
としてから、
mkdir /usr/src/package/
cd /usr/src/package/
wget ftp://www.fwnet.jp/package/soundmodem-0.14.tar.gz
cd /usr/src/
tar xvzf ./package/soundmodem-0.14.tar.gz
cd ./soundmodem-0.14/
./configure –prefix=/usr
make
make install
これでやっとサウンドモデムが入ったので、後は設定をする。
X上のターミナルから
mkdir /etc/ax25/
soundmodemconfig
とすると、以下のような設定画面が出てくる。
ここで
設定名:ThinkPadx31
モード:afsk
レート:1200bps
として、sm0ポートに
モード:MKISS
コール:JS1FVG-10
IPAddr:192.168.10.1/255.255.255.0
BCAddr:192.168.10.255
として設定すると、/etc/ax25/soundmodem.confに以下のように出力される。
> <?xml version=”1.0″?>
> <modem>
> <configuration name=”ThinkPadx31″>
> <channel name=”Channel 0″>
> <mod mode=”afsk” bps=”1200″ f0=”1200″ f1=”2200″ diffenc=”1″/>
> <demod mode=”afsk” bps=”1200″ f0=”1200″ f1=”2200″ diffdec=”1″/>
> <pkt mode=”MKISS” ifname=”sm0″ hwaddr=”JS1FVG-10″ ip=”192.168.10.1″ netmask=”255.255.255.0″ broadcast=”192.168.10.255″/>
> </channel>
> <chaccess txdelay=”150″ slottime=”100″ ppersist=”40″ fulldup=”0″ txtail=”10″/>
> <audio type=”soundcard” device=”/dev/dsp” halfdup=”0″/>
> <ptt file=”none”/>
> </configuration>
> </modem>
で、/usr/src/soundmodem-0.14/ の中にある ./soundmodem.initscript が
サウンドモデムの起動スクリプトになるので、とりあえずは
/usr/src/soundmodem-0.14/soundmodem.initscript start
としてサウンドモデムを起動する。
あ、思いっきりピギャーとなるので注意。(爆)
で、/sbin/ifconfig してみると
> # /sbin/ifconfig
> eth0 リンク方法:イーサネット ハードウェアアドレス 00:09:6B:FA:09:A8
> inetアドレス:192.168.100.100 ブロードキャスト:192.168.100.255 マスク:255.255.255.0
> inet6アドレス: fe80::209:6bff:fefa:9a8/64 範囲:リンク
> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
> RXパケット:3649 エラー:0 損失:0 オーバラン:0 フレーム:0
> TXパケット:2828 エラー:0 損失:0 オーバラン:0 キャリア:0
> 衝突(Collisions):0 TXキュー長:1000
> RX bytes:2181993 (2.0 Mb) TX bytes:582074 (568.4 Kb)
>
> lo リンク方法:ローカルループバック
> inetアドレス:127.0.0.1 マスク:255.0.0.0
> inet6アドレス: ::1/128 範囲:ホスト
> UP LOOPBACK RUNNING MTU:16436 Metric:1
> RXパケット:161 エラー:0 損失:0 オーバラン:0 フレーム:0
> TXパケット:161 エラー:0 損失:0 オーバラン:0 キャリア:0
> 衝突(Collisions):0 TXキュー長:0
> RX bytes:10749 (10.4 Kb) TX bytes:10749 (10.4 Kb)
>
> sm0 リンク方法:AMPR AX.25 ハードウェアアドレス JS1FVG-10
> inetアドレス:192.168.10.1 ブロードキャスト:192.168.10.255 マスク:255.255.255.0
> UP BROADCAST RUNNING MULTICAST MTU:256 Metric:1
> RXパケット:2 エラー:0 損失:0 オーバラン:0 フレーム:0
> TXパケット:11 エラー:0 損失:0 オーバラン:0 キャリア:0
> 衝突(Collisions):0 TXキュー長:10
> RX bytes:430 (430.0 b) TX bytes:1977 (1.9 Kb)
こんな感じでsm0ポートができている。
音が出なかったら、soundmodemconfig の設定で、大元の /dev/dsp? を、
/dev/dsp1とかにしてみると鳴るかもしれない。(実際、/dev/dspでやって
たら突然音が出なくなってアレレ?と思っていろいろいじってたらなぜか
/dev/dsp1にしたら音が出た…
さて、ここまでで実は kissattach をやってしまっているので、
あとは /etc/ax25/axports と /etc/ax25/ax25d.conf を書いてから
/usr/sbin/ax25d を起動する。
ということで次のセクションに進む。
□AX.25関連ツールのインストール
xfbbを入れるためにAX.25関連をインストールする。
http://www.linux-ax25.org/wiki/Main_Page
ここらあたりから、以下のファイルを取ってきてインストール。
mkdir /usr/src/package
cd /usr/src/package
wget ftp://www.fwnet.jp/libax25-0.0.12-rc2.tar.gz
wget ftp://www.fwnet.jp/ax25-apps-0.0.8-rc2.tar.gz
wget ftp://www.fwnet.jp/ax25-tools-0.0.10-rc2.tar.gz
wget ftp://www.fwnet.jp/node_0.3.0a.orig.tar.gz
cd /usr/src/
tar xvzf package/libax25-0.0.12-rc2.tar.gz
cd libax25-0.0.12-rc2/
make clean
./configure –exec_prefix=/usr –sysconfdir=/etc –localstatedir=/var
make
make install
make installconf
cd /usr/src/
tar xvzf package/ax25-apps-0.0.8-rc2.tar.gz
cd ax25-apps-0.0.8-rc2/
make clean
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var
make
make install
cd /usr/src/
tar xvzf package/ax25-tools-0.0.10-rc2.tar.gz
cd ax25-tools-0.0.10-rc2/
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var
make
make install
make installconf
cd /usr/src/
tar xvzf package/node_0.3.0a.orig.tar.gz
cd node-0.3.0a/
./configure
これ(node)だけは ./configure の段階で下記のように確認をされるので
> Include support for the AX.25 protocol ? [Y/n]: y
> Include support for the NetRom protocol ? [Y/n]: y
> Include support for the Rose protocol ? [Y/n]: n
と答えておく。Rose はよく判らないので外しておく。
そしたらできた./Makefile.includeのmanのインスコ先を変更する。
Vine5では/usr/share/man/にあるので、/usr/man/にいれようとして
エラーがでる。まぁmanがいらなきゃどうでもいい。
emacs ./Makefile.include
> MAN_DIR = /usr/share/man
また、他の上記ツールのインストール先を
> –prefix=/usr –sysconfdir=/etc –localstatedir=/var
以外にしている場合には、あわせて Makefile.include の中身を修正すること。
で
make
make install
make installconf
してnodeも入った。
つづいて、/etc/ax25/ に設定ファイルがいろいろ入っているので、これらを
編集する。
・/etc/ax25/axports
emacs /etc/ax25/axports
として、以下のようにポート名とコール、そしてCOMポートのボーレート
そして TNC としての PACLEN と MAXFRAME、後はメモを書く。
> sm0 JS1FVG-10 1200 192 5 144.48 MHz (1200 bps)
> #ax0 JS1FVG 9600 192 5 431.20 MHz (1200 bps)
> #ax1 JM1YSB 1200 192 5 1296.10 MHz (1200 bps)
・/etc/ax25/ax25d.conf
こちらも
emacs /etc/ax25/ax25d.conf
として、以下のように書く。
> # /etc/ax25/ax25d.conf
> #
> # ax25d Configuration File.
> #
> # AX.25 Ports begin with a ‘[‘.
> #
> [JS1FVG VIA sm0]
> NOCALL * * * * * * L
> default * * * * * * – root /usr/sbin/ttylinkd ttylinkd
> #
> [JS1FVG-11 VIA sm0]
> NOCALL * * * * * * L
> default * * * * * * – root /usr/sbin/node node
> #
通常のほかにsm0からNET/ROM へのアクセスも許可する、という意味。
・/etc/ax25/node.conf
emacs /etc/ax25/node.conf
としてコールサインとかネットワークとかを変更する。
:
> HostName netrom.js1fvg.mydns.jp
:
> NodeId SHIBUYA:JS1FVG-11
:
> LocalNet 192.168.10.0/24
:
> NodePrompt “SHIBUYA:JS1FVG-11 [%i] >\n”
:
・/etc/ax25/node.perms
あと、/etc/ax25/node.perms を変更しないと、無線側から TELNET などで
入れてしまうので気をつけること。
emacs /etc/ax25/node.perms
として
> * ax25 * * 7
> * netrom * * 7
> * local * * 7
> * ampr * * 7
> * inet * * 7
> * host * * 7
というように、特定コールを外して、全般的にパーミッションをこのように
しておけばいい。パーミッションについて詳しくはJFに書いてある。
さて、ここまでやったら
/usr/sbin/ax25d
として、ax25dを起動する。
通常の kissattach と違ってサウンドモデムで注意しないといけないのは、
サウンドモデムで定義したポートのコールサインが /etc/ax25/axports で
宣言するコールサインと一致しないといけない。(JS1FVG-10のところ)
> # pgrep ax25d -l
> 4049 ax25d
こんな風にax25dが常駐すれば準備完了。
あとは
> # call sm0 ja1aaa
> GW4PTS AX.25 Connect v1.11
> Trying…
とやると、ピギャーと音がでればOK。
パケットがモニターできる環境ならモニターすれば復調できるはず。
また、
/usr/bin/listen -p sm0
としてマイクからピギャーという音を入れてあげれば、うまくいけば
> ax0: fm JA1RBY to APU25N via WIDE ctl UIv pid=F0(Text) len 76
> 0000 }JA1YKX>APS224,TCPIP,JA1RBY*:<IGATE MSG_CNT=10254 LOC_CNT=1 FILL
> 0040 _CNT=120474.
とか
> ax0: fm JH1RQB to BEACON via JK1ZOW JH1RQB-10 JO1DZO ctl UI pid=F0(Text) len 69
> 0000 http://homepage2.nifty.com/rqb/index.htm.牀罧覡貴⑭Mail for: ALL
> 0040 :::,.
や
> ax0: fm JI1SUV to BEACON ctl UI pid=F0(Text) len 114
> 0000 DE JI1SUV MINATO-KU TOKYO MB/JI1SUV-10 DIGIPEAT&NODE/JI1SUV-1 WI
> 0040 RES/431.42MHz TSQ:77Hz 5142D.[D.[D.[D.[D.[D#5142D.
といったようなパケットデータがモニターできるはず。
では、今までのAX.25関連を起動時に必ず実行するようにする。
cp /usr/src/soundmodem-0.14/soundmodem.initscript /etc/init.d/soundmodem
chkconfig –level 345 soundmodem on
また
emacs /etc/init.d/ax25d
とでもして、以下のようなスクリプトを置いとくといいかも。
> #!/bin/sh
> #
> # chkconfig: 345 51 51
> # description: Turn AX.25 daemon
> #
> ### BEGIN INIT INFO
> # Short-Description: Turn AX.25 daemon
> # Description: Turn AX.25 daemon
> ### END INIT INFO
>
> # Source function library.
> . /etc/rc.d/init.d/functions
>
> prog=”ax25d”
> lockfile=/var/lock/subsys/ax25d
>
> start()
> {
> echo -n $”Starting $prog: ”
> daemon /usr/sbin/ax25d
> RETVAL=$?
> echo
> [ $RETVAL = 0 ] && touch $lockfile
> return $RETVAL
> }
>
> stop()
> {
> echo -n “Stopping $prog: ”
> killproc ax25d
> RETVAL=$?
> echo
> [ $RETVAL = 0 ] && rm -f $lockfile
> return $RETVAL
> }
>
> restart()
> {
> stop
> start
> }
>
> case “$1″ in
> start)
> start
> ;;
> stop)
> stop
> ;;
> force-reload|restart|reload)
> restart
> ;;
> try-restart|condrestart)
> [ -f $lockfile ] && restart ||:
> ;;
> status)
> status $prog
> ;;
> *)
> echo $”Usage: $0 {start|stop|restart|contrestart|status}”
> exit 3
> ;;
> esac
>
> exit $RETVAL
chmod 755 /etc/init.d/ax25d
chkconfig –level 345 ax25d on
とすると、再起動時に必ず soundmodem と ax25d が起動する。
心配なら ntsysv コマンドで起動するようになっている事を確認すること。
さて、あとはxfbbを設定しよう。
□xfbb のインストール
http://f6bvp.free.fr/logiciels/BBS-f6fbb/xd704r8-src.tar.bz2
本家は http://www.f6fbb.org/ だが、最近では更新していないようで、
FTPサイトの方に入っても古いバージョンしかないので、上記からとって
くる。
FWNETサーバーではこれらのファイルをFTPディレクトリにおいてあるので、
日本国内からならこちらからダウンロードしたほうが早いかな。
mkdir /usr/src/package/
cd /usr/src/package/
wget ftp://www.fwnet.jp/xd704r8-src.tar.bz2
cd /usr/src/
tar xvjf package/xd704r8-src.tar.bz2
cd fbbsrc.704r8/src
make
すると、あんまり気持ちよくない警告が出るものの…
> pacsat.c:1198: 警告: ‘packed’ attribute ignored for field of type ‘char’
> pacsat.c:1199: 警告: ‘packed’ attribute ignored for field of type ‘char’
> pacsat.c:1205: 警告: ‘packed’ attribute ignored for field of type ‘char’
> pacsat.c:1212: 警告: ‘packed’ attribute ignored for field of type ‘char’
> pacsat.c:1213: 警告: ‘packed’ attribute ignored for field of type ‘char[3]’
> pacsat.c:1219: 警告: ‘packed’ attribute ignored for field of type ‘char’
> pacsat.c:1226: 警告: ‘packed’ attribute ignored for field of type ‘char’
> pacsat.c:1227: 警告: ‘packed’ attribute ignored for field of type ‘char[8]’
> pacsat.c:1233: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh4’
> pacsat.c:1234: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh8’
> pacsat.c:1235: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh3’
> pacsat.c:1236: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh4’
> pacsat.c:1237: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh4’
> pacsat.c:1238: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh4’
> pacsat.c:1239: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh1’
> pacsat.c:1240: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh1’
> pacsat.c:1241: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh2’
> pacsat.c:1242: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh2’
> pacsat.c:1243: 警告: ‘packed’ attribute ignored for field of type ‘struct pfh2’
> pacsat.c: In function ‘pfh_msg’:
> pacsat.c:1193: 警告: フレームサイズが大きすぎて、スタック検査が信頼できなくなります
> pacsat.c:1193: 警告: ローカル変数の数を削減してみてください
> themes.c:583: 警告: format ‘%d’ expects type ‘int’, but argument 4 has type ‘size_t’
> gcc -Wall -O2 -Wstrict-prototypes -funsigned-char -D__LINUX__ -DPROTOTYPES -I../include -fstack-check -DUSE_NCURSES -c -o tnc.o tnc.c
> themes.c:623: 警告: フレームサイズが大きすぎて、スタック検査が信頼できなくなります
> themes.c:623: 警告: ローカル変数の数を削減してみてください
> tncio.c: In function ‘hst_disc’:
> tncio.c:1252: 警告: キャストによってポインタから異なるサイズの整数となります
> tncio.c: In function ‘dec’:
> tncio.c:1277: 警告: 異なるサイズの整数からポインタにキャストされました
> tncio.c: In function ‘pactor_data’:
> tncio.c:1609: 警告: 異なるサイズの整数からポインタにキャストされました
> tncio.c: In function ‘con_voie’:
> tncio.c:1777: 警告: 異なるサイズの整数からポインタにキャストされました
> yapp.c: In function ‘senddata’:
> yapp.c:606: 警告: dereferencing type-punned pointer will break strict-aliasing rules
> satupdat.c: In function ‘Amsat’:
> satupdat.c:549: 警告: dereferencing type-punned pointer will break strict-aliasing rules
> satupdat.c:569: 警告: dereferencing type-punned pointer will break strict-aliasing rules
> ajoursat.c: In function ‘Amsat’:
> ajoursat.c:549: 警告: dereferencing type-punned pointer will break strict-aliasing rules
> ajoursat.c:569: 警告: dereferencing type-punned pointer will break strict-aliasing rules
以下のバイナリが出来てるはず。
ajoursat, clr_user, epurmess, epurwp, fbbgetconf, maintinf,
reqdir, satdoc, satupdat, xfbbC, xfbbd
そしたら
make install
とすると
> FBB installation tool
>
> Warning ! This will replace binaries. Configuration files will not be replaced.
> Go on anyway ? (Y/N)
と聞いてくるので y とすると
> creating configuration tree …
> /usr/local/etc/ax25/fbb
> /usr/local/etc/ax25/fbb/lang
> /fwd
> creating pg directory …
> /usr/local/lib/fbb/pg
> creating script directory …
> /usr/local/lib/fbb/script
> /usr/local/lib/fbb/script/maintenance
> /usr/local/lib/fbb/script/rerun
> /usr/local/lib/fbb/script/end_session
> /usr/local/lib/fbb/script/stop_system
> /usr/local/lib/fbb/script/error_return
> /usr/local/lib/fbb/script/sig_segv
> /usr/local/lib/fbb/script/reset
> creating filters directory …
> /usr/local/lib/fbb/filter
> creating servers directory …
> /usr/local/lib/fbb/server
> creating tools directory …
> /usr/local/lib/fbb/tool
> creating fbbdos directory …
> /usr/local/var/ax25/fbb/fbbdos
> /usr/local/var/ax25/fbb/fbbdos/yapp
> creating data tree …
> /usr/local/var/ax25/fbb
> /usr/local/var/ax25/fbb/mail/mail0
> /usr/local/var/ax25/fbb/mail/mail1
> /usr/local/var/ax25/fbb/mail/mail2
> /usr/local/var/ax25/fbb/mail/mail3
> /usr/local/var/ax25/fbb/mail/mail4
> /usr/local/var/ax25/fbb/mail/mail5
> /usr/local/var/ax25/fbb/mail/mail6
> /usr/local/var/ax25/fbb/mail/mail7
> /usr/local/var/ax25/fbb/mail/mail8
> /usr/local/var/ax25/fbb/mail/mail9
> /usr/local/var/ax25/fbb/binmail/mail0
> /usr/local/var/ax25/fbb/binmail/mail1
> /usr/local/var/ax25/fbb/binmail/mail2
> /usr/local/var/ax25/fbb/binmail/mail3
> /usr/local/var/ax25/fbb/binmail/mail4
> /usr/local/var/ax25/fbb/binmail/mail5
> /usr/local/var/ax25/fbb/binmail/mail6
> /usr/local/var/ax25/fbb/binmail/mail7
> /usr/local/var/ax25/fbb/binmail/mail8
> /usr/local/var/ax25/fbb/binmail/mail9
> /usr/local/var/ax25/fbb/docs
> /usr/local/var/ax25/fbb/sat
> /usr/local/var/ax25/fbb/wp
> /usr/local/var/ax25/fbb/log
> /usr/local/var/ax25/fbb/oldmail
> Done
>
> Copying binary files
> Copying fbb … OK
> Copying xfbbC … OK
> Copying xfbbd … OK
> Copying fbbgetconf … OK
> Copying satdoc … OK
> Copying satupdat … OK
> Copying ajoursat … OK
> cp: ディレクトリ `./docs/html’ を省略します
>
> Copying configuration files
> Copying bbs.sys … OK
> Copying cron.sys … OK
> Copying forward.sys … OK
> Copying langue.sys … OK
> Copying passwd.sys … OK
> Copying protect.sys … OK
> Copying redist.sys … OK
> Copying reject.sys … OK
> Copying swapp.sys … OK
> Copying themes.sys … OK
> Copying forward file
> Copying amsat.fwd … OK
> Copying english.ent.sample … OK
> Copying english.hlp … OK
> Copying english.inf … OK
> Copying english.txt … OK
> Copying francais.ent.sample … OK
> Copying francais.hlp … OK
> Copying francais.inf … OK
> Copying francais.txt … OK
> Done
>
> Installation done
という感じでインストール完了。
これでモノは出来たので、あとは ax25 関連と xfbb の調整。
□xfbb の設定
いきなりだけど、
/usr/local/sbin/fbb
とすると、最初の起動の場合にはいろいろと聞かれてほとんどの設定ができる。
グリッドロケーターもあらかじめ計算しておくべし。
住所から緯度経度を出すならここ。
ここで住所を入れると、表示された地図のURLに「…E139.42.xx.xN35.38.xx.x…」
というように東経と北緯がでているので、これを用いてグリッドロケーターの
算出はここで。
http://homepage3.nifty.com/jl1pmh/
で、yとして進むと次のような事を聞かれます。
> Configuration files does not exist. Create them (Y/N) ?y
>
> Callsign of the BBS without ssid (Ex: F6FBB) : JM1YSB
> SSID of the BBS (Ex : 1) : 10
> Hierarchical address (Ex : FMLR.FRA.EU) : 10.JNET1.JPN.AS
> QRA-Locator of the BBS (Ex : JN03QL) : PM95UP
> City of the BBS (Ex : Toulouse) : Shibuya
> Name of the SysOp (Ex : Jean-Paul) : T.Kabu
> Callsign of the SysOp without SSID (Ex : F6FBB) : JS1FVG
> Difference with GMT time (Ex : +1) : +9
>
> BBS : JM1YSB.10.JNET1.JPN.AS
> SSID : 10
> LOCATOR : PM95UP (Shibuya)
> SYSOP : JS1FVG (T.Kabu)
> TIME : GMT +9
>
> Correct (Y/N) ? y
読めば判ると思うけど、一応念のため。
・SSIDなしのコール
・SSID
・Hアドレス(都道府県番号.JNETn(エリア番号).JPN.AS)
・グリッドロケータ
・市区町村名
・シスオペの名前
・シスオペのコール
・GMTとJSTのずれ(+9時間)
ちなみにここまでの設定は /usr/local/etc/ax25/fbb.conf に出力される。
> #
> # FBB Set-up file
> #
> version = FBB7.04
> # Callsign of BBS
> callsign = JM1YSB.10.JNET1.JPN.AS
> # SSID of BBS
> ssid = 10
> # Qra Locator of BBS
> qraloc = PM95UP
> # Qth of BBS
> city = Shibuya
> # First name of SYSOP
> name = T.Kabu
> # Callsign of SYSOP
> sysop = JS1FVG
> # Local time
> loca = +9
> # servers
> server = REQDIR reqdir Directory request
そのまま進んでいくと、今度はCOMポートの設定を聞かれる。
> Name of the port #1 as named in axport (<CR> to end) : sm0
> Number of channels : 5
> Frequency : RF-PORT
>
> Name of the port #2 as named in axport (<CR> to end) :
>
> Port 1 on axport sm0 (5 channels) Freq=RF-PORT
>
> Correct (Y/N) ?
とりあえずsm0の1ポートのみを設定する。
・ポート名(axportに書いた記述にあわせる)
・同時接続数
・周波数とかのメモ
で、さらに y とすると、
> Creating port.sys … Ok
> Creating beacon1.sys … Ok
> Checking fbb tree…. Ok
> Checking fbb configuration :
> *********************************************************
> * XFBB Linux daemon version 7.04r-pre8.0 (Jan 20 2010) PID=4449
> * Copyright F6FBB 1986-1999. All rights reserved.
> *
> * This software is in the public domain. It can be copied
> * or installed for any use abiding by the laws.
> *
> * F6FBB (Jean-Paul ROUBELAT) declines any responsibilty
> * in the use of XFBB software.
> *
> *
> * This version is only for test purpose.
> *********************************************************
> FBB step_initialisations niveau:1
> Parameters set-up
> vers : FBB7.04
> call : JM1YSB.10.JNET1.JPN.AS
> ssid : 10
> qral : PM95UP
> city : Shibuya
> conf : /usr/local/etc/ax25/fbb
> data : /usr/local/var/ax25/fbb
> mess : /usr/local/var/ax25/fbb/mail
> comp : /usr/local/var/ax25/fbb/binmail
> fbbd : *,*,/usr/local/var/ax25/fbb/fbbdos,*,*,*,*,*
> fbbd : <*,*,/usr/local/var/ax25/fbb/fbbdos,*,*,*,*,*>
> 0 : {*}
> 0 : {}
> 1 : {*}
> 1 : {}
> 2 : {/usr/local/var/ax25/fbb/fbbdos}
> 2 : {C:\usr\local\var\ax25\fbb\fbbdos\}
> 3 : {*}
> 3 : {}
> 4 : {*}
> 4 : {}
> 5 : {*}
> 5 : {}
> 6 : {*}
> 6 : {}
> 7 : {*}
> 7 : {}
> yapp : /usr/local/var/ax25/fbb/fbbdos/yapp
> docs : /usr/local/var/ax25/fbb/docs
> name : T.Kabu
> syso : JS1FVG
> sysm :
> impo : /usr/local/var/ax25/fbb/mail/mail.in
> logs : OK
> test : NO
> fbbf : OK 160
> fbbc : OK 3
> aski : OK
> mask : 3616
> secu : 0 4 59
> warn : 255
> hous : 2
> time : 10 20
> maxd : 0 0
> loca : +9
> beac : 8
> scro : 1500 1500 1500
> fwdh : [$c] $$:$R
> maxb : 30000
> life : 30
> wpca :
> zipc : 000000
> unpr : 500 5 P
> upba :
> dwba :
> pg : /usr/local/lib/fbb/pg
> fdir : /usr/local/lib/fbb/filter
> sdir : /usr/local/lib/fbb/server
> tdir : /usr/local/lib/fbb/tool
> poph :
> FBB step_initialisations niveau:2
> LINUX virtual paged memory Set-up
> Texts set-up
> 1 language buffers allocated
> Init lang ENGLISH
> Init lang FRANCAIS
> ENGLISH
となる。
で、satel.datがないとかstatis.datがないとかいろいろないよといわれて
都度それぞれ作るかと聞かれるので y としておく。
> Cannot open /usr/local/var/ax25/fbb/sat/satel.dat
> Creating file /usr/local/var/ax25/fbb/sat/satel.dat (Y/N) ? y
> Creating file /usr/local/var/ax25/fbb/sat/satel.dat
> FBB step_initialisations niveau:3
> Cannot open /usr/local/var/ax25/fbb/statis.dat
> Creating file /usr/local/var/ax25/fbb/statis.dat (Y/N) ? y
> Creating file /usr/local/var/ax25/fbb/statis.dat
> Cannot open TPSTAT.SYS
> Creating file TPSTAT.SYS (Y/N) ? y
> Creating file TPSTAT.SYS
> RS232 ports set-up
> Ports set-up
> 5 channels ok
> FBB step_initialisations niveau:4
> TNC set-up
> TNC ports set-up
> (1) drv_sock : clear_can()
> (2) drv_sock : clear_can()
> (3) drv_sock : clear_can()
> (4) drv_sock : clear_can()
> (5) drv_sock : clear_can()
> Open PORT 1 COM1-0
> invalid port name sm0
> Message : Error init LINUX port 1
> FBB step_initialisations niveau:5
> FBB step_initialisations niveau:6
> BID set-up
> WFBID.SYS file is not present. Creating /usr/local/var/ax25/fbb/wfbid.sys
> WFBID.SYS is not present. Creating /usr/local/var/ax25/fbb/wfbid.sys
> FBB step_initialisations niveau:7
> Callsign set-up
> Callsigns set-up
> Cannot open /usr/local/var/ax25/fbb/inf.sys
> Creating file /usr/local/var/ax25/fbb/inf.sys (Y/N) ? y
> Creating file /usr/local/var/ax25/fbb/inf.sys
>
> FBB step_initialisations niveau:8
> Cannot open /usr/local/var/ax25/fbb/dirmes.sys
> Creating file /usr/local/var/ax25/fbb/dirmes.sys (Y/N) ? y
> Creating file /usr/local/var/ax25/fbb/dirmes.sys
> Message set-up
> Next message 101
> End – 0 forward(s)
> FBB step_initialisations niveau:9
> Files set-up complete
> FBB step_initialisations niveau:10
> FORWARD set-up
> FBB step_initialisations niveau:11
> BBS set-up
> Cannot open ETAT.SYS
> Creating file ETAT.SYS (Y/N) ? y
> Creating file ETAT.SYS
と、ここまでやると
> FBB step_initialisations niveau:12
> No PACSAT satellit protocol configuration file ‘init.pac’
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Wed Jan 20 15:30:15 2010
> Set-up complete
> GMT 06:30 – LOCAL 15:30
> Starting multitasking … ok
>
> FBB options : (none)
> Running XFBB in background mode ^C to abort
> Starting XFBB (pwd = /usr/local/var/ax25/fbb)…
となって、ピギャーとビーコンがでる。
コマンドプロンプトに戻るのでプロセスを見てみると
> # pgrep fbb -l
> 4457 fbb
> 4459 xfbbd
という感じでfbbが動いているのでOK。(*^ー゜)b グッジョブ!!
□xfbb にコネクト
まずはTELNETでコネクトできるように、/usr/local/etc/ax25/fbb/port.sys
に設定を追加する。
前提条件として、RFポートが一つ(sm0)とtelnetポートが一つなので、それら
を記述していく。
port.sysの記述は、
> # FBB7.04
> #
> #Ports TNCs
> 1 1
> #
> #Com Interface Adress (Hex) Baud
> 1 9 0 9600
> #
> #TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode Freq
> 0 0 0 0 0 0 0 0 00/01 —- File-fwd.
> 1 5 1 ax0 250 2 1 10 00/15 XUWYL RF-PORT
> #
> # End of file.
> #
となっているので、各設定を説明すると、
> #Ports TNCs
> 1 1
これはポートの設定。
ポートといってもCOMポートのことではなくて、xfbbから見たデバイスの種類
です。Linuxのax25dは、ax25dでいくつポートを管理していても、xfbbからは
ax25dは1つなのでPortsは1つです。
で、TNCの数はTNCsに書く。TNCが2台だからといってPortsも2と言うわけでは
ないので注意。またtelnetポートはそれでポート1つ。なので今回はRFポート
としてのax25dが一つとtelnetポートが一つなので、あわせて
> #Ports TNCs
> 2 2
となる。
> #Com Interface Adress (Hex) Baud
> 1 9 0 9600
同様にここもComというのがxfbbから見たポートのこと。
ココはRFポートとtelnetポートの二つを記述。
> #Com Interface Adress (Hex) Baud
> 1 9 189C 9600
> 2 9 0 9600
Adress は TCP のポート番号を16進数であらわしたもの。
上記は6300番ポートのことなので、これ以外にする場合には変更すること。
> #TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode Freq
> 0 0 0 0 0 0 0 0 00/01 —- File-fwd.
> 1 5 1 ax0 250 2 1 10 00/15 XUWYL RF-PORT
これはTNCごとの設定を1行に1個分づつ書く。
必要な項目としては
TNC … TNC の番号
NbCh … ポートの最大接続数
Com … ポート番号
MultCh … ax25d でのデバイス名
NbFwd … そのポートでの最大転送局数
そして Mode は
> # Port mode, one of these:
> # B : BBS-mode.
> # G : “Guest”-mode.
> # U : Normal-mode.
> # Type host-mode, one of these:
> # H : SCS/PTC-II (extended/WA8DED emulation) pactor TNC.
> # D : WA8DED
> # K : KAM hostmode. Must use ESSKAM driver.
> # P : PK-232
> # Q : BPQ v 4.x
> # T : Ethernet/TCP-IP
> # X : AX25 domain socket (for Linux)
> # Addition: One or more of these letters can be used too:
> # L : Send unproto beacon after each arriving mail.
> # M : Telephone-modem.
> # Y : Yapp allowed on this QRG.
> # W : Gateway allowed TO this QRG.
> # R : Read-only mode (any port).
> # Freq. : Text to describe this port (max 9 characters, no space)
と言う意味。
なので、ここもRFポートとtelnetポートの場合には
> #TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode Freq
> 0 0 0 0 0 0 0 0 05/10 —- File-fwd
> 1 20 1 0 250 7 15 30 05/10 TUWY Internet
> 1 5 2 ax0 192 5 3 10 00/15 XUWYL RF-Port1
こんな感じに書けばよい。
まとめると
> # FBB7.04
> #
> #Ports TNCs
> 2 2
> #
> #Com Interface Adress (Hex) Baud
> 1 9 189C 9600
> 2 9 0 9600
> #
> #TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode Freq
> 0 0 0 0 0 0 0 0 05/10 —- File-fwd
> 1 20 1 0 250 7 15 30 05/10 TUWY Internet
> 1 5 2 ax0 192 5 3 10 00/15 XUWYL RF-Port1
> #
> # End of file.
> #
となる。
これだけ設定しておけばとりあえず繋がるので、先ほど /usr/localsbin/fbb
として xfbb を起動してしまっているだろうから、設定を変更したので再起動
する。
pkill -9 xfbbd
としてxfbbdのプロセスのみkillして、
pgrep fbb -l
として再び立ち上がっている事を確認。
> # pgrep fbb -l
> 4457 fbb
> 4513 xfbbd
※先ほどと違うプロセス番号で動いている。
ちなみに xfbbd が正常に起動すると必ずビーコンが出る。
ビーコンメッセージは /usr/local/etc/ax25/fbb/beacon?.sys にポート別に
書くことが出来る。
> % 15
> ! MAIL
> $d $Tz $O-$o FWD-NET in Shibuya. (@FWNET http://www.fwnet.jp/)
こんな風に書いておくと
> JM1YSB-10>MAIL <UI C>:
> 18-Jan 21:53z JM1YSB-10 FWD-NET in Shibuya. (@FWNET http://www.fwnet.jp/)
とビーコンが出るから、再起動の目安になる。
出ない場合には設定が間違えているか、接続のしかたが間違えている可能性が
あるので、もう一度確認すること。
さらに、/usr/local/etc/ax25/fbb/passwd.sys を編集して、コネクトして
から設定をするためにSYSOP用コールのパーミッションやパスワードを設定
する。
> #
> # Password for all non defined callsigns (one case dependant line)
> #
> password
> #
> # Rights and password specific to callsigns (one or more lines)
> #
> F6ZZZ 63 1023 THIS_IS_THE_PASSWORD_OF_F6ZZZ
> #
> # End of passwd.sys file
> #
注意しないといけないのは、最初の password はその下に定義していない
コールでコネクトした場合にとりあえず設定されるパスワードなので、
これ以外の別な文字列にする。
> guestpasswd
また、自分のコールや他の管理者のコールのパスワードを以下のように設定する。
> JS1FVG 63 1023 hogehoge
まとめると
> #
> # Password for all non defined callsigns (one case dependant line)
> #
> #password
> guestpasswd
> #
> # Rights and password specific to callsigns (one or more lines)
> #
> #F6ZZZ 63 1023 THIS_IS_THE_PASSWORD_OF_F6ZZZ
> JM1YSB 63 1023 hogehoge
> JS1FVG 63 1023 areare
> #
> # End of passwd.sys file
> #
こんな感じ。
そしたら xfbb を再起動してTELNETでログインしてみる。
以下のように専用クライアントソフトを使ってコンソールからログイン。
/usr/local/sbin/xfbbC -c -h localhost -i JS1FVG -w areare -r
とすると、
> Client application for xfbbd v3.2 ( help : xfbbC -? )
>
> Connecting localhost … Ok
> Authentication in progress … Ok
> Console connection …
>
> xfbbC V3.01 – Callsign : JS1FVG – Remote host : localhost
> [FBB-7.04r-AHMR$]
>
> Welcome to The Toulouse Mailbox
>
> User : JS1FVG (???)
> Calling from :
> HomeBBS : JM1YSB.10.JNET1.JPN.AS
> Postal Area :
>
> Last log-in : 16:08 20-Jan-10
> Last Received : 100
> Last Listed : 80
> Active Msg’s : 0
>
> Current Users are:-
>
>
> Please enter your first name:- Example: “Jean-Paul<return>”
というように、最初のアクセスなら名前とかから聞かれるので答えていく。
で、シスオペ用のコマンドを使うには「sys」コマンドを入力する。
すると、シスオペ制御用のパスワードを下記のように聞いてくるので
先に/usr/local/etc/ax25/fbb/passwd.sysに設定したパスワードを入力。
OKなら下記のように「Ok」と表示される。
> >sys
> JM1YSB-10> 0 0 0 0 0 [1263971501]
> FVG1234
> Ok
>
> Mailbox Menu
> ————
> B: Bye C: Conference D: DOS Area F: Facilities
> K: Kill Mail L: List Mail O: Options R: Read Mail
> S: Send Mail TH: News-Groups !: System Info ?: Help
>
> >
あとはFBBのマニュアル類を参照して細かい設定をどうぞ。