1. Device Eth0 Does Not Exist
  2. Device Eth0 Does Not Seem To Be Present
  3. Nmap Failed To Open Device Eth0
  4. Ubuntu Cannot Find Device Eth0
  5. Device Eth0 Left Promiscuous Mode
  6. Device Eth0 Is Already A Member Of A Bridge


Similar Messages:
  1. That means you can't safely use another interrupt-driven shared memory device in that region, 3C501 LINUX DRIVER. You pass to ifconfig is now eth0 and not the.
  2. Eth0 disabled / eth0 does not seem to be present / after restoring image. Ifconfig eth0 up claims that there's 'no such device'. Graphics driver.
  3. Device eth0 does not seem to be present, delaying initialization.
  4. # ethtool eth0 driver. Then go to the download area to retrieve the appropriate binary. '3c501 device eth0 does not seem to be present'.

Solve this error '3c501 device eth0 does not. Kernel device eth0,wlan0 are not present. In device manager also 2. I have not found any driver for the card and. I keep getting this error when setting up my nic in Red Hat 9.0 'device eth0: does not seem to be present, delaying initialization.' Card to be a 3c501.

ADVERTISEMENT

CentOS 5 Networking :: Eth0 Device Not Present?

Dec 21, 2010

Installed Centos 5 on IBM T60P laptop. Intel 82573L Gigabit ethernet controller. Keep getting this erro message, 'e1000 device eth0 does not seem to be present, delaying initialization.'

Networking :: Device Eth0 Does Not Seem To Be Present - Delaying Initialization?

Jun 17, 2009

I have swapped out four known working, different bran network cards. Each one I get the same error as in the subject. If I boot to a Live CD such as CentOs 5.3 LiveCD both Nics are given an IP. This seems to only be happening with my CentOs 5.3 server install.I noticed the CentOS Live CD the Nics were reversed from eth0 to eth1 and eth1 to eth0.
At the moment as of the output of the commands, I am running two identical Nics, since the first one has always worked. I have previously used an rtl8139, 3com c3905-TX, onboard Rhine III based (now disabled) Here are steps I have done to try and figure this out:
Quote:
[root@centos ~]# lspci | grep -i eth
00:0a.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] (rev 86)
00:0e.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] (rev 86)
Quote:
[root@centos ~]# cat /var/log/dmesg | grep -i eth
eth0: VIA Rhine III at 0xee800000, 00:1b:11:bb:17:7d, IRQ 177.
eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link 45e1.
[code]....
I went through the system-config-network-tui. I copied /etc/sysconfig/network-scripts/ifcfg-eth1 to the ifcfg-eth0 and edited for sanity. and as stated earlier, have swapped out four different nics for eth0, and booted to two different LiveCD's. Both LiveCD's work fine.

OpenSUSE Network :: Kernel Device Eth0,wlan0 Are Not Present?

Feb 27, 2011

I have installed Open SUSE in my DELL server which has 2 broadcom NIC cards, it showing both the NIC cards in Network configuration in YAST ,but it showing as not configured and not connected . Kernel device eth0,wlan0 are not present. In device manager also 2 Broadcom nic cards are detected.

OpenSUSE Hardware :: Realtek NIC Installation - Unable To Configure The Network Card Because Kernel Device (eth0, Wlan0) Is Not Present

Nov 30, 2010

Installed a TP-Link TG-3269 Gigabit card in a machine running OS 11.3 32 bit, when I go into Yast, Network Devices, Network to try configuring the card I get this errormsg: Unable to configure the network card because the kernel device (eth0, wlan0) is not present. This is mostly caused by missing firmware (for wlan devices). See dmesg output for details. Couldn't find any mention of the card in dmesg's output, (though the 8139 onboard card is in there) there is some stuff about pci host bridge but I don't know whether they would be relevant or not
The chip on the card says it's rtl8169sc but lspci lists it as being 00:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8369 (rev 10) Done some googling and there don't seem be any drivers for a Realtek 8639 and it returns no matches from a search on realtek's site, but there is a driver there for rtl8169sc chips, which I downloaded and installed, no errors when installing it Even after a reboot I still get the same error in Yast's Network Settings screen, lspci still lists it as 8369 and the device isn't listed at all if I run ifconfig

Ubuntu :: Eth0 Doesn't Exists For Firestarter - Eth0: Error Fetching Interface Information: Device Not Found

May 5, 2010

My network name is eth2 it was changed by some reason and now i got these errors... i installed, reinstalled, re re installed, tried to run the asistant but no luck :/
Code:
* Stopping the Firestarter firewall...
eth0: error fetching interface information: Device not found
eth0: error fetching interface information: Device not found
eth0: error fetching interface information: Device not found
[code]....

Ubuntu Networking :: Error Message - No Bluetooth Adapters Present

Jul 14, 2010

Using Ubuntu on a new toshiba satellite laptop, have setup almost everything but the bluetooth. When I try to initiate the bluetooth, I get an error message 'No bluetooth adapters present' 'Your computer does not have any bluetooth adapters plugged in'

CentOS 5 Networking :: Kernel Rpm Install After Error 'Bringing Up Interface Eth0: Device Eth0 Has Different MAC Address Than Expected, Ignoring'

Dec 26, 2010

i install kernel rpm after i boot that kernel network not working kernel name : kernel-rt-trace-2.6.24.7-132.el5.centos.i686 3c501-device-eth0-driver-download.html error 'Bringing up interface eth0: Device eth0 has different MAC address than expected, ignoring.'

CentOS 5 Networking :: Eth0 An Error Of ' No Cable Present'

Jan 21, 2010

I've installed Centos 5.4 _AMD64 on my PC, everything is ok except I can't connect to internet. I can see my hardware in the network manager I also have eth0 and wlan0 but I can't activate them. for eth0 an error of ' No cable present' and wlan0 something about the ip I don't have a cable and I used to connect through wireless My wireless is PCI Ralink and I had the same situation with Debian and I think I needed to download extra packages to get it working. I am writing from windows vista now ,So please could you provide me with the packages and steps to get wireless working through offline process because I don't have a cable.

Ubuntu Installation :: USB Key Isn't Present (with Error: No Such Device And The Uuid) - And Hangs On A Blinking Cursor?

Mar 15, 2011

I just attempted to install to a USB drive, and somehow in the process, GRUB overwrote my Windows 7 bootloader on the internal disk. My work laptop is now booting into a grub recovery whenever my USB key isn't present (with error: no such device and the uuid) - and hangs on a blinking cursor whenever the key is plugged in.I'm not familiar with what my options are for grub rescue, but ls shows (hd0) (hd0,msdos2) (hd0,msdos1) (fd0)
My laptop is encrypted, so I don't have much chance of recovery unless I can get back to the windows bootloader.

Fedora Installation :: Error Message: [root@theraugafamily Network-scripts]# Ifup Eth0

Dec 23, 2010

I am in the process of settign up a home server under FC14. The installation recognized both NICs, one as Intel Gigabit and the other as a Realtek Semiconductor as it should be. But when trying to start eth0 (Realtek) I get the following error message:
[root@theraugafamily network-scripts]# ifup eth0
Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
** (process:2296): WARNING **: _nm_object_get_property: Error getting 'State' for /org/freedesktop/NetworkManager/ActiveConnection/1: (19) Method 'Get' with signature 'ss' on interface 'org.freedesktop.DBus.Properties' doesn't exist
state: unknown Error: Connection activation failed. Some more ifo the this NIC as it is of special type.It is a Viking PCI ADSL2+ Modem Card. I am quoting form the description 'Being a gully integrated card, no external plug packs are required and cabling is simplified to just an ADSL line connection. The need to purchase an extra ethernet card is also eliminated, as yjis features is build into the card. The onboard Ethernet controller (RTL8139) makes the modem appear to the OS as a standard network card. Thus the Viking can be used with almost any modern O/S without the need for special drivers. This includes Windows, Linux, Solaris, xBSD, etc..' setting ACPI=off in GRUB.conf does not fix the issue

