Home / Documents / Tutorials / Rtls

Realtek 8139 based NIC installation

Juergen Keil and Mariusz Zynel

Last revised: Jun 13, 2011

Realtek 8139 is one of the most popular chip on today's NIC (Network Interface Card) market. There are many branded and unbranded network cards based on that chip available at very reasonable prices. Low prices combined with a wide range of supported platforms is the reason of the popularity.

Software downloading

Realtek deserves a credit for delivering drivers for Solaris 7 and 8. The driver also works with Solaris 9 (no longer available for download).

Another driver, written by Masayuki Murayama, is available with the source code for download at http://homepage2.nifty.com/mrym3/taiyodo/eng/.


In this tutorial we shall give instructions to install Realtek driver. The following combinations of network cards and driver versions have been tested:

VendorCard modelDriver version
Avacs10/100 MB/s NIC1.05
CompexReadyLINK Express 10/100 (RE100TX)1.03a and 1.05
D-LinkNetNIC 100P1.05
LGLNIC-10/100A1.03a and 1.05
MicronetEtherFast LAN Adapter (SP2500R)1.03a
PlanetENW-9504 (V.6)1.05

  1. Unzip the driver archive.
  2. Run the installation script by typing:

    sh Install

    Now, your Solaris kernel should include a driver, named rtls, that can talk to your Realtek based network card, and the hardware should be probed by the driver.

  3. You can use the command

    prtconf -D

    to verify that the hardware probe for the Realtek NIC was successful. Its output should list a pciXXXX,YYYY device with a driver named rtls bound to it:

      pci, instance #0 (driver name: pci)
        pci10ec,8139 (driver name: rtls)

    The numbers "10ec,8139" may differ in your case depending on the vendor and model of the network card you are using.

  4. Once the Solaris driver has found the Realtek hardware, you can start configuring the network interface. A step by step procedure can be found in Configuring networking tutorial. There is also a detailed guide Configuring network interface cards. For convenience, we shall give some brief instructions.


    ifconfig rtls0 plumb

    to setup a Solaris network interface for your Realtek card. Next step is to assign an IP4 address and netmask to the Realtek interface with

    ifconfig rtls0 inet netmask up

    Adapt the IP4 address and netmask to your local network requirements. Now the NIC should be up and running, and it should be able to talk to another machine on the same network. To verify this use ping command.

    The above two ifconfig commands are just for temporary setting up the card, the configuration is lost on a reboot. For a permanent configuration of the NIC, create a file:


    e.g. like this:

    echo > /etc/hostname.rtls0

    With that file in place, the Realtek based NIC is configured automatically during the Solaris boot. What is left is the name service and routing configuration. for details, consult tutorials mentioned above.


Typical problem with Realtek based NIC is a non-working interrupt for the NIC, so Realtek's driver is unable to "see" incomming packets. It manifests as a lack of network connectivity. If you encounter such a problem try one of the following:

  • If your BIOS has a "PNP OS" (Plug&Play OS) setting, disable it.

    For use with Solaris, the BIOS should assign resources to all PCI cards in the system, and it does this when "PnP OS" is set to NO or DISABLED.

  • Solaris' ACPI support may have problems with your system's ACPI tables. If your System's BIOS has an option to disable ACPI, try it. Or use the following command from within Solaris to disable ACPI (reboot after that):

    eeprom acpi-user-options=0x2

  • The IOAPIC in some of the newer chipsets (VIA KT400, NVidia NForce2) seems to cause problems for Solaris, resulting in non-working interrupts. Try to disable the APIC in the system's BIOS, if there is such an option. In case the file /var/adm/messages contains "pcplusmp" and "ioapic" messages (to check that run the following command)

    egrep 'pcplusmp|apic' /var/adm/messages

    you can also try to disable the IOAPIC by adding the following line to /etc/system (reboot after that):

      set pcplusmp:apic_forceload = -1

The BIOS setting "PNP OS" is called differently from one system to another. For example, in HP Pavilion 8575c it is callled "Installed O/S", and may assume one of the values: Win95, WinNT, Other. Setting it to "Other" makes HP BIOS to assign IRQs to all PCI cards.

Note:  If you are switching from one Realtek based NIC to another one, use the following command

devfsadm -v -C -i rtls

to cleanup old device links and let the Realtek driver probe for new hardware.

Related man pages:

  • devfsadm,
  • add_drv,
  • ifconfig,
  • netmasks,
  • ping.

Copyright © 2003-2004 by Jürgen Keil and Mariusz Zynel. All rights reserved.

Last modified: 2011-06-13