Subject: Strange Linksys PCM100 PCMCIA/Networking problems
To: None <netbsd-help@netbsd.org>
From: Kyle McMartin <kyle@penguinsuspenders.net>
List: netbsd-help
Date: 01/25/2002 09:58:41
[First off, I'd ask you to please CC me on the replies, as I'm not
subscribed to the list and it will stop me from having to wade around
the archive indexes.]

I've installed NetBSD several times before, on several types of system,
but never on a laptop, so I decided to give it a go a couple days ago.
Everything went well, until I tried to get a DHCP lease from my router
with my PCMCIA NIC. At this point, everything seemed to work, I got the
lease, and tried pinging my workstation which is local, bang, fine. I
then tried using ssh to log in to my workstation to scp some files, to
no avail. A quick tcpdump later showed that I was getting no response 
from my workstation. This frustrated me, so I tried pinging my router, 
success, tried pinging my external ip, success, tried pinging an ip on
the internet, success, what the hell was going on? I tried pinging a
hostname on the internet that I knew didn't block ICMP, success... Okay
this is getting weird, I cannot seem to be able to use tcp or udp...

First the gory details, the laptop is an old NEC Versa LX, all the
hardware is detected fine. The PCMCIA card is a Linksys Etherfast
Integrated Card, model number PCM100. The card is my first suspect for
the cause, since it is detected as a Linksys Combo Ethernet Card, quite
strange, as far as I know, these models are quite different.

A bit about my router, its a Netgear drop-in NAT doohickey, several
computers are connected to it and are working fine using DHCP, so the
router isn't malfunctioning. The laptop is connected directly over
100BaseT to the router, the NIC and cabling are both fine, as they
worked in other operating systems a couple days ago.

When I use dhclient to get a lease, just a generic one, no special
information is needed to be passed to the server, everything looks fine.
Afterwards, I'm able to ping both local and external ip addresses and
hostnames, arp -a shows the proper information, the routing table is
correct and ifconfig -a shows a properly connected NIC with the assigned
ip address. The resolv.conf is also properly formatted and contains the
correct nameservers and search path.

Anyway, my only suspect is the network card being incorrectly detected
and preventing a working tcp/udp connection. I searched on some mailing
lists and google, and found that the card required some hacking to get
proper support into OpenBSD, so I figured that there would be support in
-current. I then checked the cvsweb for -current to see if I could
backport some changes, no luck, it wasn't there. The next step was to
look at the OpenBSD code and try to modify it to work. This proved to be
out of my current abilities, and did not result in the correct detection
of the network card.

http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/pcmcia/

^ contains the model information for the PCM100, in if_ne_pcmcia.c and
pcmciadevs.

If anyone has any insight, or hints, I'd be most appreciative if they
would be CC'd to me and the list. Meanwhile I'm going to keep hacking at
this and see if I can fix it.

Regards,
  Kyle

-- 
copyright (c) 2002, Kyle McMartin