General :: 3c501 Device Etho Does Not Seem To Be Present Delaying Initialization?

Jun 7, 2010

i have problem related nici am using a dell inspiron 1545 laptop outputs are following---(1) [root@localhost ~]#lspci |grep -i ethernet 09:00.0 Ethernet Controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller (rev 13)
(2) [root@localhost ~]#cat /etc/modprobe.conf
alias scsi_hostadapter ahci
alias scsi_hostadapter1 usb-storage
[code]....

CentOS 5 Hardware :: Eth0: Error Fetching Interface Information: Device Not Found?

Nov 15, 2009

I have 2 network cards eth0 and eth1, for eth0 i set a manual MACADDR in network scripts. Ok so every time i boot, if the cable is plugged in, my eth0 fails to mount or i don't know.. i get this after bood when i type ifoncifg eth0 (eth0: error fetching interface information:Device not found). So i have to unplug the cable when i boot, then plug it in and do a service network restart.

Ubuntu Installation :: No Such Device Error Message?

Mar 17, 2010

I have been using my desktop as a dual boot machine for several months now. The primary hard drive with windows on it died, and since we have been using ubunto 9.10 exclusively, I just removed the dead drive, changed the jumpers on the secondary drive to primary and did a clean install on the drive which presumably formats the disk before installing. When I try to boot from the hard drive i get the following message:
ERROR: no such device 2eb48bcb-7bb4-4080-b04d-fc32dec8c252

CentOS 5 Hardware :: Error Message : Mount: /dev Is Not A Block Device

Sep 13, 2011

I virtualized a PC with VMware vCenter Converter. But when I boot my virtual PC, I have an error.I found this link but I can't mount /dev, /sys and /proc. I have this error message : mount: /dev is not a block device.

OpenSUSE Network :: Eth1 Stops Accepting Connections Whenever There Is No SSH Connection Present On Eth0

Oct 2, 2010

I recently setup a new SUSE box for the purposes of acting as an ftp/sftp server. It's currently setup to run ProFTPD 1.3.3.rc3 and mod_sftp/0.9.7. The server has two internal network interfaces eth0 and eth1. eth0 is purely for internal use to accept ftp and ssh. eth1 is outward facing and receives connections from the WAN via SFTP over port 22. The problem I am facing is that after half hour to an hour eth1 stops accepting connections whenever there is no SSH connection present on eth0. I can't figure out why this is happening.
ProFTPD is setup as follows: SocketBindTight directive is on, default server and port are commented out.
[code]...
When the external interface is unreachable the proftpd and proftpd-sftp logs show no record of any connection attempt. I have noticed however if I leave eth0 down eth1 stays contactable without problem. Can anyone give me some pointers on what I can check to find out why this may be happening.

Slackware :: Compiling Large Slackbuilds - Error-message - Not Enough Space Left On Device

Aug 20, 2010

I am currently running slackware 12.2 on a 25 GB partition. I like to use slackbuilds, but when I try to compile larger tarballs (like abiword, or a patched version of Ghostscript as I did today) I receive an error-message: 'Not enough space left on device'. I think the size of the partition must be big enough (I never got this message when compiling with Linux From Scratch). I think it has something to do with the size of my /tmp directory, but I don't know how to fix this. Is there a way to solve the problem, so that I could be able to use slackbuild-scripts?

General :: Atheros Network Card Not Available - Eth0 No Such Device Exists

Apr 19, 2010

I have setup a dual boot machine which has OS of Windows Vista (32 Bit) / RHEL 5. The LAN Card details are - Atheros L2 Fast Ethernet 10/100 Base T - Controller. The said Network Card works fine with the ADSL Connection in Windows OS, but does not seem to initialise in Linux. When I run 'ifconfig' in terminal window it gives away the prompt - 'eth0 no such device exists'.Although it shoes the loopback adapter (lo) device working fine. I forgot to mention over here, I have just started with Linux. So, I request 'the' Linux Gurus to help me out with this one.

Ubuntu Servers :: LVM - RAID Device Not Present On Restart

Jan 29, 2011

I've decided to toy around with LVM and mdadm this weekend. I can get everything working, and all is well, until I restart. After that, I no longer have any /dev/md0 device, which during the auto mount process, causes an error. I've looked through several HOWTOs, as well as the LVM/mdadm man pages, and I believe I've tracked it down to mdadm's 'assemble' that is needed (so that LVM can see the md0 device).
Not exactly sure how to go about having this occur during the boot process to ensure that the LVM mapped drive is available for when fstab is read. In case it helps this is a base install of 10.10 server 64. I have four drives, the first is used for the OS and is not in the RAID array (nor LVM). The second and third are RAID1 (/dev/md0) and there is a volume group associated with /dev/md0. The last is a LVM, but not RAID, and it has its own volume group.

Ubuntu Multimedia :: No Input Device Present - Maverik 10.10

Jul 11, 2011

I can't use my line-in/microphone jack. In system-management-sound input tab there is no input device listed, and the input controls are grayed-out. sudo lshw -C sound produced:
description: Audio device
product: N10/ICH 7 Family High Definition Audio Controller
vendor: Intel Corporation
physical id: 1b
[Code]....

Fedora Security :: Find Device Eth0 Entered Promiscuous Mode Don't Remember Putting Eth0 In Promiscuous Mode?

Nov 18, 2010

I've looked today on my logs /var/log/message and I find device eth0 entered promiscuous mode I don't remember putting eth0 in promiscuous mode I'm connected to the net thru a router how do i turn that off ?

CentOS 5 :: Forcedeth Device Eth1 Not Present - Delaying Initialization

Apr 4, 2009

I'm running CentOS 5.2 on an ASUS M2NPV-VM motherboard. This motherboard includes an NVIDIA nForce 430 built-in Gigabit MAC (network interface). I've also installed a second PCI network interface card (NC100 Network Everywhere Fast Ethernet 10/100). The PCI-based card was configured as eth0, while the built-in NIC was configured as eth1. The machine is used as my firewall/router, so eth0 is my internal interface, while eth1 is my external interface. I've had some intermittent problems with the built-in (eth1) NIC. When booting the machine and it attempts to bring up the interface, I get the following message: forcedeth device eth1 does not seem to be present, delaying initialization From that time forward, there is no eth1, and so no external network, etc. If I try running /etc/sysconfig/network-scripts/ifup eth1 (from that directory), it results in the same error.
Originally, I was getting this error when installing the operating system on the machine. At that time, I was using a 75' ethernet cable (as I was working on the machine in my office, and the external ethernet jack was in another part of the house). As soon as I moved the machine to its permanent location (which is within 2 feet of the ethernet jack), the problem went away. However, I just updated the kernel (via yum) from 2.6.18-92.1.22.el5 to 2.6.18-128.1.6.el5, and now it fails 9 out of 10 times. I'm not even sure what I can do to debug this. I'm assuming there is some kind of timing problem with the initialization. Is there a configuration parameter I can set to allow more time for the initialization to do what it needs to do, to prevent this error?

General :: Redirecting Output Message While Inserting A New Device?

