CAT724_WIFI

作業環境

  • CAT724
  • BUFFALO WLI-UC-GNM Wireless LAN Adapter
    • プラネックスGW-USNano2ならこちらを参考
  • linux-3.0.4
  • debian squeeze (6.x)

手っ取り早くROM化作業だけ知りたい方は こちら

開発PCでのドライバビルド作業

開発PCにてカーネルモジュールをビルドする

$ tar xzfv linux-3.0.4_cat724_20140324.tgz    (カーネルソースの展開)
$ linux-3.0.4_cat724/
$ vi Makefile               INSTALL_MOD_PATH= 行を探して1行修正。ドライバモジュールのインストール先を /home/kaihatsu/tmp に変更する
INSTALL_MOD_PATH=/home/kaihatsu/tmp
$ make menuconfig
[*] Networking support  --->
  -*-   Wireless  --->
    <M>   cfg80211 - wireless configuration API
    <M>   Common routines for IEEE802.11 drivers
    <M>   Generic IEEE 802.11 Networking Stack (mac80211)

Device Drivers  --->
  [*] Network device support  --->
    [*]   Wireless LAN  --->
      <M>   Wireless RNDIS USB support
      <M>   Ralink driver support  --->
        <M>   Ralink rt2500 (USB) support
        <M>   Ralink rt2501/rt73 (USB) support
        <M>   Ralink rt27xx/rt28xx/rt30xx (USB) support
      <M>   Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter
      
$ make
$ make modules_install

/home/kaihatsu/tmp以下にモジュール (*.koファイル)がコピーされる。

