098492 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

『社会人初心者に贈る仕事力』

『社会人初心者に贈る仕事力』

無線LANCG-WLUSB2GTST をFedoraCore5利用

CG-WLUSB2GTST の無線LANアダプタを FedoraCore5 で利用するための手順をまとめて見ました。

■■■■■■■■■■■■■■■■■■■■■■■■■

0.準備と注意

最初に、「root」ユーザでログオンしておきます。

下記の「コマンド」は、「GNOME端末」を用いて打っています。

下記ビルドなどを行うために、開発に関するパッケージをインストールする必要があるようです。
私は、画面上方のメニュー「アプリケーション」→「Add&Rmove Software」→「開発」からインストールを行いました。
Eclips/Java開発/Web Development は入ってませんね。
一応、「List」ボタンを押して、そこに出てくる「kernelxxx」もインストールしました。

この作業自体が、ネットワークにつながっていないと出来ないようで、まずは有線LANに接続して作業しています。

HDDは20Gバイト
このHDDはFedoraCore専用にしています。

壊れてもいいように、クリーンな状態でやってます。

そして手探りでやってますので、以下に書いた事に間違いや、やってはいけないことがあるかもしれません。

以下の作業を行ったことにより、何らかの問題が生じましても、一切の責任は負いませんので、自己責任でやってください。
それと、これは私の環境でうまくいったにすぎませんので、この手順を真似てもうまくいくとは限りませんので悪しからず。

あ、後、なぜか半角の「#」記号が使えないらしく、全て全角にしていますので、ご了承ください。
中にはURL内の#も全角になっている部分があります。


■■■■■■■■■■■■■■■■■■■■■■■■■

1.インストールされているカーネルのバージョンを調査。

下記コマンドを打つと、バージョンの調査ができます。

===
# uname -a
Linux host 2.6.15-1.2054_FC5 #1 Fri Nov 10 16:51:03 JST 2006 i686 i686 i386 GNU/Linux
===


■■■■■■■■■■■■■■■■■■■■■■■■■

2.カーネルソースのDL
次に、「2.6.15-1.2054_FC5」に見合ったソースをダウンロードします。
標準ではインストールされていませんので、ダウンロードしてくる必要があります。

ダウンロードは、下記サイトからウィンドウファイルをクリックし、そこで表示されたダウンロードウィンドウからダウンロードしました。
ダウンロードしたファイルはデスクトップに保存されました。

===
ftp://ftp.kddilabs.jp/Linux/packages/fedora/core/5/source/SRPMS
kernel-2.6.15-1.2054_FC5.src.rpm
===

ちなみに、ソース取得が出来るサイトへのリンクが張られたページが以下にあります。
http://fedora.redhat.com/download/mirrors.html#ASIA


■■■■■■■■■■■■■■■■■■■■■■■■■

3.ソースのインストール

次に、取得したソースをインストールします。

下記の通りコマンドを打つと、「/usr/src/redhat/」以下にソースコードがインストールされます。

===
# rpm -ivh /root/Desktop/kernel-2.6.15-1.2054_FC5.src.rpm
===

<コマンド>
rpm パッケージのインストールを行います。

<オプション>
-i パッケージのインストール
-h インストールの進行状況を表示
-v 詳細情報の表示
-vv もっと詳細を表示
--test テストのみ。インストールはしない


■■■■■■■■■■■■■■■■■■■■■■■■■

4.ソースの展開

ソースを展開してパッチを適用します。

「/usr/src/redhat/BUILD/kernel-2.6.15」
にソースが展開されます。

「--target」の後ろの「i686」の部分には、「uname」コマンドで表示されたプロセッサの名前を入れました。

===
# uname -p
i686
# rpmbuild -bp --target i686 /usr/src/redhat/SPECS/kernel-2.6.spec
===

ちなみに、私は「/usr/src/redhat/」内にあるフォルダを全てきれいさっぱり消してしまったのですが、「BUILD」フォルダが存在しないとエラーになってしまいました。


■■■■■■■■■■■■■■■■■■■■■■■■■

