Puppy 4.02でBroadcom製の無線LANチップを使うにあたって
Puppy 4.02でBroadcom製の無線LANチップを使うにあたって
Puppy 4.02では、Broadcomのチップのためにb43、b43legacy、bcm43xxという3つのドライバが用意されていますが、bcm43xxを使用するにあたっては、同時に必要なファームウェアが自動ではロードされませんでした。それで、Puppy 3.01で使用していたファームウェアをコピーして使用し、暗号化なしとWPAで接続を確認しました。
Broadcom関係のファームウェアの扱いについては著作権が絡んで、慎重になる必要があるのですが、個人が別の目的で使用したファームウェアを個人の使用のためにコピーすることは問題はないと考えています。
Broadcom関係のファームウェアの扱いについては著作権が絡んで、慎重になる必要があるのですが、個人が別の目的で使用したファームウェアを個人の使用のためにコピーすることは問題はないと考えています。
私は普段はKubuntu7.10を次のノートPC環境で利用しています。
PuppyLinux4.00.3JP
DELL Inspiron
CPU:Celeron_M 1.5GHz
MEM:1536MB
HDD:80GB
先日、PuppyLinuxで試してみました。
ごく、普通に起動できたのですが、KNOPPIXなどと比べても非常に軽快で感動しました。
ただし、ひとつだけ問題があります。
それはノートPCに付属の無線カード(チップはBCM4318)ですが、動作が不安定です。ブート後に接続のアイコンでみると無線のチップは認識され、BCM43xxというドライバモジュールもロードされています。スキャンをしてみるとちゃんと無線アクセスポイントも認識されます。
しかし、接続がなかなかできません。暗号化なしの接続(私の場合はFON_FREE_INTERNET)は一度だけ接続できましたが、暗号化(MyPlace)されたアクセスは接続できません。接続経験があるのでファームウェアなどは正しいのではないかと思います。
そのうちスキャンしてもアクセスポイントがみつからなくなります。いまのところリブートしない限り、復旧はできません。
念のためコマンドラインから次のコマンドを実行すると、受け付けますが接続はやはりできません。
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
またifconfig eth1 downは受け付けますが、ifconfig eth1 upは拒否されていしまいます。
Ubuntu7.10でもBCM4318チップのファームウェアはなかなか動かず、あちこち探してファームウェアをダウンロードしてやっと接続できたのですが、Puppyでも同じ条件なのでしょうか?
ライセンス関係などはよくわかりませんが、jakeさんの投稿ではファームウェアをご自分でコピーされたようですね?今度時間があるときに試してみます。
PuppyLinux4.00.3JP
DELL Inspiron
CPU:Celeron_M 1.5GHz
MEM:1536MB
HDD:80GB
先日、PuppyLinuxで試してみました。
ごく、普通に起動できたのですが、KNOPPIXなどと比べても非常に軽快で感動しました。
ただし、ひとつだけ問題があります。
それはノートPCに付属の無線カード(チップはBCM4318)ですが、動作が不安定です。ブート後に接続のアイコンでみると無線のチップは認識され、BCM43xxというドライバモジュールもロードされています。スキャンをしてみるとちゃんと無線アクセスポイントも認識されます。
しかし、接続がなかなかできません。暗号化なしの接続(私の場合はFON_FREE_INTERNET)は一度だけ接続できましたが、暗号化(MyPlace)されたアクセスは接続できません。接続経験があるのでファームウェアなどは正しいのではないかと思います。
そのうちスキャンしてもアクセスポイントがみつからなくなります。いまのところリブートしない限り、復旧はできません。
念のためコマンドラインから次のコマンドを実行すると、受け付けますが接続はやはりできません。
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
またifconfig eth1 downは受け付けますが、ifconfig eth1 upは拒否されていしまいます。
Ubuntu7.10でもBCM4318チップのファームウェアはなかなか動かず、あちこち探してファームウェアをダウンロードしてやっと接続できたのですが、Puppyでも同じ条件なのでしょうか?
ライセンス関係などはよくわかりませんが、jakeさんの投稿ではファームウェアをご自分でコピーされたようですね?今度時間があるときに試してみます。
確かにそのとおりです。コマンドラインでは、一度、bcm43xxをrmmodするとよいみたいです。ファームウェアが正しくロードされているかどうかは、/lib/firmwareでわかりますが、Puppy 4.003JP(というかkernel2.6.21.7)でプリセット*されているファームウェアは、桑田政輝さん さんが書きました:いまのところリブートしない限り、復旧はできません。
bcm43xx_initval01.fw
bcm43xx_initval02.fw
bcm43xx_initval03.fw
bcm43xx_initval04.fw
bcm43xx_initval05.fw
bcm43xx_initval06.fw
bcm43xx_initval07.fw
bcm43xx_initval08.fw
bcm43xx_initval09.fw
bcm43xx_initval10.fw
bcm43xx_microcode2.fw
bcm43xx_microcode4.fw
bcm43xx_microcode5.fw
bcm43xx_pcm4.fw
bcm43xx_pcm5.fw
の15個です。
*bcm43xxのファームウェアをプリセットして配布することは著作権上、問題があるのかも。ユーザーには便利ですが。
DELL Inspiron + Puppy + BCM4318
暗号化無しの環境で、コマンドライン(iwconfig eth1 essid "FON_FREE_INTERNET")実行すると特にエラーメッセージは出ませんので受け付けているのではないかと思います。このあとiwconfigでみると確かにESSIDは設定されています。
しかし、「ifconfig eth1 up」はやはりエラーになります。また「ifconfig」ではeth1は認識されていません。これでみるとファームウェアが100%対応できていないのでは?と思います。
リブート直後にウイザードでSCANするとアクセスポイントは検知できるのですが、なかなかうまく接続できません。そのうちSCANもできなくなります。
同じPCにインストールしているKubuntu7.10では問題なく認識されてアクセスもできるのですが。ファームウェアもご指摘の15種類のものが/lib/firmwareに入っています。Kubuntuではさらに2つのファームウェアが追加されていて17種になっています。念のためこれもPuppyに追加してみましたが、現象は同じようです。
う〜ん、なぜかなあ?
とりあえずいろいろとトライしてみます。
しかし、「ifconfig eth1 up」はやはりエラーになります。また「ifconfig」ではeth1は認識されていません。これでみるとファームウェアが100%対応できていないのでは?と思います。
リブート直後にウイザードでSCANするとアクセスポイントは検知できるのですが、なかなかうまく接続できません。そのうちSCANもできなくなります。
同じPCにインストールしているKubuntu7.10では問題なく認識されてアクセスもできるのですが。ファームウェアもご指摘の15種類のものが/lib/firmwareに入っています。Kubuntuではさらに2つのファームウェアが追加されていて17種になっています。念のためこれもPuppyに追加してみましたが、現象は同じようです。
う〜ん、なぜかなあ?
とりあえずいろいろとトライしてみます。
DELL Inspiron + Puppy + BCM4318
その後、いろいろと試してみましたがまだ完全には安定接続はできません。
しかし、不安定ながらときどき接続できるケースがありました。
1。rmmod bcm43xx で一度モジュールをアンインストールします。そのあと”接続アイコン”でbcm43xxモジュールを再度ロードします。
2。端末から次のコマンドを入力します。(xxxxxxxxxxはWPAキーです)
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
3。この時点で接続はできたようです。iwconfigで見るとLink Qualityが弱いながらもあります。接続できない時はこのレベルはゼロです。ここ”接続アイコン”でDHCPを実行するか、端末で"dhcpcd eth1"を入力する。
以上の方法でかなりの確率で接続できるようになりました。このレポートもこうやって接続したPuppyから書いています。
ただし、上記のコマンドを/etc/rc.d/rc.localに書いてもうまくいきません。
不思議ですねえ?
しかし、不安定ながらときどき接続できるケースがありました。
1。rmmod bcm43xx で一度モジュールをアンインストールします。そのあと”接続アイコン”でbcm43xxモジュールを再度ロードします。
2。端末から次のコマンドを入力します。(xxxxxxxxxxはWPAキーです)
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
3。この時点で接続はできたようです。iwconfigで見るとLink Qualityが弱いながらもあります。接続できない時はこのレベルはゼロです。ここ”接続アイコン”でDHCPを実行するか、端末で"dhcpcd eth1"を入力する。
以上の方法でかなりの確率で接続できるようになりました。このレポートもこうやって接続したPuppyから書いています。
ただし、上記のコマンドを/etc/rc.d/rc.localに書いてもうまくいきません。
不思議ですねえ?
Re: DELL Inspiron + Puppy + BCM4318
お使いの暗号化はWEPですか?WPAですか?桑田政輝さん さんが書きました:端末から次のコマンドを入力します。(xxxxxxxxxxはWPAキーです)
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
WEPなら、
コード: 全て選択
/usr/sbin/wpa_connect.sh eth1 wext
コード: 全て選択
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
コマンドラインでBCM4318を接続させました
FONのWIFIルータを利用しているので、暗号化はWPA/TKIPです。
WPAの時には次のコマンドラインは不要なのでしょうか?
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
これを利用しないとESSIDやWPAキーを設定できないのではないかと思うのですが?
ちなみに前回のように、一度モジュールをはずして再度ロードした後、次のコマンドラインを入力して接続できました。
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
dhcpcd eth1
また、WPAキーの設定状況を確認してみましたが、”接続”アイコンではどうしてもWPA/TKIPのキーが設定できません。ワイアレスの設定ではエラーが出ずに完了したように見えますが、iwconfigコマンドで確認するとWPAキーは設定されていません。
念のため何度か試してみましたが、いつも同じ結果です。しかし、BCM43xxモジュールを再ロード後に上記のコマンドラインを入れると正しくWPAキーが設定されます。一旦正しくキー設定できると、接続はほぼ確実にできます。ただし、IPアドレスがとれていない場合があるので、DHCPの実行が必要な時もあります。
それで現在は次のスクリプトを用意して端末から起動しています。これで安定して接続できています。時々DHCP取得に失敗しますが、そのときは”接続”アイコンからDHCPを実行してカバーしています。
#-----------------------
rmmod bcm43xx
insmod /lib/modules/2.6.21.7/kernel/drivers/net/wireless/bcm43xx/bcm43xx.ko
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
sleep 10
dhcpcd -k eth1
dhcpcd eth1
#-----------------------
また、/etc/eth1wirelessというファイルにはiwconfigでESSIDやWPA-KEYを設定しているコマンドが記述してありましたので、ここに/usr/sbin/wpa_connect.sh eth1 wextを追加してみたところ、ブート後にしばらくして(端末でifconfigコマンド入力してIPアドレスなどの変動を見ていた)自動的に接続されるようになりました。
なお、フォーラムを調べてみたら、動作実績の135番の報告に私と同じようなケースがありました。
http://openlab.ring.gr.jp/puppylinux/dosa2.html
また、昨年の暮れにUbuntu7.10でBCM4318を利用しての接続時にも同じ様な現象があって、そのときもwextをWPA-Driverとして指定していました。
とりあえずBCM4318での安定接続ができるようになりました。
いろいろとアドバイス有難うございました。
WPAの時には次のコマンドラインは不要なのでしょうか?
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
これを利用しないとESSIDやWPAキーを設定できないのではないかと思うのですが?
ちなみに前回のように、一度モジュールをはずして再度ロードした後、次のコマンドラインを入力して接続できました。
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
dhcpcd eth1
また、WPAキーの設定状況を確認してみましたが、”接続”アイコンではどうしてもWPA/TKIPのキーが設定できません。ワイアレスの設定ではエラーが出ずに完了したように見えますが、iwconfigコマンドで確認するとWPAキーは設定されていません。
念のため何度か試してみましたが、いつも同じ結果です。しかし、BCM43xxモジュールを再ロード後に上記のコマンドラインを入れると正しくWPAキーが設定されます。一旦正しくキー設定できると、接続はほぼ確実にできます。ただし、IPアドレスがとれていない場合があるので、DHCPの実行が必要な時もあります。
それで現在は次のスクリプトを用意して端末から起動しています。これで安定して接続できています。時々DHCP取得に失敗しますが、そのときは”接続”アイコンからDHCPを実行してカバーしています。
#-----------------------
rmmod bcm43xx
insmod /lib/modules/2.6.21.7/kernel/drivers/net/wireless/bcm43xx/bcm43xx.ko
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
sleep 10
dhcpcd -k eth1
dhcpcd eth1
#-----------------------
また、/etc/eth1wirelessというファイルにはiwconfigでESSIDやWPA-KEYを設定しているコマンドが記述してありましたので、ここに/usr/sbin/wpa_connect.sh eth1 wextを追加してみたところ、ブート後にしばらくして(端末でifconfigコマンド入力してIPアドレスなどの変動を見ていた)自動的に接続されるようになりました。
なお、フォーラムを調べてみたら、動作実績の135番の報告に私と同じようなケースがありました。
http://openlab.ring.gr.jp/puppylinux/dosa2.html
また、昨年の暮れにUbuntu7.10でBCM4318を利用しての接続時にも同じ様な現象があって、そのときもwextをWPA-Driverとして指定していました。
とりあえずBCM4318での安定接続ができるようになりました。
いろいろとアドバイス有難うございました。
だいぶ、改善したようでなによりです。
essidとWPAキーは/etc/wpa_supplivant.confに書かれています。/usr/sbin/wpa_connect.sh ...では、これにアクセスして読み込みます。
ときどき、DHCPが取れないことがあるということですが、先の/etc/wpa_supplivant.confに、ap_scanという項目があるのですが、初期値はこれが2となっていますが、1とすることによって改善することがあります。
コード: 全て選択
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
iwconfigで表示されるWPAキーは通信に使われているものです。接続できていないとキーは表示されません。ネットワークウィザードで接続が完了したように見えても、実は接続ができていない(DHCPがとれてない)のです。DHCPをとり始めてから30秒経過しても反応がなかったら接続は失敗したと見てまちがいないでしょう。DHCPが取れたかどうかは、/var/runとか/var/lib/dhcpcdを見ればわかります。接続に失敗したときなどは、前の接続で使用したDHCP関連のファイル(3つ)が邪魔をするので再接続する前に削除しておくとよいと思います。WPAキーの設定状況を確認してみましたが、.......ワイアレスの設定ではエラーが出ずに完了したように見えますが、iwconfigコマンドで確認するとWPAキーは設定されていません。
ときどき、DHCPが取れないことがあるということですが、先の/etc/wpa_supplivant.confに、ap_scanという項目があるのですが、初期値はこれが2となっていますが、1とすることによって改善することがあります。
BCM43xx 最新の構成
どうも有難うございました。
いろいろと試して見ましたが、完全に安定した接続のためには次のコマンドラインを実行するのが確実なようです。
rmmod bcm43xx
insmod /lib/modules/2.6.21.7/kernel/drivers/net/wireless/bcm43xx/bcm43xx.ko
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
sleep 10
dhcpcd -k eth1
dhcpcd -n eth1
興味本位でwextオプションについて調べてみたら、Debian系のパッケージではBCM43xxではデフォルトのドライバなので指定されなければ自動的に使われるという表現がいくつかのフォーラムにありました。
しかし、私の経験ではUbuntu(7.10/8.04)でも明示的にwextを指定しないと動作しませんでした。
2008/09/14追記
現在は上記コマンドラインを/etc/rc.d/rc.localに追加してあります。これでブートアップ後に安定して接続されるようになりました。
いろいろと試して見ましたが、完全に安定した接続のためには次のコマンドラインを実行するのが確実なようです。
rmmod bcm43xx
insmod /lib/modules/2.6.21.7/kernel/drivers/net/wireless/bcm43xx/bcm43xx.ko
iwconfig eth1 essid "MyPlace" key "s:xxxxxxxxxx"
/usr/sbin/wpa_connect.sh eth1 wext
sleep 10
dhcpcd -k eth1
dhcpcd -n eth1
興味本位でwextオプションについて調べてみたら、Debian系のパッケージではBCM43xxではデフォルトのドライバなので指定されなければ自動的に使われるという表現がいくつかのフォーラムにありました。
しかし、私の経験ではUbuntu(7.10/8.04)でも明示的にwextを指定しないと動作しませんでした。
2008/09/14追記
現在は上記コマンドラインを/etc/rc.d/rc.localに追加してあります。これでブートアップ後に安定して接続されるようになりました。