Networking :: WiFi Compaq Armada 1510



I'm having considerable problems to install a WiFi PCMCIA card on an old laptop.

The facts:
I had an old Compaq Armada "collecting dust" and decided to install  DSL. More as a challenge to see how far I can get with DSL, WLAN, ... This laptop is an 160 MHz Pentium I PC, with a 1GB disk, and 16 MB of RAM. However no wireless LAN, well, ..., not even LAN, just an analog modem.
The WLAN card is called "X-Micro", according to the driver a "Realtek RTL8180L 802.11b MAC"
This is what dmesg tells me after booting:
Code Sample

Linux version 2.4.26 (root@Knoppix) (gcc version 2.95.4 20011002 (Debian prerelease)) #1 SMP Sa Apr 17 19:33:42 CEST 2004
BIOS-provided physical RAM map:
BIOS-e801: 0000000000000000 - 000000000009f000 (usable)
BIOS-e801: 0000000000100000 - 0000000001000000 (usable)
0MB HIGHMEM available.
16MB LOWMEM available.
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
DMI not present.
ACPI: Unable to locate RSDP
Kernel command line: BOOT_IMAGE=Linux ro root=302 hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi hdf=scsi hdg=scsi hdh=scsi apm=power-off nomce noapic
ide_setup: hda=scsi
ide_setup: hdb=scsi
ide_setup: hdc=scsi
ide_setup: hdd=scsi
ide_setup: hde=scsi
ide_setup: hdf=scsi
ide_setup: hdg=scsi
ide_setup: hdh=scsi
No local APIC present or hardware disabled
Initializing CPU#0
Detected 116.881 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 232.65 BogoMIPS
Memory: 13260k/16384k available (1371k kernel code, 2736k reserved, 561k data, 140k init, 0k highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
Intel Pentium with F0 0F bug - workaround enabled.
CPU:     After generic, caps: 000001bf 00000000 00000000 00000000
CPU:             Common caps: 000001bf 00000000 00000000 00000000
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au)
mtrr: detected mtrr type: none
CPU:     After generic, caps: 000001bf 00000000 00000000 00000000
CPU:             Common caps: 000001bf 00000000 00000000 00000000
CPU0: Intel Pentium 75 - 200 stepping 0c
per-CPU timeslice cutoff: 161.00 usecs.
SMP motherboard not detected.
Local APIC not detected. Using dummy APIC emulation.
Waiting on wait_init_idle (map = 0x0)
All processors have done init_idle
ACPI: Subsystem revision 20040326
ACPI: Interpreter disabled.
PCI: PCI BIOS revision 2.10 entry at 0xf73c3, last bus=0
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: ACPI tables contain no PCI IRQ routing entries
PCI: Probing PCI hardware (bus 00)
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
VFS: Disk quotas vdquot_6.5.1
pty: 256 Unix98 ptys configured
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
OPTI621X: IDE controller at PCI slot 00:14.0
OPTI621X: chipset revision 18
OPTI621X: not 100% native mode: will probe irqs later
OPTI621X: neither IDE port enabled (BIOS)
hda: TOSHIBA MK1002MAV, ATA DISK drive
hdb: UJDCD8700, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: attached ide-disk driver.
hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda: 2116800 sectors (1084 MB) w/128KiB Cache, CHS=525/64/63
Partition check:
hda: hda1 hda2
ide: late registration of driver.
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 1024)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 140k freed
Real Time Clock Driver v1.10f
Adding Swap: 124952k swap-space (priority -1)
hdb: attached ide-scsi driver.
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
 Vendor: MATSHITA  Model: UJDCD8700         Rev: 1.06
 Type:   CD-ROM                             ANSI SCSI revision: 02
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 8x/8x xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.12
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16)
Linux Kernel Card Services 3.1.22
 options:  [pci] [cardbus] [pm]
Yenta ISA IRQ mask 0x06f8, PCI irq 15
Socket status: 30000006
Yenta ISA IRQ mask 0x06f8, PCI irq 11
Socket status: 30000020
cs: cb_alloc(bus 2): vendor 0x10ec, device 0x8180
PCI: Enabling device 02:00.0 (0000 -> 0003)
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x250-0x257 0x330-0x337 0x378-0x37f 0x388-0x38f 0x3f8-0x3ff 0x408-0x40f 0x480-0x48f 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-uhci.c: $Revision: 1.275 $ time 19:48:59 Apr 17 2004
usb-uhci.c: High bandwidth mode enabled
usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
usb.c: deregistering driver usbdevfs
usb.c: deregistering driver hub
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb.c: deregistering driver usbdevfs
usb.c: deregistering driver hub
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
parport0: PC-style at 0x378 [PCSPP,TRISTATE,EPP]
floppy0: unexpected interrupt
floppy0: sensei repl[0]=80
cloop: Initializing cloop v2.01
cloop: loaded (max 128 devices)
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb.c: registered new driver hiddev
usb.c: registered new driver hid
hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>
hid-core.c: USB HID support drivers
mice: PS/2 mouse device common for all mice
sr0: CDROM (ioctl) reports ILLEGAL REQUEST.
cdrom: open failed.
Device not ready.  Make sure there is a disc in the drive.



