nDiki : MADWIFI

MADWIFI - Multiband Atheros Driver for WiFi

2006年2月22日 (水)

ThinkPad X31Linux kernel 2.6

MADWIFI の件もあって、2.4 系にしてあった kernel であるが、Wireless Notebook Laser Mouse 6000 も使えるようにしたいし、2.6 へ遅ればせながら移行するか。

まずは Debian のパッケージ linux-image-2.6.15-1-686 で試す。 いつの間にか kernel-image ではなくて linux-image になっていたりと、おいていかれている感じ。 危ない危ない。

ThinkPad X31 2672-PHJ
サスペンドできない
XATI ドライバ OK
サウンドOK
MADWIFI接続できるものの大きなファイルの転送は駄目
cpufreqdOK

サスペンド

NG。

kernel で APMACPI の両方が有効になっているからのようだ。 ACPI を切る必要あり。

X.Org X server

OK。

X.Org X server 6.9.0 で ATI ドライバがうまく動かず VESA ドライバの使用を余儀なくされていたのだが、kernel 2.6 では何も問題なく動いた。

MADWIFI

NG。

無線 LAN で使っている MADWIFI も既にパッケージがあるのか。 いい世の中になったものだ。

しかも最近は module-assistant で kernel モジュールをパッケージングできるようになっているなんて。

 module-assistant prepare
 module-assistant auto-install madwifi
 modprobe -a ath_pci

接続はできるものの、一昨年試してみた時と同様 kernel 2.6 だと、大きなファイルの転送が途中で止まってしまう。

あと一歩。

cpufreqd

OK。

 modprobe speedstep_centrino
 /etc/init.d/cpufreqd start

ということで要リビルド

やはり、kernel をビルドする必要があるか。

……気がついたら make menuconfig で設定中の画面を前に眠り込んでしまっていた。 明日にもちこし。

[ 2月22日全て ]

2006年2月23日 (木)

Debian Linux kernel 2.6.15 ビルド

ThinkPad X31 用に 2.6.15 の Debian kernel パッケージ構築を行う。 インストールしてある Debian 標準の 2.6.15 のパッケージの設定 /boot/config-2.6.15-1-686 をベースに設定を行いビルド

 #apt-get build-dep linux-image-2.6.15-1-686
 #exit
 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux
 $tar jxvf /usr/src/linux-source-2.6.15.tar.bz2
 $cd linux-source-2.6.15
 $cp /boot/config-2.6.15-1-686 .config
 $make menuconfig
 $make-kpkg clean
 $fakeroot make-kpkg --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.15_sebastian.1.0_i386.deb

ブート後 Kernel panic。

標準の設定では IDE 関係がモジュールになっているのを見落していた。もう一度設定を修正してビルドしなおして起動。 Linux を使い始めたころ ext2 をモジュールにして失敗したことがあり、ファイルシステム関連は忘れずチェックするようにしているのだが、IDE 関連はノーチェックだった。

MADWIFI

 module-assistant prepare
 module-assistant auto-install madwifi
[ 2月23日全て ]

2006年2月24日 (金)

NdisWrapper で ThinkPad X31無線 LAN を使う

Linux kernel 2.6.15 で MADWIFI がうまく動かないようなので、NdisWrapper を試してみることにした。 NdisWrapper は、LinuxWindows の NDIS (Network Driver Interface Specification) 無線 LAN ドライバを使えるようにするラッパーモジュールである。

モジュールをインストール:

 #apt-get install ndiwrapper-source
 #module-assistant prepare
 #module-assistant auto-install ndiswrapper
 #apt-get install ndiswrapper-source

lspci でコントローラを確認:

 #lspci
 0000:02:02.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
 #lspci -n
 0000:02:02.0 0200: 168c:1014 (rev 01)

Lenovo からドライバをダウンロード:

  • ワイヤレスLAN(ThinkPad 11a/b/g)(Windows 2000/XP/XP Tablet Edition 2005)
  • Ver.4.1.102.133
  • 77wc36wj.exe