Dec 28, 2010

When inserting/removing a usb device to a board based on linux system, an output is given:
Code:
# mmc1: card 0001 removed
mmc1: new SD card at address 0001
[code]...

Networking :: Unable To Configure The Network Card Because The Kernel Device Is Not Present

Jan 28, 2010

I have installed Linux SuSE 10.3 on a PC (Lenovo Thinkstation A58). However, when I start the computer I get the following error message:
'No valid Host_ID or host-name found.'
I then use YaST to set up the network. I get the following error message:
'Unable to configure the network card because the kernel device is not present.'
The computer has Windows 7 installed and everything seems to work fine. The LED on the Ethernetplug is blinking when using Windows, but not when using Linux. I guess this means that there is no driver for the Ethernet card (Marvell Yukon 88E8057). I have not found any driver for the card and am considering buying a new one. Which PCI card works with SuSE Linux 10.3?

CentOS 5 Networking :: Bcm43xx Device Eth1 Does Not Seem To Be Present - Delaying Initialization

Mar 15, 2009

Ethernet card works, but Wireless card activation fails at bootup time. It also fails if I try it again from the Network Configuration UI.
I have provided some output I got from initial exploration.
I upgraded to a recent version of the 2.6 kernel.
uname -a: Linux localhost.localdomain 2.6.28.7 #1 SMP Sat Mar 14 19:04:11 PDT 2009 i686 i686 i386 GNU/Linux
I have installed the correct firmware hopefully.
cd /lib/firmware ls
Output is:
I do have the bcm* files for firmware.
output of lspci is:
Last two lines show the that Wireless card BCM4312 is visible.

Software :: Run Firestarter Firewall But Keep Getting The Message ETH0 Is Not Ready?

Jul 26, 2011

I am trying to run Firestarter firewall but keep getting the message ETH0 is not ready. This problem has been highlighted by others but is there a simple way of sorting this out, answers in other forums are wide and varied. but it's not clear if they have been successful.

Networking :: Assigning Eth0 Value To Device

Dec 14, 2010

