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 lowith 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 3NEXT 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:7cHere 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:0x8a00Is 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]
