[suse-sparc] the ethernet saga continues...

From: Will Roberts (oldbear_at_arctos.com)
Date: Wed May 28 2003 - 19:28:29 CEST


Message-Id: <4.3.2.7.2.20030528132002.039e1ba0@arctos.com>
Date: Wed, 28 May 2003 13:28:29 -0400
From: Will Roberts <oldbear@arctos.com>
Subject: [suse-sparc] the ethernet saga continues... 


THE PROBLEM:

   I've helped a friend set up a number of SUN Sparcs including
   IPC, IPX, and Sparc5 machines. Recently I was given a Sparc
   Classic on which I am trying to install SuSE linux v7.3 for
   Sparc (Kernel 2.2.20).

   The Classic is set up with a VT220 on the serial port to act
   as console for the install. My intent is to run the machine
   headless on a 10baseT ethernet LAN. The LAN uses static
   routes in the 172.2.16.xxx subnet.

   I have been unable to get the Classic's on-board TPE ethernet
   port to work and my attempts to install Sun Sbus ethernet
   cards 501-2015 or 501-2981 have been unsuccessful.

   The patch cable is good. The hub to which it is connected is
   good. The hub "link" led comes on when the Sparc Classic is
   started. But no data flows. The Sun Classic cannot ping
   or be pinged.

BACKGROUND INFO:

   My first indication of the problem came from the OpenBoot PROM
   before I even attempted to install any operating system:

      ok watch-net

      Using AUI Ethernet Interface
       Internal loopback test -- succeeded.
       External loopback test -- Lost Carrier (transceiver cable problem?)
      send failed.

      Using TP Ethernet Interface
       Internal loopback test -- succeeded.
       External loopback test -- Lost Carrier (transceiver cable problem?)
      send failed.

   After installing SuSE linux, this problem shows up in the start-up:

      sunlance.c:v1.12 11/Mar/99 Miguel de Icaza (miguel@nuclecu.unam.mx)
      eth0: LANCE 08:00:20:1d:d5:7c
      eth0: using auto-carrier-detection.
      . . .
      Setting up network device eth0
      eth0: Carrier Lost, trying TPE done
      Setting up routing (using /etc/route.conf)
      Error while excuting:
         /sbin/route add -net 0.0.0.0 netmask 255.255.0.0 gw 172.16.2.100
dev eth0
         SIOCADDRT: Network is unreachable
      Setting up routing failed
      IPv6 v0.8 for NET4.0
      IPv6 over IPv4 tunneling driver
      eth0: Carrier Lost, trying AUI
      eth0: Carrier Lost, trying TPE
      Starting syslog services
      eth0: Carrier Lost, trying AUI
      eth0: Carrier Lost, trying TPE done
      syslogd: /dev/tty10: No such device
      eth0: Carrier Lost, trying AUI
      eth0: Carrier Lost, trying TPE
      . . .

AN ATTEMPTED SOLUTION:

   I decided to configure SuSE to ignore the onboard ethernet interface
   eth0 and to use instead the add-in Sun Sbus 501-2981 card. I did
   this by editing /etc/rc.config and /etc/route.conf:

      arcturus:/etc # cat rc.config
      . . .
      #
      # Networking
      #
      # Number of network cards: "_0" for one, "_0 _1 _2 _3" for four cards
      #
      NETCONFIG="_0"

      #
      # This variable contains all indices of active PCMCIA network devices
      #
      NETCONFIG_PCMCIA=""

      #
      # IP Adresses
      #
      IPADDR_0="172.16.2.124"
      IPADDR_1=""
      IPADDR_2=""
      IPADDR_3=""

      #
      # Network device names (e.g. "eth0")
      #
      NETDEV_0="eth1"
      NETDEV_1=""
      NETDEV_2=""
      NETDEV_3=""

      #
      # Parameters for ifconfig, simply enter "bootp" or "dhcpclient" to
use the
      # respective service for configuration.
      # Sample entry for ethernet:
      # IFCONFIG_0="192.168.81.38 broadcast 192.168.81.63 netmask
