下記の投稿について、一部内容を修正しました。

『Intel Wireless WiFi Link 4965AGN』

  • カーネルの設定ファイル複製後、「make oldconfig」の記述が抜けていたので追記。
  • 作業ディレクトリが一部不適切だったので修正。
  • ファームウェアのコピー方法を修正。

『Marvell Yukon 88E8040 PCI-E Fast Ethernet Controller』

  • カーネルの設定ファイル複製後、「make oldconfig」の記述が抜けていたので追記。
  • 作業ディレクトリが一部不適切だったので修正。

本ブログを参考にされた方で、上記ミスの影響を受けた方、ごめんなさい。

2008年03月09日(日) 23:13 [Debian

Inspiron1525にDebian etchをインストールしたときのメモ。

「/etc/modprobe.conf」を削除したところ、システムクロックが9時間進んで表示されてしまう問題が発生した。手動で時間を合わせても再起動すると元に戻ってしまう。頭を悩ませていると、ブート時に下記のエラーが表示されていることに気づく。

select() to /dev/rtc to wait for clock tick timed out

調べてみると、「/dev/rtc」からhwclockコマンドでハードウェアクロックを取得しているらしい。試してみる。

$ sudo hwclock --show
select() to /dev/rtc to wait for clock tick timed out

『Manpage of HWCLOCK』を参考に、「--directisa」オプションを追加してみたところ、正常に取得することができた。

$ sudo hwclock --show --directisa
2008年03月09日 22時49分04秒 -0.015540 seconds

起動時に「/etc/init.d/hwclock.sh」でhwclockを使用しているので、「--directisa」オプションを使用するように修正した。

HWCLOCKPARS=

HWCLOCKPARS=--directisa

一度時間を合わせて再起動したところ、無事正しい時間が表示されるようになった。

時間と言えばNTPの設定をしていなかったので、後でやっておこう。

2008年03月07日(金) 20:12 [Debian

Inspiron1525にDebian etchをインストールしたときのメモ。

せっかくのノートパソコンなのでやはり無線で接続したい。カーネル2.6.18で4965AGNを使用するにはいろいろと手間が必要だが、がんばってみた。
ちなみに、2.6.22ではmac80211が統合されているらしいので、ドライバを入れるだけで動くそうだ。さらに、2.6.24ではiwl4965がカーネルに統合されているため、特別手間がかからないらしい。この辺、stable版を使っていると苦労するところなのだろう。

カーネルのソースコードを用意する

現在利用しているカーネルのバージョンを調べ、適したバージョンのソースコードをインストールする。

# uname -r
2.6.18-6-686
# aptitude install linux-source-2.6.18

「/usr/src」以下にソースコードのアーカイブがインストールされるので解凍し、「/usr/src/linux」にシンボリックリンクを作成する。

# cd /usr/src
# tar vxfj linux-source-2.6.18.tar.bz2
# ln -s /usr/src/linux-source-2.6.18 /usr/src/linux

現在のカーネルと同じ設定でコンパイルされるように、「/boot」ディレクトリにある設定ファイルをコピーし、「make oldconfig」で過去の設定を引き継がせる。

# cp /boot/config-2.6.18-6-686 /usr/src/linux/.config
# cd /usr/src/linux
# make oldconfig

ドライバ、ファームウェア、mac80211サブシステムをダウンロード

インストールに必要となるドライバ、ファームウェア、mac80211サブシステムは下記サイトからダウンロードできる。

Intel Wireless WiFi Link drivers for Linux

私の場合は下記のバージョンをダウンロードすることにした。

mac80211 mac80211-10.0.4
ドライバ iwlwifi-1.1.0.tgz
ファームウェア iwlwifi-4965-ucode-4.44.1.20.tgz

mac80211サブシステムとファームウェアは作業時点での最新版、ドライバはやや古いバージョンとなっている。これは、カーネルが2.6.18では最新版のドライバをコンパイルできなかったためだ。(私の勘違いではない....と思う)

mac80211サブシステムを適用させるためにはカーネルの再構築が必要になるのだが、再構築後は有線LANのドライバを再インストールする必要がある。よって、必要なファイルはあらかじめダウンロードしておくことにする。

# wget http://intellinuxwireless.org/mac80211/downloads/mac80211-10.0.4.tgz
# wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-1.1.0.tgz
# wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-4965-ucode-4.44.1.20.tgz

カーネルソースにmac80211を適用する

無線サブシステムの「mac80211」をカーネルソースにパッチする。

まず、rsyncをインストールしておく。

# aptitude install rsync

「/lib/modules/(カーネルのバージョン)/source」というカーネルソースのシンボリックリンクを作成する。

# ln -s /usr/src/linux-source-2.6.18 /lib/modules/2.6.18-6-686/source

これを作成しておかないと、パッチ適用時に下記のエラーが表示されてしまう。

Kernel Makefile not found at '/lib/modules/2.6.18-6-686/source/'
If patch or script failed, check pre/ and post/ for current stage.
make: *** [compatible/modified] エラー 1

続いて、カーネルの設定ファイル「.config」を下記のように変更する

# vim /usr/src/linux/.config
CONFIG_NET_WIRELESS_RTNETLINK=y

CONFIG_NET_WIRELESS_RTNETLINK=n

上記の設定を無効にしておかないと、パッチ適用時に下記のエラーが表示されてしまう。

Checking kernel compatibility in:
        /lib/modules/2.6.18-6-686/source//
! CONFIG_NET_WIRELESS_NETLINK can not be set in .config!
make: *** [compatible/modified] エラー 1

準備は整ったので、ダウンロードしておいたmac80211サブシステムのアーカイブを展開し作成されたディレクトリに移動する。「make; make patch_kernel」とすることで、カーネルソースにmac80211サブシステムを組み込むことが出来る。

# tar zxvf mac80211-10.0.4.tgz
# cd mac80211-10.0.4
# make; make patch_kernel

カーネルの再構築を行う

mac80211サブシステムを適用し終えたら、カーネルの再構築を行う。

カーネル再構築用のパッケージをインストールする。

# aptitude install kernel-package

カーネルソースのディレクトリに移動し、カーネルの再構築を行う。以前にカーネルの再構築を行っていた場合、「make-kpkg clean」でクリアを行っておく。

# cd /usr/src/linux
# make-kpkg clean
# make-kpkg --append_to_version -6-686-mac80211 --initrd --revision=relm1.0 linux-image

2行目の引数は下記の意味になる。

--append_to_version
カーネルのバージョンに追記される。インストール時、既存のカーネルと区別したい場合に指定する。
--revision
カーネルバージョンのリビジョンを指定する。お好みで問題ない。
--initrd
RAMディスクを作成する。--append_to_versionを変更した場合などに指定しないとRAMディスクが作成されず、ブート時にカーネルパニックになる。
linux-image
debパッケージの先頭に付ける名前。

また、再構築の開始時にいくつか質問されたので、下記のように答えた。

無線LANを有効にする
Improved wireless configuration API (CFG80211) [N/m/y] (NEW) y
一般的なIEEE802.11のネットワーク・スタックを有効にする
Generic IEEE 802.11 Networking Stack (mac80211) (MAC80211) [N/m/y/?] (NEW) y
パケット送受信時にLEDの点灯を有効にする
Enable LED triggers (MAC80211_LEDS) [N/y/?] (NEW) y
IEEE802.11のネットワーク情報をデバッグ用に出力する
Export mac80211 internals in DebugFS (MAC80211_DEBUGFS) [N/y/?] (NEW) n
デバッグ情報をフル出力する
Enable debugging output (MAC80211_DEBUG) [N/y/?] (NEW) n

その他の質問が表示された場合などは下記のサイトが参考になる。私も参考にさせてもらった。

ITPro:『Linuxカーネルの設定パラメータ−ネットワークの設定』
ITPro:『Linuxカーネルの設定パラメータ』

再構築が完了すると、「/usr/src」ディレクトリに「linux-image-2.6.18-6-686-mac80211_relm1.0_i386.deb」という名前のdebパッケージが作成されるので、「dpkg」コマンドでインストールを行う。

dpkg -i linux-image-2.6.18-6-686-mac80211_relm1.0_i386.deb

インストールが完了したら、一度マシンを再起動して無事起動できることを確認しておく。GRUBなどブートローダの設定も行ってくれるので、ブートローダの画面で今回インストールしたカーネルを選択すればOKだ。

ちなみに、再構築には非常に長い時間がかかる。私はCore2Duoのマシンで40分近くかかった。お風呂でも入ってくるとちょうど良い。

ファームウェアのインストール

あらかじめダウンロードしておいたファームウェアのアーカイブを展開し、「/usr/lib/hotplug/firmware」ディレクトリにコピーする。

# tar zxvf iwlwifi-4965-ucode-4.44.1.20.tgz
# cd iwlwifi-4965-ucode-4.44.1.20
# cp iwlwifi-4965-1.ucode /usr/lib/hotplug/firmware/
2008年03年16日追記
初回のインストール時は下記のように作業をした。
# cp iwlwifi-4965-1.ucode /usr/lib/hotplug/firmware/iwlwifi-4965.ucode
しかし、再インストール時になぜかファームウェアがロードされなくなってしまったので、上記のようにファイル名を変更しないように修正した。(もしかして、使用するドライバのバージョンなどを勘違いしていたのか??)

ドライバのインストール

あらかじめダウンロードしておいたドライバのアーカイブを展開し、コンパイルする。

# tar zxvf iwlwifi-1.1.0.tgz
# cd iwlwifi-1.1.0
# make
# make install

ドライバを読み込ませてみる。再起動してみても良い。

# ./load

NICが正常に認識されているか確認してみる。

# iwconfig
wmaster0 no wireless extensions.

Warning: Driver for device wlan0 has been compiled with version 22 of Wireless Extension, while this program supports up to version 20.
Some things may be broken...

wlan0    IEEE 802.11g ESSID:"" Nickname:""
         Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
         Tx-Power=27 dBm
         Retry min limit:7 RTS thr:off Fragment thr=2346 B
         Encryption key:off
         Power Management:off
         Link Quality:0 Signal level:0 Noise level:0
         Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
         Tx excessive retries:0 Invalid misc:0 Missed beacon:0

これで、ハードウェアの設定は完了だ。

NICの設定

続いて、「/etc/network/interfaces」にNICの設定を記述する。
詳しい原因は分からないのだが、eth1より先にブートさせないとうまく動いてくれなかったので、loとeth1の間に記述した。

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.30.9
netmask 255.255.255.0
gateway 192.168.30.250
wireless_mode Managed
wireless_essid *****************
wireless_channel 7
wireless_key s:*************
auto wlan0

設定の意味は下記の通り

wireless_mode 無線APへ接続するなら「Managed」。PC間で接続するなら「Ad-Hoc」。
wireless_essid 接続先のESSIDを指定する。省略すると「any」扱い??
wireless_channel 利用チャンネルを指定する。省略すると自動で設定される(はず)。
ちなみに、802.11gは7チャンネル辺りが電波干渉しづらいらしい。
wireless_key WEPキーを指定する。文字列で指定する場合は「s:*****」とし、16進数での指定ではそのまま記述する。

WEPではなく、WPAを使う場合などは別の手順が必要となる。私はニンテンドーDSの関係でWEPにせざるを得ないので上記設定となった。

ITPro:『【 iwconfig 】 無線LANインタフェースの参照・設定』

eth1は使用しなくなるので、起動しないように設定しておく。

auto eth1

#auto eth1

eth1を停止しない場合、複数NICでの運用になるため、デフォルトゲートウェイの設定(gateway ***)はいずれかのNICのみにしておいた方がいい。何らかの理由で両方のNICにデフォルトゲートウェイを設定する場合、デフォルトゲートウェイを複数指定することはトラブルを招くこともあると念頭に置いておくほうがいいだろう。

ネットワークの設定を反映させる。ただし、前述した通りeth1が動作しているとうまく動いてくれなかったのであらかじめ停止しておく。

# ifconfig eth1 down
# /etc/init.d/networking restart

無線が正常に接続された場合、iwconfigコマンドの結果が下記のようになる。下記の例では802.11gで接続されている。

# iwconfig

wlan0    IEEE 802.11g ESSID:"***********************" Nickname:""
         Mode:Managed Frequency:2.442 GHz Access Point: 00:00:00:00:00:00
         Bit Rate=54 Mb/s Tx-Power=27 dBm
         Retry min limit:7 RTS thr:off Fragment thr=2346 B
         Encryption key:0000-0000-0000-0000-0000-0000-00
         Power Management:off
         Link Quality=100/100 Signal level=-35 dBm Noise level=-94 dBm
         Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
         Tx excessive retries:0 Invalid misc:0 Missed beacon:0

「/etc/resolv.conf」の設定を行っていない場合は設定を忘れずに。

まとめ

あれこれ手間がかかったものの、これで問題無く無線でLANに接続できるようになった。
802.11nの機材が無いため、802.11gでの利用となるが、先立つものが手元にやってきたらぜひ試してみたい。

補足

正常に接続できるようになっても、筐体前面のLEDは点灯しない。また、GNOME側のネットワークツールでも動作していないように表示される。
使う分には問題ないので、暇なときにでも調べてみようと思う。

Inspiron1525にDebian etchをインストールした時のメモ。

内蔵NICに「Marvell Yukon 88E8040」というものを使用しているらしいのだが、100Mbpsということに驚き。1000BASEだと思い込んでいた。最終的には無線LANにしてしまうので良いのだけど、なんだか損をした気分だ。これもDELLクオリティということなのか。

ドライバのダウンロード

Marvellのサイトから最新のドライバをダウンロードする。

Marvell:『Linux Driver Install Package for Yukon Devices』

必要なパッケージのインストール

ドライバのインストールを行う際、必要なパッケージがインストールされていない場合にエラーメッセージが表示されるので、その都度インストールすればいい。私の場合、開発環境を用意していなかったので、gccをインストールした。

# aptitude install gcc

他、カーネルのソースコードが必要のようなので、次項でインストールする。

カーネルのソースコードを用意

現在利用しているカーネルのバージョンを調べ、適したバージョンのソースコードをインストールする。

# uname -r
2.6.18-6-686
# aptitude install linux-source-2.6.18

「/usr/src」以下にソースコードのアーカイブがインストールされるので解凍し、「/usr/src/linux」にシンボリックリンクを作成する。

# cd /usr/src
# tar vxfj linux-source-2.6.18.tar.bz2
# ln -s /usr/src/linux-source-2.6.18 /usr/src/linux

カーネルのコンパイル

カーネルのコンパイルを行っておかないとドライバのインストール時に下記のエラーが表示される。

The kernel's modpost utility is not available. As the source code for the utility is available in your current installed linux kernel source tree, you can compile the utility for your own.

To do so, please follow the description below:
(Please read the next lines before you execute them!)
[1] Change to /usr/src/linux
[2] Call make (this begins to create a new linux kernel)
[3] Take a look at the output: After a few seconds the modpost utility will be compiled
[4] Now interrupt the make process by pressing ctrl-c

The modpost utility now is created. You can check this by taking a look at /usr/src/linux/scripts/mod. Here you should find a file modpost now.

If you are finished recall install.sh again. That's it.

一度コンパイルを行い、modpostモジュールを作成しておく必要があるらしい。

現在のカーネルと同じ設定でコンパイルされるように、「/boot」ディレクトリにある設定ファイルをコピーし、「make oldconfig」で過去の設定を引き継がせる。

# cp /boot/config-2.6.18-6-686 /usr/src/linux/.config
# cd /usr/src/linux
# make oldconfig

コンパイルを行う。

# make

画面の出力内容を見てmodpostがコンパイルされた後は「ctrl + c」で中断して良い。ちなみに、modpostはコンパイル開始後すぐにコンパイルされる。

ドライバのインストール

手順の最初でダウンロードしたドライバの圧縮ファイルを解凍して、生成された「DriverInstall」ディレクトリに移動する。

# tar vxfj install_v10.50.1.3.tar.bz2
# cd DriverInstall

インストールスクリプトを実行する。

# ./install.sh

表示されるメッセージには下記のように解答した。

1) installation
2) generate patch
3) exit
Choose your favorite installation method: 1
Do you want proceed? (y/N) y [PRESS ANY KEY FOR FURTHER INSTRUCTIONS] Enter 1) Do nothing
2) Deactivate diver
3) Remove driver
Action: 3

