[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [+]

AirMac に Linux をつなぐ(完全)

前回、AirMac ベースステーションと Linux + PCCB-11 を接続しようとしましたが、WEP を有効にすると通信できませんでした。
今回は、そのリベンジです。
# といっても、技術的にどうこうしたというわけではありません…。
# あと、WEP 128bit(104bit) で確かめましたが、64bit(40bit) でも動作すると思います。 …が私は確認してません。

目次


1. 環境

Linux は、前回と同じく VineLinux2.5 です。
無線LAN カードも、前回と同じくコレガの PCCB-11 (販売終了)です。 当時は1万円くらいで買いましたが、今(2003/05/28 現在)は3千円で叩き売られています。
# ケースには WEP 40bit 対応としか書いてありません。 そのとき会社用にアクセスポイントを買ったのですが、そちらには 64bit/128bit だけしか書いてありません。 (某T社の)店員さんに聞くと、40bit と書いてないから使えないとおっしゃいました。
# でも、40bit というのはユーザが設定するキーのbit 数で、64bit というのは実際に暗号化に使われるキーの bit 数で、実は同じでした。
## さらに、コレガの製品情報を見ると、128bit でも使えるとありました。実際使えました。

2. ベースステーション側の設定

Mac の AirMac 管理ユーティリティを使用して、ネットワーク名(ESSID)と WEP 128bit のキー(パスワード)を設定します。
そして、ベースステーション->ネットワーク用パスワード を選択して、WEP 128bit のキー (実際は 104bit)をひかえておきます。

また、
AirportBaseStationConfigurator という、Java で書かれたアプリケーションがあります。 JRE があれば Mac 以外からでも設定できそうです。
# …できそうです、というのは、私ではできなかったからです。 Discover Devives を押すとベースステーションの情報は得られるのですが、IPアドレスとパスワードを設定しても、現在の情報を得られませんでした。

3. Linux 側の設定

前回は wvlan_cs を使っていたのですが、こちらはあまりよろしくなくて(dmesg を見るとそんなようなことをおっしゃいます)、 orinoco_cs の方を使えばいいということが(なんとなく)わかりました。
ただし、そのまんまのカーネル(2.4.18)のものでは WEP が使えませんでした。
そこで、2.4.19 のソースを持ってきて、モジュールを作り直して入れ直します。
# 私は、面倒だったので、hermes.o, orinoco.o, orinoco_cs.o をコンパイルしなおして、/lib/modules 以下にあるファイルを手動で置き換えました。
# ちゃんと make dep とか clean とかからやって make modules とか modules_install で入れ直すかどうかなどは、お任せします。
ちなみに、2.4.19 から持ってくるソースファイルは、以下の通りです。

  drivers/net/wireless/hermes.c
  drivers/net/wireless/hermes.h
  drivers/net/wireless/ieee802_11.h
  drivers/net/wireless/orinoco.c
  drivers/net/wireless/orinoco.h
  drivers/net/wireless/orinoco_cs.c

次に、/etc/pcmcia/config に以下を追加(既にあるなら変更)します。

  card "corega_K.K. Wireless_LAN_PCCB-11"
    version "corega_K.K.", "Wireless_LAN_PCCB-11"
    bind "orinoco_cs"

これを有効にするため、cardmgr を再起動します。

  # /etc/init.d/pcmcia restart
  Shutting down PCMCIA services: cardmgr modules.
  Starting PCMCIA services: modules cardmgr.

そして、/etc/pcmcia/wireless.opts を以下のようにしました。

    case "$ADDRESS" in
  *,*,*,*)
      INFO="connect to AirMac"
      ESSID="my-essid"
      MODE="Managed"
      RATE="11M auto"
      KEY="0123-4567-89ab-cdef-0123-4567-89"
      ;;
  esac

ESSID は、AirMac 側で設定したネットワーク名です。
KEY は、AirMac 管理 Utility でひかえておいたネットワーク用パスワードです。

4. 動作確認

iwconfig コマンドで確認して、間違いがないか確認をします。

  # iwconfig eth0
  eth0      IEEE 802.11-DS  ESSID:"my-essid"  Nickname:"tamao"
            Mode:Managed  Frequency:2.427GHz  Access Point: 01:23:45:67:89:ab
            Bit Rate:11Mb/s   Tx-Power=15 dBm   Sensitivity:1/3  
            Retry min limit:8   RTS thr:off   Fragment thr:off
            Encryption key:0123-4567-89AB-CDEF-0123-4567-89   Encryption mode:open
            Power Management:off
            Link Quality:76/92  Signal level:-26 dBm  Noise level:-149 dBm
            Rx invalid nwid:0  Rx invalid crypt:1  Rx invalid frag:0
            Tx excessive retries:3  Invalid misc:0   Missed beacon:0
  

もし間違いがあれば、wireless.opts を修正して、カードを差し直します。
それが面倒だと思ったら、直接 iwconfig を実行して、手動で変更することもできます。
例えば、essid と key を変更するには、以下のように実行します。
# うまく動作したら、wireless.opts を修正します。

  # iwconfig eth0 essid "new-id" key "ffff-eeee-dddd-cccc-bbbb-aaaa-99"

で、ping などすると…ちゃんと応答がありました。

  # ping 192.168.1.254
  PING 192.168.1.254 (192.168.1.254) 送信元 192.168.1.17 : 56(84) bytes of data.
  64 バイト応答 送信元 192.168.1.254: icmp_seq=0 ttl=64 時間=3.740ミリ秒
  64 バイト応答 送信元 192.168.1.254: icmp_seq=1 ttl=64 時間=946 マイクロ秒
  64 バイト応答 送信元 192.168.1.254: icmp_seq=2 ttl=64 時間=936 マイクロ秒
  ...

ちなみに、会社にあるアクセスポイント (これまたコレガの
WLAP-54GT というやつです) でも、同様の手順でつながりました。

…ああよかった。(^__^;;

Powered by Apache PostgreSQL Usupi Logo Kuri Logo
[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [-]
usu@usupi.org Last modified : Fri May 30 23:59:30 2003