5.フォルダを移動する

下記のようにフォルダを移動しておきます。
ついでに、今後使いやすいよう、必要なフォルダへのリンクを作成しておきます。

===
# mv /usr/src/redhat/BUILD/kernel-2.6.15 /usr/src/kernel-2.6.15
# cd /usr/src/
# ln -s kernel-2.6.15/linux-2.6.15.i686 linux
===

これで、下記コマンドを打つと、ずらっとファイル群が出てきます。

===
# ls /usr/src/linux/
COPYING Makefile System.map drivers kernel security
CREDITS Makefile.orig arch fs lib sound
Documentation Module.symvers block include mm usr
Kbuild README configs init net vmlinux
MAINTAINERS REPORTING-BUGS crypto ipc scripts
===

ただし、これは既に以降の作業を行った後のフォルダ内状況ですので、今の時点では無いファイルもあると思います。

続いて、このフォルダ内にある「Makefile」を編集します。
「Makefile」を開くと、ファイルの先頭に書きのような記述があると思います。

===
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 15
EXTRAVERSION = -prep



===

この部分を、適当に修正します。
ちなみに、私は変更しませんでした。

変更しなかった結果、以降の作業終了時のカーネルリリース名が下記のようになりました。

===
# uname -r
2.6.15-prep
===

もし修正するとしても
EXTRAVERSION=15-1.My_2054_FC5

とかにする程度の方がいいと思います。
といっても、私はこのように変更しませんでしたので、どうなるかわかりませんが。

以降は、何も変えなかったことを前提としています。


■■■■■■■■■■■■■■■■■■■■■■■■■

6.コンフィグを設定

以前の設定情報を削除して、再作成します。
これをすると、「/usr/src/linux/」内にある「.config」ファイルが消えてしまいますので、必要であれば退避します。
ただ、初めてカーネルのソースをDLしてきて作業している場合は、「.config」自体が存在しない場合があると思います。
私は存在しませんでした。

設定情報を削除する。
===
# cd /usr/src/linux/
# make V=1 mrproper
===

元設定情報を探す
===
# cd /usr/src/linux/configs/
# ls
kernel-2.6.15-i586.config kernel-2.6.15-i686-xen0.config
kernel-2.6.15-i686-kdump.config kernel-2.6.15-i686-xenU-PAE.config
kernel-2.6.15-i686-smp.config kernel-2.6.15-i686-xenU.config
kernel-2.6.15-i686-xen0-PAE.config kernel-2.6.15-i686.config
===

上記の通り、設定情報の元ファイルがあります。
この中から、適正なファイルを選択する訳です。

私の場合は、CPUが「i686」ということが「uname -p」によりわかっていますので、下記ファイルを選びました。

「kernel-2.6.15-i686.config」

「SMP」とは「マルチプロセッサ」の場合に選択するようです。
「xen」とは「仮想化技術」を利用している場合に選択するようです。

ちなみに、Pentium4 などの技術「HT(ハイパースレッディング)」もSMPに当たるようです。

と言う訳で、私は下記の通り実行しました。
他のプロセッサでどうなるのかはまったくの不明です。

オリジナル設定をコピーし、設定を行う。
===
# cp /usr/src/linux/configs/kernel-2.6.15-i686.config /usr/src/linux/.config
# cd /usr/src/linux/
# make xconfig
===

ここで、左のメニューにある「kernel hacking」という項目を選択します。
そうすると、右上に項目の一覧が出てきますので、下記の項目のチェックを外します。
[Kernel debugging]-[Use 4Kb for kernel stacks instead of 8Kb]

この設定を保存して終了します。


■■■■■■■■■■■■■■■■■■■■■■■■■

7.ビルドの開始

カーネル本体をビルドします。
かなり時間がかかります。
※私は1時間くらい
===
# cd /usr/src/linux/
# make bzImage
・・・
・・・
・・・
Kernel: arch/i386/boot/bzImage is ready
===