I have to do a project on network security.For that i have to capture the packets from the device. I installed libpcap tool in ubuntu. If I give ifconfig -a it lists out eth0, wlan0, lo. I am able to connect to the internet via eth0. But when I give
#include <stdio.h>
#include <pcap.h>
int main()
{
char *dev, errbuf[PCAP_ERRBUF_SIZE];
[Code]...
It says device is null. I'm not able to run sniffex.c program also. All I want to do is to capture the live network level packets and analyse them.

Networking :: Dhclient Eth0 Up - No Such Device ?

Jan 31, 2011

While i am configuring network setting on backtrack4. i was running my backtrack on vmware workstation and NAT is bridged to physical mem like it was said on the tutorial that watched. i typed ifconfig eth0 up, and hit enter, as well as dhclient eth0 up, but resulted in different output. it says 'no such device' is written and i would like to configre this problem.

General :: Can't Find Boot Device - Error 'Unable To Determine Major/minor Number Of Root Device'

Mar 17, 2011

I just compiled my first own kernel (I'm using Arch Linux), following the tutorial on the german site. Now I tried to boot it, I ended up failing with this message: Code: Waiting 10 seconds for device /dev/sda1 ... Root device '/dev/sda1' doesn't exist, Attempting to create it. ERROR: Unable to determine major/minor number of root device '/dev/sda1' Here is the important part of my menu.lst:
[Code]....
I simply copy&pasted the Arch-entry, i.e. I also had the disk by uuid there. The failure message was the same, just the root device name was the different name Also, at first I did not have the initrd line in my menu.lst (as written in my tutorial that I may not need it). In this case I had this error message:
[Code]....

Fedora Hardware :: Eth0 Device Not Managed?

Jan 14, 2011

when I first installed it on my IBM thinkpad, the eth0 was working correctly. I had someone try to install the network card for me, and something was changed to where now the wired connection is displaying 'device not managed'.

NextPreviousContents

Here are some of the more frequently asked questions about usingLinux with an Ethernet connection. Some of the more specificquestions are sorted on a `per manufacturer basis'.Chances are the question you want an answer for has alreadybeen asked (and answered!) by someone else, so even if youdon't find your answer here, you probably can find what youwant from a news archive such asDejanews.

With most Linux distributions, the drivers exist as loadablemodules, which are small binary files that are merged withthe operating system at run time. A module gives theoperating system (kernel) the information on how to controlthat particular ethernet card. The name of each module islisted in the heading of the section for each card in thisdocument. Once you know the name of the module, you have toadd it to the file /etc/modules.conf so Linux willknow what module to load for your card. The syntax is typicallyas follows.

The options line is typically only needed for older ISA hardware.For multiple card systems, additional lines with eth1,eth2 and so on are usually required.

The module files typically live in the directory /lib/modules/ which is further subdivided by kernelversion (use uname -r) and subsystem (in this casenet). These are put there by the distributionbuilder, or by the individual user when they runmake modules_install after building their ownkernel and modules (see the kernel howto for more detailson building your own stuff).

If you build your own kernel, you have the option of havingall the drivers merged with the kernel right then and there,rather than existing as separate files. When this is done,the drivers will detect the hardware at boot up. Optionsto the drivers are supplied by the kernel command line priorto boot (see BootPrompt Howto for more details). The userchooses what drivers are used during the make configstep of building the kernel (again see the kernel howto).

The answer to this question depends heavily on exactly whatyou intend on doing with your net connection, and how muchtraffic it will see.

If you only expect a single user to be doing the occasionalftp session or WWW connection, then even an old ISA cardwill probably keep you happy (assuming 10Mbps, not 100).

If you intend to set up a server, and you require the CPUoverhead of moving data over the network to be keptto a minimum, you probably want to look at one of thePCI cards that uses a chip with bus-mastering capapbility.In addition, some cards now can actually do some of theprocessing overhead of data checksums right on the card,giving the CPU even more of a break. For more detailsplease see:

If you fall somewhere in the middle of the above, then anyone of the low cost PCI cards with a stabledriver will do the job for you.

I heard that there is an updated or preliminary/alpha driveravailable for my card. Where can I get it?

The newest of the `new' drivers can be found on Donald'sWWW site: www.scyld.com - thingschange here quite frequently, so just look around for it.Alternatively, it may be easier to use a WWW browser on:

to locate the driver that you are looking for. (Watch out forWWW browsers that silently munge the source by replacingTABs with spaces and so on - use ftp, or at least an FTP URLfor downloading if unsure.)

Now, if it really is an alpha, or pre-alpha driver, then pleasetreat it as such. In other words, don't complain because youcan't figure out what to do with it. If you can't figure outhow to install it, then you probably shouldn't be testing it.Also, if it brings your machine down, don't complain. Instead,send us a well documented bug report, or even better, a patch!

Note that some of the `useable' experimental/alpha drivers havebeen included in the standard kernel source tree. When runningmake config one of the first things you will be askedis whether to ``Prompt for development and/or incompletecode/drivers'. You will have to answer `Y' here to getasked about including any alpha/experiemntal drivers.

What needs to be done so that Linux can run two or more ethernet cards?

The answer to this question depends on whether the driver(s)is/are being used as a loadable module or are compiled directlyinto the kernel. Most linux distributions use modular drivers now.This saves distributing lots of kernels, each with a different driverset built in. Instead a single basic kernel is used and theindividual drivers that are need for a particular user's system areloaded once the system has booted far enough to accessthe driver module files (usually stored in /lib/modules/).

In the case of PCI cards, the PCI drivers/modules should detect all of the installed cards that it supports automatically. Theuser should not supply any I/O base or IRQ information, unlessspecifically instructed to do so by the individual driverdocumentation in order to support some non-standard machine.

Some earlier kernels had a limit of 16 ethercards that couldbe detected at boot, and some ISA modules have a limit of fourcards per loaded module. You can always load another copy of thesame module under a different name to support another four cardsif this is a limitation, or recompile the module with supportfor as many as you require.

With the Driver as a Module

For ISA cards, probing for a card is not a safe operation, andhence you typically need to supply the I/O base address of thecard so the module knows where to look. This information isstored in the file /etc/modules.conf.

As an example, consider a user that has two ISA NE2000 cards,one at 0x300 and one at 0x240 and what lines theywould have in their /etc/modules.conf file:

What this does: This says that if the administrator (or thekernel) does a modprobe eth0 or a modprobe eth1 thenthe ne.o driver should be loaded for either eth0 oreth1. Furthermore, when the ne.o module is loaded, itshould be loaded with the options io=0x240,0x300 so that thedriver knows where to look for the cards. Note that the 0xis important - things like 300h as commonly used in the DOSworld won't work. Switching the order of the 0x240 andthe 0x300 will switch which physical card ends up aseth0 and eth1.

Most of the ISA module drivers can take multiple comma separatedI/O values like this example to handle multiple cards. However,some (older?) drivers, such as the 3c501.o module are currentlyonly able to handleone card per module load. In this case you can load the moduletwice to get both cards detected. The /etc/modules.conffile in this case would look like:

In this example the -o option has been used to give eachinstance of the module a unique name, since you can't have twomodules loaded with the same name. The irq= option hasalso been used to to specify the hardware IRQ setting of the card.(This method can also be used with modules that accept commaseparated I/O values, but it is less efficient since the moduleends up being loaded twice when it doesn't really need to be.)

As a final example, consider a user with one 3c503 cardat 0x350 and one SMC Elite16 (wd8013) card at 0x280.They would have:

For PCI cards, you typically only need the alias lines tocorrelate the ethN interfaces with the appropriate drivername, since the I/O base of a PCI card can be safely detected.

The available modules are typically stored in/lib/modules/`uname -r`/net where theuname -r command gives the kernel version (e.g. 2.0.34).You can look in there to see which one matches your card.Once you have the correct settings in your modules.conffile, you can test things out with:

where `N' is the number of ethernet interfaces you have.Note that the interface name (ethX) assigned to the driverby the kernel is independent of the name used on the alias line.For further details on this, see:Using the Ethernet Drivers as Modules

With the Driver Compiled into the Kernel

Since some ISA card probes can hang the machine, kernelsup to and including 2.4 only autoprobe for one ISA ethercard by default. As there aren'tany distribution kernels with lots of ISA drivers builtin anymore, this restriction is no longer in 2.6 and newer.

As of 2.2 and newer kernels, the boot probes have beensorted into safe and unsafe, so that all safe (e.g. PCI andEISA) probes will find all related cards automatically. Systemswith more than one ethernet card with at least one of thembeing an ISA card will still need to do one of the following.)

There are two ways that you can enable auto-probing forthe second (and third, and...) card. The easiestmethod is to pass boot-time arguments to the kernel,which is usually done by LILO. Probing for thesecond card can be achieved by using a boot-time argumentas simple as ether=0,0,eth1. In thiscase eth0 and eth1 will be assigned in the orderthat the cards are found at boot. Say if you wantthe card at 0x300 to be eth0 andthe card at 0x280 to be eth1 then you could use

LILO: linux ether=5,0x300,eth0 ether=15,0x280,eth1

The ether= command accepts more than the IRQ + I/O+ name shown above. Please have a look atPassing Ethernet Arguments...for the full syntax, card specific parameters, and LILO tips.

The second way (not recommended) is to edit the fileSpace.c and replace the 0xffe0 entry for theI/O address with a zero. The 0xffe0 entry tells itnot to probe for that device -- replacing it with a zerowill enable autoprobing for that device.

2.5 The ether= thing didn't do anything for me. Why?

As described above, the ether= command only worksfor drivers that are compiled into the kernel. Now mostdistributions use the drivers in a modular form, and sothe ether= command is rarely used anymore. (Some olderdocumentation has yet to be updated to reflect this change.)If you want to apply options for a modular ethernet driveryou must make changes to the /etc/modules.conffile.

If you are using a compiled in driver, and have addedan ether= to your LILO configuration file, notethat it won't take effect until you re-run liloto process the updated configuration file.

Problem:PCI NE2000 clone card is not detected at boot with v2.0.x.

Reason:The ne.c driver up to v2.0.30 only knows about the PCIID number of RealTek 8029 based clone cards. Since then,several others have also released PCI NE2000 clonecards, with different PCI ID numbers, and hence thedriver doesn't detect them.

Solution:The easiest solution is to upgrade to a v2.0.31 (or newer)version of thelinux kernel. It knows the ID numbers of about five differentNE2000-PCI chips, and will detect them automatically at boot orat module loading time. If you upgrade to 2.0.34 (or newer)there is a PCI-only specific NE2000 driver that is slightlysmaller and more efficient than the original ISA/PCI driver.

Problem:PCI NE2000 clone card is reported as an ne1000 (8 bit card!)at boot or when I load the ne.o module for v2.0.x, and hencedoesn't work.

Reason:Some PCI clones don't implement byte wide access (and hence arenot truly 100% NE2000 compatible). This causes the probeto think they are NE1000 cards.

3c501 Device Eth0 Driver Download

Solution:You need to upgrade to v2.0.31 (or newer) as described above.The driver(s) now check for this hardware bug.

Problem:PCI NE2000 card gets terrible performance, even when reducing thewindow size as described in the Performance Tips section.

Reason:The spec sheets for the original 8390 chip, desgined and sold over ten years ago, noted that a dummy read from the chip wasrequired before each write operation for maximum reliablity.The driver has the facility to do this but it has been disabledby default since the v1.2 kernel days. One user has reported thatre-enabling this `mis-feature' helped their performance with acheap PCI NE2000 clone card.

Solution:Since it has only been reported as a solution by one person, don'tget your hopes up. Re-enabling the read before write fix is doneby simply editing the driver file in linux/drivers/net/,uncommenting the line containing NE_RW_BUGFIX and thenrebuilding the kernel or module as appropriate. Please send ane-mail describing the performance difference and type of card/chipyou have if this helps you. (The same can be done for thene2k-pci.c driver as well).

Problem:The ne2k-pci.c driver reports error messages liketimeout waiting for Tx RDC with a PCI NE2000 card and doesn'twork right.

Reason:Your card and/or the card to PCI bus link can't handle the longword I/O optimization used in this driver.

Solution:Firstly, check the settings available in the BIOS/CMOS setupto see if any related to PCI bus timing are too aggressive forreliable operation. Otherwise using the ISA/PCI ne.cdriver (or removing the #define USE_LONGIO fromne2k-pci.c) should let you use the card.

Probem:ISA Plug and Play NE2000 (such as RealTek 8019) is not detected.

Reason:The original NE2000 specification (and hence the linux NE2000 driverin older kernels) did not have support for Plug and Play.

Solution:Either use a 2.4 or newer kernel that has a NE2000 driver with PnP,or use the DOS configuration disk that came with the card to disablePnP, and to set the card to a specified I/O address and IRQ. Adda line to /etc/modules.conf like options ne io=0xNNNwhere 0xNNN is the hex I/O address you set the card to. (Thisassumes you are using a modular driver; if not then use anether=0,0xNNN,eth0 argument at boot). You may also have to enter the BIOS/CMOS setup and mark the IRQ as Legacy-ISA instead ofPnP.

Problem:NE*000 driver reports `not found (no reset ack)' during bootprobe.

Reason:This is related to the above change. After the initialverification that an 8390 is at the probed I/O address, thereset is performed. When the card has completed the reset,it is supposed to acknowedge that the reset has completed.Your card doesn't, and so the driver assumes that no NE cardis present.

Solution:You can tell the driver that you have a bad card by usingan otherwise unused mem_end hexidecimal value of 0xbad atboot time. You have to also supply a non-zero I/O basefor the card when using the 0xbad override. For example,a card that is at 0x340 that doesn't ack the resetwould use something like:

LILO: linux ether=0,0x340,0,0xbad,eth0

This will allow the card detection to continue, even if yourcard doesn't ACK the reset. If you are using the driver asa module, then you can supply the option bad=0xbad justlike you supply the I/O address.

Problem:NE*000 card hangs machine at first network access.

Reason:This problem has been reported for kernels as old as 1.1.57to the present. It appears confined to a few software configurableclone cards. It appears that they expect to be initialized insome special way.

Solution:Several people have reported that running the supplied DOSsoftware config program and/or the supplied DOS driver priorto warm booting (i.e. loadlin or the `three-finger-salute')into linux allowed the card to work. This would indicatethat these cards need to be initialized in a particularfashion, slightly different than what the present Linuxdriver does.

Problem:NE*000 ethercard at 0x360 doesn't get detected.

Reason:Your NE2000 card is 0x20 wide inI/O space, which makes it hit the parallel port at 0x378.Other devices that could be there are the second floppycontroller (if equipped) at 0x370 and the secondaryIDE controller at 0x376--0x377.If the port(s) are already registered by another driver, thekernel will not let the probe happen.

Solution:Either move your card to an address like 0x280, 0x340, 0x320or compile without parallel printer support.

Problem:Network `goes away' every time I print something (NE2000)

Reason:Same problem as above, but you have an older kernel thatdoesn't check for overlapping I/O regions. Use thesame fix as above, and get a new kernel while you are at it.

Problem:NE*000 ethercard probe at 0xNNN: 00 00 C5 ... not found.(invalid signature yy zz)

Reason:First off, do you have a NE1000 or NE2000 card at the addr. 0xNNN?And if so, does the hardware address reported look like a validone? If so, then you have a poor NE*000 clone. All NE*000 clonesare supposed to have the value 0x57 in bytes 14 and 15 of theSA PROM on the card. Yours doesn't -- it has `yy zz' instead.

Solution:There are two ways to get around this. The easiest is touse an 0xbad mem_end value as described above for the`no reset ack' problem. This will bypass the signature check,as long as a non-zero I/O base is also given. This way norecompilation of the kernel is required.

The second method (for hackers) involves changing the driveritself, and then recompiling your kernel (or module).The driver (/usr/src/linux/drivers/net/ne.c) has a 'Hall of Shame'list at about line 42. This list is used to detect poor clones.For example, the DFI cards use `DFI' in the first 3 bytes of thePROM, instead of using 0x57 in bytes 14 and 15, like they aresupposed to.

Problem:The machine hangs during boot right after the `8390...' or`WD....' message. Removing the NE2000 fixes the problem.

Solution:Change your NE2000 base address to something like 0x340.Alternatively, youcan use the ``reserve=' boot argument in conjunction withthe ``ether=' argument to protect the card from otherdevice driver probes.

Reason:Your NE2000 clone isn't a good enough clone. An activeNE2000 is a bottomless pit that will trap any driverautoprobing in its space.Changing the NE2000 to a less-popularaddress will move it out of the way of other autoprobes,allowing your machine to boot.

Problem:The machine hangs during the SCSI probe at boot.

Reason:It's the same problem as above, change theethercard's address, or use the reserve/ether boot arguments.

Problem:The machine hangs during the soundcard probe at boot.

Reason:No, that's really during the silent SCSI probe, and it'sthe same problem as above.

Problem:NE2000 not detected at boot - no boot messages at all

Solution:There is no `magic solution' as there can be a number ofreasons why it wasn't detected. The following list shouldhelp you walk through the possible problems.

1) Build a new kernel with only the device drivers that you need.Verify that you are indeed booting the fresh kernel. Forgetting torun lilo, etc. can result in booting the old one. (Look closely atthe build time/date reported at boot.) Sounds obvious, but we haveall done it before. Make sure the driver is in fact included inthe new kernel, by checking the System.map file for nameslike ne_probe.

2) Look at the boot messages carefully. Does it ever even mentiondoing a ne2k probe suchas `NE*000 probe at 0xNNN: not found (blah blah)'or does it just fail silently. There is a big difference.Use dmesg|moreto review the boot messages after logging in, or hit Shift-PgUpto scroll the screen up after the boot has completed and the loginprompt appears.

3) After booting, do a cat /proc/ioports and verifythat the full iospace that the card will require is vacant. Ifyou are at 0x300 then the ne2k driver will askfor 0x300-0x31f. If any other device driver has registeredeven one port anywhere in that range, the probe will nottake place at that address and will silently continue to the nextof the probed addresses. A common case is having the lp driverreserve 0x378 or the second IDE channel reserve 0x376which stops the ne driver from probing 0x360-0x380.

4) Same as above for cat /proc/interrupts. Make sure noother device has registered the interrupt that you setthe ethercard for. In this case, the probe will happen, and theether driver will complain loudly at boot about not being able toget the desired IRQ line.

