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 ([EMAIL PROTECTED])
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/[EMAIL PROTECTED],8400000/[EMAIL PROTECTED],8800000/[EMAIL PROTECTED],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 ([EMAIL PROTECTED]) (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 ([EMAIL PROTECTED])
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 ([EMAIL PROTECTED])
     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 <[EMAIL PROTECTED]>, 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 ([EMAIL PROTECTED])
     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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to