ParityCheck

July 25, 2007

Getting DeLi Linux to recognize a Xircom PCMCIA Ethernet card

Filed under: Linux — paritycheck @ 11:10 am

I was surfing the web and came upon a lightweight Linux distribution called DeLi Linux.  DeLi Linux can be used to give life and provide extended use to old computers and, in my case, to old laptops.  Being new to Linux, I discovered that part of the challenge of installing Linux is getting it to recognize old hardware.  Compared to Windows, depending upon your experience, it could take minutes or weeks to finally have Linux properly configured.  So beware, using Linux could be a real time sink.  This article will write about the steps I needed to do to get DeLi Linux to recognize a Xircom RBE-100 PCMCIA Ethernet Card.  I didn’t find a step-by-step guide anywhere about this topic.  Instead, I found a lot of unanswered questions.  So, in the spirit of helping others, I’m posting this on the Internet hoping that you will find this article useful, informative, and save you time.

What this article won’t write about is getting an Internet connection up and running.  That will be in another article.  Also, I’m not sure if this procedure applies to other Linux distributions.

1) My hardware 

First off, let me describe my laptop.  It is a Toshiba Satellite 2590CDT.  It comes with a floppy drive, CD-ROM, and a USB 1.0 port.  I bought it in 1999 for about $1500.  It has a 400 MHz Intel Celeron processor, 64 MB of RAM, and 5 GB of hard drive space.  Like I said earlier, the network card is a Xircom RBE-100 PCMCIA.

2) Edit /etc/rc.d/pcmcia

You’ll need to define your PCIC module.  In the pcmcia file, where it says..

else
    # Slackware startup options go right here:
    # Should be either i82365 or tcic
    PCIC=
    # Put socket driver timing parameters here
    PCIC_OPTS=
    # Put pcmcia_core options here
    CORE_OPTS=
    # Put cardmgr options here
    CARDMGR_OPTS=
    # To set the PCMCIA scheme at startup…
    SCHEME=
fi

Change it to..

else
    # Slackware startup options go right here:
    # Should be either i82365 or tcic
    PCIC=yenta_socket
    # Put socket driver timing parameters here
    PCIC_OPTS=
    # Put pcmcia_core options here
    CORE_OPTS=
    # Put cardmgr options here
    CARDMGR_OPTS=
    # To set the PCMCIA scheme at startup…
    SCHEME=
fi

In addition, find out where a program called pidof is executed by typing

which pidof

You should get an output that looks like
/bin/pidof

Where it says the following in the /etc/rc.d/pcmcia…

    status)
 pid=`/sbin/pidof cardmgr`

Change it to point to the pidof program identified by running ‘which pidof’

    status)
 pid=`/bin/pidof cardmgr`

3) Load and install the hotplug program.

Something I didn’t find out until I read some fine print on a website is a program called hotplug.  It is used in conjunction with Linux kernels 2.4 and later to manage CardBus cards.  It wasn’t included as part of the DeLi Linux distribution I loaded into my Toshiba.  I’m not sure if it will be in the future.  So, you’ll need to find out if it is installed already by typing ‘which hotplug’.

If you get a message like:
which: no hotplug in (/bin:/sbin:<blah><blah><blah>)

then it is definitely not installed.

The latest version of hotplug can be downloaded from http://linux-hotplug.sourceforge.net.  Simply uncompress and follow the instructions.

You’ll know when you’ve succeeded in installing hotplug when you type ‘which hotplug’ and you get a message like this:
/sbin/hotplug

4) Verify that the ethernet card is seen and is usable by Linux

The following describes Linux commands in bold that are typed in a shell followed by resulting output.  If you have successfully executed the steps above, you should be getting similar results.

lsmod
Module                  Size  Used by    Not tainted
xircom_cb               5032   0  (unused)
ds                      6132   2
yenta_socket            9380   2
pcmcia_core            35300   0  [ds yenta_socket]
….

..

I purposely omitted unrelated drivers.  Note that DeLi Linux already contains the appropriate drivers for the Xircom RBE-100 contained in xircom_cb.

cardctl ident
Socket 0:
  product info: “Xircom”, “CardBus Ethernet II 10/100″, “CBEII-10/100″, “1.03″
  manfid: 0×0105, 0×0103
  function: 6 (network)
Socket 1:
  no product info available

cat /var/lib/pcmcia/stab
Socket 0: CardBus hotplug device
Socket 1: empty

cardmgr sees the Xircom as a hot plug PCI device in Socket 0.

lspci
00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX – 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX – 82443BX/ZX/DX AGP bridge (rev 03)
00:02.0 CardBus bridge: Toshiba America Info Systems ToPIC97 (rev 05)
00:02.1 CardBus bridge: Toshiba America Info Systems ToPIC97 (rev 05)
00:05.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
00:05.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
00:05.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
00:05.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
00:07.0 Communication controller: Lucent Microelectronics 56k WinModem (rev 01)
00:0a.0 Communication controller: Toshiba America Info Systems FIR Port (rev 23)
00:0c.0 Multimedia audio controller: ESS Technology ES1978 Maestro 2E (rev 10)
01:00.0 VGA compatible controller: Trident Microsystems Cyber 9525 (rev 49)
14:00.0 Ethernet controller: Xircom Cardbus Ethernet 10/100 (rev 03)

Device 14:00.0 is the Xircom RBE-100.

ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:10:A4:F8:DA:F9 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:11 Base address:0×4000

lo        Link encap:Local Loopback 
          LOOPBACK  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

dmesg
Yenta ISA IRQ mask 0×04b0, PCI irq 11
Socket status: 30000020
Yenta ISA IRQ mask 0×04b0, PCI irq 11
Socket status: 30000007
cs: cb_alloc(bus 20): vendor 0×115d, device 0×0003
PCI: Enabling device 14:00.0 (0000 -> 0003)
cs: IO port probe 0×0c00-0×0cff: clean.
cs: IO port probe 0×0800-0×08ff: clean.
cs: IO port probe 0×0100-0×04ff: excluding 0×378-0×37f 0×4d0-0×4d7
cs: IO port probe 0×0a00-0×0aff: clean.
PCI: Setting latency timer of device 14:00.0 to 64
eth0: Xircom cardbus revision 3 at irq 11

Here, I’ve only included the relevant information.  Notice that the Xircom card was assigned to eth0.

5) And that should be it.  Here are some references that helped me get to this point.

http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO-3.html
Contains more detailed information about installing and debugging PCMCIA devices

http://www.unix-manuals.com/refs/vi-ref/vi-ref.htm
Reference guide to vi editor.  A lightweight editor that comes with the DeLi Linux distribution.  The vi editor is handy for editing the file I mentioned in step 2.

http://linux-hotplug.sourceforge.net
Contains more detailed information about the hotplug program
 

No Comments Yet »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.