lance-p01.txt -- A patch for the AMD LANCE driver to support multiple NICs K. TAKAHAGI -- released Jul 2005 The AMD LANCE driver in 204ether.tar.Z doesn't support more than one NIC. This patch enables the driver to work properly with two (or three) NICs. A fix for mnx_eth.c which is linked to the INET server is required. A patch for ping.c to read the environment IP_DEVICE is included, too. INSTALLATION & USAGE $ su bin ! cp lance-p01.taz /usr/local/src/204ether ! cd /usr/local/src/204ether ! cat lance-p01.taz | uncompress | tar xvf - ! cd /usr/src/kernel ! patch < /usr/local/src/204ether/lance-p01/lance.diff ! make ! cd /usr/src/inet ! patch < /usr/local/src/204ether/lance-p01/mnx_eth.diff ! make ! su # make install # exit ! cd /usr/src/commands/simple ! patch < /usr/local/src/204ether/lance-p01/ping.diff ! make ping ! su # make /usr/bin/ping # exit ! su - # vi /etc/inet.conf eth0 LANCE 0 { default; }; eth1 LANCE 1; # exit ! cd /usr/src/tools ! make hdboot ! shutdown > servers=inet > LANCE0=pci > LANCE1=pci > boot $ hostaddr -e -E /dev/eth1 $ ifconfig -I /dev/ip1 $ su - # ifconfig -I /dev/ip1 -h -n # ifconfig -I /dev/ip1 # add_route -I /dev/ip1 -g # pr_routes -I /dev/ip1 # export IP_DEVICE=/dev/ip1 # ping # ping # unset IP_DEVICE # vi /etc/resolv.conf # hostaddr -a -I /dev/ip1 # export UDP_DEVICE=/dev/udp1 # hostaddr -a -I /dev/ip1 # unset UDP_DEVICE # export TCP_DEVICE=/dev/tcp1 # export UDP_DEVICE=/dev/udp1 # tcpd telnet in.telnetd & # tcpd ftp in.ftpd & : # exit $ export TCP_DEVICE=/dev/tcp1 $ export UDP_DEVICE=/dev/udp1 $ telnet $ ftp : $ unset TCP_DEVICE $ unset UDP_DEVICE $ F5 dump looks like the following: lance statistics of port 0: recvErr : 0 sendErr : 0 OVW : 0 CRCerr : 0 frameAll : 0 missedP : 0 packetR : 10764 packetT : 13611 transDef : 0 collision : 0 transAb : 0 carrSense : 0 fifoUnder : 0 fifoOver : 0 CDheartbeat: 0 OWC : 0 isr = 0x72 + 0x72, flags = 0x390 lance statistics of port 1: recvErr : 0 sendErr : 0 OVW : 0 CRCerr : 0 frameAll : 0 missedP : 0 packetR : 271 packetT : 194 transDef : 0 collision : 0 transAb : 0 carrSense : 0 fifoUnder : 0 fifoOver : 0 CDheartbeat: 0 OWC : 0 isr = 0x72 + 0x72, flags = 0x390 To use three NICs, you can set EC_PORT_NR_MAX to 3 in ether.h. Don't be silly. It's not needed in 99% of the cases. :-)