Problem with 3Com and DLink network card

Hello everybody,

I’ve just installed QNX. ‘uname -a’ gives me this :
QNX localhost 6.2.1 2003/01/18-02:12:22est x86pc x86

So, everything works great, and I’m pleased with this OS,
except one problem : I can’t get the network to work.
I tried to search all this forum and also on the net to find
the answer, but to no avail…

I’ve got an integrated 3Com 3C940 (on the Asus P4P800
motherboard) and a D-Link DFE-530TX.

The 3Com is connected to my ethernet ADSL modem, and
the D-Link to my local network. Both work great on Debian
Linux and Windows 2000. The last one uses the via-rhine
driver on linux.

I tried the usual :
'# slay io-net

io-net -d ne2000 -p tcpip’

and also tried with other modules, but it never works, when
I check with ‘ifconfig -l’ it only shows lo0.

Am I doing something wrong, or is it that my cards aren’t
currently recognized ?

Thanks for you help. Here is the interesting part of ‘pci -v’ :

Class = Network (Ethernet)
Vendor ID = 10b7h, 3Com Corporation
Device ID = 1700h, Unknown Unknown
PCI index = 0h
Class Codes = 020000h
Revision ID = 12h
Bus number = 2
Device number = 5
Function num = 0
Status Reg = 2b0h
Command Reg = 117h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 40h
Cache Line Size= 4h un-cacheable
PCI Mem Address = feaf8000h 32bit length 16384 enabled
PCI IO Address = d800h length 256 enabled
Subsystem Vendor ID = 1043h
Subsystem ID = 80ebh
Max Lat = 31ns
Min Gnt = 23ns
PCI Int Pin = INT A
Interrupt line = 10
Capabilities Pointer = 48h
Capability ID = 1h
Capabilities = fe02h - c00ae00h
Capability ID = 3h
Capabilities = 8000h - 0h

Class = Network (Ethernet)
Vendor ID = 1106h, VIA Technologies Inc
Device ID = 3106h, Unknown Unknown
PCI index = 0h
Class Codes = 020000h
Revision ID = 86h
Bus number = 2
Device number = 12
Function num = 0
Status Reg = 210h
Command Reg = 117h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 40h
Cache Line Size= 4h un-cacheable
PCI IO Address = d400h length 256 enabled
PCI Mem Address = feaff400h 32bit length 256 enabled
Subsystem Vendor ID = 1186h
Subsystem ID = 1403h
PCI Expansion ROM = feae0000h length 65536 disabled
Max Lat = 8ns
Min Gnt = 3ns
PCI Int Pin = INT A
Interrupt line = 10
Capabilities Pointer = 40h
Capability ID = 1h
Capabilities = fe02h - 0h

Isn’t 3Com 3C940 a Gigabit ethernet card? As far as I know, QNX only supports Intel Gigabit.

DFE-530TX should be supported in QNX via the devn-via-rhine driver, so you could start
io-net -dvia-rhine -ptcpip &

Thanks for your answer.

Yes you are right, 3Com 3C940 is a Gigabit ethernet card. Does
that mean that it is unsupported by QNX ? Isn’t there any way to
get it working, even in 10/100 MB ? Could I compile a Linux
driver for it ? By the way, what is the difference between a
Linux .o module and a QNX .so module ?

In fact, I had already tried ‘io-net -dvia-rhine -ptcpip &’. It
didn’t work. I succeeded a little while after my post : I had to
type ‘io-net -d via-rhine vid=0x1106,did=0x3106 -p tcpip’.
Is it because I have two network cards ?

Sorry you are out of luck and the 3C940 is not supported. It is possible to port Linux network drivers to QNX. phearbear has done such jobs in the past:
openqnx.com/Article220.html
He was supposed to wrote a HOWTO doc, you might want to push him a bit :slight_smile:

As for your second NIC, because QNX’s default conf file doesn’t have your VID and DID, it can’t autodetect it and you will have to manually provide it, or change the QNX conf file as discussed in this thread:

openqnx.com/PNphpBB2-viewtopic-t275-.html

I also tried :

slay -f io-net

io-net -d el900 did=0x1700,vid=0x10b7

unable to init dll devn-el900: No such device

slay -f io-net

io-net -d ne2000 did=0x1700,vid=0x10b7

ifconfig en0

ifconfig: socket: Address family not supported by protocol family

slay -f io-net

io-net -d ne2000 did=0x1700,vid=0x10b7 -p tcpip

ifconfig en0

ifconfig: SIOCGIFFLAGS en0: No such device or address

as a lot of 3Com cards are supported by the el900 driver,
and also tried the compatible NE2000 driver. We never know :slight_smile:

Obviously, it didn’t work. But what do the ifconfig errors mean ?

You can’t just arbitrarily start drivers that don’t support your hardware.

Bottom line is your 3COM is unsupported, and won’t be supported in the next release (QNX 6.3). You will have to either write your own driver, or buy a cheap alternative :frowning:

For the attempt with el900, it was an advice from a QNX user.
As several 3Com cards are supported by it, trying it was not
stupid.

As for ne2000, it was rather a last chance attempt. Which did
not work… I thought that in Linux, the ne2000 module was
a rather one that worked for a number of cards.

And if I decide to write a driver, is it better to start from the
el900 or port a Linux driver ?