dxnet設定方法

 JA4PXC/植田さんのご指導の下、DOS/VパソコンのOSLINUXを導入し、この上でdxnetという名称のパケットクラスタソフトを稼動させてDXクラスターノードを設置することが出来ました。このノードは、インターネット経由での接続は勿論、シリアルポートに接続されたTNCに、アマチュア無線を使って接続することも可能です。今後、同様な作業をする方々の何かのお役に立てばと思い、ノード設置作業の顛末を以下のように分割して掲載させていただきます。
   注意!以下に表示されるIPアドレス、URL等は全て架空のものです
        詳細は、↓へお問い合わせください。
        mailto:m.mats@gemini.bekkここ取るoame.ne.jp

− 目次 −

1.パソコンの選定

2.LINUXのインストール

3.ax25設定方法(デスクトップパソコンの場合)

4.dxnet設定方法(デスクトップパソコンの場合)

5.ログ管理設定(デスクトップパソコンの場合)

6.その他



1.パソコンの選定

 導入するOSTurbo Linux 7です。パソコンに要求される仕様は以下のようです。


  1)DOS/V機であること。(ノート型、タワー型両方可)

  2)HDD容量が5GB以上あること。

  3)CPUはPentium以降であること。

   4)CD−Rが必要です。

   5)メモリーは64MB以上ですが、128MB以上を推奨します。

  6)TNCを使って無線ポートを開く場合は、シリアルポートがあること。

  7)LANボードは必須です。

    8) 8GBの制限。数年前のパソコンのBIOSには、最大8GBまでしかHDDを取り扱えないものがあります。

    9) IBMのパソコンには、キーボード、マウスなどを変えたり、取り外すだけで、起動時にBIOS設定画面が
      起動されるものがあります。

【失敗例】NECLavie NXコンパクトタイプのUSBキーボード仕様にはTurbo Linux 7をインストールできなかった。情けないと思われるかもしれないが、インストールできるかどうかは、実際やってみないと判断できない。このため、新品は勿論のこと、中古でも高価なものは避けた方がよい。HP(Compaq),Dell,Fujitsuのなるべく標準的な仕様のものを用意されるのが無難と思われます。

 【失敗例2】 Turbo Linux 7をインストール中、頻繁にエラーが発生し、インストールが異常終了となった。原因をパソコンとTurbo Linux 7との相性と最初判断したが、念のため、他のCD-R装置に換装してみたら、インストールが正常に出来た。結局CD-R装置の故障だった。古いパソコンの場合は、動作部分の経年劣化に注意が必要だ。

 【失敗例3】 数年前のパソコンの6GB容量のHDDを40GBへ換装したら、ディスクエラーのメッセージが出て起動できなくなった。

 【失敗例4】 IBMのパソコンには、キーボード、マウス、モニターを変えたり、取り外すだけで、起動時にBIOS設定
         画面が表示されるものがある。非常に煩わしいので、この手の機種は避けた方がよい。。





この頁のトップへ戻る


2.LINUXのインストール

 私は、「はじめてのTurbolinux7」渡辺裕一著、ソフトバンク パブリッシング株式会社を購入して、添付のCDよりインストールしました。インストール方法は本の中に書いてありますので、ここではインストール時に気付いた点を記します。

 1)テキストモード(install text)でインストールします。

 2)言語はEnglishです。

 3)パーティションは/(ルート)だけでOKです。分割の必要はありません。

   (ただし、メモリー容量が小さい場合は、スワップ領域を設定しないとインストー

ルが先に進まない場合があります。)
  
  4) Linuxのインストール用CD-ROMをセットして再起動しても、CD-ROMを認識しない場合があります。こ
     のような場合は、起動時にDelキーを押してセットアップメニューに移り(この操作方法はパソコンの機種
     毎に異なります。)、ブート装置の最優先順位にCD-ROMを設定して下さい。インストール終了後、ブート
     装置の最優先順位には、HDDを設定して下さい。

  5) LANボードは装着してからインストールを実施して下さい。インストール後にLANボードを装着しても、動作
     しないようです。最初から設定し直しとなります。

