The definitive guide to the Compaq Armada 4100 Family Convenience Base Ethernet connection for Linux
Oke, that title may be a little over the top, but it is what it pretends to be. And rightfully
so since I've wasted, err spend a lot of time figuring out how to get it up and running.
But first how this came all about.
A little history
The company where I work occasionaly sells old office equipment to its employees for a small
amount of money. Sometimes it's tables and chairs, sometimes old lab equipment. You know, tech
freaks love that kind of stuff. At the top of the whishlist are old PC's and laptops, which can be
put to good use on all kind of home projects. So, on one of these occasions I ended up with a
Compaq Armada 4120, including a docking station.
It had Windows 95 installed on it and nothing else. But that was oke with me since I had other
plans for it anyway; it was to become my Linux playground. It hardly cost me anything and was in
no way needed for my daily computational needs, so I could wreck it without causing a problem.
Together with a friend I started out to get things started. First we figured out how to
repartition the harddisk,
in order to save Win95, add a Linux partition and have some swapspace as well.
Unfortunately this Armada came without the CD-ROM craddle, which would have made installing any
Linux distribution a lot easier. Either a disk set had to be created or a network install
attempted. Of course the latter was a bigger challange so we choose that. A spare PCMCIA
Ethernet card was put in the slot, a PCMCIA setup disk created from the intended distribution
(we used Redhat 6.1 Cartman at the time) and put in the disk drive. Then we fired her up.
Well, as you've probably guessed we loaded Redhat, compiled a custom kernel tailored to the Armada
and setup LILO to play around with various
settings. Once that kernel was pretty much the way we wanted it, I started exploring the
motherload of software and services that were available on the machine. Configuring all this
stuff, especially the X server was very educational, so it served its purpose very well.
Of course the Internet proved a valuable source of information on this. These are the pages I
used to get most of the stuff working.
Linux on the Compaq Armada 4120
Linux on the Compaq Armada 4120T
Debian Woody on a Armada 4120
Linux on Laptops
Linux on Laptops
But there remained one nagging problem, the Ethernet port on the docking station.
Docking station Ethernet port
Even though I didn't have a great need for networking the Armada in the beginning, I wanted to get
it connected eventually. So the easy way was to buy a PCMCIA card, add the driver to the kernel and
be done. But since I didn't want to spend any extra money on the machine and the Ethernet port was
there I wanted to use the docking station. From booting into Win95 I knew it worked and I started
collecting some information from it, like the driver, the resources it uses and stuff like that.
Right from the start I reconed that it wasn't a normal Ethernet device, like on the PCI bus or
something like that. It didn't show up when using lspci. There were some hints
about sharing resources with the parallel port and things like that.
A
little googling didn't reveil much info, other than the stuff I already found at several sites
when searching for X server settings and so forth. All of these hinted at an Ethernet port but they
all ended up being a PCMCIA card in the expansion slot. That was not the way I wanted to go.
After putting the matter to rest for a while, I recently went back to the subject to get it over
with for once and for all. The Linux learning curve had been conquered by having
a self created patch
accepted into the Kernel source, so it was time to get a serious update done on the Armada as
well. In the beginning we had been dumping all kinds of stuff on it and we also put the 2.4.2
kernel sources on the disk, with which I hadn't done much. Now was the time to get configuring
and compiling it, with the right driver to get the Ethernet port up.
Occasional research I did into the subject lead me to a thread in
Linux-Networking Digest #704
From: "Lee Sharp" <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.setup
Subject: Re: Compaq Armada Ethernet
Date: Thu, 1 Apr 1999 13:32:17 -0600
G. Stuart Mendenhall wrote in message <7e0f61$7li$[EMAIL PROTECTED]>...
| Has anybody gotten the Ethernet in a Compaq Armada 4100 series
|docking base with built in Ethernet to work correctly? I can't find out
|the chipset or anything. The windows 95 driver was written by compaq; I
|can only find out the io , which is 0x378, the same as the parralel port
|(which causes problems in Win95 once in a while)... I have tried all of
|the drivers included in Debian 2.1 (slink) which I have installed (only
|the base system, as I can't connect... ) using modconf.
It is the much discussed Tlan chip. It has to be "insmod tlan duplex=2"
after install, and then "netconf"ed...
Lee
It lead me to believe that there is a TI ThunderLAN chip in there. So I started with that
driver. I first tried it with the 2.2 kernel I have been using until now, which is modular,
so I could load the driver on runtime. 'insmod tlan duplex=2' would load the driver and get
things going. Well it didn't. After trying several other drivers to no avail I focused my
attention to the 2.4.2 kernel sources. Maybe it contained a better driver which may work on
this setup after all. After building a few monolithic kernels I still didn't get the result
I was hoping for.
Time to call in the experts. From the driver sources in the kernel I found
a mailing list on sourceforge
which is dedicated to the TLAN chipset support on Linux, moderated by the driver maintainer
Sam Chessman. I had hoped that someone on the list had seen the problem before and could
point me to a rapid solution, but no one did. Instead Sam provided very good step by step
guidance through the process of determining the cause of the problem.
One thing that stood out was the fact that the Ethernet chip wasn't to be found on the PCI bus.
So how was it hooked up to the system? What I had noted in the Win95 driver was that there
is a parallel port setting in there. Curious. Then someone mentioned pocket adapters. They
were popular for a few years after which PCMCIA and USB adapters took the market by storm.
They were dongle style parallel port adapters which create a Ethernet port. D-link and Xircom
were the prominent brands. Together with this
conversation this lead me to believe that maybe there is no TLAN chip in there after all.
After all, it was only an unconfirmed statement. Now with more questions than answers there
remained only one thing to do. To open up the docking station...
The inner workings
Disassembly of the docking station is fairly easy. The base plate and interface module are
easily seperated, thanks to the build in leaver, leaving a plastic enclosed interface module
to be opened up. Undoing six screws open up the plastic enclosure exposing the metal box
containing the electronics. Again a row of screws is holding everything together, so once these
were removed the printed circuit board came out easily.
Since the connectors are in a nice row, all the circuitry can easily be identified in relation
to the connectors. Mostly buffer circuits are present, since all peripherals are present in
the laptop already. Only the Ethernet hardware stands out. This is a detail of it, with notes
of the relevant connectors and components.
So, there it is. No TLAN chip, but a plain old
National Semiconductor 83902
(Check here for the relevant application notes)
The only other complex chip in that area is the Silicom chip. That must be the interface
between the parallel port and the Ethernet controller. So that's the next target of the
investigation.
Silicom
Which one is it? Looking for the manufacturer of the chip reveals two Silicom's:
Silicom Corporation looks more like a services company. Silicom Limited looks more
like a technology company, so I focussed on them.
Looking for information about Silicom pocket adapters gave only a single hit on a
NETBSD mailing list. Not much to go on, so back to the sources. Maybe the D-link driver
sources provide some clue how these chips manage to interface the parallel port to the
Ethernet controller. Judging from the config file created when configuring the 2.4.2 kernel
with a D-link pocket adapter the 8390 object is also added to the make. This
assured me that the D-link pocket adapters used the same architecture: a interface chip to
get from the parallel port and a (well known) Ethernet controller for the network part.
One remark in the D-link sources gave me an idea about a new Internet search. The statement
was that the driver was partly based on a assembly file released on an old driver disk. Maybe
Silicom did the same? So I went looking for the combination of Silicom and assembly. This
proved to be a lucky guess, because it resulted in two valuable leads.
One of the leads was to this part of a
kernel patch:
diff -u --recursive --new-file v1.1.68/linux/arch/i386/config.in linux/arch/i386/config.in
--- v1.1.68/linux/arch/i386/config.in Mon Nov 28 14:21:43 1994
+++ linux/arch/i386/config.in Wed Nov 30 21:53:47 1994
bool 'Pocket and portable adaptors' CONFIG_NET_POCKET n
if [ "$CONFIG_NET_POCKET" = "y" ]; then
+ bool 'AT-LAN-TEC/RealTek pocket adaptor support' CONFIG_ATP n
bool 'D-Link DE600 pocket adaptor support' CONFIG_DE600 n
bool 'D-Link DE620 pocket adaptor support' CONFIG_DE620 n
- bool 'AT-LAN-TEC/RealTek pocket adaptor support' CONFIG_ATP n
- bool 'Zenith Z-Note support' CONFIG_ZNET n
+# bool 'Silicom pocket adaptor support' CONFIG_SILICOM_PEA n
+# bool 'WaveLAN PCMCIA support' CONFIG_WaveLAN n
+# bool '3 Com 3c589 PCMCIA support' CONFIG_3C589 n
fi
fi
fi
Note that a selection option for 'Silicom pocket adapter support' is created, in a comment.
What does this mean? Is it experimental? Is the driver going to be added later?
The next patchfile
in which this option appears is for 1.3.36 on the file linux/drivers/net/Config.in.
It clearly moves the option into the networking configuration options, but still as an commented
out option. No real progress since 1.1.69. Finally the
patchfile for
1.3.48 removes the option, still as a comment.
Since no real changelogs for these old (1.x.x) kernels are available, all that is left is
to suck a collection of these old kernels from the mirrors and start looking. Unfortunately
to no avail. There is no driver to be found.
Still the other lead was to be persued. I had stumbled upon the resume of
Omer Zak. Among the list of previous
employment was, low and behold:
1992-1993: Silicom Ltd., Ra'anana: Software and electronics engineer: Logic Design of a pocket
adapter for connecting laptops to Ethernet. Development of drivers which allow the aforementioned
pocket adapter to be used in commonly-used LANs.
Just the man I was looking for. The engineer who was right there, at the spot it all came from.
What a coincedence. So I dropped him a line, explaining my quest. He is a very friendly character,
kindly explaining some details of his employment and what he worked on. It was not this product,
but an earlier product, the SET+, he was involved with. Well, that may have been the basis on which
my docking station was build, so it was worth a try. While looking for
the drivers
I noticed that the SET+ is offered in just about any German online techshop. Don't know why these
are so popular there. Anyway, searching through the driver collection revealed nothing like a
Linux driver or source code to any of the included drivers. This wasn't helping so far.
Two options remain. The first is to contact Silicom directly and see if they are willing to
provide information, or maybe the 1.x.x source code. It could prove interesting for their sales
as well, looking at the German webshops. Otherwise we may need to take some technical measures.
To be continued...
Written by my own two hands and an ASCII editor.
Problems? write me
Last updated December 8, 2004
This page is