5) If you are still stumped by the silent failure of the driver, thenedit it and add some printk() to the probe. For example, with the ne2kyou could add/remove lines (marked with a `+' or `-') inlinux/drivers/net/ne.c like:

Then it will output messages for each port address that it checks,and you will see if your card's address is being probed or not.

6) You can also get the ne2k diagnostic from Don's ftp site (mentionedin the howto as well) and see if it is able to detect your card afteryou have booted into linux. Use the `-p 0xNNN' option to tell itwhere to look for the card. (The default is 0x300 and it doesn'tgo looking elsewhere, unlike the boot-time probe.)The output from when it finds a card will look something like:

Your register values and PROM values will probably be different.Note that all the PROM values are doubled for a 16 bit card, andthat the ethernet address (00:00:c0:b0:05:65) appears in thefirst row, and the double 0x57 signature appears at theend of the PROM.

The output from when there is no card installed at 0x300will look something like this:

The 0xff values arise because that is the value thatis returned when one reads a vacant I/O port. If you happento have some other hardware in the region that is probed, youmay see some non 0xff values as well.

7) Try warm booting into linux from a DOS boot floppy (via loadlin)after running the supplied DOS driver or config program. It may be doingsome extra (i.e. non-standard) 'magic' to initialize the card.

8) Try Russ Nelson's ne2000.com packet driver to see if even it cansee your card -- if not, then things do not look good. Example:

A:> ne2000 0x60 10 0x300

The arguments are software interrupt vector, hardware IRQ,and I/O base. You can get it from any msdos archive inpktdrv11.zip -- The current version may be newer than 11.

Problem:You get messages such as the following:

Reason:There is a shared memory problem.

Solution:The most common reason for this is PCI machines that arenot configured to map in ISA memory devices. Hence youend up reading the PC's RAM (all 0xff values) instead ofthe RAM on the card that contains the data from thereceived packet.

Other typical problems that are easy to fix are board conflicts,having cache or `shadow ROM' enabled for that region, orrunning your ISA bus faster than 8Mhz. There are also asurprising number of memory failures on ethernet cards,so run a diagnostic program if you have one for yourethercard.

Problem:SMC EtherEZ doesn't work in non-shared memory (PIO) mode.

Reason:Older versions of the Ultra driver only supported the cardin the shared memory mode of operation.

Solution:The driver in kernel version 2.0 and above also supports theprogrammed I/O mode of operation. Upgrade to v2.0 or newer.

Problem:Old wd8003 and/or jumper-settable wd8013 always get the IRQ wrong.

Reason:The old wd8003 cards and jumper-settable wd8013 clones don'thave the EEPROM that the driver can read the IRQ setting from.If the driver can't read the IRQ, then it tries to auto-IRQto find out what it is. And if auto-IRQ returns zero, thenthe driver just assigns IRQ 5 for an 8 bit card or IRQ 10 fora 16 bit card.

Solution:Avoid the auto-IRQ code, and tell the kernel what the IRQthat you have jumpered the card to in your module configurationfile (or via a boot time argument for in-kernel drivers).

Problem:SMC Ultra card is detected as wd8013, but the IRQ and sharedmemory base is wrong.

Reason:The Ultra card looks a lot like a wd8013, and if the Ultradriver is not present in the kernel, the wd driver maymistake the ultra as a wd8013. The ultra probe comes before thewd probe, so this usually shouldn't happen. The ultra storesthe IRQ and mem base in the EEPROM differently than a wd8013,hence the bogus values reported.

Solution:Recompile with only the drivers you need in the kernel. If youhave a mix of wd and ultra cards in one machine, and are usingmodules, then load the ultra module first.

Problem:The 3c503 picks IRQ N, but this is needed for someother device which needs IRQ N. (eg. CD ROM driver, modem, etc.)Can this be fixed without compiling this into the kernel?

Solution:The 3c503 driver probes for a free IRQ line in the order{5, 9/2, 3, 4}, and it should pick a line which isn't beingused. The driver chooses whenthe card is ifconfig'ed into operation.

If you are using a modular driver, you can use moduleparameters to set various things, including the IRQ value.

The following selects IRQ9, baselocation 0x300, <ignored value>, and if_port #1 (theexternal transceiver).

io=0x300 irq=9 xcvr=1

Alternately, if the driver is compiled into the kernel,you can set the same values at boot by passingparameters via LILO.

LILO: linux ether=9,0x300,0,1,eth0

The following selects IRQ3, probes for the base location,<ignored value>, and the default if_port #0 (the internaltransceiver)

LILO: linux ether=3,0,0,0,eth0

Problem:3c503: configured interrupt X invalid, will use autoIRQ.

Reason:The 3c503 card can only use one of IRQ{5, 2/9, 3, 4}(These are the only lines that are connected to the card.)If you pass in an IRQ value that is not in the aboveset, you will get the above message.Usually, specifying an interrupt value for the 3c503 isnot necessary. The 3c503 will autoIRQ when it getsifconfig'ed, and pick one of IRQ{5, 2/9, 3, 4}.

Solution:Use one of the valid IRQs listed above, or enableautoIRQ by not specifying the IRQ line at all.

Problem:The supplied 3c503 drivers don't use the AUI (thicknet) port.How does one choose it over the default thinnet port?

Device Eth0 Does Not Exist

Solution:The 3c503 AUI port can be selected at boot-time for in-kerneldrivers, and at module insertion for modular drivers.The selection is overloaded onto the low bit ofthe currently-unused dev->rmem_start variable, so a boot-timeparameter of:

LILO: linux ether=0,0,0,1,eth0

should work for in-kernel drivers.

To specify the AUI port when loading as a module, just appendxcvr=1 to the module options line along withyour I/O and IRQ values.

2.9 FAQs Not Specific to Any Card.

Linux and ISA Plug and Play Ethernet Cards

For best results (and minimum aggravation) it is recommendedthat you use the (usually DOS) program that came with yourcard to disable the ISA-PnP mechanism and set it to a fixedI/O address and IRQ. Make sure the I/O address you use isprobed by the driver at boot, or if using modules then supplythe address as an io= option in /etc/modules.conf.You may also have to enter the BIOS/CMOS setup and mark the IRQ as Legacy-ISA instead of ISA-PnP (if your computer has this option).

Note that you typically don't need DOS installed to run aDOS based configuration program. You can usually just boota DOS floppy disk and run them from the supplied floppy disk.You can also download OpenDOS and FreeDOS for free.

If you require ISA-PnP enabled for compatibility with some otheroperating system then what you will have to do dependson what kernel version you are using. For 2.2.x and olderkernels, you will have to use the isapnptoolspackage with linux to configure the card(s) each time at boot.You will still have to make sure the I/O address chosen for thecard is probed by the driver or supplied as an io= option.For 2.4.x and newer kernels, there is ISA-PnP support availablebuilt right into the kernel (if selected at build time) andif your particular driver makes use of this support, then yourcard will be configured to an available I/O address and IRQall without any user supplied option values. You do notwant to be trying to use the user-space isapnptools and thein kernel ISA-PnP support at the same time.

Some systems have an `enable PnP OS' (or similar named) option in the BIOS/CMOS setup menu which does not reallyhave anything to do with ISA-PnP hardware.See below for more details on this option.

PCI machine detects card but driver fails probe (PnP OS).