2-1. Turbo Linux 7をフルでインストール

  インストールの最後の方で、Standard Selection を聞いて来ますので、Everythingを選択して下さい。

  インストール完了後、ユーザー登録しておいて下さい。例は以下のとおりです。

    # adduser USERID
    # passwd USERID
    # Changing password for user USERID
    # New UNIX Password:********
    # Retype new UNIX password:********
     ※上記パスワード入力で、BAD PASSWORDなどとパソコンから文句言われかもしれませんが、無視し
       て2回同じパスワードを入力して下さい。hi
     ※これらの設定には、rootでログインするかまたは、ユーザーIDで入力後、suへ移行しないと設定出来
       ないものがあります

    【ヒント】
     フロッピーディスクへのコピーは、
       # mcopy /bootsect.lnx a:
     と行うか、または、
       # mount -t msdos /dev/fd0 /mnt
       # cp /bootsect.lnx /mnt
       # umount /mnt
     と行います。

     フロッピーディスクの論理フォーマットコマンド
       # mformat a:
     

2-2. timezoneの設定

   # dateをやってみます。

   所定のtimezoneになっていない場合以下の設定をします。

   JSTの場合

   # cd /etc

   # rm localtime

   # ln -s /usr/share/zoneinfo/Japan localtime

  再度 dateで確認します。
  
  【ヒント】
  設定コマンド例:date 020521052005.00 <--MMDDhhmmYYYY.ss

2-3. ネットワークの設定

   デスクトップパソコン(pcmciaのネットワークアダプタじゃない)の場合

    2-3-1  /etc/sysconfig/network-scripts/ifcfg-eth0

       を編集します。

  

       以下例

       DEVICE=eth0

       BOOTPROTO=static

       BROADCAST=192.168.1.255

       IPADDR=192.168.1.2

       NETMASK=255.255.255.0

       NETWORK=192.168.1.0

       ONBOOT=yes

    2-3-2  /etc/sysconfig/network

       を編集します。

       以下例

       NETWORKING=yes

       PROFILENAME="No_Profile"

       HOSTNAME=ノードのコールサイン-11

       DOMAINNAME=ノードのコールサイン.ddo.jp

       GATEWAY=192.168.0.1

       GATEWAYDEV=eth0

       FORWARD_IPV4=no

       IPX=no

    2-3-3  その他

       /etc/resolv.conf

       /etc/hosts.deny

       などの確認が必要です。

  【ヒント】
  
以上の設定はメニュー(turbonetcfg)からでもきるはずです。

2-4. telnetをアクティブにします。

   /etc/xinetd.d/telnet

   # default: off

   # description: Telnet server

   # securlevel: 30

   service telnet

   {

           disable = no <---- ここを yesから noに変えます

           socket_type     = stream

           protocol        = tcp

           wait            = no

           user            = root

           server          = /usr/sbin/in.telnetd

           server_args     = -h

   }

2-5. /usr/sbin/serviceboard を使って

   xinitd

   をアクティブにします。

  【ヒント】
  # /usr/sbin/serviceboard でService Status Boardを起動し、Running ServiceNameの中
  のxinetdの前のRunning欄に*マークが付いていることを確認します。付いていれば、ESC
  キーで処理を抜けて下さい。付いていなければ、xinetdにカーソルを合わせて、Startボタン
  を押下し*マークを付けて下さい。

2-6. Dynamic DNSの導入(ddo.jpの場合)

    2-6-1  http://ddo.jp/

       から自分のドメインを登録します。

    2-6-2  テキストブラウザ lynx/usr/local/binにシンボリックリンクします。

       # ln -s /usr/bin/lynx /usr/local/bin/lynx

    2-6-3  vi /usr/local/bin/ddoupdate を新規作成します。内容は以下のようです。

       #!/bin/sh

       TERM=kterm

       date

       LYNX=/usr/local/bin/lynx

       URL="http://ddo.jp/*****.+++"

       CMD_UP="dn=ドメイン(ddo.jpは不要)&pw=パスワード"

       CMD_OFF="dn=ドメイン&pw=パスワード&ip=0.0.0.0"

       case "$1" in

       update)

       $LYNX -dump $URL\?$CMD_UP

       ;;

       offline)

       $LYNX -dump $URL\?$CMD_OFF

       ;;

       *)

       echo "How to ddoupdate: ddoupdate {update|offline}"

       exit 1

       esac

       exit 0

    【ヒント】
    ここでのパスワードは、DDNサービスサイトに登録したものです。

2-7. IPアドレスをネームサーバ経由で取得して"親ノードのコールサイン.fwd"を作るスクリプトを
  作成します。

  【ヒント】
  /dxnet以下のパスは、dxnet導入後に作成されます。ここで説明していますが、dxnet導入
  後の処理ですので、ご注意下さい。

  【ヒント】
  ネームサーバから
IPアドレスを引けなかった時"親ノードのコールサイン.fwd"中のIPアドレスが
  空になってしまうという問題が発生します。この問題を解
決する為のスクリプトです。内容
  を簡単に解説しますと、ネームサーバから
IPアドレスが引けた場合:引いたIPアドレスから
  "親ノードのコールサイン
.fwd"を作るとともに引いたIPアドレスをファイ "親ノードのコール
   サイン.ip"
に保存します。ネームサーバからIPアドレスが引けなかった場合:以前に保存した
  
"親ノードのコールサイン.ip" から"親ノードのコールサイン.fwd"を作ります。

    2-7-1  vi /usr/local/dxnet/script/fwd-ipset.sh を新規作成します。内容は以下のようです。

#!/bin/sh

IP=`/usr/bin/nslookup -sil www.*****.+++|tail -2|grep Address|cut -d' '  -f2`

if [ "$IP" != "" ]

then

echo $IP > 親ノードコールサイン.ip

else

      IP=`cat 親ノードコールサイン.ip`

fi

echo '親ノードのコールサイン-11'

echo '.C inet 親ノードのコールサイン-11 ' | perl -pe chop;

echo $IP|perl -pe chop;

echo ' ポート番号'

echo '#2'

echo '+TELNET'

echo '#2'

echo '.自ノードのコールサイン\r自パスワード'

echo '+Ok'

echo '#2'


    【ヒント】
 

 2-7-2.  chmod +x fwd-ipset.shとして実行パーミッションをつけます。

 2-7-3.  /usr/local/dxnet/system/dxtodo.dat

   の内容を見て"親ノード-11"に接続する時刻が上記設定と重なる設定になって

   いる場合、1分くらいずらす様に変更して下さい。

   以下1の位が1分と6分に接続を自動実行する例です。

???1 c 親ノードコールサイン

???6 c 親ノードコールサイン

 2-7-4.  毎時0分または30分が過ぎた時に

   ls -l /usr/local/dxnet/script/fwd-ipset.sh

   としてタイムスタンプを確認して更新されているかどうか確認します。

    【ヒント】
    
下記2-8に示すcrontab -e の設定を先に実施して下さい。

  

 2-7-5.  cat /usr/local/dxnet/script/親ノードのコールサイン.fwd

   として内容に問題がないかどうか確認します。

2-8 cron に定期的にアップデートする様に設定します。

       # crontab -e

       をやるとviが起動します。内容は以下のようです。ついでにntp(定期的に時刻を合わ

       せる)設定もして下さい。

0 10 * * * /usr/bin/ntpdate -s -b clock.nc.福大.ac.jp

5 10 * * * /sbin/clock -w

0 0 * * * /usr/local/dxnet/logmove.pl

*/10 * * * * /sbin/sh /usr/local/bin/ddoupdate update >> /var/log/ddoupdate

*/30 * * * * cd /usr/local/dxnet/script ; ./fwd-ipset.sh > 親ノードのコールサイン.fwd

2-9. カーネルの最構築

   附属のカーネルにはax.25ドライバが組み込まれていないのでカーネルを更新します。

   今回 カーネル 2.4.17を組み込みました

   カーネルは、例えば、lynxを使って

   # lynx ftp://ftp.kernel.org/pub/リナックス/カーネル

   で取得することができます。

   バージョン 2.4.17を取得する場合

   上記のように、linux-2.4.17.tar.bz2 /usr/srcのディレクトリ上にダウンロードします。

   最新バージョンを取得するのがベストですが以下 2.4.17

   ついて手順を記述します。実際にはバージョンに合わせた操作をする必要があります。

  ところで、上記ダウンロードが終了した時に、そのまま"q"を押して終了すると、折角ダウンロードされ

  たファイルが消えてしまいます。そこでは、enterキーを押して下さい。ファイル名を聞いてくると思います。

  既にファイル名は表示されていると思います。そこで再びenterキーを押します。ここで初めてダウンロード

  したファイルがセーブされたことになります。その後に"q"を入力してダウンロード処理を終了します。

   解凍展開は

   # cd /usr/src

   # bunzip2 linux-2.4.17.tar.bz2

   # tar xvfp linux-2.4.17.tar

   により行います。

  /usr/src/linux-2.4.17/

   以下がカーネルのソースです。

  

   現在のカーネルをバックアップします。

   cd /boot

   cp vmlinuz vmlinuz-org

   新規 Linuxソースにシンボリックリンクを修正します。

   cd /usr/src

   rm linux

   ln -s linux-2.4.17 linux

   cd linux

   make mrproper <= デフォルトにします。

   TL7デフォルトのコンフィグをコピーします。

   cp ../linux-2.4.5/configs/kernel-2.4.5-3-i586.config .config

   make menuconfig または make xconfig

   ax.25関連を設定します。

   カーネルのコンパイル

   make dep

   make bzImage

   make modules

   make modules_install

   make install

2-10. liloの設定

    /etc/lilo.confを編集します。

    =======================

    boot=/dev/hda

    map=/boot/map

    install=/boot/boot.b

    prompt

    timeout=50

    message=/boot/message

    lba32

    default=linux

    image=/boot/vmlinuz

    label=linux

    read-only

    root=/dev/hda1          <- /のあるパティションになっています。

    image=/boot/vmlinuz-org <--追加

    label=linux-org         <--

    read-only               <--

    root=/dev/hda1          <-- /のあるパーティションを設定します。

    ========================

    /sbin/liloを実行

2-11.リブート


この頁のトップへ戻る



3.ax25設定方法(デスクトップパソコンの場合)

3-1.ライブラリのコンパイル

   libax25-0.0.9

   ax25-tools-0.0.8

   をそれぞれ展開したディレクトリ内のファイルINSTALL に記述された方法にしたが

って設定します。

注意!! make installconf libax25-0.0.9 のみ実行して下さい。

 

 ※ダウンロードサイト例

   # lynx http://yo2tm.online.ro/files/ダウンロードサイト/libax25-0.0.9.tar.gz
   # lynx http://yo2tm.online.ro/files/ダウンロードサイト/ax25-tools-0.0.8.tar.gz

  ※ダウンロード先ディレクトリ例

   /home/mats/appli/ham

  ※解凍展開は

   # tar xzvf libax25-0.0.9.tar.gz
   # tar xzvf ax25-tools-0.0.8.tar.gz

この時

   ./configure --exec_prefix=/usr --sysconfdir=/etc --localstatedir=/var

   の方を使います。

   ※例

   # cd libax25-0.0.9

   # ./configure --exec_prefix=/usr --sysconfdir=/etc --localstatedir=/var

   # make

   # make install

   # make installconf  <----- libax25.0.0.9でのみやります。

   /home/m-ueda/appli/ham/libax25-0.0.9

   /home/m-ueda/appli/ham/ax25-tools-0.0.8 以下でコンパイルしたと思います