Windows 上で展開してできた WINXP_2K ディレクトリを Linux 上にコピー。

ndiwrapper コマンドでドライバをインストールする:

 #cd /path/to/WINXP_2K
 #ndiwrapper -i NET5211.INF
 #ndiswrapper -l
 Installed ndis drivers:
 net5211         driver present, hardware present
 #modprobe -a ndiswrapper

wlan0 でインタフェースが作成される。 MADWIFI と同じ無線 LAN 設定で、つながった。

通信も成功。

しかし、やはり大きなファイルの転送が途中で止まってしまう。

うーん、もしかしたらドライバ以外の問題なのだろうか。

[ 2月24日全て ]

2006年2月25日 (土)

大きいファイルの転送が止まってしまうのは TCP Window Scale Option のせいだった

Linux kernel を 2.6.15 にして以来、無線 LAN で大きなファイルの転送がすぐに止まてしまうようになったので、ドライバをいろいろ変えてみるなど試行錯誤中。

大きなファイルの転送ができないと必要なファイルのダウンロードもままならないので、昨日の夜有線で接続して作業を行うことにした。

……あれ?

有線でも駄目じゃん。大きなファイル転送できないじゃん。

無線 LAN の問題ではなかった

ThinkPad X31 の内蔵 NIC の方は会社だとうまく動いているし、どうやら自宅内の LAN、あるいは ADSL 接続あたりに問題があるようだ。

確認してみると無線 LAN アクセスポイント経由での PC 間のファイルのやりとりは問題なし。 早く気がつくべきだった。

とすると次の可能性はルータ(RTW65b)か。

RFC1323 TCP Window Scale Option

Linux kernel 2.4.27 だとうまく通信できているので、そのあたりから調査。 Web を見てみると 2.6.8 から net.ipv4.tcp_default_win_scale がデフォルトで 0 でなくなった事で同様の障害が発生し話題になったようだ。

自分が以前 2.6 系に乗り換えようとしたのもちょうど 2.6.8 だったので、その時に駄目だったのも実はこれが原因だった可能性がある。

 echo 0 > /proc/sys/net/ipv4/tcp_default_win_scale

でこの設定が変えられるのだが、2.6.13 以降このオプション自体が無くなっている。

tcp_window_scaling はまだ存在するので、

 echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

してみる。

……直った。

ということで

MADWIFI も NdisWrapper もシロだったようだ。

そろそろルータ買い換え時なのかなぁ。 YAMAHA で気にいってはいるんだけれど。

[ 2月25日全て ]

2006年7月29日 (土)

Debian GNU/Linux sid 環境を新 HDD

朝から ThinkPad X31HDD 新しく入れ替えて Debian GNU/Linux sid のインストールを開始。

Debian GNU/Linux のインストール

今日は sarge のネットワークインストール CD イメージからブートしてインストール。 今回はブートドライブにできる「ThinkPad USB ポータブルCD-ROMドライブ」があり、またこのイメージで起動して e1000 が認識できるので楽勝である。

(第1回目USB FDD + PC カード NIC でインストール、第2回目HDD 上のインストーラから GRUB からの起動によるインストールだった)

最低限のものを入れたらすぐ sidアップグレード

HDD からのコピー

ヤバイ状態の旧 HDDUSB 外付け HDD ケースに詰めて

  • /home 全部
  • /usr/local で必要なもの
  • 参照用に /etc の複製
  • /var/www、/var/spool

を新しい HDD にコピー。

次に環境の復旧。 以下備忘録。

MADWIFI

以前作った Linux kernel 2.6.15 deb パッケージをインストールした後 module-assistant で madwifi をインストールするも、ビルドした GCC のバージョンが違ってロードできず。 kernel は GCC 4.0 の時にビルドしたもので、madwifi は現在のバージョンである GCC 4.1 によるビルドであることが問題。