255.255.255.224"
      #
      IFCONFIG_0="172.16.2.124 broadcast 172.16.2.255 netmask 255.255.255.0 up"
      IFCONFIG_1=""
      IFCONFIG_2=""
      IFCONFIG_3=""
      . . .

   and in route.conf:

      arcturus:/etc # cat route.conf
      default 172.16.2.100 0.0.0.0 eth1
      127.0.0.0 0.0.0.0 255.0.0.0 lo

   with this configuration, SuSE starts properly:

      SPARCclassic, No Keyboard
      ROM Rev. 2.12, 40 MB memory installed, Serial #3294075.
      Ethernet address 8:0:20:1d:d5:7c, Host ID: 8032437b.

      Boot device: /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@3,0 File
and args:
      SILO boot:
      Uncompressing image...
      PROMLIB: obio_ranges 1
      Booting Linux...
      PROMLIB: Sun Boot Prom Version 3 Revision 2
      Linux version 2.2.20 (root@SPARC.suse.de) (gcc version egcs-2.91.66
19990314/Linux (egcs-1.1.2 release)) #1 Mon Nov 12 11:03:05 GMT 2001
      ARCH: SUN4M
      TYPE: SPARCclassic
      Ethernet address: 8:0:20:1d:d5:7c
      . . .
      sunlance.c:v1.12 11/Mar/99 Miguel de Icaza (miguel@nuclecu.unam.mx)
      eth0: LANCE 08:00:20:1d:d5:7c
      eth0: using auto-carrier-detection.
      eth1: LANCE 08:00:20:1d:d5:7c
      . . .
      Setting up network device
eth1 done
  done
      Setting up routing (using /etc/route.conf) done
      Starting SSH daemon done
      IPv6 v0.8 for NET4.0
      IPv6 over IPv4 tunneling driver
      . . .

   The system appears to report the ethernet interfaces and the
   routing table correctly:

      arcturus:/home/oldbear # ifconfig
      eth1 Link encap:Ethernet HWaddr 08:00:20:1D:D5:7C
                inet
addr:172.16.2.124 Bcast:172.16.2.255 Mask:255.255.255.224
                inet6 addr: fe80::800:201d:d57c/10 Scope:Link
                inet6 addr: fe80::a00:20ff:fe1d:d57c/10 Scope:Link
                UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:12 dropped:0 overruns:0 carrier:12
                collisions:0 txqueuelen:100
           RX bytes:0 (0.0 b) TX bytes:872 (872.0 b)
           Interrupt:55 Base address:0x8a00

      lo Link encap:Local Loopback
                inet addr:127.0.0.1 Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING MTU:3924 Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0
                RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

   and it is possible to check on the unused eth0 onboard ethernet
   which is not shown as "up". Notice that both eth1 above and
   eth0 below have the same MAC address 08:00:20:1D:D5:7C. This
   is correct because Sun architecture holds a single address for
   the Sparc workstation in its PROM. The two interfaces are
   differentiated by their base addresses and interrupts, which
   SuSE identifies as Interrupt:55 Base address:0x8a00 for eth1
   and Interrupt:38 Base address:0xb200 for eth0.

      arcturus:/home/oldbear # ifconfig eth0
      eth0 Link encap:Ethernet HWaddr 08:00:20:1D:D5:7C
                BROADCAST MULTICAST MTU:1500 Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:100
                RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
                Interrupt:38 Base address:0xb200

   and the routing table:

      arcturus:/home/oldbear # route
      Kernel IP routing table
      Destination Gateway Genmask Flags Metric
Ref Use Iface
      172.16.2.0 * 255.255.255.0 U 0 0
0 eth1
      loopback * 255.0.0.0 U 0 0
0 lo
      default 172.16.2.100 0.0.0.0 UG 0 0
0 eth1

      arcturus:/home/oldbear # netstat -r
      Kernel IP routing table
      Destination Gateway Genmask Flags MSS
Window irtt Iface
      172.16.2.0 * 255.255.255.0 U 0
0 0 eth1
      loopback * 255.0.0.0 U 0
0 0 lo
      default 172.16.2.100 0.0.0.0 UG 0
0 0 eth1

PROBLEM REMAINS:

   Pinging "localhost" or the Classic's own IP of 172.16.2.124 works fine
   but an attempt to ping anything else, such as 172.16.2.101 which is know
   to be up and responsive to other machines on the LAN, yields:

      arcturus:/home/oldbear # ping 172.16.2.101
      PING 172.16.2.101 (172.16.2.101) from 172.16.2.124 : 56(84) bytes of