CAT724での作業

  1. CAT724に 2Gバイト以上のmicroSDを使用し、debian squeeze をインストールする DebianSH
  2. nfsクライアントを利用するには apt-get install nfs-common とする。
  3. nfsなどを利用し開発PCの /home/kaihatsu/tmp にコピーされた lib/modules/3.0.4/* を CAT72の /lib/modules/3.0.4/ へコピーする
    # mount 開発PCのIPアドレス:/home/kaihatsu /mnt -o ro,tcp
    # cp /mnt/tmp/lib/modules/3.0.4  /lib/modules/ -a
    # depmod -a        (モジュール *.ko ファイルを追加・削除した場合に必要なコマンド)
  4. カーネルも上記でビルドしたもので上書きする
    # cp /mnt/開発PCでカーネルをビルドした場所/linux-3.0.4_cat724/arch/sh/boot/zImage /tmp
    # cp /tmp/zImage /dev/mtdblock1
    # cd /
    # umount /mnt
    # reboot
  5. wireless tools のインストール
    # apt-get install wireless-tools
    Reading package lists... Done
     Building dependency tree
    Reading state information... Done
    The following extra packages will be installed:
      libiw30
    The following NEW packages will be installed:
      libiw30 wireless-tools
    0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
    Need to get 171 kB of archives.
    After this operation, 524 kB of additional disk space will be used.
    Do you want to continue [Y/n]? y
    WARNING: The following packages cannot be authenticated!
      libiw30 wireless-tools
    Install these packages without verification [y/N]? y
    Get:1 http://download.si-linux.co.jp/debian-sh/squeeze-sh4/ squeeze/main libiw30 sh4 30~pre9-5 [36.6 kB] 
    Get:2 http://download.si-linux.co.jp/debian-sh/squeeze-sh4/ squeeze/main wireless-tools sh4 30~pre9-5 [134 kB]
  6. ファームウェアパッケージのダウンロード・展開
    # wget http://ftp.jp.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-ralink_0.28+squeeze1_all.deb
    # dpkg -i firmware-ralink_0.28+squeeze1_all.deb
  7. BUFFALO WLI-UC-GNM Wireless LAN Adapter を挿入すればドライバは自動的に発見されるはず。発見されなければ rt2800usb を手動でインストールする
    # modprobe rt2800usb
    # ifconfig -a
    
    wlan0     Link encap:Ethernet  HWaddr 4c:e6:76:xx:xx:xx
              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)
    
    # iwconfig
    
    wlan0     IEEE 802.11bgn  ESSID:off/any
              Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm
              Retry  long limit:7   RTS thr:off   Fragment thr:off
              Encryption key:off

ここまでの作業で ifconfig -a または iwconfig にて waln0 が発見できればドライバでの認識はok。 wlan0 が表示されなければドライバでの認識ができていない。

wifi認証作業

# apt-get install wpasupplicant

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  dbus libdbus-1-3 libnl1 libpcsclite1
Suggested packages:
  dbus-x11 pcscd wpagui libengine-pkcs11-openssl
The following NEW packages will be installed:
  dbus libdbus-1-3 libnl1 libpcsclite1 wpasupplicant
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 955 kB of archives.
After this operation, 2404 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
  libdbus-1-3 dbus libnl1 libpcsclite1 wpasupplicant
Install these packages without verification [y/N]? y

SSID, パスフレーズで conf ファイルを作る。標準出力に出るため /etc/wpa_supplicant/ 以下に保存する

使い方
# wpa_passphrase SSID パスフレーズ
# wpa_passphrase SSID パスフレーズ > /etc/wpa_supplicant/my-ssid.conf

/etc/network/interfaces に次の行を追加する。eth0 については同一LANへ接続すると混乱するため # でコメントアウトする

auto wlan0
iface wlan0 inet dhcp
        wpa-conf /etc/wpa_supplicant/my-ssid.conf

この辺の作業詳しくは

ROM化

To Be Done

ROM化の前に確認

# lsmod
Module                  Size  Used by
aes_generic            25194  2
arc4                     882  2
rt2800usb               8869  0
rt2800lib              28639  1 rt2800usb
crc_ccitt                983  1 rt2800lib
rt2x00usb               6576  1 rt2800usb
rt2x00lib              23731  3 rt2800usb,rt2800lib,rt2x00usb
mac80211              138773  3 rt2800lib,rt2x00usb,rt2x00lib
cfg80211              110212  2 rt2x00lib,mac80211
# ps ax
1067 ?        Ss     0:00 /sbin/wpa_supplicant -s -B -P /var/run/wpa_supplicant
1248 ?        Ss     0:00 /usr/bin/dbus-daemon --system
# ls /lib/firmware/

rt2561.bin   rt2661.bin  rt2870.bin  rt3071.bin  rt73.bin
rt2561s.bin  rt2860.bin  rt3070.bin  rt3090.bin

/lib/modules/3.0.4/ 以下すべてと、/lib/firmware/ を ROMへコピーし、プロセスとしては /sbin/wpa_supplicant /usr/bin/dbus-daemon が動けば良さそう。

ROM化の準備

先ほど apt-get でインストールしたパッケージは次の2つ

# apt-get install wireless-tools wpasupplicant

もう一度クリーンな状態(debian squeeze のbaseを展開した直後)から実行して 依存パッケージを調べると次の通り

The following NEW packages will be installed:
  dbus libdbus-1-3 libiw30 libnl1 libpcsclite1 wireless-tools wpasupplicant

次のような展開スクリプト(extract.sh)を作成して7つのパッケージを /root/work に展開する。

# vi extract.sh   (新規作成)
#!/bin/sh

WORKDIR=/root/work
DOWNLOAD=/var/cache/apt/archives

 mkdir $WORKDIR

for A in dbus libdbus-1-3 libiw30 libnl1 libpcsclite1 wireless-tools wpasupplicant
do
        dpkg-deb -x $DOWNLOAD/$A*.deb $WORKDIR
done
# chmod +x extract.sh   (実行属性を付ける)
# ./extract.sh

work/ に7つのパッケージが展開される。work に移動して不要なファイルを削除する

# cd work
# rm -rf usr/share/man/
# rm -rf usr/share/doc/

その他必要なファイルを / からコピーする

# cp /etc/network/interfaces  etc/network/
# cp /etc/wpa_supplicant/my-ssid.conf etc/wpa_supplicant/
# cp -a /lib/modules/  lib/
# cp -a /lib/firmware/ lib/ 

ディレクトリサイズを調べる

# du -hs .
3.6M    .

tarで固める

# tar czvf ../cat724_wifi_squeeze.tgz  .

出来上がったものがコレ

内蔵ROMへのファイル展開

内蔵ROMで立ち上げる

bootloaderにて
>> admin
Password:
#> setparam -d
#> boot

を /tmp に置く

CAT724にて
# rommode rw
# cd /
# tar xzvf /tmp/cat724_wifi_squeeze.tgz
# cp /tmp/zImage_cat724wifi.bin /dev/mtdblock1
# mount -o remount,rw /var.rom/
# mkdir /var.rom/lib/dbus
# sync
# reboot

wifi認証作業も参照の事

関連

Last-modified: 2015-09-28 (月) 17:24:50 (3126d)