PCMCIA Support for Minix

modified: 02 Nov 2003

PCMCIA support for Minix

asw 2003-11-02

PCMCIA, or PC Cards, are the small hot-pluggable cards used to add modem, ethernet, and other interfaces to laptop computers. The problem they present to Minix is that there is a layer of interface between the PC bus that Minix knows about and the sockets these cards occupy. Once that interface is properly initialized cards plugged into the PCMCIA slots act exactly like cards plugged into a standard ISA peripheral slot on a desktop computer. Minix, however, does not have built-in support for the PCMCIA layer as of Minix version 2.0.3.

Soon after the release of Minix 2.0.0 I found a need to use Minix with ethernet on a laptop computer, using a PCMCIA ethernet adapter. Kees sent me a test program for the PCMCIA interface, and another program designed to initialize it. These were written by Philip Homburg, and as I understand it were sufficient to initialize the slots on laptops he and Kees owned. Kees's instructions to were to send him the output of the test program and then heor Philip would suggest how I should proceed. I never was able to make enough sense of this to use Minix to initialize the interface for my Compaq Armada laptop, but part of my problem was that I was in Nicaragua at the time, and did not have Internet access that might have allowed me to find more information on the requirments. Kees gave me a lot of warnings about potential dangers, especially that incorrect settings could result in excessive voltages being applied to devices.

I think this was very much a one-off project that Philip did not feel motivated to develop into anything of general usefulness, and when I have responded to queries about this I have been careful not to imply that there is a general solution or to offer to post the code Kees sent me.

My eventual solution for my Compaq laptop takes advantage of the fact that I have both Linux and Minix on that computer. I start Linux to activate my PCMCIA ethernet card, then do a warm reboot to start Minix. The trick I used was to modify the Linux /etc/rc.d/init.d/pcmcia script by commenting out the normal actions taken to stop the pcmcia services. Thus, when I stopped Linux and booted Minix, the PCMCIA interface was already active. This allowed me to use both PCMCIA modem and ethernet cards with Minix as if they were ordinary adapter cards on the ISA bus in a desktop computer.

Recent (Fall 2003) developments posted to comp.os.minix

From: quakewang@yeah.net (Wangzhi)
Newsgroups: comp.os.minix
Subject: I "ported" Minix-vmd PCMCIA driver to minix2.0.0!
Date: 31 Oct 2003 18:44:29 -0800

There is rudimentary package for Minix-vmd in
I download the enable.c , i82365.h and ibmeth.c from there, and copy
them to my minix2.0.0 use my method posted before (

1. I commented the line "#include <ibm/portio.h>" (for minix 2.0.0 do
not have this file),
2. I use  cc -o enable enable.c and cc -o ibmeth ibmeth.c  to compile
and link them, then everything is ok(ignore several warnings)
3. ./enable [enter] 
   Appling power to socket 0.  
   (If you have two sockets for pcmcia card use the bottom one, at
least I use this one that the enable can appling power to my network
4. ./ibmeth [enter]  
   (I do not know what this mean,although I looked into the source

I think everything is ok. In the file these are two functions
get_attr_xxx and put_attr_xxx. Although I do not know what these
programs did and how they did.  But I can feel now that the only thing
left is to develop our own network card(PCMCIA) driver, then  we can
make our use our pcmcia card connect to the internet in minix2.0.0.

I know little about pcmcia program. And pcmcia specification is too
expensive,If anybody would give me a free copy of this document, I
will be very glad and I will take a good look at it.(I have already
got a complete specification for my pcmcia 3c589D network card.)

Thanks first.

I lightly feel use "enable" and "ibmeth" we already can develop pcmcia
network card driver for minix2.0.0. Because  pcmcia network card use
normal I/O operate to handle it(that I feel ibmeth did). "enable" and
"ibmeth" did all the things that we need pcmcia did.

Do I feel right?


(These programs are all still belong to their author Philip Homburg. I
do nothing to it and I do not want to get anything that not belong to
From: philip@pch.home.cs.vu.nl (Philip Homburg)
Newsgroups: comp.os.minix
Subject: Re: I "ported" Minix-vmd PCMCIA driver to minix2.0.0!
Date: Sat, 1 Nov 2003 11:19:01 +0100

In article <8740d788.0310311844.49d3c42b@posting.google.com>,
Wangzhi <quakewang@yeah.net> wrote:
>I know little about pcmcia program. And pcmcia specification is too
If you have a complete description of your network card, and a
description of the pcmcia host-controller (you can probably find the
i82365 docs at intel, assuming that your controller is i82365 compatible) then
you don't really need the pcmcia standard. You may need the
standard to understand the tuple space, but the tuple space is not
al that useful.
From: lcapitulino@terra.com.br (Luiz Capitulino)
Newsgroups: comp.os.minix
Subject: Re: I "ported" Minix-vmd PCMCIA driver to minix2.0.0!
Date: 1 Nov 2003 13:29:45 -0800

quakewang@yeah.net (Wangzhi) wrote in message
> I think everything is ok. In the file these are two functions

 I fixed the warnings and the Makefile. I put all the files needed in
a .tar.Z, you can get it here:



All material on this site not otherwise attributed is copyright ©1994-2003 Albert S. Woodhull
Click here for information on copying and other use.
Mail comments on this page to: Al Woodhull <awoodhull@hampshire.edu>
Viewable With Any Browser    [Valid HTML 4.0!]