まずは前にビルドした 2.6.15 のソースディレクトリでカーネルパッケージを GCC 4.1 で作りなおしてインストールし、あらためて module-assistant。

 module-assistant prepare
 module-assistant auto-install madwifi

で /etc/network/interfaces を書き戻す。

SMTP サーバを Postfix

ここずっと使っていた qmail をこの機会にやめることにした。 Postfix へ。

全体の設定はインストーラに従って設定。

個人設定は、

~/.qmail

 | preline /usr/bin/procmail

として procmail を使っていたので、~/.forward を作って同様に procmail に流すようにする。

 "|IFS='' && exec /usr/bin/procmail -f- || exit 75 #naney"

~/.procmailrc は以前のまま。ClamAVbsfilter でふるいにかけた後、Maildir へ。

bsfilter は deb のものに

以前入れた時は deb が古かったので /usr/local に自前でインストールした。 まずはこれを古い HDD から戻して動作確認後 deb のものに切り替え。

.mew.el の中も

 (load "/usr/share/doc/bsfilter/examples/mua/mew4/mew.el")

に変更。

Samba

/etc/samba/smb.conf を書き戻す。smbpasswd でパスワード再設定。

X

とりあえずインストール時の設定で xorg.conf を作る。

 Load "freetype"

をコメントアウトして、

 Load "xtt"

に変更。

KDE

sid は現在 3.5.3 と 3.5.4 混在状態になっているため、依存関係の問題で簡単にはインストールできずてこずった。 kdebase-data と kdelibs-data の 3.5.3 を http://snapshot.debian.net/ からとってきて hold して 3.5.3 系 KDE として各種パッケージをインストール。

フレッシュリーダー

以前インスールした状態に復旧

  1. libapache2-mod-suphp php5-cli をインストール
  2. /var/www/freshreader、/etc/apache2/sites-available/freshreader を戻す
  3. a2ensite freshreader
  4. /etc/init.d/apache2 reload
  5. /etc/hosts に freshreader を追加

cpufreqd

  1. cpufreqd をインストール
  2. /etc/cpufreqd.conf を戻す
  3. /etc/init.d/cpufreqd restart

Skype

skype-beta-1.3.0.30-1_i386.deb をインストール。

cron

一般ユーザ naney の crontab ファイルを再登録。

Perl モジュール

足りないと気がついた時点で順次インストール。

autofs + smbfs (2006年8月3日)

/etc/auto.master、/etc/auto.misc を書き戻して /etc/init.d/autofs restart。

mt-daapd (2006年8月22日)

deb パッケージを公式サイトからダウンロードし、/etc/mt-daapd.conf を書き戻して /etc/init.d/mt-daapd restart

[ 7月29日全て ]

2007年1月20日 (土)

MADWIFIWPA を使うように変更

FON ソーシャルルータが届くのを前に、現在の無線 LAN の設定も確認・見直しをしておくことにした。

MADWIFI を最初に使い始めたころはまだ WPA 関連がまだ安定していなかった(と思っていた)ので WEP で運用していたのだが、今はもう問題ないようである。 ということで設定変更。

Debian GNU/Linux sid BOX (ThinkPad X31) に Debian パッケージを追加

 apt-get install wpasupplicant

既にインストール済みだった

アクセスポイント側変更

WLA2-G54 の管理画面に Web ブラウザからアクセスして、「無線LANセキュリティ設定」からデータの暗号化AES を選び、WPA-PSK に事前共有キーを入力して設定ボタンを押す。

ここで一旦接続が切れる。

/etc/network/interfaces の設定を変更

現在は ifupdown から直接 WPA 設定をできるようになっているので、/etc/network/interfaces を変更する。

ath0 のエントリを以下のように修正:

 iface ath0 inet dhcp
   wpa-driver madwifi
   wpa-ap-scan 1
   wpa-scan-ssid 1
   wpa-ssid  <アクセスポイントの ESSID>
   wpa-psk <事前共有キー>

これで ifup しなおすことで無事接続。

[ 1月20日全て ]

2007年12月23日 (日)

Debian Linux kernel 2.6.23 をビルドする。

ThinkPad X31 に入れている Debian GNU/Linux sidLinux kernel を随分アップデートしていなかった(2.6.17 を使用中)。 今日 aufs を入れついでに、一緒に最新(2.6.23)をビルドすることにした。 Debian kernel パッケージ構築は去年の8月以来。

今回は linux-patch-aufs を入れておいて、aufs 用のパッチを当てる。

 #apt-get build-dep linux-image-2.6.23-1-686
 #apt-get install linux-source-2.6.23 linux-patch-aufs
 #exit
 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux

 $tar jxvf /usr/src/linux-source-2.6.23.tar.bz2
 $cd linux-source-2.6.23
 $make menuconfig
 $make-kpkg clean

 $fakeroot make-kpkg --added-patches put_filp,lhash,splice,ksize,sysfs_get_dentry --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.23_sebastian.1.0_i386.deb

パッチが一部 2.6.22 用で 2.6.23 には当たらなかったが、よしとしておく。 ここで再起動。次に MADWIFIaufs をインストール。

 module-assistant prepare
 module-assistant auto-install madwifi
 module-assistant auto-install aufs

いつも入れている shfs も同様に入れようと思ったがこちらはコンパイルエラー。 頻繁に使うわけではないので、とりあえずほっておくことにする。

コンパイルが面倒なのでそろそろ Debian 公式のを使おうかと思ったが、試してみたところ

ということ NG。 やはり自前でビルドしなければならないことを再確認。

[ 12月23日全て ]

2008年1月14日 (月)

今日のさえずり - ドロンボー側はいいね

[ 1月14日全て ]

2009年2月7日 (土)

Debian Linux kernel 2.6.26 にアップデート

ThinkPad X31 に入れている Debian GNU/Linux sid でしばらく Linux kernel 2.6.23 を使っていたが、TrueCrypt 6.1a を入れたら「2.6.23 以下じゃヤバいよ」と表示されたので 2.6.26 にアップデートすることにした。 Debian 標準イメージを入れてみたが、やはり今まで通りサスペンドできないので、今回もビルドしなおし。

追加で入れるモジュールは aufsMADWIFI

 #apt-get build-dep linux-image-2.6.26-1-686
 #apt-get install linux-source-2.6.26 aufs-source madwifi-source
 #exit

 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux

 $tar jxvf /usr/src/linux-source-2.6.26.tar.bz2
 $cd linux-source-2.6.26
 $cp /boot/config-2.6.26-1-686 .config
 $make menuconfig
 $make-kpkg clean

 $fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.26_sebastian.1.0_i386.deb

最初は 2.6.23 の時のソースツリーで make menuconfig したのと見比べながら素から設定したのだが起動中 hda のハードウェアの認識(?)で止まってしまった。 なのでとりあえず起動する .config は Debian 標準イメージのものをベースにすることにした。 変更は ACPI を外して APM を追加した程度。

Debian 標準イメージは IDEext3 もモジュールになっていて initrd 使わないと起動できないので今回から --initrd を指定してビルドすることにした(一度忘れてビルドして起動したら何度かアチャーしたことのある kernel panic になった)。

再起動。起動後 cpufreqd が動かなかったが、modprobe speedstep-centrino したら今までどおり cpufreqd が立ち上がって省電力化できた。

次に MADWIFI をインストール。こちらも問題なく接続。

 #module-assistant prepare
 #module-assistant auto-install madwifi

aufs前回の方法で udba=inotify できるモジュールを作成。

TrueCrypt もテストして警告を出さなくなっていることを確認。 火曜日ぐらいから、ちんたら何度かビルドしないしながら昨日ここまで辿りついた。 めでたしめでたし。

しかし Debian 標準イメージの .config 級の設定だとビルドに1回2時間前後だったかかかるようになった(nice 下だけれど)。 トライアンドエラーしはじめるとかなり時間がかかるな。


[ 2月7日全て ]

2009年10月4日 (日)

ThinkPad X31sidLinux kernel 事情

ここ最近 ThinkPad X31Debian GNU/Linux sid が調子が悪い。 いろいろ調査・トライしてみている途中の状態をメモ。

状況

  • いつごろからか、サスペンドしても ThinkPad X31 の月ランプが光らなくなった。
  • 8月19日ぐらい(から、使用中に Caps Lock キーが点滅してフリーズするようになった。(記事)。
  • 9月11日ぐらいから digiKam写真データを認識しなくなった(記事)。digiKam 更新で対応。
  • 9月23日ぐらいからサスペンドさせると復帰時に Caps Lock キーが点滅して Kernel panic になるようになった(記事)。
  • 9月29日に X があがらなくなった(記事)。こちらは xserver-xorg-core ダウングレードで対応。
  • Linux kernel 起動時に udev が「今の kernel だとデバイスあたりの処理がおかしくなるかもよ」というような警告を出すようになった。

アプリケーションや X の不具合などと重なって unstable 全開だ。

Linux kernel については各種パッケージの更新に追いつけなくなっているようなので、アップデートをかける必要がありそう。

Linux kernel 再構築

Debian GNU/Linux の標準イメージを使ってみたが、ThinkPad X31 では例によって ACPI では蓋の開閉でサスペンドしない。 APM を使うようにした Debian kernel パッケージ構築が必要。 しかし今年の2月に 2.6.26 をビルドした時(記事)から、いろいろ変更があったようで一筋縄ではいかなかった。 以下は最終的な手順(たぶん)。

 #apt-get build-dep linux-image-2.6.30-2-686
 #apt-get install linux-source-2.6.30 aufs-source
 #exit

 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux

 $tar jxvf /usr/src/linux-source-2.6.30.tar.bz2
 $tar zxvf /usr/src/aufs.tar.bz
 $emacs modules modules/aufs/Makefile
 $cd linux-source-2.6.30
 $cp /boot/config-2.6.30-2-686 .config
 $make menuconfig
 $make-kpkg clean

 MODULE_LOC=/usr/local/src/linux/modules fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image modules_image
 $fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.30_sebastian.1.0_i386.deb aufs-modules-2.6.30_0+20090302-3+sebastian.1.0_i386.deb
 #update-initramfs -c -k 2.6.30
 #update-grub
  • aufs inotify を有効にする(記事)必要があるのだが、modules/aufs/debian/conf.mk が無くなっていた。modules/aufs/Makefile 側で同様の設定追加をする必要あり。
  • MADWIFI はコンパイルが通らなくなっていた。
  • 自前で作った linux-image の Debian パッケージが、initrd まわりの処理をうまくしてくれない。自分で update-initramfs した。

MADWIFI はもはやコンパイルが通らなくなっていた。 試してみたところ ath5k で通信できるようになっているではないか。modprobe ath5k すると wlan0 が使えるようになった(MADWIFI の時は ath0)。

initrd 関係は結構はまった。 最初いつも通りビルドして dpkg した後再起動したのだが、"Unable to mount root fs on unknown-block(0, 0)" が出て先にすすまない。 IDE まわりや ext2ext3 まわりを M から y にしても駄目。 何度か試しているうちに、 linux-image を dpkg --install した際に実行される update-grub のメッセージで自分で作った Linux kernel だけ initrd 関係の処理がされないことに気が付いた。 自前で update-initramfs したらようやく 2.6.30 が起動するようになった。

2.6.30 にすることで起動時の udev の警告は解消された。 しかしながらサスペンドはまだ駄目。 復帰時にフリーズする。 やはりパワー関係の処理があやしい。今は AC アダプタを外しても KPowersave は気付かない。

もう少しおっかける必要がありそう。

対応できるまではサスペンドできず。毎回起動したりシャットダウンしたりするの面倒くさーい。

[ 10月4日全て ]

About

Naney Naneymx

Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Process Time: 0.023766s / load averages: 0.35, 0.34, 0.40