Realtek 8201BL on Asus A7N8X-E mainboard

After getting QNX 6.3.0 to boot, I am trying to get the NIC to work.

My mainboard is an Asus A7N8X-E Deluxe. This has two integrated NICs:
Realtek 8201BL 100Mbps
Marvell 88E8001 1000Mbps

The Realtek’s RJ45 connector goes to a NetGear wireless router/ADSL adapter, that I have been using with Linux for the last few months.

Here’s what Linux sees:

lspci | grep Ether 0000:00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1) 0000:01:04.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller (rev 13)

Here’s what QNX sees:

[code]pci-vvv

Class Network (Ethernet)
Vendor ID 10deh, nVidia Corporation
Device ID 66h, unknown, unknown
PCI index 0h
…snip…
Bus number 0
Device number 4
Function number 0

…snip…

Class Network (Ethernet)
Vendor ID 11abh, Galileo Technology Ltd
Device ID 4320h, unknown, unknown
PCI index 0h
…snip…
Bus number 1
Device number 4
Function number 0[/code]

There is some difference between the reported information. Perhaps QNX’s Vendor and Device strings not as up-to-date as those in Linux (Ubuntu distrib)?

Now, I need to know which driver I should load in io-net, out of the ones present.

ls /lib/dll/ | grep devn devn-crys8900.so devn-dm9102.so devn-eepro.so devn-el509.so devn-el589.so devn-el900.so devn-epic.so devn-fd.so devn-i82544.so devn-klsi.so devn-lance.so devn-ne2000.so devn-ns83815.so devn-orinoco.so devn-pcnet.so devn-pegasus.so devn-prism.so devn-rlan2.so devn-rtl.so devn-sis9.so devn-smc9000.so devn-speedo.so devn-tigon3.so devn-tulip.so devn-via-rhine.so devn-wd.so

from looking at other threads, I though that devn-rtl.so and devn-via-rhine.so looked promising.

strings lib/dll/devn-rtl.so | grep -i realtek RealTek 8139 RealTek (SMC-1211) RealTek unknown devn-rtl: RealTek EEPROM Infor: devn-rtl: RealTek Id : %04x

strings lib/dll/devn-via-rhine.so | grep -i realtek

nothing
Not so promising, after all.

I tried loading the rtl driver, but that didn’t work.

io-net -v -drtl -ptcpip -if=en0:192.168.0.2

Now looking with netstat -in I can see only lo0.

Curiously, if I load the ne2000 driver , which I don’t expect to work at all, I see (in addition to lo0):

Name MTU Network Address Ipkts Ierrs Opkts Oerrs Colls en0* 1500 <Link> ff:oa:ff:oa:ff:oa 0 0 0 0 0

I’m really an absolute beginner when it comes to QNX.
Am I missing something obvious, here?

Regards,
Beef.

Beef,

If you just use the default start of io-net what does it give you in terms of interfaces?

io-net -ptcpip

That should normally auto-detect the NIC cards and start the correct drivers (it does for 95% of the hardware).