Some PCI BIOSes may not enable all PCI cards at power-up,especially if the BIOS option `PnP OS' is enabled. Thismis-feature is to support the current release of Windows whichstill uses some real-mode drivers. Either disable this option,or try and upgrade to a newer driver which has the code toenable a disabled card.

Note that kernel version 2.4.x has better support to dealwith this option - in particular you should be able to enable this option, and the kernel/drivers should be ableto set up and/or enable the cards on its own.

All cards detected but two fail to work in PCI machine

Version 1 of the PCI spec allowed for some slots to bebus master and some slots to be slave (non-bus master) slots.To avoid the problems associated with people putting BMcards into slave slots, the v2 of the PCI spec said that allslots should be BM capable. Hovever most PCI chipsets onlyhave four BM pins, and so if you have a five slot board,chances are that two slots share one of the BM pins! This allowsthe board to meet the requirements of the v2 spec (but notthe intent). So if you have a bunch of cards, and two ofthem fail to work, they may be in slots that share a BM pin.

I have /etc/conf.modules and not /etc/modules.conf.

Older distributions will have conf.modules and notmodules.conf which is the more sensible name ofthe two. Newer module utility programs expect the new name,so keep that in mind if you upgrade an older system.

Ethercard is Not Detected at Boot.

The usual reason for this is that people are using a kernelthat does not have support for their particular card builtin. For a modular kernel, it usually means that the requiredmodule has not been requested for loading.

If you are using a modular based kernel, such as those installedby most of the linux distributions, then try and use theconfiguration utility for the distribution to select the modulefor your card. For ISA cards, it is a good idea to determinethe I/O address of the card and add it as anoption (e.g. io=0x340) if the configuration utility asksfor any options. If there is no configuration utility, thenyou will have to add the correct module name (and options)to /etc/modules.conf -- see man modprobe formore details.

The next main cause is having another device using partof the I/O space that your card needs. Most cards are16 or 32 bytes wide in I/O space. If your card is setat 0x300 and 32 bytes wide, then the driver will askfor 0x300-0x31f. If any other device driver has registeredeven one port anywhere in that range, the probe will nottake place at that address and the driver will silentlycontinue to the next of the probed addresses. So, afterbooting, do a cat /proc/ioports and verify that thefull I/O space that the card will require is vacant.

Another problem is having your card jumpered to an I/Oaddress that isn't probed by default. The list of probed addresses for each driver is easily found justafter the text comments in the driver source.Even if the I/O setting of your card isnot in the list of probed addresses, you can supplyit at boot (for in-kernel drivers) withthe ether= command as described inPassing Ethernet Arguments...Modular drivers can make use of the io= option in /etc/modules.conf tospecify an address that isn't probed by default.

Driver reports unresolved symbol ei_open and won't load.

You are using one of the many ethernet cards that havean 8390 chip (or clone) on board. For such cards, thedriver comes in two parts - the part which you unsuccessfullytried to load (e.g. ne2k-pci.o, ne.o, wd.o, smc-ultra.oetc.) and the 8390 part. These drivers have (+8390)listed right beside their module name in the vendorspecific information listing.(Vendor Specific...)

You have to make sure that the8390.o module gets loaded before loading thesecond half of the driver so that the second half of thedriver can find the functions in 8390.o that it needs.

Possible causes: (1)Forgetting to run depmod after installinga new kernel and modules, so that module dependencies likethis are handled automatically. (2)Using insmod insteadof modprobe, as insmod doesn't check for any moduleordering constraints. (3)The module 8390.o is notin the directory beside the other half of the driver whereit should be.

ifconfig reports the wrong I/O address for the card.

No it doesn't. You are just interpreting it incorrectly.This is not a bug, and the numbers reported are correct. It justhappens that some 8390 based cards (wd80x3, smc-ultra, etc) have theactual 8390 chip living at an offset from the first assigned I/O port.This is the value stored indev->base_addr, and is what ifconfig reports. If youwant to see the full range of ports that your card uses, then trycat /proc/ioports which will give the numbers you expect.

Shared Memory ISA cards in PCI Machine do not work (0xffff)

This will usually show up as reads of lots of 0xffff values.No shared memory cards of any type will work in a PCI machineunless you have the PCI ROM BIOS/CMOS SETUP configuration setproperly. You have to set it to allow shared memory accessfrom the ISA bus for the memory region that your card is tryingto use. If you can't figure out which settings are applicablethen ask your supplier or local computer guru. For AMI BIOS,there is usually a 'Plug and Play' section where there willbe an ``ISA Shared Memory Size' and ``ISA Shared Memory Base'settings. For cards like the wd8013 and SMC Ultra, change thesize from the default of `Disabled' to 16kB, and change the baseto the shared memory address of your card.

Card seems to send data but never receives anything.

Do a cat /proc/interrupts.A running total of the number of interrupt events yourcard generates will be in the list given from the above.If it is zero and/or doesn't increase when you try to usethe card then there is probably a physical interrupt conflict with another device installed in the computer(regardless of whether or not the other device has a driver installed/available).Change the IRQ of one of the two devices to a free IRQ.

Asynchronous Transfer Mode (ATM) Support

Werner Almesberger has been working on ATM supportfor linux.He has been working with the Efficient Networks ENI155pboard (Efficient Networks)and the Zeitnet ZN1221 board(Zeitnet).

Werner says that the driver for the ENI155p is ratherstable, while the driver for the ZN1221 is presentlyunfinished.

Check the latest/updated status at the following URL:

Gigabit Ethernet Support

Is there any gigabit ethernet support for Linux?

Yes, there are currently several. One of the prominentLinux network developers rated the performance of thecards with linux drivers as follows: 1) Intel E1000,2) Tigon2/Acenic, 3) SysKonnect sk-98xx, 4) Tigon3/bcm57xx.This was as of March 2002 and subject to change of course.

FDDI Support

Is there FDDI support for Linux?

Yes. Larry Stefani has writtena driver for v2.0 with Digital's DEFEA (FDDI EISA)and DEFPA (FDDI PCI) cards.This was included into the v2.0.24 kernel. Currentlyno other cards are supported though.

Full Duplex Support

Will Full Duplex give me 20MBps? Does Linux support it?

Cameron Spitzer writes the following about full duplex 10Base-Tcards: ``If you connect it to a full duplex switched hub,and your system is fast enough and not doing much else, it cankeep the link busy in both directions.There is no such thing as full duplex 10BASE-2 or 10BASE-5(thin and thick coax).Full Duplex works by disabling collision detection in the adapter.That's why you can't do it with coax; the LAN won't run that way.10BASE-T (RJ45 interface) uses separate wires for send and receive,so it's possible to run both ways at the same time. The switchinghub takes care of the collision problem. The signalling rateis 10 Mbps.'

So as you can see, you still will only be able to receive ortransmit at 10Mbps, and hence don't expect a 2x performanceincrease. As to whether it is supported or not, that dependson the card and possibly the driver. Some cards may doauto-negotiation, some may need driver support, and some mayneed the user to select an option in a card's EEPROM configuration.Only the serious/heavy user would notice the difference betweenthe two modes anyway.

Ethernet Cards for Linux on SMP Machines

If you spent the extra money on a multi processor (MP) computer thenbuy a good ethernet card as well. For v2.0 kernels it wasn't reallyan issue, but it definitely is for v2.2. Most of the oldernon-intelligent (e.g. ISA bus PIO and shared memory design) cardswere never designed with any consideration for use on a MP machine.The executive summary is to buy an intelligent modern designcard and make sure the driver has been written (or updated) tohandle MP operation. (The key words here are `modern design' - thePCI-NE2000's are just a 10+ year old design on a modern bus.)Looking for the text spin_lock in the driver source is a goodindication that the driver has been written to deal with MP operation.The full details of why you should buy a good card for MP use (andwhat happens if you dont) follow.

In v2.0 kernels, only one processor was allowed `in kernel' (i.e. changing kernel data and/or running device drivers) at anygiven time. So from the point of view of the card (and the associateddriver) nothing was different from uni processor (UP) operation andthings just continued to work. (This was the easiest way to get aworking MP version of Linux - one big lock around the whole kernelonly allows one processor in at a time. This way you know that youwon't have two processors trying to change the same thing at thesame time!)

The downside to only allowing one processor inthe kernel at a time was that you only got MP performanceif the running programs were self contained and calculation intensive.If the programs did a lot of input/output (I/O) such as reading orwriting data to disk or over a network, then all but one of theprocessors would be stalled waiting on their I/O requests to becompleted while the one processor running in kernel franticallytries to run all the device drivers to fill the I/O requests. Thekernel becomes the bottleneck and since there is only one processorrunning in the kernel, the performance of a MP machine in the heavyI/O, single-lock case quickly degrades close to that of a single processor machine.

Since this is clearly less than ideal (esp. for file/WWW servers,routers, etc.) the v2.2 kernels have finer grained locking - meaningthat more than one processor can be in the kernel at a time. Insteadof one big lock around the whole kernel, there are a lot of smallerlocks protecting critical data from being manipulated by more thanone processor at a time - e.g. one processor can be running thedriver for the network card, while another processoris running the driver for the disk drive at the same time.

Okay, with that all in mind here are the snags: The finer lockingmeans that you can have one processor trying to send dataout through an ethernet driver while another processor tries toaccess the same driver/card to do something else (such as get thecard statistics for cat /proc/net/dev). Oops - your cardstats just got sent out over the wire, while you got data foryour stats instead. Yes, the card got confused by being askedto do two (or more!) things at once, and chances are it crashedyour machine in the process.

So, the driver that worked for UP isno longer good enough - it needs to be updated with locks thatcontrol access to the underlying card so that the three tasks ofreceive, transmit and manipulationof configuration data are serialized tothe degree required by the card for stable operation. The scarypart here is that a driver not yet updated with locks for stableMP operation will probably appear to be working in a MP machineunder light network load, but will crash the machine or at leastexhibit strange behaviour when two (or more!) processors try todo more than one of these three tasks at the same time.

The updated MP aware ethernet driver will (at aminimum) require a lockaround the driver that limits access at the entry pointsfrom the kernel into the driver to `one at a time please'.With this in place, things will be serialized so that theunderlying hardware should be treated just as if it was beingused in a UP machine, and so it should be stable. The downsideis that the one lock around the whole ethernet driver hasthe same negative performance implications that having one biglock around the whole kernel had (but on a smaller scale) - i.e.you can only have one processor dealing with the cardat a time.[Technical Note: The performance impact may also includeincreased interrupt latencies if the locks that need to beadded are of the irqsave type and they are heldfor a long time.]

