ザウルスでBluetoothのPANを自動起動させる

なかなかうまくいきません。

とりあえず、ネットワーク関係の自動設定はできるようになったので、その設定を載せておく。

/etc/hotplug/usb.agent

USBをつなぐとこれが自動的に起動する。

ここでpandの実行を行えばいいと思うのだが、そのようにしても正常に動作しない。

パソコンとザウルスが正常に接続してくれない。

case $ACTION in

add)

    ;;

の前に次を埋め込んでみるが、pandは起動するが、正常にパソコンとつながってくれない。

    if [ -x /sbin/devlabel ]; then
        /sbin/devlabel restart
    fi

+ #    /etc/hotplug/pand_start &
+
+ #    echo " tuka 1 " >> /tmp/aaa
+ #    echo " PRODUCT=$PRODUCT" >> /tmp/aaa
+ #    echo " TYPE=$TYPE" >> /tmp/aaa
+ # add 2007/10/8
+ #    if [ "$PRODUCT" = "a5c/200a/109" -a "$TYPE" = "usb" ]; then
+ #       sleep 10
+ #       pand -s -r NAP -P $pand_pid
+ #       sleep 10
+ #       sdptool add NAP
+ #    fi
+ # end of add
+
    ;;

試行錯誤した残骸があるが、そのままにしておく。

次に、

remove)

の方にUSBを引っこ抜いたときに実行するスクリプトを追加する。

remove)
+ # add 2007/10/8
+ #    echo " remove " >> /tmp/aaa
+ #    echo " PRODUCT=$PRODUCT" >> /tmp/aaa
+ #    echo " TYPE=$TYPE" >> /tmp/aaa
+     if [ "$PRODUCT" = "a5c/200a/109" -a "$TYPE" = "224/1/1" ]; th
+          pand --killall
+          PID=`cat $pand_pid`
+          kill $PID
+      fi
+  # end of add

    if [ -x $REMOVER ]; then
        $REMOVER
    fi

こちらは正常に動作して、起動しているpandをkillしてくれる。

/etc/hotplug/net.agent

ネットワークの設定をする。

case $ACTION in

の前後に次のスクリプトを追加する。

+ #add 2007/10/8
+ dhcpd_bnep0_conf=/etc/hotplug/dhcpd.conf.192.168.129
+ dhcpd_bnep0_leases=/var/state/dhcp/dhcpd-bnep0.leases
+ dhcpd_bnep0_pid="/var/run/dhcpd-bnep0.pid"
+ #end of add

case $ACTION in
register)
    # Don't do anything if the network is stopped
    #if [ ! -f /var/lock/subsys/network ]; then
    #   rm -f ${NAL}
    #   exit 0
    #fi

    case $INTERFACE in
+ # add 2007/10/8
+         bnep0)
+             ifconfig bnep0 192.168.129.201
+             if [ ! -f $dhcpd_bnep0_leases ]; then
+                 touch $dhcpd_bnep0_leases
+             fi
+             /usr/sbin/dhcpd -cf $dhcpd_bnep0_conf -lf $dhcpd_bnep
+             ;;
+ # end of add

        # interfaces that are registered after being "up" (?)
        ppp*|ippp*|isdn*|plip*|lo*|irda*|tunl*)

BluetoothのPANのネットワーク名はbnep0なので、ifconfigして、dhcpdを動かしている。

ネットワーク接続が切れたときの処理も追加する。

    ;;

unregister)
    case $INTERFACE in
+ # add 2007/10/8
+         bnep0)
+             pand --killall
+             PID=`cat $dhcpd_bnep0_pid`
+             kill $PID
+             rm -f $dhcpd_bnep0_leases $dhcpd_bnep0_pid
+             ;;
+ # end of add

        usbd0)
            if [ "$DEBUG" != "" ]; then
                mesg ifconfig $INTERFACE down

/etc/hotplug/dhcpd.conf.192.168.129

dhcpdのconfigファイルはこんなかんじ。

#
# dhcpd.conf
#
default-lease-time 7200;
max-lease-time 7200;

#server-identifier slc3100.zaurus.net;
server-name "slc3100";

#option domain-name "zaurus.net";
option subnet-mask 255.255.255.0;

subnet 192.168.129.0 netmask 255.255.255.0 {
        option broadcast-address 192.168.129.255;
        option routers 192.168.129.201;
        option domain-name-servers 61.195.64.65,61.195.64.66;   #

        range 192.168.129.1 192.168.129.1;

        option netbios-name-servers 192.168.129.201;
        option netbios-node-type 8;
}

ザウルスのusbネットワークと同じIPアドレスとしている。

netbiosの行は必要ないかも。

使い方はどうなの

こういう設定にすると、どうやって使うかというと、

とりあえずリブートでもしておくか。

そして、おもむろにUSB Bluetoothをザウルスのおしりにつなげる。

次に、コンソールを起動して、rootになって、コンソールから、

# su -m
# pand -s -r NAP -P /var/run/pand_usb.pid
# sdptool add NAP

とする。

最後に、パソコンのBluetoothアプリケーションからザウルスを検索して、ザウルスにネットワーク接続する。

ザウルスでdhcpdサーバーが起動しているので、パソコンのネットワーク設定はデフォルトでよい。

正常に接続できればおめでとう。

私のところでこれで正常に接続できた。

なお、usb.agentのaddのところのコメント"#"をはずしてpandが自動実行されるようにしてみたらパソコンからネットワークにつながらなくなる。

どうして?

パソコンでサーバーを構築して、自宅サーバにしよう。