Linux, Laptop, Ethernet, and an unhappy geek

I’m trying to install Linux onto an old Micron laptop (Pentium 133). I previously installed Red Hat version 6.2 on it and had no problems. Well, I take that back, I had one problem. I went to put some development tools on it, and found that the tools don’t work with a version of linux that old.

I happen to have a couple of Slackware 9.1 disks handy, so I think, no problem. I’ll just install this, then put the development tools on it. After quite a few four letter words, I managed to get slackware installed on the laptop. However, I have one problem. The ethernet doesn’t work.

The ethernet card in this laptop is a Xicrom RealPort REM56G-10 (it’s actually a combo modem and ethernet card) which plugs into a PCMCIA slot on the side of the laptop. This card worked fine under Red Hat 6.2. It doesn’t seem to be recognized under Slackware 9.1.

I’ve noticed that when the laptop boots, one of the many messages that scrolls by is “cardmgr[56]: no pcmcia driver in /proc/devices” which is under the section where it says starting pcmcia services.

When I installed slackware, I answered “YES” to enable plug in devices (or something like that). I’m using the bare.i kernel image. I can’t recall any other options during the install that I might have stuffed up.

Anyone know where I went wrong or how to fix it?

Not an answer but thiswindows 95 install link gives the resource assignments for that card nad warns there are differences in the way 32 bit Cardbus and 16 bit PCMCIA devices (like the Xircom) are handled.

It seems the PCMCIA modules didn’t load. Are they installed?

See this (section 3.1): http://www.tldp.org/HOWTO/PCMCIA-HOWTO-3.html

I’d go right to it and compile and install Linux PCMCIA: http://pcmcia-cs.sourceforge.net/

I’m not familiar with slackware, but you might try their package manager to reinstall/install.

Your card is listed as being supported.

Oh, one more thing, check /etc/init.d for pcmcia or “/etc/init.d/pcmcia start”

I’d imagine it can’t be that easy, though.

I went looking for /etc/inet.d/pcmcia and found that slackware uses /etc/rc.d/rc.pcmcia. I went poking through this file, and found that slackware will probe for various types of pcmcia controllers. However, it also has an entry for i82092 which is commented out and says in the comments that it is used in older laptops, and won’t be probed for. I figured what the heck, and commented out PCIC=probe and put in PCIC=i82092.

Now I get the following on startup:
PCI: No IRQ known for internal pin A of device 00:13.0. Please try using pci=biosirq.
Cirrus PD6729 PCI to PCMCIA Bridge
i82092aa: configured as a 2 socket device
i82092aa: failed to register IRQ 0, aborting

And now I’m stuck. Where would I enter pci=biosirq?

Hmm, that’s a kernel parameter.

For GRUB, it would go in /boot/grub/menu.lst at the end of the kernel line for the kernel you use.

I’m not sure about LILO.

/etc/lilo.conf. You would put
append=“pci=biosirq”

Best way to do it is to make a complete new entry in the conf just in case the parameter renders the system unbootable. Then you can choose at boot time.

I tried putting append=“pci=biosirq” in lilo.conf and ran lilo.
I made the “please try using pci=biosirq” portion of the message go away, but everything else is still there and the card still doesn’t work.

Wait a minute, are you sure it’s supposed to be the i82092?

Look in /var/log/dmesg to see if it mentions it or anything else pcmcia-related.

Also trying doing an

lspci

and see if it tells you exactly what pcmcia controller you have.

Seems like this may address some of your diagnostic questions

Tools for configuring and monitoring PCMCIA devices

lspci reports the following:

00:00.0 Host bridge: Intel Corp. 430MX - 82437MX Mob. System Ctrlr (MTSC) & 82438MX Data Path (MTDP) (rev 02)
00:01.0 Bridge: Intel Corp. 430MX - 82371MX Mobile PCI I/O IDE Xcelerator (MPIIX) (rev 03)
00:13.0 PCMCIA bridge: Cirrus Logic CL 6729 (rev fe)
00:14.0 VGA compatible controller: Cirrus Logic GD 7548

/etc/rc.d/rc.pcmcia has four options:
i82365
i82092
tcic
yenta_socket

If you set it to “probe” it tries i82365, then tcic, then yenta_socket, then gives up.

There is no /var/log/dmesg.

AFAIK you should be using i82365, then. Try doing a

lsmod

and look for pcmcia_core or i82635. If you see neither, then your slackware distro might not support the controller without you having to compile the right pcmcia modules, which is probably too much trouble. But then try doing a

modprobe pcmcia_core

and see what happens. If pcmcia_core gets loaded, then try a

modprobe i82635

That’s weird. I thought slackware used that file. How about /var/log/messages? What if you just type dmesg at the command line?

Yeee-ha it finally works.

Damn that was painful.

I studied and studied and studied all of the links in this thread plus anything I could find on the web. I installed PCMCIA services and recompiled. I tried passing all sorts of parameters here and there. I gave up on slackware, and figured that RedHat 6.2 worked on this laptop, a newer version of RedHat should too. I downloaded the latest Fedora Core. The damn laptop refused to boot from the CD. Ok, I munged the CD. Nope, I can put it in another computer and it boots fine. Grrrrr. I downloaded slackware 10.2. Did I mention that downloading each of these CDs takes about half a day, and Fedora has 4 CDs and slackware has 2?

Finally, with slackware 10.2 installed, I managed to get it to work. I edited /etc/rc.d/rc.pcmcia and set PCIC=i82365. Then I did an lspci and found that the CL 6729 was at an I/O address of 0xfc5c. I tried adding PCIC_OPTS=“i365_base=0xfc5c” but that didn’t seem to work. I manually edited the call to modprobe so that it looked like:
/sbin/modprobe i82365 i365_base=0xfc5c 2> /dev/null
and this worked.
Figuring out that this was what I needed to do was not easy.

Thanks to all who responded. You didn’t give me an answer but you pointed me in directions that were helpful, which is greatly appreciated. This has been a rather frustrating experience, but I must say I learned quite a bit.

One last question:
My rc.pcmcia works, but editing the modprobe line feels like I kludged it. How should I have edited the file so that the parameters were automatically passed to modprobe?

Well, I was hoping that you would report back with some helpful error messages that you got after manually calling the modprobes, but I’m glad you got it to work.

I would have thought that your PCIC_OPTS attempt was correct (shows how much I know). Maybe you can try the /etc/modprobe.conf file (in RH/FC anyway, I think slackware is the same). Generally when modprobe is invoked to insert modules, it knows to look here for the params.