data.
      Warning: no SO_TIMESTAMP support, falling back to SIOCGSTAMP
      From 172.16.2.124: icmp_seq=3 Destination Host Unreachable
      From 172.16.2.124: icmp_seq=2 Destination Host Unreachable
      From 172.16.2.124: icmp_seq=1 Destination Host Unreachable
      From 172.16.2.124: icmp_seq=6 Destination Host Unreachable
      From 172.16.2.124: icmp_seq=5 Destination Host Unreachable
      From 172.16.2.124: icmp_seq=4 Destination Host Unreachable

      --- 172.16.2.101 ping statistics ---
      8 packets transmitted, 0 received, +6 errors, 100% loss, time 7028ms
      , pipe 3

NEXT STEPS:

   I am beginning to suspect that it may have something to do with
   SuSE loading the appropriate device driver for either of the
   ethernet interface.

   As noted above, on boot up, SuSE announces that it has discovered
   both interfaces on start-up:

      sunlance.c:v1.12 11/Mar/99 Miguel de Icaza (miguel@nuclecu.unam.mx)
      eth0: LANCE 08:00:20:1d:d5:7c
      eth0: using auto-carrier-detection.
      eth1: LANCE 08:00:20:1d:d5:7c

   Here is where I am getting beyond my competence: it appears that both
   interfaces are identified above as using the "LANCE" chip. An appropriate
   driver needs to be incorporated into the SuSE kernel.

   Drivers appear to be identified and loaded as modules in /etc/modules.conf
   where the related device is associated and its interrupt and base address
   are specified:

      arcturus:/etc # cat modules.conf
      #
      # Copyright (c) 1996-2000 SuSE GmbH Nuernberg, Germany. All rights
reserved.
      #
      # Author: Hubert Mantel <mantel@suse.de>, 1996-2001
      #
      # Configuration file for loadable modules; used by modprobe
      #

      # Aliases - specify your hardware
      alias eth0 off
      alias eth1 off
      alias tr0 off
      alias scsi_hostadapter off
      alias fb0 off
      . . .
      ########################################################################
      # Options; these are examples; uncommented and modify the lines you need
      ########################################################################

      # options cdu31a cdu31a_port=0x340 cdu31a_irq=0
      # options sbpcd sbpcd=0x230,1
      # options aztcd aztcd=0x320
      . . .
      # options ne io=0x300 irq=5

      # Use this if you have two cards:
      # options ne io=0x300,0x320 irq=5,7

      # options tulip options=0
      # options 3c59x options=0
      # options 3c501 io=0x280 irq=5
      # options 3c503 io=0x280 irq=5 xcvr=0
      # options 3c505 io=0x300 irq=10
      . . . etc

   The exception to this is the LANCE driver which, I am told, needs to
   be compiled into the kernel and cannot be run as a module loaded at
   boot time. True?

   But this driver should already be compiled into the SuSE for Sparc
   kernel and associated with both interfaces:

      sunlance.c:v1.12 11/Mar/99 Miguel de Icaza (miguel@nuclecu.unam.mx)
      eth0: LANCE 08:00:20:1d:d5:7c
      eth0: using auto-carrier-detection.
      eth1: LANCE 08:00:20:1d:d5:7c

   Someone else noted that the second interface eth1 (the Sbus 501-2981
   option card) should use a sunhme ("happy meal ethernet") driver.
   I am skeptical because hme is the newer 100baseT "Hundred Megabit
   Ethernet" and works with a much newer and different card.

   And what about the base address and interrupts for the two
   interfaces. Ifconfig reports that SuSE identifies these as:

      eth0 Interrupt:38 Base address:0xb200
      eth1 Interrupt:55 Base address:0x8a00

   Is this accurate and does it need to be specified somewhere in
   modules.conf or elsewhere?

I'd rather not do this, but I may try to install SuSE for Sparc v7.3 on
a known good Sparc5 which is currently running NetBSD and install NetBSD
on the Sparc Classic. It's a silly way to diagnose an ethernet problem,
but it might settle the question about whether the problem lies with
the O/S or the hardware.

Any further information, suggestions, clarifications, corrections, hints,
insights, or solutions would be greatly appreciated.

Regards,
Will
The Old Bear

-- 
To unsubscribe, e-mail: suse-sparc-unsubscribe@suse.com
For additional commands, e-mail: suse-sparc-help@suse.com


This archive was generated by hypermail 2.1.7 : Wed May 28 2003 - 19:29:57 CEST