April 10, 2005

Build prism54 AP

Please read prism54 README first, it's very clear.
The following is my notes.
My environment
Kernel: 2.4.25
Card: Corega CG-WLCB-54GT (ref. Chipsets and Wireless cards supported by the Linux prism54 driver)
eth0 as WAN, eth1 as LAN

I chose 2nd way (not patch kernel) describe in prism54 README

wget http://prism54.org/pub/linux/testing/tars/2004-06/prism54-1.2.tar.bz2
tar jxvf prism54-1.2.tar.bz2
cd prism54-1.2
make KDIR=/usr/src/linux-2.4.25 clean modules

then get prism54.o module

Kernel config
CONFIG_EXPERIMENTAL: y
  Code maturity level options --->
   Prompt for development and/or incomplete code/drivers
CONFIG_HOTPLUG: : y
  General setup --->
   Support for hot-pluggable devices
CONFIG_FW_LOADER: m/y (either one will work)
  Library routines --->
   Hotplug firmware loading support (EXPERIMENTAL)
CONFIG_NET_RADIO : y
CONFIG_NET_WIRELESS : y
  Network device support --->
   Wireless Lan (non-hamradio)
For PCMCIA Cards :
CONFIG_PCMCIA && CONFIG_CARDBUS
  General setup --->
   PCMCIA/CardBus support --->
   PCMCIA/CardBus support (m or y)
   [*] CardBus support (Important!)

Make new kernel (make dep && make bzImage)

Get firmware

mkdir -p /usr/lib/hotplug/firmware
cd /usr/lib/hotplug/firmware
wget http://prism54.org/firmware/1.0.4.3.arm
mv 1.0.4.3.arm isl3890

Boot with new kernel and use prism54.o module
Make sure the hotplug system has been setup properly,
otherwise you might get errors in the kernel log stating that request_firmware() has failed
  • does "cat /proc/sys/kernel/hotplug" show something like "/sbin/hotplug"?
  • is /sbin/hotplug present?
  • is the "firmware" agent is present (call /sbin/hotplug without any argument to show a list of available agents)
  • have you copied the firmware file into the folder expected by firmware.agent? (usually "/usr/lib/hotplug/firmware/")
  • for 2.6.x you need to mount sysfs!
    insmod prism54.o

    I've tried many times and got this error, maybe you never get this message.
    PCI: No IRQ known for interrupt pin A of device 0000:01:00.0.
    eth2: could not install IRQ handler

    Solution: enable ACPI and disable APM in kernel config and enable ACPI support in BIOS
    If no error occured,
    ifconfig eth2 up
    iwconfig eth2 mode master
    iwconfig eth2 essid default

    Finaly, bind eth1 and eth2 as bridge, prism54 AP should work now.

    Use iwpriv to make MAC ACL control (different from hostap)

    iwpriv eth2 setPolicy 0 (Accept every client.)
    iwpriv eth2 setPolicy 1 (Accept everybody except client whose MAC is in the list)
    iwpriv eth2 setPolicy 2 (Reject everybody except clients in the list.)
    iwpriv eth2 addMac xx:xx:xx:xx:xx:xx (add MAC in the list)
    iwpriv eth2 delMac xx:xx:xx:xx:xx:xx (del MAC in the list)

    I found if setPolicy too many times, prism54 driver will crash, maybe a bug.

    Note:
    prism54 was build in kernel >=2.4.28 or kernel >=2.6.8, you don't need to patch kernel if you use new kernel.

    ref. 使用 PCMCIA wireless card + hostap 架設 AP
    http://prism54.org/forums/viewtopic.php?t=659&highlight=prism54+pci+device+memory+region+configured
    http://prism54.org/pipermail/prism54-users/2004-May/001380.html

    prism54: PCI device memory region not configured; fix your BIOS or CardBus bridge/drivers

    Posted by pank at April 10, 2005 09:14 PM
  • Comments
    Post a comment













    Remember personal info?