Installing NICs

The latest version of this article can be found at http://bakskuru.se/fredrik/freesco/

The purpose of this document is to describe the basic steps for setting up NICs and getting them to work in FREESCO. For more advanced issues, please consult the FREESCO forums. NICs come in two types, ISA and PCI, and the process of setting them up varies some. This document describes how to set up both ISA and PCI NICs.

There is a very good HTML document called modules.html bundled with the modules-0xx.zip archive (where xx matches your FREESCO version), which can be downloaded from http://freesco.sourceforge.net. Read it, and you will learn a lot. Most of the information here is taken from that document and all credit should go to the original author (which I believe is Lightning). All other information is gathered from the FREESCO forums, I've just compiled it into this document.

I am by no means an expert on this. If you find any errors or have comments, don't hesitate to contact me

Identifying your NIC

If you don't know the vendor/brand/model of your NIC it is time to find this out. This information is absolutely crucial in order to configure the NIC properly. Look for numbers or other identification marks on the card and use e.g. Google Gooooogle to look them up. Hopefully you'll be able to identify your card.

[ Top ]

Finding a driver

You need a driver to be able to use your NIC with FREESCO. FREESCO comes with support for a small amount of NICs right out of the box. To find out if your NIC is one of those, go to the FREESCO download site at http://freesco.sourceforge.net. There you will find files named “modules-0XX”, where XX corresponds to a FREESCO version (so if you are using FREESCO 032, you should look for “modules 032”). Download the file and extract it. The archive contains a file called “modules.html” which describes the NICs that FREESCO supports right out of the box as well as the NICs that need additional drivers. If your card is one of the ones with built in support, you don't have to do anything, the driver is already installed. If there is no built in support for your card, you have to add a driver (module) to your FREESCO. Just read the file and you will find out how to do this.

Note: Even if you have one of the NICs that FREESCO supports out of the box, it might be a good idea to look for a suitable driver in the modules-package. The reason for this is that these drivers are newer than the ones that comes with FREESCO, hence they might be working better.

[ Top ]

ISA NICs

Configuring these cards means assigning them a base address (I/O) and an IRQ. This can be done in two ways, depending on the card:

  • “Statically” by using jumpers on the card or using a DOS utility
  • “Dynamically” by using ISA Plug'n'Play (ISA PnP). Not all cards support ISA PnP so this might not be an option for you.

When configuring the cards statically, you assign each card a base address and an IRQ. The same information is then entered in the FREESCO setup. If you use ISA PnP, a utility called pnpdump is run during the setup of your FREESCO. This utility probes your cards for information such as IRQ:s it can handle, valid base addresses, etc, and dumps this to a file called isapnp.cnf. What you have to do is to edit the file, uncomment and edit some rows and restart your FREESCO. Now your NICs should be configured correctly. The major advantage of using ISA PnP is that you don't have to remember how you configured the NIC when you set up your FREESCO. All you have to do is to edit the configuration file. On the other hand some cards refuses to work in PnP mode. If you run in to trouble when configuring cards using ISA PnP it might be worth trying to get the NIC working without PnP. ISA PnP is only available in the 03x series, not in 027 1)

There are two ways to configure a card, either by jumpers on the card (on older cards) or by using a DOS utility. If your card has jumpers, you must find the manual for the NICs which will tell how to jumper them correctly. For newer cards, a DOS utility is often available from the homepage of the card vendor.

