« LS-GL シリアルからブート | メイン

2009年06月07日

モバイルルータ化
LinuxZaurus/Customize

IIJmioの3980円/月にてD01NXIIを契約しました。
これでbitwarpとはおさらばです。
といいながら実はwillcomのスペシャルモデルも契約しちゃったのですが
まぁwillcomの方が接続可能エリアが広いのでバックアップ回線として置いておきます。

んでせっかく高速回線が手に入ったので他の機器でも恩恵が受けられないかなと
SL-C3200をモバイルルータ化をしてみました。

以下簡単な手順です。

(1) 内蔵HDDが無くても動くようにします。
   /dev/hdd3辺りを参照しているものをすべて変更します。

(2) SL-C3200を2スロット化します
   私はホットナイフで切りました。

2slot.JPG

(3) CFのslot0側に無線LANカードを挿入します

(4) CFのslot1側にD01NXIIを挿入します

(5) 「ネットワーク設定」にてアドホック接続の無線LAN設定を作成します

(6) 「ネットワーク設定」にてD01NXIIの設定を作成します

(7) んでモバイルルータ化するためには両方を有効にしないといけないのですが、
   GUIでは両方を有効にすることができないので無線LAN側だけGUIで有効にする。
   netctrlコマンドや、qpopコマンドを使ってターミナルにて有効にすることも可能です。

(8) 以下コマンドにてD01NX側も有効にします。
   USB??????????は/etc/ppp/peersを参考に。
   パスワードはpppのログインパスワードに置き換えます。

pppd ttyJACM0 debug call USB1241967994 password パスワード &

(9) iptablesにてppp0にルーティングするように設定する
   まぁこの辺りの設定方法は探せば見つかるでしょう。

以下は(1)〜(9)までをパッチ化したものです。
ntpdateや、routeの設定などが含まれているので各自環境に合わせてください

#!/bin/bash
 
endppp()
{
sudo killall ping > /dev/null 2>&1
sudo killall router_ppp_on.sh > /dev/null 2>&1
sudo killall -9 .pppd > /dev/null 2>&1
sudo killall ${BW_DIALCMD} > /dev/null 2>&1
qcop QPE/Network 'stop()'
cardctl insert ${CARD_NO}
cardctl suspend ${CARD_NO} > /dev/null 2>&1
exit 0
}
 
trap 'endppp' HUP
trap 'endppp' INT
trap 'endppp' KILL
trap 'endppp' TERM
trap 'endppp' 0
 
# set parameter
BW_CARDNAME="D01NX"
BW_DIALNAME="USB??????????"      # PPP dial name
BW_DIALCMD="pppd"       # dialup command name
PING_HOST="www.iijmio.com"  # ping target host
CARD_NO="0"
 
cardctl ident 0 | grep ${BW_CARDNAME} > /dev/null
if (( $? != 0 ))
then
  CARD_NO="1"
  cardctl ident 1 | grep ${BW_CARDNAME} > /dev/null
  if (( $? != 0 ))
  then
    echo "Please insert modem card! (other card exist)"
    exit 1
  fi
fi
 
# check dialup status
ps aux | grep ${BW_DIALCMD} | grep -v grep > /dev/null
if (( $? == 0 ))
then
  echo "pppd already started."
  exit 0
fi
 
# enable WLAN
qcop QPE/Network 'stop()'
sleep 3
qcop QPE/Network 'start(QString,QString)' /home/zaurus/Applications/Network/modules/WLAN.conf
 
# reset bitWarp card
cardctl eject ${CARD_NO}
sleep 5
cardctl insert ${CARD_NO}
sleep 20
cardctl resume ${CARD_NO}
 
# start ping
ping -i 15 ${PING_HOST} > /dev/null 2>&1 &
 
# start and keep connection
while (true)
do
  # if dialup not executed, start dialup
  ps aux | grep ${BW_DIALCMD} | grep -v grep > /dev/null
  if (( $? != 0 ))
  then
    sudo ${BW_DIALCMD} ttyJACM0 debug call ${BW_DIALNAME} password (パスワード) &
  fi
 
  # sleep 10 seconds
  sleep 10
 
  sudo route del -net default dev usbd0
  sudo route del -net default dev eth0
 
  route | grep ppp0 | grep default > /dev/null
  if (( $? != 0 ))
  then
    sudo route add -net default dev ppp0
  fi
 
  sudo /usr/local/sbin/iptables -L | grep ppp-in > /dev/null
  if (( $? != 0 ))
  then
    sudo iptables-ap-on.sh
    sudo ntpdate ntp.nict.jp
  fi
 
done

同様なことをすればwillcom(bitwarp)でもモバイルルータ化出来ます。
実際AX420Nで使えてますし。
ただUSB???がDIALUP???になります。

実はIIJmioと契約するときにクティオも買っていたのですが、
結構消費電力が高いため、1時間半保ちません。
それに対してザウルスだと2時間保つし、有線LANルータにもなるので
最近ではザウルスだけを持ち運んでいます。

p.s.
ちなみにSL-C3200のバッテリーとクティオのバッテリーはほとんど同じです。
ただ左右対称なだけです・・・使えないやん(汗)
SL_Kutio_bat.JPG

投稿者 tattsuu : 2009年06月07日 23:33

トラックバック

このエントリーのトラックバックURL:
http://tattsuu.com/mt/mt-tb.cgi/60

コメント

コメントしてください




保存しますか?