3-2. /etc/ax25/axportsの設定(わけが判らずに結果オーライで設定しました。)

    /etc/ax25 の中身は /etc/ax25/axports 以外は消去します。

  

    #==========================

    # /etc/ax25/axports

    #

    # The format of this file is:

    #

    # name callsign speed paclen window description

    #

    ax0     親ノードコールサイン-11       9600    255     2       438.20 MHz (1200  bps)

    ax1     親ノードコールサイン-12      9600    255     2       438.20 MHz (1200  bps)

    #==========================

    コールサインの-11 -12 は必ず変えて下さい。(両方 -11としたら動作しませんでした。)

    もう一つ追加する場合 ax2

    9600 PC<-> TNC間のボーレートを指定します。

3-3. ax25をロードして COM1ax0 COM2ax1を割り当てます。(わけが判らずに結果オー

ライで設定しました。)

    /usr/local/dxnet/kiss2 に記述のとおりです。

    #==========================

    #!/bin/sh

    /sbin/insmod ax25

    /sbin/insmod mkiss

    /usr/sbin/kissattach /dev/ttyS0 ax0 192.168.1.2

    /usr/sbin/kissattach /dev/ttyS1 ax1 192.168.1.2

    #==========================

3-4. 止め方は

     /usr/local/dxnet/stopに記述のとおりです。

     2つの kissattach のプロセスを kill -9で停止します。

     /sbin/rmmod mkiss

     /sbin/rmmod ax25

※この3章の操作は、例えば、

http://www.tldp.org/HOWTO/ダウンロードサイト

 を参照ください。

この頁のトップへ戻る




4.dxnet設定方法(デスクトップパソコンの場合)

4-1. dxnet導入

   dxnetのソースをコンパイルします。ただし。カーネル2.4.xではコンパイルできませんでした。

簡単な方法がありますので。詳しくは私へメールで問い合わせ下さい。

              mailto:m.mats@gemini.bekkここ取るoame.ne.jp

4-2. /usr/local/dxnet/system/dxnet.cfg

   基本設定です。ノードが立ち上がるときsysコマンドとして実行するようです。

   set/call ノードのコールサイン-11  # ノードのコールです。

   set/node # ノードリンク先のコールです。

   set/port inet:ポート番号 ax0 ax1 # インターネットポート番号 ax0 ax1を利用します。 COM3

加時はax2も書く必要があるかもしれません。

   set/ssid # 許可するSSIDです。( -11 とか -1 とか)

   SET/TEL open # telnetでの接続を許可します。

   SET/LOG_level system=7 debug=7 user=1 cluster=1 # ログレベル dxnet/logs の中身

   SET/TZ +9 # 時刻表示を UTCに設定

   SET/SYS +ノードのコールサイン +ノードのコールサイン +ノードのコールサイン # sysコマンドの実行許可者
 クラスタから
sysと入力します。

                # 5つ文字が出るのでパスワードを先頭から数えて入力します。

                # OKがでたら SYSOPモードです。

   SET/BLACK                      

# ブラックリスト 他のノードのコールでログインできない様にします。

                # -0 SSID無しの指定です。

4-3. /usr/local/dxnet/system/dxtodo.dat

   dxnet動作中の設定

   ???0 c 親ノードのコールサイン

   ???5 c 親ノードのコールサイン

   ???2 c 親ノードのコールサイン2

   ???7 c 親ノードのコールサイン2

   毎時 0/5分に親ノードのコールサインと接続します。

   毎時 2/7分に親ノードのコールサイン2と接続します。

   2-8.項も再読下さい。

4-4. /usr/local/dxnet/script

   ここにノードに対する接続を記述します。

2-7.項も再読下さい。

   例えば "親ノードのコールサイン.fwd"

        親ノードのコールサイン

        .C ax0 親ノードのコールサイン

        親ノードのコールサインax0ポートに対して接続する

4-5.  /usr/local/dxnet/system/passwd.dat

   パスワードファイルです。

4-6. /usr/local/dxnet/restart

   dxnetをスタートします。一度止めて設定を変えて走らせるときにもそのまま使えます。