What I did:
Installed DSL 3.0.1 from CD. I partitioned the HD in a 128MB swap, and left the rest for DSL. After a few bootings, and checking if everything was correct, I went for the WLAN. I first installed the PCMCIA card, but it was not recognized as a valid interface. I was expecting it, and went for the "ndiswrapper" alternative. First I tried it with the original winXP drivers of the driver CD of the X-Micro card. I copied the winXP driver to:
Code Sample
/home/dsl/wlan/

installed the driver:
Code Sample
ndiswrapper -i /home/dsl/wlan/net8180.inf

when I do a:
Code Sample
ndiswrapper -l

DSL lists the net8180 and informs that the hardware is available. If I look with
Code Sample
lspci -v

I get
Code Sample

0000:00:00.0 Host bridge: OPTi Inc. 82C701 [FireStar Plus] (rev 10)
Subsystem: Unknown device 035c:0e11
Flags: bus master, medium devsel, latency 0

0000:00:01.0 ISA bridge: OPTi Inc. 82C700 [FireStar] (rev 10)
Subsystem: Unknown device 035c:0e11
Flags: bus master, medium devsel, latency 0

0000:00:02.0 VGA compatible controller: Cirrus Logic GD 7548 (prog-if 00 [VGA])
Flags: fast devsel
Memory at 40000000 (32-bit, non-prefetchable) [size=16M]
Memory at 41000000 (32-bit, non-prefetchable) [size=16M]

0000:00:11.0 CardBus bridge: Texas Instruments PCI1131 (rev 01)
Flags: bus master, medium devsel, latency 168, IRQ 15
Memory at 7fffe000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=01, subordinate=01, sec-latency=176
Memory window 0: 10000000-103ff000 (prefetchable)
Memory window 1: 10400000-107ff000
I/O window 0: 00004000-000040ff
I/O window 1: 00004400-000044ff
16-bit legacy interface ports at 0001

0000:00:11.1 CardBus bridge: Texas Instruments PCI1131 (rev 01)
Flags: bus master, medium devsel, latency 168, IRQ 11
Memory at 7ffff000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=02, subordinate=02, sec-latency=176
Memory window 0: 10800000-10bff000 (prefetchable)
Memory window 1: 10c00000-10fff000
I/O window 0: 00004800-000048ff
I/O window 1: 00004c00-00004cff
16-bit legacy interface ports at 0001

0000:00:14.0 IDE interface: OPTi Inc. 82C825 [Firebridge 2] (rev 12) (prog-if 80 [Master])
Subsystem: Unknown device 035c:0e11
Flags: medium devsel
I/O ports at 1000 [size=16]

0000:02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8180L 802.11b MAC (rev 20)
Subsystem: Realtek Semiconductor Co., Ltd. RTL8180L 802.11b MAC
Flags: bus master, medium devsel, latency 64, IRQ 11
I/O ports at 4800 [size=256]
Memory at 10c00000 (32-bit, non-prefetchable) [size=512]
Capabilities: <available only to root>


Then
Code Sample
lsmod

tells me that there is no ndiswrapper. I went for a:
Code Sample
modprobe ndiswrapper

and nothing happens!
If I look at dmesg, I see:
Code Sample

cs: cb_free(bus 2)
cs: cb_alloc(bus 2): vendor 0x10ec, device 0x8180
PCI: Enabling device 02:00.0 (0000 -> 0003)
PCI: Setting latency timer of device 02:00.0 to 64
__alloc_pages: 0-order allocation failed (gfp=0x21/0)
ndiswrapper (NdisMAllocateSharedMemory:926): couldn't allocate 2042 bytes of cached DMA memory
ndiswrapper (NdisWriteErrorLogEntry:246): log: C0001389, count: 1, return_address: c1950a1e
ndiswrapper (NdisWriteErrorLogEntry:249): code: 1026
ndiswrapper (miniport_init:273): couldn't initialize device: C000009A
ndiswrapper (pnp_start_device:497): Windows driver couldn't initialize the device (C0000001)



My understanding:
I have a problem with the driver. :(

I tried the same approach with a newer version (1.73) of the driver from
http://www.realtek.com.tw/downloa....TL8180L
However I see the same error code. My understanding is that I have a real problem with the WLAN card, DSL, and the old laptop as it is not able to allocate enough memory for the NDIS wrapper.

Solutions I tried:
1) I tried to install the Linux 2.4.XX drivers from Realtek. However it did not work, as both ".o" files available are for 2.4.18 and 2.4.20 and I get the gcc/lib error message about the wrong version.
2) Changing of driver version (CD version and the Realtek one) didn't help.
3) I tried to boot it with the card, tried to boot it without the card, and so on. But I always get the same error.
4) I thought about changing the Linux distribution. My guess is that changing the Linux distribution will not help, as probably all of them will come back to the "ndiswrapper" solution.
5) I discarded trying to install win98. :p

As the DSL is without a connection, it is quite complicated to download the source code of the driver, get the right gcc version installed, figure out where I can resize buffer sizes, compile it on another box, and load it via the 1.44" floppy of the Compaq Armada.


Does anyone has an idea of what else I could do?  
Any HELP would be really apreciated!

======================================
me, myself, and I

Often times trying to use a newer pcmcia wireless card on very old machine is very difficult. Your main issue is not enough memory. The ndiswarpper does indeed need to allocate memory and you are already at the minimum 16MB.

If updagrading memory is not an option then either obtain a natively supported pcmcia card or go the route of compiling a driver. The first option is obviously much easier.


original here.