次にデバイスのビルドを行います。
かなり時間がかかります。
※私は3時間くらい
===
# cd /usr/src/linux/
# make modules
・・・
・・・
・・・
LD [M] sound/usb/usx2y/snd-usb-usx2y.ko
===

これでようやくカーネルの物自体ができました。


■■■■■■■■■■■■■■■■■■■■■■■■■

8.カーネルインストール

まずは、デバイスをインストールします。

===
# cd /usr/src/linux/
# make modules_install
===

次にカーネルのインストールです。
===
# cd /usr/src/linux/
# /sbin/installkernel 2.6.15-prep arch/i386/boot/bZImage System.map
===

これで、ブートローダにも「2.6.15-prep」というカーネルが追加されています。


■■■■■■■■■■■■■■■■■■■■■■■■■

9.ブートローダ(GRUB)を見てみる

下記のファイルに、ブートできるカーネルの一覧が記載されています。

/boot/grub/grub.conf

ここに
title Fedora Core (2.6.15-prep)

というグループが登録されているはずです。

で、この「grub.conf」ファイルの頭の方に
default=0

などと書かれた行があると思います。

もし、「grub.conf」

default=2
-中略-
title Fedora Core (2.6.15-prep)
-中略-
title Fedora Core (2.6.15-prep1)
-中略-
title Fedora Core (2.6.15-prep2)
-中略-
title Fedora Core (2.6.15-prep3)
-中略-

と書かれていたら、OS起動時に「2.6.15-prep2」が起動されます。
今回作成した「2.6.15-prep」を起動したい場合は
default=0

とするか、OS起動時にgrubの選択を促されますので、そこで「2.6.15-prep」を選択する必要があります。
ちなみに、OS起動時のgrub選択画面を表示するには、OS起動処理中に出てくるgrubの画面で、何かのキーを押さないと表示されません。
よく見ておかないと見落とします。
秒数が短いですので、放置しておくと「default」で指定したカーネルで起動してしまいます。


■■■■■■■■■■■■■■■■■■■■■■■■■

10.カーネルの確認

これでOSが起動すれば、カーネルの更新が終了し、とりあえずの準備ができました。

私はGRUBを直接いじったりして、起動時にカーネルがパニックに陥りましたなんてメッセージが出てきて苦戦しましたけど。

ちゃんと、カーネルインストール時にGRUBを書き加えてくれているので、それを使いましょう。
自前でgrub.confに書いた内容と、カーネルインストールコマンドで追加してくれたgrub.confの内容とに違いは見られなかったのですが、ダメなんでしょうね。

念のため「2.6.15-prep」でログオンして下記のコマンドを打って確認します。

===
# uname -r
2.6.15-prep
===

以降、「ndiswrapper」を使って無線LANドライバをインストールしますが、その際は「2.6.15-prep」でログオンしておく必要があります。
じゃないとうまくいきません。


■■■■■■■■■■■■■■■■■■■■■■■■■

11.適合するドライバの入手

まずは、無線LANアダプタ自体がLinuxに対応しているのか確認する必要があります。

私の場合はcorega社製の「CG-WLUSB2GTST」を利用していましたので、下記ページを参考にしました。
http://www.corega.co.jp/product/os/pc_unix.htm
http://www.corega.co.jp/product/os/pc_unix_distributions.htm#wlusb2gtst

ここでわかった情報として「ndiswrapper」という、Windows用のドライバをLinux用に利用するソフトを使って認識させること。

で、逆に「ndiswrapper」のサイトを見て確認したところ、そちらにも対応状況が書かれていました。
http://ndiswrapper.sourceforge.net/mediawiki/index.php/List
このページで「CG-WLUSB2GTST」をキーに検索すると出てきます。
Driver: Windows XP drivers from installation CD
だそうです。

と言う訳で、下記のサイトからドライバをDLします。
http://corega.jp/support/download/wl_adp.htm#wlusb2gtst
wlusb2gtst_100.exe

このファイルを解凍しないといけないのですが、私はこのファイルをwindowsマシンでDLし、解凍したものをLinuxマシンへ持ってきました。

必要なファイルは、下記の2ファイルです。
/utility/driver/cgwlusb2.inf
/utility/driver/WinXP/cgwlusb2.sys

Linuxマシン上の下記のフォルダにでも置きます。
/root/cgwlusb2.inf
/root/cgwlusb2.sys


■■■■■■■■■■■■■■■■■■■■■■■■■

12.「ndiswrapper」を入手

「ndiswrapper」を下記ページから入手します。
http://sourceforge.net/project/showfiles.php?group_id=93482

「Stable」の「View older releases in the testing package」
というリンクを選択して
http://sourceforge.net/project/showfiles.php?group_id=93482&package_id=99148
ページを表示。
そこから「1.10」を利用しました。
「1.11」からの挙動が変わっているということでしたので。
corega社のページでは「1.10」を使っているような感じでした。

DLしたファイル「ndiswrapper-1.10.tar.gz」は、ファイルを選択して、右クリックし「ここへ展開する」を選択します。
できあがった「ndiswrapper-1.10」フォルダを下記の場所へ置きます。
/root/ndiswrapper-1.10/


■■■■■■■■■■■■■■■■■■■■■■■■■

13.「ndiswrapper」をビルドし、導入する

下記のコマンドを実行してビルドとインストールを行います。

===
# cd /root/ndiswrapper-1.10
# make distclean
# make KSRC=/usr/src/linux/
# make install KSRC=/usr/src/linux/
===

これで、エラーが出ていなければ「ndiswrapper」をインストールできているはず。

ちなみに、この時点で下記のコマンドを打っても、ドライバ自体が無いので、「ドライバが無い」と怒られます。
===
# ndiswrapper -l
No drivers installed
===

当たり前ですね。
じゃ、次にいきます。


■■■■■■■■■■■■■■■■■■■■■■■■■

14.無線LANのドライバをインストール

下記のコマンドを実行して、「ndiswrapper」にドライバをインストールします。

===
# cd /root/ndiswrapper-1.10
# ndiswrapper -i /root/cgwlusb2.inf
===

これで下記のコマンドを打つと、ドライバが関連付けられています。

===
# ndiswrapper -l
Installed drivers:
cgwlusb2 driver installed
===

もし、下記のようなメッセージが出てくると失敗です。
ドライバが悪いようです。
===
# ndiswrapper -l
Installed drivers:
cgwlusb2 invalid driver!
===

私は下記コマンドでアンインストールしました。
===
# cd /root/ndiswrapper-1.10
# ndiswrapper -e cgwlusb2
===

アンインストールに失敗する場面もありましたので、OSを再起動しました。

それと、色々ネットで調べてみると。「ndiswrapper -l」を行ったときの結果として、下記のようになると書かれていますが、私はLANがつながった今でも、書きのような結果にはなりません。

===
# ndiswrapper -l
Installed drivers:
cgwlusb2 driver present,hardware present
===

もしかすると、無線LANアダプターによって違うのかもしれません。


■■■■■■■■■■■■■■■■■■■■■■■■■

15.では実際につないでみましょう

下記コマンドを打って、「ndiswrapper」をロードします。

===
# modprobe ndiswrapper
===

この状態で、下記コマンドを打つと、アダプタの接続状態が見れます。

===
# iwconfig wlan0
===

この時点で、有線の方のLANを外してみます。
そうすることで、無線LANで接続できているのかを確認できます。

更に下記のコマンドを打ってみます。

===
# iwlist wlan0 scan
===

接続可能なアクセスポイントの一覧が出てきます。
これが出るということは、無線LANアダプタとして認識している証拠です。

さてさて、では設定をしていかないといけないのですが、これもまた難儀な話で色々と落とし穴がありました。

===
# iwconfig wlan0
wlan0 IEEE 802.11b ESSID:off/any Nickname:"xxxxx"
Mode:Auto Frequency:2.462 GHz Access Point: xx:xx:xx:xx:xx:xx
-中略-
Encryption key:off
-以下略-
===

上記のように出てきます。
この状態でブラウザを立ち上げてもまったく表示されません。

さて、私のネットワーク環境下でのポイントは下記の通り。

ESSIDが設定されていない
Modeは[Managed]指定する必要がある
WEPキーが設定されていない
チャンネルが11channel(2.462 GHz)になっているが、自分のネットワークは13channel(2.472 GHz)である

というわけで、以下の通り設定していきました。
essid と WEP は適当に書きました。
アクセスポイントに合わせて書いてやる必要があります。

===
# iwconfig wlan0 freq 2.472GHz
# iwconfig wlan0 mode managed
# iwconfig wlan0 essid LINUX
# iwconfig wlan0 key 11112222333344445555666677
===

でここまでやったのに、まだつながらない。

原因はWEPキーのモード。
なので、下記のコマンドを追加

===
# iwconfig wlan0 key open
===

これで完了。

===
# iwconfig wlan0
wlan0 IEEE 802.11b ESSID:"LINUX" Nickname:"mylinux"
Mode:Managed Frequency:2.472 GHz Access Point: xx:xx:xx:xx:xx:xx
-中略-
Encryption key:1111-2222-3333-4444-5555-6666-77 Security mode:open
-以下略-
===

この状態でブラウザを起動すると、見事つながりました。

さて、長い道のりでしたが、これで終了・・・では無いのです。
このままOS再起動してしまうと、このLANの設定が全て飛んでしまってつながらないのです。


■■■■■■■■■■■■■■■■■■■■■■■■■

16.最後の設定

前の手順まで行い、ネットワークにつながった状態で、
デスクトップの上方にあるメニューから、「デスクトップ」→「管理」→「ネットワーク」を選択して「ネットワーク設定」を表示します。

「新規」→「ワイヤレス設定」と選択してウィザードを進めると、「ndiswrapper(wlan0)」が選択できるはずです。

それを選択し、次の画面で
モード:Managed
ネットワーク名:指定されたもの「LINUX」
として進めます。
次の画面で、固定IPを指定して次に進め、「適用」を行います。

私は固定IPを利用しています。
DHCPからの取得は行っていませんので、この場合どうなるのかは不明です。

最初の画面で、今作った[wlan0]を選択して、右上の「起動」を行います。
設定の保存が行われて、ネットワークが開始するはずです。

この状態では、せっかく設定したネットワークが接続できない状態になると思います。

もう一度、下記のように設定を行い、ネットワークに接続出来る状態にしてやります。
===
# iwconfig wlan0 freq 2.472GHz
# iwconfig wlan0 mode managed
# iwconfig wlan0 essid LINUX
# iwconfig wlan0 key 11112222333344445555666677
# iwconfig wlan0 key open
# iwconfig wlan0
wlan0 IEEE 802.11b ESSID:"LINUX" Nickname:"mylinux"
Mode:Managed Frequency:2.472 GHz Access Point: xx:xx:xx:xx:xx:xx
-中略-
Encryption key:1111-2222-3333-4444-5555-6666-77 Security mode:open
-以下略-
===

この状態で下記のファイルをコピーします。
/etc/sysconfig/network-scripts/ifcfg-wlan0
例えば
/etc/sysconfig/network-scripts/ifcfg-wlan0-copy

で、もう一度「デスクトップ」→「管理」→「ネットワーク」を選択して「ネットワーク設定」を表示し、[wlan0]を停止します。
停止後、削除します。

こうすると、下記のファイルが無くなります。
/etc/sysconfig/network-scripts/ifcfg-wlan0

次に、コピーしておいたファイルの名前を変更します。
/etc/sysconfig/network-scripts/ifcfg-wlan0-copy → /etc/sysconfig/network-scripts/ifcfg-wlan0

そして最後に、下記のファイルを開きます。
/etc/sysconfig/networking/devices/keys-wlan0

そこに下記の行を記述して保存します。
もちろん、ネットワークの設定によりますので、設定に合わせて変更する必要があります
KEY="11112222333344445555666677 open"

これで、OSを再起動してもネットワークにつながるはず。

私はこれでつながりました。


© Rakuten Group, Inc.