Possible improvements on this situation can be made in twoways. You can try to minimize the time between when the lock istaken and when it is released, and/or you can implement finergrained locking within the driver (e.g. a lock around the wholedriver would be overkill if a lock or two protecting againstsimultaneous access to a couple of sensitive registers/settingson the card would suffice).

However, for older non-intelligentcards that were never designed with MP use in mind, neither ofthese improvements may be feasible. Worse yet is that thenon-intelligent cards typically require the processor to movethe data between the card and the computer memory, so in aworst case scenario the lock will be held the whole time thatit takes to move each 1.5kB data packet over an ISA bus.

The more modern intelligent cards typically move network datadirectly to and from the computer memory without any help froma processor. This is a big win, since the lock is then onlyheld for the short time it takes the processor to tell the cardwhere in memory to get/store the next network data packet. Moremodern card designs are less apt to require a single biglock around the whole driver as well.

Ethernet Cards for Linux on Alpha/AXP PCI Boards

As of v2.0, only the 3c509, depca, de4x5, pcnet32, and all the8390 drivers (wd, smc-ultra, ne, 3c503, etc.) havebeen made `architecture independent' so as to work on theDEC Alpha CPU based systems. Other updated PCI drivers fromDonald's WWW page may also work as these have been writtenwith architecture independence in mind.

Note that the changes that are required to make a driverarchitecture independent aren't that complicated.You only need to do the following:

-multiply all jiffies related values by HZ/100 to accountfor the different HZ value that the Alpha uses.(i.e timeout=2; becomes timeout=2*HZ/100;)

-replace any I/O memory (640k to 1MB) pointer dereferences withthe appropriate readb() writeb() readl() writel() calls, asshown in this example.

-replace all memcpy() calls that have I/O memory as source ortarget destinations with the appropriate one ofmemcpy_fromio() or memcpy_toio().

Details on handling memory accesses in an architectureindependent fashion are documented in the filelinux/Documentation/IO-mapping.txt that comeswith recent kernels.

Ethernet for Linux on SUN/Sparc Hardware.

For the most up to date information on Sparc stuff, try thefollowing URL:

Note that some Sparc ethernet hardware gets its MAC addressfrom the host computer, and hence you can end up with multipleinterfaces all with the same MAC address. If you need toput more than one interface on the same net then use thehw option to ifconfig to assign unique MAC address.

Issues regarding porting PCI drivers to the Sparc platformare similar to those mentioned above for the AXP platform.In addition there may be some endian issues, as the Sparcis big endian, and the AXP and ix86 are little endian.

Ethernet for Linux on Other Hardware.

There are several other hardware platforms that Linux canrun on, such as Atari/Amiga (m68k). As in the Sparc caseit is best to check with the home site of each Linuxport to that platform to see what is currently supported.(Links to such sites are welcome here - send them in!)

Linking 10 or 100 BaseT without a Hub

Can I link 10/100BaseT (RJ45) based systems together without a hub?

You can link 2 machines, but no more than that, withoutextra devices/gizmos, by using a crossover cable. Some newerfancy autonegotiaton cards may not work on a crossover cable though.And no, you can't hack together a hub just bycrossing a few wires and stuff. It's pretty much impossibleto do the collision signal right without duplicating a hub.

SIOCSIFxxx: No such device

I get a bunch of `SIOCSIFxxx: No such device' messages atboot, followed by a `SIOCADDRT: Network is unreachable'What is wrong?

Your ethernet device was not detected at boot/module insertiontime, and whenifconfig and route are run, they have no deviceto work with. Use dmesg | more to review theboot messages and see if there are any messages aboutdetecting an ethernet card.

Device Eth0 Does Not Seem To Be Present

SIOCSFFLAGS: Try again

I get `SIOCSFFLAGS: Try again' when I run `ifconfig' -- Huh?

Some other device has taken the IRQ that your ethercardis trying to use, and so the ethercard can't use the IRQ.You don't necessairly need to reboot to resolve this, assome devices only grab the IRQs when they need them andthen release them when they are done. Examples are somesound cards, serial ports, floppy disk driver, etc. Youcan type cat /proc/interrupts to see which interruptsare presently in use. Most of theLinux ethercard drivers only grab the IRQ when they areopened for use via `ifconfig'. If you can get the otherdevice to `let go' of the required IRQ line, then youshould be able to `Try again' with ifconfig.

Using `ifconfig' and Link UNSPEC with HW-addr of 00:00:00:00:00:00

When I run ifconfig with no arguments, it reports thatLINK is UNSPEC (instead of 10Mbs Ethernet) and italso says that my hardware address is all zeros.

This is because people are running a newer version ofthe `ifconfig' program than their kernel version. Thisnew version of ifconfig is not able to report these propertieswhen used in conjunction with an older kernel. You can eitherupgrade your kernel, `downgrade' ifconfig, or simply ignoreit. The kernel knows your hardware address, so it reallydoesn't matter if ifconfig can't read it.

You may also get strange information if the ifconfigprogram you are using is a lot older than the kernel you areusing.

Huge Number of RX and TX Errors

When I run ifconfig with no arguments, it reports that Ihave a huge error count in both rec'd and transmittedpackets. It all seems to work ok -- What is wrong?

Look again. It says RX packetsbig numberPAUSEerrors 0PAUSEdropped 0PAUSEoverrun 0.And the same for the TX column.Hence the big numbers you are seeing are the total number ofpackets that your machine has rec'd and transmitted.If you still find it confusing, try typingcat /proc/net/dev instead.

Entries in /dev/ for Ethercards

Nmap Failed To Open Device Eth0

I have /dev/eth0 as a link to /dev/xxx. Is this right?

Contrary to what you have heard, the files in /dev/* are not used.You can delete any /dev/wd0, /dev/ne0 and similar entries.

Ubuntu Cannot Find Device Eth0

Access to the raw Ethernet Device

How do I get access to the raw ethernet device in linux,without going through TCP/IP and friends?

Device Eth0 Left Promiscuous Mode

This gives you a socket receiving every protocol type.Do recvfrom() calls to it and it will fill the sockaddrwith device type in sa_family and the device name in thesa_data array. I don't know who originally inventedSOCK_PACKET for Linux (its been in for ages) but its superb stuff.You can use it to send stuff raw too via sendto() calls.You have to have root access to do either of course.

Device Eth0 Is Already A Member Of A Bridge

NextPreviousContents