はじめに

有限会社シンクチューブ さんで販売されている Z-Com Frisbee NIC with 2dBi indoor Antenna と WRAP.2C(64MB) で無線LANアクセスポイントを作ります。

Z-Com Frisbee NIC with 2dBi indoor Antenna は、miniPCI無線LANカードとアンテナがセットになっている商品で、無線LANのチップには prism Frisbee が使われています。 Linux ですとカーネル付属のドライバ prism54 が使えます。

Z-Com Frisbee NIC with 2dBi indoor Antenna

Z-Com Frisbee NIC with 2dBi indoor Antenna

また、このminiPCI無線LANカードとアンテナのセットは TELEC認証済みです。

Z-Com Frisbee NIC

Z-Com Frisbee NIC

LEAF Bering-uClibc 2.3 のインストール

PC Engines WRAP で LEAF Bering-uClibc を使うSoekris net4511 と LEAF Bering-uClibc で 無線 LAN アクセスポイントを作る でも LEAF Bering-uClibc のインストール方法を説明していますのでそちらを参照してください。

以前の LEAF Bering-uClibc では、WRAP にインストールした場合、「Linux 起動時に キーボードコントローラが動かないと言うメッセージが多量に表示される」という問題がありましたが、LEAF Bering-uClibc 2.3 では WRAP 用のカーネルを使わないでも大丈夫なようです。

 

 

WRAP.2C に無線LANカードを装着 前面 WRAP.2C に無線LANカードを装着 背面
WRAP.2C に無線LANカードを装着 前面 WRAP.2C に無線LANカードを装着 背面
WRAP.2C をケースに格納 アンテナを装着
WRAP.2C をケースに格納 アンテナを装着

 

 

LEAF Bering-uClibc 2.3 の設定

leaf.cfg の設定を以下に示します。

# This file is parsed as a shell script
# Kernel command line parameters are available as KCMD_
# ie: KCMD_LRP contains the LRP= portion of the kernel command line
# NOTE: For kernel command line settings that do not include an equals
# sign (ie: rw or similar), the variable is set to itself, allowing
# for easy testing (ie: KCMD_rw=rw).

# LRP and PKGPATH variables now support whitespace (space, tab, newline)
# as well as commas for seperators.

# Uncomment for more verbose execution.
#VERBOSE=1

# Other variables you might want to set in this file include:
# LRP		Packages to load
# PKGPATH	Device(s) to load packages from
# syst_size	Size of root ramdisk
# tmp_size	Size of /tmp ramdisk
# log_size	Size of /var/log ramdisk

# Example:
#LRP="$KCMD_LRP rsync"
LRP="root config etc local modules bridge dhcpd keyboard ulogd uhotplug dnsmasq dropbear ntpdate libm wireless mhttpd webconf"
PKGPATH="/dev/hda1:msdos"
syst_size=10M
log_size=2M

WRAP.2C を無線 LAN アクセスポイントにするためにパッケージ bridge、libm、wireless が必要です。また、Z-Com Frisbee のファームウェアをロードするために uhotplug が必要で、DHCP サーバにもするので dhcpd も必要です。これらは Packages 2.x – Bering uClibc よりダウンロードしコンパクトフラッシュへコピーしておきます。

  • /etc/modules を以下のように修正。バックアップを忘れずに。
    # Some modules need this, like 8390, natsemi, 8139too, tulip
    crc32
    firmware_class
    
    # Those realtek based NICs need mii module
    mii
    
    # PCI ethernet cards
    natsemi
    prism54
    
    # Watchdog support, always choose one
    # wd1100 module available in kernel/drivers/char
    wd1100
    
    #
    # Bridge support
    bridge

    firmware_class.o , prism54.o , wd1100.o を LEAF Bering-uClibc 2.3 released の Bering-uClibc_modules_2.4.31.tar.gz から取得し、/lib/modules へコピーしておきます。

    Z-Com Frisbee のファームウェアは、http://prism54.org/fullmac.html の 1.0.4.3.arm を取得し、isl3890 にリネームして /etc/firmware にコピーします。

  • /etc/network/interfaces は以下のようになります。
    # Loopback interface.
    auto lo
    iface lo inet loopback
    
    # Option 1.2: eth0 / Fixed IP (assumed to be 1.2.3.4).
    # 		(broadcast/gateway optional)
    auto eth0
    iface eth0 inet static
    	address 0.0.0.0
    	netmask 255.255.255.255
    
    auto eth1
    iface eth1 inet static
    	address 0.0.0.0
    	netmask 255.255.255.255
    
    # Step 4 (optional): configure a bridge
    auto br0
    iface br0 inet static
    	address 192.168.1.100
    	netmask 255.255.255.0
    	broadcast 192.168.1.255
    	gateway 192.168.1.254
    	pre-up iwconfig eth1 mode master essid xxxx <-- ESSID を設定
    	pre-up iwconfig eth1 key s:xxxxxxxxxxxxx <-- WEP キー(128bit 13文字) を設定
    	pre-up brctl addbr br0
    	pre-up brctl addif br0 eth0
    	pre-up brctl addif br0 eth1
  • DHCP サーバの設定は以下です。/etc/dhcpd.conf
    default-lease-time 604800;
    max-lease-time 1209600;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.200 192.168.1.253;
        option domain-name-servers 111.222.333,444, 222.333.444.555;<-- ドメインネームサーバの IP アドレスを設定
        option broadcast-address 192.168.1.255;
        option routers 192.168.1.254;
    }

    /etc/default/dhcp

    # Defaults for dhcp initscript
    # sourced by /etc/init.d/dhcp
    # installed at /etc/default/dhcp by the maintainer scripts
    
    # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
    #	Separate multiple interfaces with spaces, e.g. "eth0 eth1".
    INTERFACES="br0"

参考文献

  • UNIX USER 2004 7 月号
      Linux ドライバの対応状況とアクセスポイントの構築 (ファム 根津研介)