Fedora Coreで認識してくれない無線LANを使うためには、ndiswrapperを使います。
ndiswrapperを使って無線LANカードを認識させる方法を解説します。
注意!!:
Fedora 11,12でのndiswrapperの使い方はこちら
キーワード:kernel-devel,ndiswrapper,WLCB-54GT,corega,/etc/modprobe.conf,depmod,modprobe,prism54,,firmware,eth0: could not upload firmware,iwconfig,dhclient, /etc/sysconfig/networking/device,ifup,linux
Fedora Core 4で認識してくれない無線LANを使うためには、ndiswrapperを使います。
この文書では、Fedora Core 4のインストール時にデスクトップの利用でインストールした場合を想定しています。
また、Fedora Core 5にアップグレードしても、
この方法で、無線LANを接続することも成功しています。
無線LANを設定しているときは、
ネットに接続できない可能性もあるので、
このファイルを保存しておくことをお薦めします。
参考サイト
・ndiswrapper本家サイト
・Fedora Core ndiswrapper インストール解説サイト
ndiswrapperを使うために、まずカーネルのソースコードをインストールをします。
また、上でインストールしたカーネルのソースコードが、
カーネルよりも新しい場合は、
カーネルも最新のものにします。
再起動して、新しいカーネルのバージョンを選んで起動し、インストールしたカーネルのバージョンを確認すると、
Fedora Core 5の場合、
以上の作業が終了したら、再起動して、新しいバージョンのカーネルで起動します。
カーネル2.6では、4kスタックサイズが有効/無効にできるオプションが付いています。
しかし、Fedora Core 4のカーネルでは、まったく無効にされています。
しかも、4kスタックサイズでは、Windowsのドライバーでは不十分です。
modprobe ndiswrapperを実行して、フリーズした場合は、16スタックサイズのカーネルを導入する必要があります。
Fedora Core 5のカーネルスタック問題を解決したカーネルは、
2006年3月26日現在まだ、出ていません。
(今回の無線LANカードcorega WLCB-54GTでは、必要がないことが後でわかりました。)
16kスタックサイズのサイト
からカーネルとカーネルのソースに合うファイルをダウンロードします。
ダウンロードしたファイルは以下の二つ。
そして、ダウンロードしたrpmファイルをインストールします。
再起動して、新しくインストールしたスタックサイズの問題を解決したカーネル
"2.6.15-1.1833_FC4.stk16"を選んで起動します。
確認のため、
となっているか確認します。
ndiswrapperをndiswrapperダウンロードサイトからダウンロードします。
現在、ndiswrapper-1.11が出ています。
/usr/src/kernel/に
/lib/module//buildからシンボリックリンクを張り、
ndiswrapperをインストールします。
(最近のカーネルのソースは、シンボリックリンクが最初から張られています。)
とすると、コンパイルエラーが出た。
そのため、パッケージの追加から"開発ツール"をインストール
そして、念のため、
インストールしている全てのアプリケーションをアップデートして、
(恐らく、アップデートは不要)
もう一度ndiswrapperのインストールをします。
してndiswrapperの導入。
ndiswrapperのインストールができたので、
Windowsドライバーを使って、ドライバをインストールします。
今回使用したカードの情報
coregaのサイトから、Windowsドライバをダウンロードします。
Windowsドライバを解凍します。
ファイルは、自己解凍ソフトだが、大抵は、lhaなので(それかzip)、
ndiswrapperを使って、ドライバをインストールする。
起動時にndiswrapperを読み込むために、
/etc/modprobe.confに以下の内容を追加します。
なお、dmesgコマンドで見たときに、
認識させるカードがeth0として認識されず、
他のeth1などとして認識されるようであれば、
便宜変更してください。
モジュールを読み込むために、以下のコマンドを実行します。
ドライバの認識に成功していれば、LEDランプが付いてまた消える。
とFedora Core ndiswrapper インストール解説サイト
に書いてありましたが、
そうならなかったです。
/var/log/messagesを見てみると、
と出ていました。
そこで、prism54のサイトからダウンロードします。
/etc/hotspot/firmware.agentにFIRMWARE_DIR=/lib/firmwareとなっていることから、
として、firmwareを導入します。
もう一度、"6.2 ndiswrapperモジュールの読み込み"を繰り返します。
もし、合っていないバージョンのファームウェアであれば、
/var/log/messagesに以下のメッセージが出ます。
このような、場合は異なるバージョンのファームウェアをファームウェアのサイト
からダウンロードしてください。
異なるバージョンのファームウェアをダウンロードしたら、
"6.3 firmwareの導入"を繰り返します。
何回か、試していると、
上手くカードを認識してくれないことがありました。
その場合は、
上にも書きましたが、
ファームウェアのバージョンを変える。
ndiswrapperのバージョンを変える。
などを試してみてください。
googleで検索してみたところ、
バージョンによって、
認識したり、
しなかったりするようです。
また、
を実行した状態で、
カードを挿してエラーが出ていないか確認するといいと思います。
また、/var/log/messagesに次のようなエラーメッセージが出る事があります。
このようなメッセージが出た場合は、
/etc/modprobe.confを、
とします。
参考サイト:Zaid's Personal Web Site
ドライバの認識に成功していれば、LEDランプが付いてまた消えます。
さらに、iwconfigを実行すると、
となり、
また、/var/log/messagesには、
このように、無線LANカードが認識されていて、
ethernet device 00:0a:79:5a:30:8b using driver wl54cb, 1260:3890:1259:C104.5.confのように、
イーサネットアドレスが取得できていれば成功です。
デバイスが認識されたら、普通にネットに接続する設定をするだけです。
一番簡単な方法は、[デスクトップ]→[システム設定]→[ネットワーク]からの設定でしょう。
念のため、手動で設定する場合を以下に説明します。
DHCPで接続したい場合は、"7.1 DHCP"を、
固定IPアドレスで接続したい場合は、"7.2 固定IPアドレス"を
参照してください。
それぞれ、コマンドで接続する方法と設定ファイルによる接続方法を
解説しています。
接続に、DHCPを使う場合は、
起動時にDHCP接続されるようにするためには、
/etc/sysconfig/networking/device/if-eth0に、
DHCPの場合には、BOOTPROTOをdhcpに設定します。
HWADDRには、イーサネットアドレスを登録します。
イーサネットアドレスは、dmesgから取得します。
もし、再起動せずに接続したい場合は、
とします。
接続環境は、
DNSを設定するために、/etc/resolv.confに、
(resolve.confではなく、resolv.conf)
とし、
IPアドレスと、ゲートウェイを設定するためには、
で接続可能になります。
DNSの登録をするために、
/etc/resolv.confに
が記述してあるかを確認すること。
起動時に固定IPアドレスで接続されるようにするには、
/etc/sysconfig/networking/device/if-eth0に、
もし、再起動せずに接続したい場合は、
DHCPを使った接続と同様に、
とします。
eth0のカードが他にある場合は、
if-eth0をif-corega0など、他の名前にし、
ifup if-corega0などとすればOKです。
さらに、eth0のカードがこの無線LANカードの他にある場合は、
場合によっては、起動時に接続に失敗します。
(僕の環境では)
その場合は、カードを一度抜いて挿入しなおすと、
接続できるます。
コマンドでする場合は、
とすれば接続できます。
また、
というエラーが出たら、
とすれば接続できます。
けんけんのお薦め
お勧めのFedora Coreの書籍
ndiswrapperを使って無線LANカードを認識させる方法を解説します。
注意!!:
Fedora 11,12でのndiswrapperの使い方はこちら
キーワード:kernel-devel,ndiswrapper,WLCB-54GT,corega,/etc/modprobe.conf,depmod,modprobe,prism54,,firmware,eth0: could not upload firmware,iwconfig,dhclient, /etc/sysconfig/networking/device,ifup,linux
Fedora Core 4で認識してくれない無線LANを使うためには、ndiswrapperを使います。
この文書では、Fedora Core 4のインストール時にデスクトップの利用でインストールした場合を想定しています。
また、Fedora Core 5にアップグレードしても、
この方法で、無線LANを接続することも成功しています。
無線LANを設定しているときは、
ネットに接続できない可能性もあるので、
このファイルを保存しておくことをお薦めします。
1. 準備
無線LANカード | WLCB-54GT |
接続方法 | DHCP or 固定IPアドレス(後述) |
ESSID | corega |
WEP | なし |
参考サイト
・ndiswrapper本家サイト
・Fedora Core ndiswrapper インストール解説サイト
2. カーネルのソースのインストール
ndiswrapperを使うために、まずカーネルのソースコードをインストールをします。
$su
#yum -y install kernel-devel
また、上でインストールしたカーネルのソースコードが、
カーネルよりも新しい場合は、
カーネルも最新のものにします。
#yum -y upgrade kernel
再起動して、新しいカーネルのバージョンを選んで起動し、インストールしたカーネルのバージョンを確認すると、
#uname -r
2.6.15-1.1833_FC4
Fedora Core 5の場合、
#uname -r
2.6.15-1.2054_FC5
以上の作業が終了したら、再起動して、新しいバージョンのカーネルで起動します。
3. 4k カーネルスタックサイズの問題の解決
カーネル2.6では、4kスタックサイズが有効/無効にできるオプションが付いています。
しかし、Fedora Core 4のカーネルでは、まったく無効にされています。
しかも、4kスタックサイズでは、Windowsのドライバーでは不十分です。
modprobe ndiswrapperを実行して、フリーズした場合は、16スタックサイズのカーネルを導入する必要があります。
Fedora Core 5のカーネルスタック問題を解決したカーネルは、
2006年3月26日現在まだ、出ていません。
(今回の無線LANカードcorega WLCB-54GTでは、必要がないことが後でわかりました。)
3.1 スタックサイズの問題の解決したカーネルのダウンロード
16kスタックサイズのサイト
からカーネルとカーネルのソースに合うファイルをダウンロードします。
ダウンロードしたファイルは以下の二つ。
#ls
kernel-2.6.15-1.1833_FC4.stk16.i686.rpm
kernel-devel-2.6.15-1.1833_FC4.stk16.i686.rpm
3.2 スタックサイズの問題を解決したカーネルのインストール
そして、ダウンロードしたrpmファイルをインストールします。
#rpm -ivh kernel-2.6.15-1.1833_FC4.stk16.i686.rpm
#rpm -ivh kernel-devel-2.6.15-1.1833_FC4.stk16.i686.rpm
再起動して、新しくインストールしたスタックサイズの問題を解決したカーネル
"2.6.15-1.1833_FC4.stk16"を選んで起動します。
確認のため、
#uname -r
2.6.15-1.1833_FC4.stk16
となっているか確認します。
4. ndiswrapperの導入
4.1 ndiswrapperのダウンロード
ndiswrapperをndiswrapperダウンロードサイトからダウンロードします。
#mkdir download
#cd download
#wget http://keihanna.dl.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-1.10.tar.gz
現在、ndiswrapper-1.11が出ています。
4.2 ndiswrapperのインストール
/usr/src/kernel/
/lib/module/
ndiswrapperをインストールします。
(最近のカーネルのソースは、シンボリックリンクが最初から張られています。)
#ln -s /usr/src/kernel/2.6.15-1.1833_FC4.stk16 /lib/modules/2.6.15-1.1833_FC4.stk16/build
#tar xvzf ndiswrapper-1.10
#cd ndiswrapper-1.10
#su
#make distclean
#make install
とすると、コンパイルエラーが出た。
そのため、パッケージの追加から"開発ツール"をインストール
そして、念のため、
インストールしている全てのアプリケーションをアップデートして、
(恐らく、アップデートは不要)
もう一度ndiswrapperのインストールをします。
#yum -y update
#make install
してndiswrapperの導入。
5. ndiswrapperの利用
ndiswrapperのインストールができたので、
Windowsドライバーを使って、ドライバをインストールします。
今回使用したカードの情報
無線LANカード | corega WLCB-54GT |
corega サイト | http://corega.jp/ |
corega WLCB-54GT のドライバのサイト | http://corega.jp/support/download/wl_adp.htm#wlcb54gt |
5.1 Windowsドライバの解凍
coregaのサイトから、Windowsドライバをダウンロードします。
$wget http://corega.jp/support/download/driver/wlcb54gt_202.exe
Windowsドライバを解凍します。
ファイルは、自己解凍ソフトだが、大抵は、lhaなので(それかzip)、
$lha -x wlcb54gt_202.exe
$lha -x setup.exe
$ls
setup.exe version.txt wl54cb.sys wlcb54gt_202.exe
utility wl54cb.inf wl54cb5.sys wlsetup.exe
5.2 ドライバのインストール
ndiswrapperを使って、ドライバをインストールする。
$su
#/usr/sbin/ndiswrapper -i wl54cb.inf
#/usr/sbin/ndiswrapper -l
Installed drivers:
wl54cb driver installed, hardware present
6. ndiswrapperをモジュールとして読み込む
6.1 ndiswrapperを起動時に読み込むための設定
起動時にndiswrapperを読み込むために、
/etc/modprobe.confに以下の内容を追加します。
options ndiswrapper if_name=eth0
alias eth0 ndiswrapper
なお、dmesgコマンドで見たときに、
認識させるカードがeth0として認識されず、
他のeth1などとして認識されるようであれば、
便宜変更してください。
6.2 ndiswrapperモジュールの読み込み
モジュールを読み込むために、以下のコマンドを実行します。
#/sbin/depmod -a
#/sbin/modprobe ndiswrapper
ドライバの認識に成功していれば、LEDランプが付いてまた消える。
とFedora Core ndiswrapper インストール解説サイト
に書いてありましたが、
そうならなかったです。
6.3 firmwareの導入
/var/log/messagesを見てみると、
eth0: could not upload firmware ('isl3890')
と出ていました。
そこで、prism54のサイトからダウンロードします。
#wget http://prism54.org/firmware/2.7.0.0.arm
#mv 2.7.0.0.arm isl3890
/etc/hotspot/firmware.agentにFIRMWARE_DIR=/lib/firmwareとなっていることから、
#cp isl3890 /lib/firmware
として、firmwareを導入します。
もう一度、"6.2 ndiswrapperモジュールの読み込み"を繰り返します。
もし、合っていないバージョンのファームウェアであれば、
/var/log/messagesに以下のメッセージが出ます。
Mar 15 22:33:44 localhost cardmgr[1450]: executing: 'modprobe -r 8390 2>&1'
Mar 15 22:33:44 localhost cardmgr[1450]: + FATAL: Module 8390 is in use.
Mar 15 22:33:44 localhost cardmgr[1450]: modprobe exited with status 1
Mar 15 22:33:48 localhost kernel: pccard: CardBus card inserted into slot 0
Mar 15 22:33:48 localhost kernel: Loaded prism54 driver, version 1.2
Mar 15 22:33:48 localhost kernel: PCI: Enabling device 0000:02:00.0 (0000 -> 0002)
Mar 15 22:33:52 localhost kernel: eth0: timeout waiting for mgmt response
Mar 15 22:33:52 localhost kernel: eth0: mgt_commit_list: failure. oid=ff020008 err=-110
Mar 15 22:33:53 localhost kernel: eth0: timeout waiting for mgmt response
Mar 15 22:33:53 localhost kernel: eth0: mgt_commit_list: failure. oid=ff020003 err=-110
Mar 15 22:33:54 localhost kernel: eth0: timeout waiting for mgmt response
Mar 15 22:33:54 localhost kernel: eth0: mgt_commit_list: failure. oid=10000000 err=-110
このような、場合は異なるバージョンのファームウェアをファームウェアのサイト
からダウンロードしてください。
異なるバージョンのファームウェアをダウンロードしたら、
"6.3 firmwareの導入"を繰り返します。
6.4 カードが認識されなかったら
何回か、試していると、
上手くカードを認識してくれないことがありました。
その場合は、
上にも書きましたが、
ファームウェアのバージョンを変える。
ndiswrapperのバージョンを変える。
などを試してみてください。
googleで検索してみたところ、
バージョンによって、
認識したり、
しなかったりするようです。
また、
#tail -f /var/log/messages
を実行した状態で、
カードを挿してエラーが出ていないか確認するといいと思います。
また、/var/log/messagesに次のようなエラーメッセージが出る事があります。
prism54: Your card/socket may be faulty, or IRQ line too busy :(
このようなメッセージが出た場合は、
/etc/modprobe.confを、
options ndiswrapper if_name=eth0
install prism54 /sbin/modprobe ndiswrapper
とします。
参考サイト:Zaid's Personal Web Site
6.5 カードの認識
ドライバの認識に成功していれば、LEDランプが付いてまた消えます。
さらに、iwconfigを実行すると、
#iwconfig eth0
eth0 IEEE 802.11g ESSID:"corega" Nickname:"localhost.localdomain"
Mode:Managed Frequency:2.437 GHz Access Point: 00:0A:79:52:65:40
Bit Rate=54 Mb/s
RTS thr=2432 B Fragment thr=2432 B
Encryption key:off
Power Management:off
Link Quality:100/100 Signal level:-59 dBm Noise level:-256 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
となり、
また、/var/log/messagesには、
#tail /var/log/messages
Mar 20 19:52:20 localhost kernel: pccard: CardBus card inserted into slot 0
Mar 20 19:52:20 localhost kernel: ndiswrapper: driver wl54cb (corega,10/09/2003, 2.1.15.0) loaded
Mar 20 19:52:20 localhost kernel: PCI: Enabling device 0000:02:00.0 (0000 -> 0002)
Mar 20 19:52:20 localhost kernel: ndiswrapper: using irq 9
Mar 20 19:52:22 localhost kernel: eth0: vendor: 'CG-WLCB54GT'
Mar 20 19:52:22 localhost kernel: eth0: ndiswrapper ethernet device 00:0a:79:5a:30:8b using driver wl54cb, 1260:3890:1259:C104.5.conf
Mar 20 19:52:22 localhost kernel: eth0: encryption modes supported: WEP; TKIP with WPA; AES/CCMP with WPA
このように、無線LANカードが認識されていて、
ethernet device 00:0a:79:5a:30:8b using driver wl54cb, 1260:3890:1259:C104.5.confのように、
イーサネットアドレスが取得できていれば成功です。
7. 接続
デバイスが認識されたら、普通にネットに接続する設定をするだけです。
一番簡単な方法は、[デスクトップ]→[システム設定]→[ネットワーク]からの設定でしょう。
念のため、手動で設定する場合を以下に説明します。
DHCPで接続したい場合は、"7.1 DHCP"を、
固定IPアドレスで接続したい場合は、"7.2 固定IPアドレス"を
参照してください。
それぞれ、コマンドで接続する方法と設定ファイルによる接続方法を
解説しています。
7.1 DHCP
7.1.1 DHCP接続(コマンド編)
接続に、DHCPを使う場合は、
#iwconfig eth0 essid corega
#dhclient eth0
Copyright 2004 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Listening on LPF/eth0/00:0a:79:5a:30:8b
Sending on LPF/eth0/00:0a:79:5a:30:8b
Sending on Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
bound to 192.168.1.11 -- renewal in 103296 seconds.
7.1.2 DHCP接続(設定編)
起動時にDHCP接続されるようにするためには、
/etc/sysconfig/networking/device/if-eth0に、
DEVICE=eth0 #無線LANカードの認識カード
ONBOOT=yes
BOOTPROTO=dhcp #DHCP接続なら
TYPE=Wireless
MODE=Managed
ESSID=corega
CHANNEL=6
DOMAIN=
USERCTL=no
PEERDNS=no
IPV6INIT=no
RATE=Auto
HWADDR=00:0a:79:5a:30:8b #イーサネットアドレス
DHCP_HOSTNAME=
DHCPの場合には、BOOTPROTOをdhcpに設定します。
HWADDRには、イーサネットアドレスを登録します。
イーサネットアドレスは、dmesgから取得します。
もし、再起動せずに接続したい場合は、
#ifup eth0
とします。
7.2 固定IPアドレス
7.2.1 固定IPアドレス(コマンド編)
接続環境は、
IPアドレス | 192.168.1.11 |
ゲートウェイ | 192.168.1.1 |
ネームサーバー | 192.168.1.1 |
DNSを設定するために、/etc/resolv.confに、
(resolve.confではなく、resolv.conf)
nameserver 192.168.1.1
とし、
IPアドレスと、ゲートウェイを設定するためには、
#iwconfig eth0 essid corega
#ifconfig eth0 192.168.1.11 netmask 255.255.255.0
#route add default 192.168.1.1
で接続可能になります。
7.2.2 固定IPアドレス(設定編)
DNSの登録をするために、
/etc/resolv.confに
nameserver 192.168.1.1
が記述してあるかを確認すること。
起動時に固定IPアドレスで接続されるようにするには、
/etc/sysconfig/networking/device/if-eth0に、
GATEWAY=192.168.1.1
TYPE=Wireless
DEVICE=eth0:1
HWADDR=00:0a:79:5a:30:8b
BOOTPROTO=none
NETMASK=255.255.255.0
DHCP_HOSTNAME=
IPADDR=192.168.1.11
DOMAIN=
IPV6INIT=no
ONBOOT=no
USERCTL=no
PEERDNS=yes
ESSID=corega
CHANNEL=1
MODE=Managed
もし、再起動せずに接続したい場合は、
DHCPを使った接続と同様に、
#ifup eth0
とします。
8. エラーの対処方法
eth0のカードが他にある場合は、
if-eth0をif-corega0など、他の名前にし、
ifup if-corega0などとすればOKです。
さらに、eth0のカードがこの無線LANカードの他にある場合は、
場合によっては、起動時に接続に失敗します。
(僕の環境では)
その場合は、カードを一度抜いて挿入しなおすと、
接続できるます。
コマンドでする場合は、
#ifdown 使用しないカードの設定ファイル
#ifup 使用するカードの設定ファイル
とすれば接続できます。
また、
#ifup eth0
eth0 のIP情報を検出中...dhclient(11346) is already running - exiting.
exiting.
失敗
というエラーが出たら、
#killall dhclient
#ifup eth0
とすれば接続できます。
けんけんのお薦め
お勧めのFedora Coreの書籍
コメント