2016年4月1日金曜日

玄人志向 玄箱用 Debian Jessie wifi 対応版

wifi 対応した玄箱用 Debian Jessie 3.16.7-ckt20 の カーネルをビルドしました。

wifi 対応のカーネルで動作検証をした USB 無線 LAN アダプタです。

経緯

NAS(ネットワークディスク)として使用する場合、内蔵のイーサネット・ポートだけでネットワーク環境は十分な状況でした。しかし玄箱を NAS 以外に応用したい場合において、wifi 環境が必要な状況を考えて、今回 wifi 関連のモジュール類をビルドしました。

なおビルドにあたって、弊ブログにて x86 用にデバイス ID を追加したドライバ・モジュールについては、同様のパッチを適用しています。
以下の USB 型無線 LAN アダプタで動作検証を行いました。

・アイ・オー・データ WN-G54/BB (prism54, 11g)
・ロジテック LAN-GMW/PSP (LAN-W150N/U2) (rt2800usb)
・バッファロー WLP-UC-AG300 (rt2800usb, 11a+11g)
・プラネックス GW-US300MiniS (rt2800usb, 11g)
・アイ・オー・データ WN-WAG/USL (zd1211rw, 11g)
・アイ・オー・データ WN-G54/USL (zd1211rw, 11g)
・バッファロー WLI-UC-AG (zd1211rw, 11g)
・バッファロー WLI-U2-KG54L (zd1211rw, 11g)
・バッファロー WLI-U2-KAMG54 (ar5523, 11a+11g)
・TP-LINK TL-WN321G (rt73usb, 11g)

ダウンロード

以下のダウンロード・サイトからダウンロードしてください。 名称の中に "wifi" の文字があるものが当該ファイルです。
玄箱 Debian Jeesie のダウンロードサイト - グーグルドライブ
https://drive.google.com/folderview?id=0B5QdaY5lu2e3VlNQejlFYVBDS2c&usp=sharing
  • kuro-wifi-kern.tgz(およそ 3MB)
  • kuro-wifi-lib.tgz(およそ 3MB)

新規インストール

新規インストールを行う場合には、下記の記事を参考にしてインストールしてください。
玄人志向 玄箱用 Debian Jessie 通常版(カーネル3.16 版)
http://near-unix.blogspot.jp/2016/01/debian-jessie-316.html

その新規インストール時には、二種類のファイル名を次のように読み替えてください。
kuro-kern.tgz --> kuro-wifi-kern.tgz
kuro-lib.tgz --> kuro-wifi-lib.tgz

アップデート作業

(注意事項) NAS として使用する場合には、基本的に wifi 対応版は必要ありません。 wifi 対応版は無用にメモリを消費して、玄箱の動作を遅くする原因にもなります。wifi 対応版をインストールしないでください。

通常版から wifi 対応版へ切り替える場合には、次のように作業をしてください。

アップデートの概要としては、Debian Jessie 3.16 で動作している玄箱へ、ダウンロードした二種類のファイルを FTP で転送した後、展開してインストールします。なおシリアルコンソールでアップデートを行うのが安全ですが、telnet 接続によって作業を行うこともできます。

まず最初に作業パソコンから FTP でファームウェアを転送します。
 -- 作業パソコン --
# ftp [玄箱の IP アドレス]
    user:root, password:kuro
ftp> cd /jessie
ftp> put kuro-wifi-kern.tgz
ftp> put kuro-wifi-lib.tgz
ftp> quit

転送されたシステムファイルを解凍して、インストールします。
  -- 玄箱 --
# cd /jessie
# tar zxvf kuro-wifi-kern.tgz -C /
# tar zxvf kuro-wifi-lib.tgz -C /

一度、再起動させた後、不要なモジュール(3.16.7-ckt20_Livingston)を削除して、モジュールの依存関係の整理を行ってください。
  -- 玄箱 --
# rm -R /lib/modules/3.16.7-ckt20_Livingston/

# ls /lib/modules/
3.16.7-ckt20_wifi_Livingston (wifi モジュールのディレクトリが存在することを確認)

# depmod -a

以上で Debian Jessie wifi 対応版のシステムのインストールは終了です。

wifi 設定

WPA2 による暗号化を前提として記述しています。wpa-supplicant をインストールして各種の設定を行いました。
# apt-get update
# apt-get install wpasupplicant

wpa_supplicant の設定
# vi /etc/wpa_supplicant/wpa_supplicant.conf

 -- wpa_supplicant.conf の記述内容 --
network={
        proto=WPA2
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        ssid=" ssid "
        psk=" password "
}

wpa_supplicant の設定ファイルの権限変更
# chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf

国別設定(Country Region)
12ch, 13ch を使用する場合、国別設定が必要です。新規に cfg80211.conf ファイルを作成して、以下のようにオプションを設定してください。
# vi /etc/modprobe.d/cfg80211.conf

 -- cfg80211.conf の記述内容 --
options cfg80211 ieee80211_regdom=JP

USB 型無線 LAN アダプタのファームウェア
USB 型無線 LAN アダプタの内部で使用するファームウェアのインストールが必要な場合があります。使用する USB 型無線 LAN アダプタに対応したファームウェアをインストールしてください。以下は代表的なものです。
# apt-get install firmware-zd1211
# apt-get install firmware-ralink
# apt-get install firmware-atheros

ネットワーク設定

ネットワークの設定ファイルを編集します。
今まで設定してあった部分へ "#" を付加して、コメント化(赤文字部分)します。そして、新しく必要な設定(青文字部分)を記述します。
# vi /etc/network/interfaces

 -- ネットワーク設定ファイルの内容 --
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:

#auto eth0 lo
#iface lo inet loopback
#allow-hotplug eth0
#iface eth0 inet dhcp

auto lo
allow-hotplug eth0 wlan0
iface lo inet loopback
iface eth0 inet dhcp
iface wlan0 inet dhcp
wpa-conf    /etc/wpa_supplicant/wpa_supplicant.conf

source-directory /etc/network/interfaces.d

USB 型無線 LAN アダプタの接続上の注意

複数の USB 型無線 LAN アダプタを玄箱へ接続するとデバイス名称が wlan0, wlan1, wlan2,・・・と、識別子の数字が増えてゆきます。システム上で MAC アドレスと "wlan*" の対応表を作ってしまいます。上記のネットワーク設定ファイル( /etc/network/interfaces)の中の "wlan0" の部分を書き換えれば、ネットワークへの接続が可能となります。

しかし、多数の USB 型無線 LAN アダプタを接続した場合には、どのデバイス名か?判らなくなってしまいます。そこで常に "wlan0" を使用することを前提として、次の udev の設定ファイルの対応表を削除してしまう方法が簡単と思います。私はこの方法を選択しています。

# USB device 0x:0x から始まる部分が USB 型無線 LAN アダプタの設定になります。この部分の行を削除します。なお複数ある場合は全て削除します。これで常に新しく装着した USB 型無線 LAN アダプタは "wlan0" となります。基本的に USB 型無線 LAN アダプタを一度決めたら交換しないことが大切だと思います。
# vi /etc/udev/rules.d/70-persistent-net.rules

 -- 70-persistent-net.rules の内容 --
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8169 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0d:0b:**:**:**", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# USB device 0x:0x (rt2800usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:a0:b0:**:**:**", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

0 件のコメント:

コメントを投稿