Depending on the card and the FREESCO version you are using, the following applies:

  • FREESCO 027 and NIC w/o ISA PnP support
    • Assign the card a base address and a IRQ, either using the jumpers on the NIC or using the DOS utility. I have successfully used IRQ 10, 11, 12 and I/O 0×210, 0×300, 0×330.
    • Remember: You can not have two cards with the same IRQ or I/O!
    • Remember: It is not recommended to use IRQs below 10
    • When the cards have been configured, information about the IRQ and I/O of the NICs has to be entered in FREESCO. This is done using advanced option 53 in the FREESCO setup.
  • FREESCO 027 and NIC w ISA PnP support
    • Disable ISA PnP on the card using the DOS utility
    • Follow instructions for 027 and NIC w/o ISA PnP above.
  • FREESCO 03x and NIC w/o ISA PnP support
    • Follow instructions for setting up 027 and NIC w/o ISA PnP above.
  • FREESCO 03x and NIC w ISA PnP support, but you do not want to use it
    • Disable ISA PnP on the card using the DOS utility
    • Follow instructions for 027 and NIC w/o ISA PnP above.
  • FREESCO 03x and NIC w ISA PnP and you want to use it (This section is based on Peppe/Sweden's ISA-pnp Howto )
    • Use the DOS utility to enable ISA PnP
    • Boot your FREESCO and enter setup, option 22. Alternatively you can type
      rc_pnp setup

      at the prompt.

    • A simple menu will be displayed for you. Press 'c' to create a new dump of your ISA cards. At this moment pnpdump is run and a dump called isapnp.cfg is created in /boot/etc (with a copy in /etc).
    • The dump is opened in an editor and it look something like this:
# $Id: pnpdump.c,v 1.9 1997/06/10 21:37:32 fox Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
# For details of this file format, see isapnp.conf(5)
#
# For latest information on isapnp and pnpdump see:
# http://www.roestock.demon.co.uk/isapnptools/
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
#
# Trying port address 0203
# Board 1 has serial identifier 8a c9 75 1a 12 31 10 d4 25
# Board 2 has serial identifier d1 af ba 2b 32 95 50 6d 50

# (DEBUG)
(READPORT 0x0203)
(ISOLATE)
(IDENTIFY *)

# Card 1: (serial identifier 8a c9 75 1a 12 31 10 d4 25)
# INT1031 Serial No -915072494 [checksum 8a]

# Version 1.0, Vendor version 0.0
# ANSI string -->Intel PRO/10+ or compatible adapter<--
#
# Logical device id INT1031
#     Device support I/O range check register
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed if required
# Don't forget to uncomment the activate (ACT Y) when happy

(CONFIGURE INT1031/-915072494 (LD 0
#     Compatible device id INT1030
#     Logical device decodes 10 bit IO address lines
#         Minimum IO base address 0x0200
#         Maximum IO base address 0x0390
#         IO base alignment 16 bytes
#         Number of IO addresses required: 16
# (IO 0 (BASE 0x0200))
#     IRQ 3, 4, 5, 7, 9, 10, 11 or 12.
#         High true, edge sensitive interrupt (by default)
# (INT 0 (IRQ 3 (MODE +E)))
# (ACT Y)
))
# End tag... Checksum 0x00 (OK)

# Card 2: (serial identifier d1 af ba 2b 32 95 50 6d 50)
# TCM5095 Serial No -1346753742 [checksum d1]
# Version 1.0, Vendor version 1.0
# ANSI string -->3Com 3C509B EtherLink III<--
#
# Logical device id TCM5095
#     Device support I/O range check register
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed if required
# Don't forget to uncomment the activate (ACT Y) when happy

(CONFIGURE TCM5095/-1346753742 (LD 0
#     Compatible device id PNP80f7
#     IRQ 3, 5, 7, 9, 10, 11, 12 or 15.
#         High true, edge sensitive interrupt (by default)
# (INT 0 (IRQ 3 (MODE +E)))
#     Logical device decodes 16 bit IO address lines
#         Minimum IO base address 0x0210
#         Maximum IO base address 0x03e0
#         IO base alignment 16 bytes
#         Number of IO addresses required: 16
# (IO 0 (BASE 0x0210))
# (ACT Y)
))
# End tag... Checksum 0x00 (OK)

# Returns all cards to the "Wait for Key" state
(WAITFORKEY)

The exact content of this file depends on your system. In this example you see two cards, one Intel Pro/10+ and one 3Com 3C509B. For each card there are specific information. All rows are commented out so none of this will be used by your FREESCO. What needs to be done is to edit some rows and remove some comments, then the cards will be configured.

  • Let's focus on the Intel card. What should be done is to
    • Tell which base address it should use
      The file shows that address 0×0200 will be used for this card:
      # (IO 0 (BASE 0x0200))

      The address is not in conflict with the other card (which will use 0×0210) so this is fine.

    • Tell which IRQ it should use
      This card will be assigned IRQ 3 which is not recommended (don't use IRQs below 10). Instead, we change this to 12 which should work fine:
      # (INT 0 (IRQ 12 (MODE +E)))
    • Enable the configuration
      This is done by uncomment the configuration so it looks like this:
      (CONFIGURE INT1031/-915072494 (LD 0
      #     Compatible device id INT1030
      #     Logical device decodes 10 bit IO address lines
      #         Minimum IO base address 0x0200
      #         Maximum IO base address 0x0390
      #         IO base alignment 16 bytes
      #         Number of IO addresses required: 16
      (IO 0 (BASE 0x0200))
      #     IRQ 3, 4, 5, 7, 9, 10, 11 or 12.
      #         High true, edge sensitive interrupt (by default)
      (INT 0 (IRQ 12 (MODE +E)))
      (ACT Y)
      ))
      # End tag... Checksum 0x00 (OK)
  • Save your changes by exiting the editor (F10) and SAVE your changes. Reboot your FREESCO and your NIC should be working.

[ Top ]

3Com 3C509(B)

This is an ISA NIC, but it differs a bit from other ISA cards. For setting them up, you need to get a copy of the 3c5x9cfg.exe utility. It is a part of the EtherDisc 6.1 Release for 3C509(B), see this page. The utility is part of disc 2, downloadable from the above link. The utility is used to configure the cards. If you have several cards of this type, run the utility with one card in the machine at a time.

Boot the machine in DOS and run the utility. You should

  1. Disable PnP on the card. After this has been done, you need to reboot the machine and restart in DOS mode. Start the utility again.
  2. Assign the card an IRQ not already in use.
  3. Assign the card an unused I/O (base address).
  4. Save the changes and reboot.

For the 3C509, there is all there is. FREESCO autodetects these cards so you DO NOT need to enable ISA PnP (option 22) or enter any information in the NIC settings (option 53). When you have set them up with the utility, you are done!

[ Top ]

PCI NICs

Unlike the ISA NIC's, these cards are not configured using jumpers or utilities; they are configured using the BIOS. To make this work, you must ensure that the “PnP OS” setting (or something similar) is disabled in BIOS. If not, FREESCO will not be able to handle the card. If this setting is wrong, FREESCO will probably not recognize your card at all, or assign it an invalid IRQ like 0 or 255.

For PCI NIC's, this is all there is. You do not need to enter any information in option 53.

[ Top ]

Troubleshooting

When configuring NICs in Linux, a utility called ifconfig is used. There is no need to use this utility when configuring FREESCO, but it can be used to display information of the NICs installed on your system. Giving the command ifconfig should result in something like this:

[Linux] ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
          RX packets:84319 errors:0 dropped:0 overruns:0
          TX packets:84319 errors:0 dropped:0 overruns:0

eth0      Link encap:10Mbps Ethernet  HWaddr 00:60:94:45:00:58
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:109124026 errors:0 dropped:0 overruns:0
          TX packets:92470998 errors:0 dropped:0 overruns:0
          Interrupt:9 Base address:0x3000

eth1      Link encap:10Mbps Ethernet  HWaddr 00:10:5A:4D:30:6C
          inet addr:aaa.bbb.ccc.3  Bcast:aaa.bbb.ccc.255  Mask:255.255.255.0
          UP BROADCAST NOTRAILERS RUNNING  MTU:1500  Metric:1
          RX packets:101408235 errors:216 dropped:0 overruns:233
          TX packets:109242882 errors:0 dropped:0 overruns:0
          Interrupt:10 Base address:0x300

Each NIC that is recognized by the OS is displayed together with its configuration. There should be one ethX section for each NIC on your system. If one or several ethX sections are missing, this indicates that there are missconfigured NICs or NICs missing a driver.

There are some useful commands that can be used to track down problems with the NICs. These commands apply to both ISA and PCI cards.

cat /proc/ioports

shows the I/O of all successfully loaded drivers while

cat /proc/interrupts

shows the IRQ assignments of the same. You can also use

dmesg | grep eth

after booting to find out which card received what eth name.

For PCI cards, you can also use

cat /proc/pci

which lists all PCI devices in the machine. This information is available even if the correct driver is not installed. The list tells you which IRQ the cards are assigned. If IRQ looks OK but FREESCO does not find any of the cards, you need install a new driver for it.

Every NIC is assigned an “eth” name, eg eth0 and eth1. This is something that is done automatically and there is no way of changing the eth-name of a NIC. Most of the times it doesn't matter which NIC gets which name. However, if you have two NICs and one is a 10Mbit and the other a 100Mbit, you might want to ensure that the 100Mbit card is used for the internal network while the 10Mbit card is used for connecting to the internet. Assume that the 100Mbit card is assigned eth0 and the 10Mbit card is assigned eth1. By default, FREESCO will use eth0 as the connection to internet which is not what we want in this case. To change this, select option 62 in the advanced setup. Here you can specify which NIC to use for which network. Network 0 is the “uplink”, ie the connection to internet and you should see that eth0 is used for this network. To use another card for this network, just change the Interface name (option 620) to eth1 and the 10Mbit card will be used. Also change the interface name for network 1 to make it use eth0.

//Fredrik

[ Top ]

1) An add-on exists for 027 for Plug-and-Play, see here
 
freesco/howtos/installing_nic_s.txt (38468 views) · Last modified: 2005/09/14 00:49 (external edit)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki