Debianでのzd1211b無線LANチップの使用

 Debian etchの標準インストールではカーネルのバージョンが2.6.18のせいかzd1211bチップを使ったメルコのWLI-U2-KG54Lを稼働させることは出来なかった。

 これはカーネルのバージョンを上げることで何とかなるのではと思い付き試してみることとした。

 カーネルのアップ方法に付いてネットで検索してみるに標準のカーネルの最新バージョンである2.6.24をftp://ftp.kernel.org/pub/ からもらってきて試してみるが何故か上手くインストール出来ない。

  原因はよくわからないが、Debian etchのインストールしたままの状態ではなくドライバーのコンパイルのためソースからビルドした状態であったの が影響したのかもしれないし、Debianに対しては標準のソースではダメで何かパッチが必要だったのかもしれない。debファイル作成段階で停止した。

 何はともあれ、次の方法として、Debian etchをインストールしたままの状態でソースもDebianのサイトにあったものを使うこととした。

 ソースはここからlinux-source-2.6.24_2.6.24-4_all.deb を頂いてくる。
 それを
debian:# dpkg -i linux-source-2.6.24_2.6.24-4_all.deb

で所定の場所である /usr/src に展開する。
debian:# cd /usr/src

 で移動して
debian:/usr/src# tar jxvf linux-source-2.6.24.tar.bz2
で展開する。少し時間がかかる。
debian:/usr/src# cd linux-source-2.6.24
でソースのディレクトリーに移動し、既設のコンフィグファイルをコピーする。
debian:/usr/src/linux-source-2.6.24# cp /boot/config-2.6.18-6-686 .config

 旧の状態を反映するが、新項目に対する問い合わせは全てEnterでdefaultとする。
debian:/usr/src/linux-source-2.6.24# make oldconfig

 今回用の設定を作成する。何故かmake oldconfigでは無線LANは使用しない設定になるようであるので特にzd1211rwは確実に含めておく。
debian:/usr/src/linux-source-2.6.24# make menuconfig

これが上手くいくと、コンパイルする。
debian:/usr/src/linux-source-2.6.24# make-kpkg clean
debian:/usr/src/linux-source-2.6.24# make-kpkg --initrd --revision=20080320 kernel_image kernel_headers

 P3−700Mで多分3時間位と相当時間がかかるので寝る前に開始することとしている。上手くdebファイルが作成できれば
debian:/usr/src/linux-source-2.6.24# dpkg -i ../linux-image-2.6.24_20080320_i386.deb
debian:/usr/src/linux-source-2.6.24#dpkg -i ../linux-headers-2.6.24_20080320_i386.deb
 で展開する。

 grubのmenuファイルに新カーネルが設定されていることを確認して再起動して新カーネルを指定する。
# reboot

 起動後、問題のメルコのWLI-U2-KG54Lを挿してみる。その時のdmesgは以下の通りである。
# dmesg
usb 1-2: new full speed USB device using uhci_hcd and address 2
usb 1-2: configuration #1 chosen from 1 choice
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
usb 1-2: reset full speed USB device using uhci_hcd and address 2
zd1211rw 1-2:1.0: eth2
usbcore: registered new interface driver zd1211rw
usb 1-2: Could not load firmware file zd1211/zd1211b_ub. Error number -2
zd1211rw 1-2:1.0: couldn't load firmware. Error number -2
usb 1-2: Could not load firmware file zd1211/zd1211b_ub. Error number -2
zd1211rw 1-2:1.0: couldn't load firmware. Error number -2

 何やらfirmwareが無いといったメッセージが見られるので
http://sourceforge.net/project/showfiles.php?group_id=129083
からzd1211-firmware-1.4.tar.bz2を頂いてくる。

/lib/firmware ディレクトリーを作成し、そこに移動してzd1211-firmware-1.4.tar.bz2を展開する。
# mkdir -p /lib/firmware
# cd /lib/firmware
# tar jxvf zd1211-firmware-1.4.tar.bz2

 で/lib/firmware/zd1211-firmware に展開されるのでこのディレクトリーを/lib/firmware/zd1211 に変更する。
# mv zd1211-firmware/ zd1211/

 として再度WLI-U2-KG54Lを挿してみる。その時のdmesgは次のように何となく認識されたような表示となる。
hub 1-0:1.0: over-current change on port 2
usb 1-2: new full speed USB device using uhci_hcd and address 3
usb 1-2: configuration #1 chosen from 1 choice
usb 1-2: reset full speed USB device using uhci_hcd and address 3
zd1211rw 1-2:1.0: eth2
zd1211rw 1-2:1.0: firmware version 4725
zd1211rw 1-2:1.0: zd1211b chip 0411:00da v4810 full 00-1d-73 AL2230S_RF pa0 g--N-
zd1211rw 1-2:1.0: Unrecognised regulatory domain: 0x49. Defaulting to FCC.
ADDRCONF(NETDEV_UP): eth2: link is not ready
SoftMAC: Open Authentication completed with 00:07:40:76:fb:d9
ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready

 そこで無線の状況を見てみると
debian:/lib/firmware# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

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

eth2      IEEE 802.11b/g  ESSID:"00074083148D"  Nickname:"zd1211"
          Mode:Managed  Frequency:2.432 GHz  Access Point: 00:07:40:76:FB:D9
          Bit Rate=54 Mb/s
          Encryption key:off
          Link Quality=100/100  Signal level=44/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

のように動いている。これで目出度し目出度し出ある。

  ところが少し使ってみると、日本語変換のツールバーが出ていないことに気がついた。日本語変換を使ってみるとローマ字変換では機能しているようであるが、ツールバーが ないので設定が出来ない。また、起動時にはツールバーがあるが最終的に立ち上がった段階で消えていることにも気がついた。

 しかし、対処方法が分らない。ネットで調べているうちにim-switch -cなるコマンドがあることを発見したのでこれを試してみた。

 最初に試みたときは、現在の設定のマークもなくまた、再起動しても設定が反映されたような様子がない。
 ユーザーを変えたり再起動を何回か繰り返しているうちに新しいユーザーでツールバーが表示された。
 この後は、最初上手くいかなかったユーザーでもツールバーが表れ、理由は分からないがこの問題も解消された。

anabuki@debian:~$ im-switch -c

There are 7 candidates which provide IM for /home/anabuki/.xinput.d/ja_JP:

  Selection    Alternative
  -----------------------------------------------
      1        default
      2        none
      3        th-xim
      4        uim
      5        uim-systray
*     6        uim-toolbar
      7        uim-toolbar-qt
System wide default for ja_JP (or all_ALL) locale is marked with [+].
Press enter to keep the current selection[*], or type selection number:

 ちなみに、ツールバーが表示されない状態でIME設定用の画面を表示させるためのコマンドは
# uim-pref-gtk
であるがツールバーが表示されない状態では設定は反映されなかった。
 これで一応メルコのWLI-U2-KG54Lを使うという目的は達成できた。