インストールが完了すると下記のメッセージが表示された。

All done. Driver installed and loaded.
To load the module manually, proceed as follows:
     Enter "modprobe sk98lin"

今まではケーブルを差しても無反応だったNICのLEDが点灯した。「ifconfig」コマンドでNICが認識されていることを確認する。

# ifconfig
eth1 Link encap:Ethernet HWaddr 00:00:00:00:00:00
         inet addr:192.168.30.8 Bcast:192.168.30.255 Mask:255.255.255.0
         UP BROADCAST MULTICAST MTU:1500 Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
         Interrupt:169 Memory:00000000-0

ちなみに、ドライバのインストール作業はカーネルを再構築する度に行わないといけないらしい。(本当にそうなのかな。うまいやり方はないのかな。)

NICの設定

「/etc/network/interfaces」ファイルを編集し、NICの設定を記述する。

固定IPアドレスの場合。

iface eth1 inet static
address 192.168.30.8
netmask 255.255.255.0
gateway 192.168.30.250
auto eth1

DHCPを使用する場合。

iface eth1 inet dhcp
auto eth1

記述後、ネットワークの再設定を行う。

# /etc/init.d/networking restart

DNSサーバの設定

「/etc/resolv.conf」ファイルを編集し、DNSサーバの設定を行う。「do not edit!」などと書かれているが気にしない。

