[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: wireless PCI card [SOLVED]

Let me say thanks to everyone who helped me figure this out.  Rodney,
Sergio, Alvin: I thank you.

For anyone else who is in my situation, here's what I had to do to get
the card working...

I bought a new Hawking Tech. HWP54G-CA card because I learned that
it used a Linux-supported chipset: the PrismGT.

When it arrived, I installed it on my Debian Sarge machine, booted the
machine up and... it didn't work!  Argh!  I quickly began trying to
figure out what was wrong.  Was the card recognized at all?  Were
there drivers for the card?  lspci revealed that the card was found
and recognized:

jrennie@syrah:~$ lspci -v
0000:00:0b.0 Network controller: Intersil Corporation Intersil ISL3890 [Prism
+GT/Prism Duette] (rev 01)
        Subsystem: Unknown device 17cf:0020
        Flags: bus master, medium devsel, latency 64, IRQ 12
        Memory at cfff4000 (32-bit, non-prefetchable) [size=8K]
        Capabilities: <available only to root>

lsmod revealed that Debian had even loaded the prism54 driver:

jrennie@syrah:~$ lsmod
prism54                45932   0 (unused)
firmware_class          3980   0 [prism54]

Some reading on mailing lists led me to try ndiswrapper.  I wasted a
few hours building ndiswrapper kernel modules.  Turns out ndiswrapper
was no help.  For those of you playing at home: don't try ndiswrapper.

More reading revealed that chipsets like mine (Intersil ISL3890
PrismGT) require "firmware".  The prism54 is the right module, but it
requires firmware for the specific chipset.  During boot and when I
ran "/etc/init.d/networking restart", I saw complaints to the effect
of "request for firmware failed for isl3890".  Firmware for Prism
GT/Duette is available here:


I downloaded and copied it to /usr/lib/hotplug/firmware.
More reading revealed that this file should be renamed to the name of
your chipset.  In my case, it should be renamed to 'isl3890'.
I.e. after much trial-and-error, I effectively did this:

sudo mv /usr/lib/hotplug/firmware/isl3890

With that in place, all I had to do was to add an appropriate entry to
/etc/network/interfaces.  Though, this tripped me up too.  Somewhere,
someone suggested that the device name for the card would be wlan0.
Nope, it was eth1 (not eth0 since the regular ethernet card took
that).  Easy way to find out the correct device name is to run
/sbin/iwconfig (in the wireless-tools package) without any arguments.
This is what mine looked like (before I had it working):

jrennie@syrah:~$ /sbin/iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      NOT READY!  ESSID:off/any
          Mode:Managed  Channel:0  Access Point: 00:00:00:00:00:00
          Tx-Power=31 dBm   Sensitivity=0/200
          Retry min limit:0   RTS thr=0 B   Fragment thr=0 B
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Finally, all I had to do was add this entry to /etc/network/interfaces:

auto eth1
iface eth1 inet dhcp

After a reboot, the card came up without a problem.  Next reboot, I
disabled my on-board ethernet card so that the wireless card got eth0.

This set-up works for both 2.4.x and 2.6.x kernels (I've tested on one
2.4 and one 2.6).  The real key was installing the firmware and
knowing what to name it.  In theory, installation should be as easy as:

wget http://prism54.org/~mcgrof/firmware/
sudo mv /usr/lib/hotplug/firmware/isl3890
sudo halt
# Remove or disable regular ethernet card.
# Boot up your fancy new machine with wireless ethernet

The wireless card should get eth0; as long as you have the standard
eth0 entry in your /etc/network/interfaces, it should be brought up
during boot.


Reply to: