WLAN with Intersil ISL3886 chip on Linux Ubuntu 6.10

[According to my statistics, this page is becoming the most read one on this blog. Hence, I will try to keep it up to date.]
I found a lot of outdated information on the Internet while I was looking for a way to get this adapter to work. In the hope this can help others, I am summarizing below what it took to get the Intersil chip working with Linux. This page is Ubuntu/Debian specific. If your are running a Redhatish flavour of Linux, it broadly applies too, but you would have to make adjustments of course. See also the end of the post for things your should NOT do.

First of all, the Intersil ISL3886 chip is wrongly detected by the kernel at boot-up, in that the latter installs modules which prevent the adapter to work.

In short, the ISL3886 has a “light” firmware built-in. Most of the code is downloaded to the chip by the software device driver. The only available driver is written for MS Windows. We will have to use NDISwrapper to load the Windows device driver.

So, the steps to take are:

  1. Make sure you have a working wired connection to the Internet for now. You will need it to download additional software packages.
  2. Disable the wrongly loaded modules: in /etc/modprobe.d/blacklist, add:
    #Disable Intersil Javelin autoloading because we want to use NDISWrapper
    blacklist islsm
    blacklist islsm_pci
    blacklist islsm_device
    blacklist prism54
  3. Unload the wrongly loaded modules:
    sudo modprobe -r islsm_pci
  4. Get the Prism Windows driver. I got mine from Fujitsu-Siemens: http://support.fujitsu-siemens.com
  5. Install ndiswrapper, if necessary and the Windows driver through NDISWrapper:
  6. sudo apt-get install ndiswrapper
    cd  /where_you_installed_the_driver/
    sudo ndiswrapper -i prismA00.inf (this should be the name of the Windows INF file in the folder)
    sudo ndiswrapper -l (shows if the driver is installed)
    sudo modprobe ndiswrapper  (this inserts the module in the kernel and might bark if it does not succeed)
    sudo ndiswrapper -m (this creates a default entry for ndiswrapper in /etc/modprobe.d/)
  7. For some reason the ndiswrapper module would not load automatically at start-up for me. I added “insmod ndiswrapper” to /etc/rc.local. Not clean, but it works.
  8. Get the Network Manager package (for Gnome) or kNetwork Manager (for KDE).
  9. sudo apt-get install network-manager
    sudo apt-get install knetworkmanager
  10. Reboot.
  11. Note: you could avoid a reboot if you carefully ‘rmmod’ the kernel modules defined under point 1 above and then kill your X session (Control-Alt-Backspace).

After the reboot, if all went well, you should have an additional applet in the top bar (Gnome) or the bottom bar (KDE). Right-click on the icon, select Wireless LAN. You should now have a list of available WLANs in the area. Select the one you want, the encryption type, if any, and the password if needed.

[RANT]
Actually, I do not understand why the default installation of Ubuntu does not install the right drivers for network cards requiring NDISwrapper. I understand these drivers are proprietary and thus the open source community is reluctant to include them. However, this would make the distribution appealing even for non-specialist users.

I do not understand either why the default installation of (k)Ubuntu does not include the Network Manager applet. This applet works with all WLAN security protocols to date.

The default tools do not support WPA or WPA2, where you would actually expect they would. After all, WPA is at least 3 years old. At first, when you see no option to choose between WEP or WPA, you just think the software is smart enough to figure out which protocol to use. Well no. It has stopped its development 5 years ago.
[/RANT]

Additional interesting info: Howto: Get Network Manager to stop asking you for your keyring password

Things you should not do:

There are several web pages with detailed instructions to get WPA working under Ubuntu. Most apply to older versions. If at all possible, stick to the above description and use the GUI method. Refrain from trying to launch everything from the command line. The kernel, ndiswrapper and wpa_supplicant have changed a lot since those web pages were written and you would end up in a dead end.

As an example. Ndiswrapper now supports the kernel wireless extensions, as defined in later versions of the 2.6 kernel. Thus, calling wpa_supplicant with a ‘-Dndiswrapper’ parameter will not work. It took me quite some time to find out that this applied to older versions of Ubuntu, not 6.10/Edgy, which includes ndiswrapper 1.18, wpa_supplicant 0.5.4 and kernel 2.6.17.

Responses

  1. Setting up Wifi on Thinkpad T22 using 2Wire 802.11g PC card on Ubuntu 6.10 | BoxySystems Inc. says:

    14 May 2010 at 19:52 (#)

    [...] WLAN with Intersil ISL3886 chip on Linux Ubuntu 6.10 [...]

Leave a Response

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

You're just using IPv4. Your address is 38.107.191.111.

Disclaimer

This site does not reflect the views of my employer, nor that of the Internet Society or its Luxembourg chapter

SPF and DKIM adoption rate

  • E-mails reaching this server on 3 Sep 2010
    SPF enabled e-mails: 2.47%
    DKIM signed e-mails: 2.24%
    DKIM signed mails sent: 57

My Twitter feed

Archives



Valid XHTML 1.0 Transitional