Installing a wireless network card without linux drivers

 

I installed a ASUS WL-138g wireless network card into my PC running ferdora 7

Unfortunately I could not find any Linux drivers for this card, so I used a utility called ndiswrapper. ndiswrapper implements a Windows kernel API and NDIS (Network Driver Interface Specification) API within the Linux kernel.

To view information about your installed card run the following commands

# lspci

00:0d.0 Ethernet controller: Marvell Technology Group Ltd. Marvell W8300 802.11 Adapter (rev 07)

# lspci -n

00:0d.0 Class 0200: 11ab:1fa6 (rev 07)

The windows drivers included with the WL-138g card are not very compatible with ndiswrapper. Therefore I used the pciid number found above 11ab:lfa6 to find other drivers. The WL-138g card uses the same chips that the D-Link DWL-G510 uses, I therefore downloaded this driver.

To use windows drivers with linux you need the unshield utility to extract the .cab files.

You need to extract data1.cab and data2.cab using unshield as follows

unshield x *.cab

Cabinet: data1.cab

extracting: ./InfXP/mrv8k51.inf
extracting: ./DrvXP/MRV8K51.sys
extracting: ./Inf98/mrv8k51.inf
extracting: ./Inf2K/mrv8k51.inf
extracting: ./Drv98/MRV8K51.sys
extracting: ./Drv2K/MRV8K51.sys

To install a driver, ndiswrapper needs to have both a .ini and .sys file in the same directory. The windows 98 drivers work with my 2.6.20 kernel, I therefore copied the Inf98/mrv8k51.inf and Drv98/MRV8K51.sys into an empty directory

Ensure you read the INSTALL file in the ndiswrapper directory on how to install ndiswrapper, make sure you have the kernel_devel rpm installed for your exact version of kernel, without this rpm ndiswrapper won't compile and a wrong version of kernel_devel will cause issues when trying to install the ndiswrapper later on

Run the following command to install the ndis driver

ndiswrapper -i mrv8k51.inf
…
ndiswrapper -l
Installed ndis drivers:
mrv8k51 driver present, 11ab:1fa6 hardware present

We then need to load ndiswrapper into the kernel as follows

modprobe ndiswrapper

That's it, run ifconfig -a to see the interface, it should be labelled wlan0

Use a linux network utility to configure the wireless details to enable connection to your ADSL router