# generated by NetworkManager, do not edit!
nameserver 192.168.30.201

まとめ

一通りの作業が完了したら、ネットワークに接続できるか確認する。
無事ネットワークを使用できるようになっていたら、apt-lineを修正し、パッケージを最新版に更新しておく。

2008年02月26日(火) 23:28 [Debian

Inspiron1525にDebianを入れて数日経つがいまだに設定途上。
ひとまず経過報告をしてみる。

サウンド
×。音が出ない。これから設定する予定。
有線LAN(Marvell Yukon 88E8040 PCI-E Fast Ehternet)
OK。インストール時に認識されなかったが、問題無く動作した。
無線LAN(Intel Wireless WiFi Link 4965AGN)
△。苦労した末、無事認識された。設定はしていないので実運用は行っていない。そういう意味で△。
Firefoxのプロファイル移行
OK。Windowsで使っているプロファイルを移行した。一部、設定を書き換えたが、基本的にそのままで動いた。
Thunderbirdのプロファイル移行
まだ行っていない。
メッセンジャー
OK。pidginをインストールして、MSNメッセが使用できるようになった。

その他の点では特に問題無く使用できている。
いろいろ手間取ってはいるが、それはそれで楽しいので引き続き快適なデスクトップ環境が整えられるようにいろいろ試していきたい。現在無線LANの設定途中なので、それが落ち着いたら少しずつ設定中の話も投稿していく予定。

ちなみに、インストール時にLogicoolのマウス「VX nano」を繋いでいたのだが、GUIのインストーラが起動しなかった。

それにしても、こうやってLinuxでデスクトップ環境を整えていると、一般に普及しないのは当然だなぁ、と思う。

2008年02月22日(金) 23:27 [Debian

Inspiron1525にDebianを入れてみた。

Debianデスクトップ

久しぶりにLinuxのデスクトップ画面を見たけれど、かなり綺麗になっている。
少なくとも、見栄えだけなら十分メイン環境として使っていけそうだ。

今回、ネットワークインストールCDでは内蔵NICを認識してくれなかったため、DVDイメージからインストールを行った。その後、NICドライバのインストールなどに結構手間取ってしまった。その過程やインストール時の話はまた改めて投稿しようと思う。

ちなみに、まだ無線LANは使用できるようになっていない。せっかくのノートなので、早く有線環境から脱したいところだ。

Copyright 2008 As You Like It All rights reserved.
Powered by Wordpress, Base template by WEB MAGIC, Photo by Encyclorecorder