PCG-U1 は小さいマシンなので LAN ケーブルをつなげていると引っ掛けて机の上から落としたりと、かなり危険が危ないでス。そこで無線 LAN PC カード (PCWA-C150S) を使えるようにしました。
VineLinux2.6r4 (kernel2.4) ではインストール直後の状態でも PCWA-C150S カード自体は認識されます。
が、使えるようにするには無線 LAN の設定が必要です。
● カードを挿した後、 cardctl コマンドでカード情報を参照してみる。
#
cardctl ident
Socket 0:
product info: "Sony Corporation", "PCWA-C150", "Version 01.01", ""
manfid: 0x0156, 0x0002
function: 6 (network)
● /var/log/messages - Intersil PRISM2 11 Mbps Wireless Adapter として認識されているらしい。
・
・
・
Jun 13 11:00:46 pcgu1 cardmgr[653]: starting, version is 3.2.5
Jun 13 11:00:46 pcgu1 cardmgr[653]: socket 0: Intersil PRISM2 11 Mbps Wireless Adapter
Jun 13 11:00:46 pcgu1 cardmgr[653]: executing: 'modprobe orinoco_cs'
Jun 13 11:00:46 pcgu1 cardmgr[653]: executing: './network start eth1'
・
・
・
PCMCIA ネットワークカードが挿入されると cardmgr が '/etc/pcmcia/network start eth1' を実行するので、 'start' の部分に設定用スクリプトを入れてしまう。
なんでこうしたかというと、/etc/pcmcia/network.pcmcia-cs で、無線 LAN 設定スクリプト?の /etc/pcmcia/wireless を取り込んでたんでスよね(´▽`)
※ これが Vine 的に正しい設定方法なのかわかりませんが、一応、ホットスワップ(活線挿抜?)もできたみたい。
● /etc/pcmcia/network
#! /bin/sh
#
# network.sample $Revision: 1.1 $ $Date: 1995/05/25 04:30:06 $ (David Hinds)
#
# Initialize or shutdown a PCMCIA ethernet adapter
#
# This script should be invoked with two arguments. The first is the
# action to be taken, either "start", "stop", or "restart". The
# second is the network interface name.
action=$1
device=$2
case "${action:?}" in
'start')
#
# We don't do *anything* here. We get a hotplug event when the ethX device
# is registered, and we bring the device up there
#
. ./network.pcmcia-cs
;;
'stop')
#
[ -f /etc/sysconfig/network-scripts/ifcfg-${device} ] && \
/etc/sysconfig/network-scripts/ifdown ifcfg-${device}
;;
'restart')
/sbin/ifconfig ${device:?} down up
;;
esac
/etc/pcmcia/network.pcmcia-cs から /etc/pcmcia/network.opts を参照しに行くようになるので、とりあえず空ファイルを作成しておく。
● /etc/pcmcia/network.opts ファイルの作成
# cd /etc/pcmcia
# touch network.opts
Wireless LAN adapter configuration ファイル (/etc/pcmcia/wireless.opts) を編集する。
MAC アドレスを使って設定を振り分けているようなので、 PCWA-C150S の MAC アドレス値を調べておく。(cardctl コマンドで得られるカード情報でマッチさせてもいいらしい。)
自 LAN の設定内容は /etc/pcmcia/wireless.opts の先頭部分に追加した。
● /etc/pcmcia/wireless.opts
# Wireless LAN adapter configuration
#
・
・
・
# Note also that this script will work only with the original Pcmcia scripts,
# and not with the default Red Hat scripts. Send a bug report to Red Hat ;-)
#
# Finally, send comments and flames to me, Jean Tourrilhes
#
case "$ADDRESS" in
# Here is an example of scheme matching
# Activate with "cardctl scheme essidany"
# Sony Wireless LAN PC Card PCWA-S150S 2004/06
*,*,*,00:02:2D:xx:xx:xx)
INFO="Sony Wireless LAN PC Card PCWA-S150S"
ESSID="hogehoge"
MODE="Managed"
RATE="11M"
KEY="hogehoge"
;;
# Pick up any Access Point, should work on most 802.11 cards
essidany,*,*,*)
INFO="Any ESSID"
ESSID="any"
;;
・
・
・
☆ 内蔵 NIC と PCMCIA Card NIC 、どっちが eth0 ? eth1?
「…MAC アドレスの最初の 24 ビットは OUI (Organizationally Unique Identifier) で、IEEEによって承認されたメーカ固有の番号である…」 とのことなので調べてみる。
内蔵 NIC は 08:00:46 で SONY CORPORATION LTD.、PCWA-C150S は 00:02:2D で Agere Systems でした。
IEEE OUI and Company_id Assignments
ここの Search the public OUI listing で 080046 などと打ち込むと、どこのメーカだかわかります。
内蔵 NIC を止めたりすると eth0 と eth1 が入れ替わったりするので 内蔵 NIC が常に eth0 になるように空の IP アドレス設定で放置プレィ状態にしておく。
自 LAN では DHCP を使っているので PCWA-C150S (eth1) は DHCP の設定にする。
● /etc/sysconfig/network-scripts/ifcfg-eth0 (内蔵 NIC)
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
BROADCAST=
NETWORK=
NETMASK=
IPADDR=
USERCTL=yes
● /etc/sysconfig/network-scripts/ifcfg-eth1 (PCWA-C150S)
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
USERCTL=yes
※ HWADDR で固定にしたり /etc/modules.conf の alias を使う手もあるらしい…
● PCWA-C150S が動作し、無線がつながった時の /var/log/messages
・
・
・
Jun 13 13:44:30 pcgu1 cardmgr[698]: starting, version is 3.2.5
Jun 13 13:44:30 pcgu1 cardmgr[698]: socket 0: Intersil PRISM2 11 Mbps Wireless Adapter
Jun 13 13:44:30 pcgu1 cardmgr[698]: executing: 'modprobe orinoco_cs'
Jun 13 13:44:30 pcgu1 cardmgr[698]: executing: './network start eth1'
Jun 13 13:44:31 pcgu1 cardmgr[698]: + usage ()
Jun 13 13:44:31 pcgu1 cardmgr[698]: + {
Jun 13 13:44:31 pcgu1 cardmgr[698]: + echo "usage: $0 [action] [device name]";
Jun 13 13:44:31 pcgu1 cardmgr[698]: + echo " actions: start check stop suspend resume";
Jun 13 13:44:31 pcgu1 cardmgr[698]: + exit 1
Jun 13 13:44:31 pcgu1 cardmgr[698]: + }
Jun 13 13:44:31 pcgu1 kernel: eth1: New link status: Connected (0001)
・
・
・
'Intersil PRISM2 11 Mbps Wireless Adapter' と表示されるのが気持ちわるいなら /etc/pcmcia/config.opts (Local PCMCIA Configuration File) に PCWA-C150S の情報を追加する。
● /etc/pcmcia/config.opts
#
# Local PCMCIA Configuration File
#
#----------------------------------------------------------------------
#
# System resources available for PCMCIA cards
#
・
・
・
# Options for Xircom Netwave driver...
#module "netwave_cs" opts "domain=0x100 scramble_key=0x0"
card "Sony Wireless LAN PC Card PCWA-C150S (^-^)"
version "Sony Corporation", "PCWA-C150"
manfid 0x0156, 0x0002
bind "orinoco_cs"
他メーカの認識されないカードだった場合も、/etc/pcmcia/config.opts にカード情報を追加すればよい。
version, manfid の値でバインドするドライバモジュールを決定しているらしい。
カード情報の version, manfid には cardctl コマンドの product info, manfid の値を使う。
もし、全く同じ version, manfid の場合、マッチングは後勝ちのようなので認識させたいほうの定義を後ろに持ってくる。( /etc/pcmcia/config.opts の最後に追加すればよい。)
● カード情報の例
card "hogehoge PCMCIA Card (^-^;" … @
version "hogehoge Corporation", "hogehoge" … A
manfid 0x0000, 0x0000 … B
bind "hogehoge_cs" … C
@はカードを認識できた時に cardmgr が /var/log/messages に表示する文字列。実は適当でよい。
A、Bには cardctl コマンドで表示された product info, manfid の値を指定する。
Cはカードのドライバを指定する。メジャーなカード(チップ)なら既存の定義から推測可能だが、ドライバ自体が無い場合もありえる(´▽`)
● iwconfig - Wireless NIC の設定、確認
#
iwconfig
lo
eth0
eth1
no wireless extensions.
no wireless extensions.
IEEE 802.11-DS ESSID:"hogehoge" Nickname:"pcgu1.localdomain"
Mode:Managed Frequency:2.457GHz Access Point: 00:90:99:xx:xx:xx
Bit Rate=11Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:on
Power Management:off
Link Quality:81/92 Signal level:-16 dBm Noise level:-97 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ページの先頭に戻りまス ▲