本日はこの動かなかった b43 モジュールの代わりに Broadcom-wl モジュールを導入して n モードの動作に成功しました。以下はその記録です。
Broadcom-wl モジュールを組み込んだファームウェアをインストールした DSL-2740B です。 |
単純に Broadcom-wl の追加インストール
過去に BCM47xx 系のプロセッサにおいて Broadcom-wl モジュールへ置き換える作業をしたことがあります。そのときと同じ要領で b43 から Broadcom-wl モジュールへ置き換えを試みました。しかしフラッシュメモリの容量が少なく、インストールに失敗してしまいました。# opkg update
# opkg install kmod-brcm-wl wlc nas
Installing kmod-brcm-wl (3.18.20+5.10.56.27.3-8) to root...
Installing wlc (5.10.56.27.3-8) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/brcm63xx/generic/packages/base/wlc_5.10.56.27.3-8_brcm63xx.ipk.
Installing nas (5.10.56.27.3-8) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/brcm63xx/generic/packages/base/nas_5.10.56.27.3-8_brcm63xx.ipk.
Configuring wlc.
Configuring nas.
Collected errors:
* verify_pkg_installable: Only have 424kb available on filesystem /overlay, pkg kmod-brcm-wl needs 715
* opkg_install_cmd: Cannot install package kmod-brcm-wl.
イメージビルダーでファームウェア作成
そこでイメージビルダーを使って 4MB のフラッシュメモリの容量に収まるファームウェアを作成することとしました。ビルドの方針としては、b43 モジュールの代わりに Broadcom-wl モジュールを入れ替えるのと、ルータ機能は全く使用することがないため、バッサリ削除することによってファームウェアの大きさを抑えることとしました。OpenWrt Chaos Calmer 15.05 の brcm63xx 用イメージビルダーをダウンロードして展開した後、必要な設定を行い、ファームウェアをビルドしました。
プロファイルの確認の確認を行いました。以下の "DSL274XB_C" のプロファイルを使用しました。
$ make info
DSL274XB_C:
D-Link DSL-2740B/DSL-2741B rev C2/C3
Packages: kmod-b43 wpad-mini
ターゲットファイル(include/target.mk)を編集してルータ機能を削除します。青文字が追加部分で、赤文字の部分がコメントアウトで削除した部分です。
$ vi include/terget.mk
# Default packages - the really basic set
DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools
# For nas targets
DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm
# For router targets
DEFAULT_PACKAGES.router:=
#DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe kmod-nf-nathelper firewall odhcpd odhcp6c
DEFAULT_PACKAGES.bootloader:=
そしてプロファイル(DSL274XB_C)を指定してビルドしました。
$ make image PROFILE=DSL274XB_C PACKAGES="-kmod-b43 kmod-brcm-wl wlc nas uhttpd luci"
ビルドしたファームウェアは bin/brcm63xx/ の中に保存されています。ファイル容量は、以前よりも減少して 3.2MB ほどのものが出来上がりました。
ファームウェアは、ハードウェアバージョンの C2 用と C3 用の二つが出来上がりましたが、我が家の DSL-2740B のハードウェアバージョンが C2 であるため、C2 用のものを使用しました。
DSL-2740B へインストール
前回の OpenWrt のインストールと同様にファームウェアのインストールをシリアルコンソール上からの操作で行いました。D-Link DSL-2740B へ OpenWrt をインストール
http://near-unix.blogspot.jp/2015/11/d-link-dsl-2740b-openwrt.html
OpenWrt をインストール中の DSL-2740B です。 |
OpenWrt の設定(LAN ポートの不通対策)
無線 LAN 部分の動作確認の前に基本的なネットワークの設定で問題が発生しました。起動させた直後は問題なく動作している LAN ポートが、ネットワークの設定を行うと通信を停止してしまいました。単純にシリアルコンソール上からネットワークのリロードを行なっても同様の症状が発生しました。ただし再起動させれば問題なく LAN ポートは稼動します。いろいろと調べてみると、どうもファイアウォールの起動スクリプトで問題が発生しているようでした。イメージビルダーではファイアウォールを削除しているのにも関わらずブラウザ設定画面の LuCI では "firewall" の項目が存在しており、そして起動スクリプトが「有効(enable)」となっていました。そこでこのファイアウォールの起動スクリプトを「無効(disable)」にしたところ、ネットワークの設定を行なっても通信が停止することはなくなりました。
[System] - [Startup] の設定でファイアウォールを無効としました。 |
無線 LAN の設定
Broadcom-wl モジュールを組み込んだファームウェアで IEEE 802.11 n モードが動作するかどうか心配でしたが、設定画面には n モードの設定が出来るようになっていました。そして必要な設定を行った後、通信テストを行ったところ、無事通信ができました。無線LANの設定のページに n モードの指定をすることが出来ました。 |
ノートパソコン(ThinkPad X61)から n モードでで通信をしているところです。 |
これで無事 IEEE 802.11 n モードで動作するようになりました。
今後の予定としては、ファームウェアのインストールにシリアルコンソールが必要であるため、筐体を加工してシリアルコンソールの外部端子を設けたいと思っています。
Broadcom-wl ドライバで n モードの動作をしました。 |
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。