最終更新日時 : 2006/03/19 (Sun) 00:00:00

ipw2200 ドライバを世界標準 11a 対応に

本ページ内における各種表記は 2006 年 3 月現在のものです。

警告 : 下記の内容は、コンピュータに悪影響を与える可能性がある操作を含みます。 これらの操作を行った結果として生じる事象について、筆者は一切の責任を負いません。

VAIO type T (VGN-TX91PS) に Fedora Core 4 を導入していて困った事が発生。 内蔵無線 LAN アダプタ、Intel PRO/Wireless 2915ABG Network Connection に対応するドライバ ipw2200-1.1.0 はそのままインストールすると IEEE802.11a (5GHz 帯無線 LAN) が旧省令周波数 (J52) のみの対応となってしまい、新省令周波数 (世界標準 11a、W52・W53) が使用できなくなってしまいます。 今回、ソースファイルを無理矢理書き換えることでこれを克服しました。

解決法

まず、自分の使用している無線 LAN アダプタがどの地域に属しているか確かめます。

$ dmesg | grep ipw2200
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.0
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
ipw2200: Detected geography ZZJ (14 802.11bg channels, 4 802.11a channels)

…地域 (日本) を表す ZZJ という記号が出て来ましたので、これを手がかりにソースファイルを見ていきますと ipw2200-1.1.0.tgz を展開したディレクトリにある ipw2200.c の 11,094 行目以降に

	{			/* Custom Japan */
	 "ZZJ",
	 .bg_channels = 14,
	 .bg = {{2412, 1}, {2417, 2}, {2422, 3},
		{2427, 4}, {2432, 5}, {2437, 6},
		{2442, 7}, {2447, 8}, {2452, 9},
		{2457, 10}, {2462, 11}, {2467, 12},
		{2472, 13}, {2484, 14, IEEE80211_CH_B_ONLY}},
	 .a_channels = 4,
	 .a = {{5170, 34}, {5190, 38},
	       {5210, 42}, {5230, 46}},
	 },

こういういかにも〜な周波数定義がありました。 これを

	{			/* Custom Japan (modified by Yamachan, 20060306) */
	 "ZZJ",
	 .bg_channels = 14,
	 .bg = {{2412, 1}, {2417, 2}, {2422, 3},
		{2427, 4}, {2432, 5}, {2437, 6},
		{2442, 7}, {2447, 8}, {2452, 9},
		{2457, 10}, {2462, 11}, {2467, 12},
		{2472, 13}, {2484, 14, IEEE80211_CH_B_ONLY}},
	 .a_channels = 12,
	 .a = {/* J52 */
	       {5170, 34},
	       {5190, 38},
	       {5210, 42},
	       {5230, 46},
	       /* W52 */
	       {5180, 36},
	       {5200, 40},
	       {5220, 44},
	       {5240, 48},
	       /* W53 (APs are required DFS and TPC, Ad hoc is forbidden) */
	       {5260, 52, IEEE80211_CH_PASSIVE_ONLY},
	       {5280, 56, IEEE80211_CH_PASSIVE_ONLY},
	       {5300, 60, IEEE80211_CH_PASSIVE_ONLY},
	       {5320, 64, IEEE80211_CH_PASSIVE_ONLY}},
	 },

こうしてしまえば OK と。

改めてドライバをインストールし直して、iwlist を実行してやると

$ /sbin/iwlist eth1 frequency
eth1      26 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Channel 14 : 2.484 GHz
          Channel 34 : 5.17 GHz
          Channel 38 : 5.19 GHz
          Channel 42 : 5.21 GHz
          Channel 46 : 5.23 GHz
          Channel 36 : 5.18 GHz
          Channel 40 : 5.2 GHz
          Channel 44 : 5.22 GHz
          Channel 48 : 5.24 GHz
          Channel 52 : 5.26 GHz
          Channel 56 : 5.28 GHz
          Channel 60 : 5.3 GHz
          Channel 64 : 5.32 GHz
          Current Channel:**

上手く行ったっぽいですね。