3com nic


I have recently built and installed haiku to my machine on it’s own partition. I have to say that I’m impressed. Its lightning fast, beautiful and it just works.

However I have a problem with my NIC. It is a 3com etherlink III boomerang combo card, which has BNC and AUI connectors in addition to TP. I see that my card is in the source repository in src/add-ons/kernel/drivers/network/3com/pci/if_xl.c and listdev lists the card, but Network Preferences can’t find the NIC. Can anyone tell if the card is actually supported and how to get it to work?

This might be a known issue, but why does ‘ls /dev’ crash the kernel (just curious).

If its the same as a 3com megahertz card, then François posted this on another topic the other day:

[quote=François Revol]
I once ported the linux 3com megahertz driver to BONE using the xircom one as base, but never finished… it worked but KDLed on ifconfig down. But the sources are around if needed.[/quote]

Actually, 3com megahertz cards are PCMCIA devices, which I believe would be unsupported either way due to the lack of properly functioning PCMCIA bus still (I could be wrong).

However, the Etherlink III family are ISA/PCI cards, and are very likely supported by the if_xl driver that Haiku has ported from freebsd.

I believe I do have one of the combo “boomerang” cards as well here in my pile of network cards, and I would be happy to test it out on a Haiku box.

But for clarification, can you give us the exact 3com model number, and even better would be the deviceid of the card.

For the model, it’s probably something like 3c900-COMBO (should be printed somewhere on the card in yellow or white writing).

For the deviceid, you can get that from Haiku using the following from a terminal prompt:


If in Linux, try this:

lspci -nn

Let us know what you find.

lspci -nn shows:
00:0a.0 Ethernet controller [0200]: 3Com Corporation 3c900 10Mbps Combo [Boomerang] [10b7:9001]

I checked the syslog when searching a solution to this problem and it said something about the
EEPROM not being ready… (sorry, I don’t have the syslog anywhere so I could check what it says exactly…)

This is very peculiar since the driver is almost exactly the same as freebsd’s and in freebsd it works just as it should (actually even better than in linux, since I can’t set it to auto negotiation or full-duplex in Linux (I suspect it’s a bug in linux’s ACPI-implemention)).

Another thing… running on bare hardware (doesn’t show this kind of behavior when run under qemu) ls /dev crashes the kernel (and again I don’t even have a backtrace…:-P)

Well, it is the freebsd driver after all :slight_smile:

In any case, perhaps the fbsd compat layer has a bug in it that prevents this driver from working properly for you in Haiku - I recommend you file a ticket at http://dev.haiku-os.org - stating what you’ve discovered.

I’ll try to dig up one of my 3c900 combo cards and test this also when I get a chance :slight_smile:

Your 3c900-Combo is listed in the 3com driver. It should be supported.

I have an older system with 3com 3c905B which works. I had to disable DHCP & use a static ip to my router.

EEPROM not being ready could be an issue.

Do this:

  1. cd into /dev/net/3com. ls -l. Do you have /dev/net/3com/0?
  2. cd /var/log. delete syslog
  3. reboot, press [spacebar] quickly to enter safe mode.
  4. enable console debugging ( it’ll write a new syslog file ) & continue booting
  5. cd /var/log
  6. cat syslog | grep 3com

I’m guessing the driver is not working with your card and so you might not have /dev/net/3com or /dev/net/3com/0.

In which case, you’ll have to file a ticket to have it looked at over at http://dev.haiku-os.org

ls /dev works without crashing for me on an older dual P2 test system running pre-alpha r28555.


first thing I tried when I found out that my nic didn’t work was ls /dev that sent me straight to kernel debugging land…
I don’t have haiku installed on my harddrive at the moment(actually I have, I just haven’t booted it yet(just moments ago did ‘dd’ with the latest alpha-image).

I would be very interested if someone had the same card (or a card using the same if_xl.c driver as I do) and test if it works for him/her. If it does I can only conclude that my mainboard’s BIOS is buggy (as I mentioned earlier the nic doesn’t work properly in linux either… but I think it’s a problem related to the linux kernel since it works just nicely under FreeBSD 7.0)

Maybe I’ll just buy a new nic… it is manufactured in mid '90 anyways so its pretty dated hardware…

I’ll post the syslog when I have time to tinker with it…

So here are the relevant lines from the syslog(I’ll post a ticket on this):

KERN: 3com: init_hardware(0x80e339d8)
KERN: 3com, found 3Com 3c900-COMBO Etherlink XL at 3
KERN: 3com: init_driver(0x80e339d8)
KERN: [3com] (xl) bus_alloc_resource(3, [20], 0x0, 0xffffffff, 0x1, 0x2)
KERN: [3com] (xl) using memory mapped I/O
KERN: [3com] (xl) bus_alloc_resource(1, [0], 0x0, 0xffffffff, 0x1, 0x6)
KERN: if_initname(0x817747c0, xl, 3)
KERN: [3com] 3com: /dev/net/3com/0
KERN: [3com] (xl) command never completed!
KERN: [3com] (xl) eeprom failed to come ready
KERN: [3com] (xl) failed to read station address
KERN: loaded driver /boot/beos/system/add-ons/kernel/drivers/dev/net/3com
KERN: etherpci: init_driver init_driver: etherpci not found

You actually are supposed to update the one ticket you have. Posting new tickets on the same issue is an incorrect approach.


3120 has to be closed, marked as duplicate and put in that duplicate of ticket # 2954. Attach the syslog to 2954 instead.

yes, looks like 3com init might have failed.

Axel asked for a stack crawl which is done when the kernel crashes. For instance, you type:
ls /dev
kernel crashes and takes you to debugging land. You type in sc. Then take a digital camera, photograph the screen and attach this jpg image to the ( 3com boomerang not working & ls /dev kernel crash ) ticket.

Stack crawl gives developer info to fix the crash - figure out what caused it.

Should try to fix the ls /dev issue first because that may have something to do with 3com init issue - can’t say for sure. Only know that it shouldn’t crash the kernel. Once that’s fixed then can move onto 3com issue.

Sorry, I didn’t know how the bug report should have been made. I didn’t even want to post the original ticket because I ran short of time when posting it but I was already in the attach file page when I had to leave the computer so I closed firefox and figured that the ticket was never sent. The original ticket should be removed anyway because the kernel crash and nic problem are non related things…

Appears that stippi ( Stephen ) closed 2954.

If ls /dev & 3com are unrelated then two tickets should be filed instead of one but only if no one else has filed these already - you should always search the tickets first before submitting one.

The ls /dev issue might relate to the 3com. Only way to be sure is to pull the 3com card from the system. Boot Haiku & try ls /dev to see if it crashes. Very helpful if you could do this & if related, update your ticket.

This ticket here said that ls /dev crashed when using a 3com driver from Bebits.
ie: a buggy driver can cause ls /dev to crash

Since you’re having trouble with your 3com card then I’d say that it may be causing ls /dev to crash since no one else has reported this bug. ls /dev works great for everyone else. ie: They are likely related