2915agb をW52/53対応に

T23に、昔の2915AGB カードを挿して、11a W52/53対応として使うようにします。

カードのEEPROMを書き換えれば出来ますが、改造ドライバが必要です。どうせドライバを改造してしまうなら、ドライバ改造だけでEEPROMを書き換えずとも動かせる方法があるのでそちらで対応しました。

ソースファイル、ipw2200.cの後の方に周波数テーブルの定義がありますので、こちらを書き換えます。日本仕向けはZZJですので、ここのテーブルを以下に書き換えます。

{                       /* 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 = 19,
.a = {
/* Old J52 Channel */
/*{5170, 34},*/
/*{5190, 38},*/
/*{5210, 42},*/
/*{5230, 46},*/
/* 11a W52 channel */
{5180, 36},
{5200, 40},
{5220, 44},
{5240, 48},
/* 11a W53 channel */
{5260, 52, IEEE80211_CH_PASSIVE_ONLY},
{5280, 56, IEEE80211_CH_PASSIVE_ONLY},
{5300, 60, IEEE80211_CH_PASSIVE_ONLY},
{5320, 64, IEEE80211_CH_PASSIVE_ONLY},
/* 11a W56 channel */
{5500, 100, IEEE80211_CH_PASSIVE_ONLY},
{5520, 104, IEEE80211_CH_PASSIVE_ONLY},
{5540, 108, IEEE80211_CH_PASSIVE_ONLY},
{5560, 112, IEEE80211_CH_PASSIVE_ONLY},
{5580, 116, IEEE80211_CH_PASSIVE_ONLY},
{5600, 120, IEEE80211_CH_PASSIVE_ONLY},
{5620, 124, IEEE80211_CH_PASSIVE_ONLY},
{5640, 128, IEEE80211_CH_PASSIVE_ONLY},
{5660, 132, IEEE80211_CH_PASSIVE_ONLY},
{5680, 136, IEEE80211_CH_PASSIVE_ONLY},
{5700, 140, IEEE80211_CH_PASSIVE_ONLY}},
},

旧J52は使えませんが、APが必要でなければ問題無しです。

ちなみに、上記設定でW56チャネルも使用できます。

ソースファイルが変更できたら、以下のコマンドでモジュールファイルを作成します。

make -C /lib/modules/`uname -r`/build M=`pwd` modules

ipw2200.koが出来たら、所定の位置にコピーして再読み込みもしくは再起動で使えるはずです。