4-7. /usr/local/dxnet/stop

  ax.25もあわせてdxnetを止めます。

  COM1/2を他の目的で使うときはこれをやらないと止まりません。

  これをやったときのスタートは

  /usr/local/dxnet/kiss

  /usr/local/dxnet/restart

  2つが必要です。

以上全て rootで実行します。

この頁のトップへ戻る





5.ログ管理設定(デスクトップパソコンの場合)

/usr/local/dxnet/system/dxnet.cfg

SET/LOG_level system=7 debug=7 user=1 cluster=1

に設定していますが(マニュアル参照)

system=7 debug=7 は最高のデバッグモードです。

/usr/local/dxnet/logs/debug に一日1Mバイト以上のログデータが溜ります。これを放置しているとすぐに膨れあがり肝心な内容が見たい時に簡単に中身を見れなくなります。そのために作ったスクリプトが以下です。

/usr/local/dxnet/logmove.pl

perlスクリプトですが、

TL7perl /usr/bin/perl

logmove.pl

/usr/bin/local/perl

を指定しています。

このため最初に

1) rootでログイン

2) ln -s /usr/bin/perl /usr/local/bin/perl

によりシンボリックリンクを張ります。

一日一回 logmove.plを起動する方法

cronを用います。

cronについては man cron を参照して下さい。

設定手順は以下のようです。

5-1. rootでログインする。(リモート接続の場合は、su の後rootのパスワード)

5-2. crontab -e  <- これでviが起動されます。

5-3. 以下をviで編集します。

- -- ここからです --

0 10 * * * /usr/bin/ntpdate -s -b clock.nc.福大.ac.jp

5 10 * * * /sbin/clock -w

0 0 * * * /usr/local/dxnet/logmove.pl

- -- ここまでです --

   1行目 毎日 100分に時計をあわせる

   2行目 毎日 105分に時計をCMOSメモリに記録

   3行目 毎日 00分にlogmove.plを起動する

5-4. viをセーブして終了です。 これでcronで定期的にプログラムが起動されるはずです。

5-5. 念の為の確認作業

   /usr/bin/ntpdate -s -b clock.nc.福大.ac.jp

   /sbin/clock -w

   /usr/local/dxnet/logmove.pl

  これらをそれぞれrootか手動で動かして問題ないことを確認しておくほうがベターです。

5-6. リブートでの起動オプション

  /etc/rc.d/rc.local の最後に以下の設定を追加します。

  /user/bin/ntpdate -s -b clock.nc.福大.jp

  /usr/local/dxnet/kiss

  /usr/local/dxnet/restart


5-7. 言語、プロンプト等の設定

  /user/loca/dxnet/system/language.dat

    english
    french

  の順に変えます。

  /usr/local/dxnet/language/english.txt を修正して、プロンプト等をお好きなように変えて下さい。

この頁のトップへ戻る





6.その他

6-1. LINUX機付属のコンソールからはroot & root passwordでログイン可能ですが、遠隔

コンソールでは、userid & user passwordでログイン後、su & root passwordで再ロ

グインする必要があります。

6-2. telnetでDxnetにログインする場合、ホストアドレスにddnを指定した

場合に、socketエラーになった場合、ddnでなく、192.168.*.*のIPアドレ

スそのもので指定してください。ノードパソコンと同じLAN内からリモート接続しようとした場合

   にこのような症状が現れます。

6-3. telnetで遠隔操作する場合、SSH対応のターミナルソフトを使用して、ポー

ト22に接続しないと、reboot命令を受け付けてくれない場合があります。

6-4. LINUXインストール後にLANボードをPCIバスに増設した場合は、LINUXの再インストールが必
   要です。


6-5. 再起動&電源断の命令(Turbo Linux)

   再起動 # reboot

   電源断 # shutdown -h now

6-6. プログラムの強制終了(Turbo Linux)

   コントロールキーとcを同時に押して下さい。


この頁のトップへ戻る




home