If this does not start one or both of the NIC cards (do you need one or both working?) can you do the following:

  1. Make sure your using 6.3 SP2

  2. Make sure you’ve disabled ‘plug-n-play’ O/S in the Bios on the MB.

  3. Can you run ‘sloginfo’ from the command line BEFORE you start io-net and then again after wards and see if there are any new entries added (you may also want to increase the verbosity of io-net by using 'io-net -verbose=4 -ptcpip).

Tim

Thnaks, Tim. I haven’t applied Service Pack 2 yet. I should do so, I suppose, in case there are extra drivers that I didn’t get with the first ISO.

I’m really only interested in getting the 100Mbps (the Realtek) ethernet up. Since this is connected to the wireless router/ADSL adapter which is the bottleneck in my network (other hosts are on wireless), I don’t see the point of connecting it to the Gigabit (Marvell) interface.

I’ll try your suggestions about the BIOS, and about running io-net and sloginfo.

Beef.

Does nothing for me :frowning:

netstat -in lists the loopback interface, and nothing more.

OK, I installed SP2 and ntocore updates

OK, done that.

Nothing new appears in sloginfo, nothing new when I run netstat -in. So I went back to explicitly stating the driver name.

Since the main part of the Ethernet controller is in the nForce southbridge, with the RealTek 8201BL being a “PHY” (which I think is a sort of signal processor or amplifier, just to get the signals ready for the cable), I think I thought I’d read that the rhine driver should be used, but searching again today I couldn’t find anything…

io-net didn’t like the “verbose=4” switch. In fact, the only verbosity swith it would accept is a simple -v (or -vv or -vvv).

According to the User manual, the library /lib/dll/devn-via-rhine.so should be called simply “rhine”. This didn’t work:

[code]io-net -v -drhine -ptcpip
Unable to load dll devn-rhine: Library canot be found

io-net -v -drhine -ptcpip
no error message[/code]

But even after loading the driver, I still saw nothing new from sloginfo, and netstat -in still lists only the loopback interface.

Looks like the via-rhine driver isn’t for the nForce southbridge ethernet (not surprising, I suppose it’s for the VIA chipset).

:astonished:

Beef,

It’s strange that just starting io-net on it’s own doesn’t find any adaptors nor make any sloginfo entries.

I check the doc’s again and to increase verbosity you increase the number of 'v’s on the command line (the HTML doc’s are out of date and say to use the -verbose=4). So you’d really need to do io-net -vvvv -ptcpip.

All that aside, it seems the real problem is that QNX doesn’t seem to be able to find the built in adaptors on it’s own.

I went back and looked at your original post. I saw that when you used the ne2000 driver you got an actual adaptor entry for en0. Did you ever manage to get this to work one you had it? It looks like it is a legitimate adaptor as my netstat -in shows:

Name  Mtu   Network       Address              Ipkts Ierrs    Opkts Oerrs Colls
lo0   33212 <Link>                               107     0      107     0     0
lo0   33212 127           127.0.0.1              107     0      107     0     0
en0   1500  <Link>        00:07:e9:0d:61:b6  2902606     0   147834     0     0
en0   1500  10.144.201/24 10.144.201.246     2902606     0   147834     0     0

As you can see, my en0 entry looks like yours only I’ve been running for a while so my packet counts are obviously not 0.

The 2nd en0 entry is the actual assignment of an IP address to the adaptor. This happens after running io-net. Did you ever attempt to assign an IP address to the adaptor to see if it worked?

To do so you need to run netmanager and have a legitimate entry in /etc/net.cfg

For example my net.cfg looks like:

# nto network config file v1.2
version v1.2

[global]
hostname US002QNX427
domain US.TPNET.INTRA
nameserver 10.144.201.7
nameserver 10.144.201.13
route 10.144.201.1 0.0.0.0 0.0.0.0

[en0]
type ethernet
mode manual
manual_ip 10.144.201.246
manual_netmask 255.255.255.0

I have a manual assignment of IP instead of using DHCP. For DHCP assignment change the mode manual line to mode dynamic and comment out the manual_ip line. I assume you know what the stuff under global is for.

So at boot time what runs on my end is:

io-net -ptcpip
netmanager
inetd & // Starts telnet & ftp services

Netmanager reads the /etc/net.cfg file to assign my IP address and I’m online.

In your case, just adjust the io-net -ptcpip line to specify the ne2000 driver (and keep the -vvvv just to see if sloginfo gives any more info) and see if that now lets you online. Note, I am not sure WHICH of the 2 adaptors is using an ne2000 chip set so it might be the opposite one to the one you want.

Tim

Thanks for your help, Tim.

I just can’t get this to work, though.

The “auto detection” will not work at all. io-net -vvvv -ptcpip does nothing, and nothing shows up in sloginfo.

io-net -vvvv -d ne2000 -ptcpip gets me an entry in netstat -in, and I can assign an IPv4 address to it, but the MAC address is wrong (a sign of not being set up right, I think).

I looked at the docs again for the NE2000 driver; maybe I need to specify the MAC address, the IRQ, and something else.

I had a go at the Marvell “Yukon” interface.

No luck there, either. The marvell driver is not present in /lib/dll (should be something like devn-gt6250.so).

I think I’ve read that BSD drivers can be recompiled to work with QNX.

This might at least give a driver that works with my nVidia NForce2 southbridge, or with the Marvell Yukon.

Beef.

Beef,

Well it looks like you and I suddenly have a vested interest in getting built in Asus ethernet cards to work.

We just got in a blade computer and I’ve been asked to get QNX running on it as we want to use it. I opened up the blade and the MB inside is an Asus P5LD2-VM MB with a built in Gig E LAN card.

I went to the Asus site and it appears the LAN card is a Marvell (I guess all Asus cards use this). So I’m now in the process of trying to get mine to work. If I do, I assume the same commands will work on yours.

Tim

I’ve been googling about, and came up with these:
freebsdforums.org/forums/sho … ge=1&pp=15
forum.osx86project.org/lofiversi … t1505.html

Does QNX have an equivalent to Linux’s ndiswrapper mechanism?

I use this to make use of the Windows driver for a wireless network card.

Beef.

Added:

I’ve been looking around a bit more, and now think that Linux uses the same driver for the Marvell Yukon series of gigabit ethernet adapters as for the SysKonnect SK-98xx series.

Look at lines 1984 - 2047 in this page:
cs.fsu.edu/~baker/devices/lx … et/Kconfig

On my Linux system, this is kernel module
/lib/modules/2.6.15-25-386/kernel/drivers/net/sk98lin/sk98lin.ko

There may be problems with the sk98lin driver on some asus motherboards; see this thread:
kerneltrap.org/node/3419

I’ve not been able to find a BSD driver for this device yet. I’m downloading the Linux kernel and module source now.

Beef.

Beef,

I’ve never heard of anything like a ndiswrapper for QNX. In fact even after reading those threads I still don’t know what one is other than making a good guess at what it is/does.

However, I was prowling around on the QNX web site and if you have an offical Momentic’s version (not the free one) you can register and get into the beta program.

Inside there I see a Marvell MV64460 BSP Beta for SP1 and later. I am not sure if this is for an Ethernet card or an actual board (BTW, there IS a Marvell ethernet driver for PPC, just not for X86 which is kinda weird if you ask me).

pci -vvvv on my Asus MB reveals an Intel NIC. It’s even in the supported list too. But io-net can’t find it even if I try and manually start the driver and give it all the address info (minus the MAC which I have no idea how to obtain since it’s a built in NIC). I just wonder if because it’s built in you need some kind of MB driver to access it properly across the PCI bus (hence the reason for MB drivers for Windoze)

Tim