SYSINFO 2.0 Michael A. Cooper Research, Development, and Systems Group University Computing Services University of Southern California mcooper@usc.edu CHANGES The major changes since version 1.x include adding support for getting device information from the Open Boot PROM (OBP) on Sun-like machines and support for SunOS 5.x (Solaris 2.x). The OBP interface provides more information than ever. The OBP interface also gives sysinfo the ability to provide detailed information on what types of CPUs are available. SunOS 5.x comes with a number of features which makes SYSINFO much more portable across different manufacturer's hardware running SunOS 5.x. This includes the ability to determine the label on a disk drive in a device driver independent fashion. This ability alone should eliminate most of the problems with SYSINFO causing certain systems with certain system configurations to crash. (Which I still maintain is the fault of SunOS and not SYSINFO.) The OBP kernel interface in SunOS 5.x also adds the ability to associate nodes found by looking through the kernel with those nodes found by querying the OBP directly. This means SYSINFO can extract and assign much more information found by direct OBP queries than is possible with SunOS 4.x. See the file "ChangeLog" for a complete list of changes. GENERAL INFORMATION Sysinfo is a program which shows various pieces of information about a system. The original version was written to simply determine the model name of a system for use in /etc/motd. It also supported a few other pieces of information that were simple to obtain, but the method used to obtain the information on various different OS's varied. The current version shows many different "general" bits of system information as well as fairly detailed information on system devices such as disk drives, frame buffers, tape drives, and many others. A lot of the information sysinfo displays is difficult, if not impossible, to determine by normal OS commands and/or files after boot time on many OS's. Most of the OS specific information was determined by groveling /usr/include/{sys,machine,*dev}/*.h files, section 4 man pages, and reverse engineering the output from various commands like devinfo (SunOS) and using the trace(2) facility. Some of the network (netif) code was inspired by the sources to the 4.3BSD netstat and ifconfig commands. SUPPORTTED PLATFORMS Sysinfo has been tested on the platforms listed below. Porting to other BSD based Unix's is fairly straight-forward. Sun-3 SunOS 4.1.1 Sun-386 SunOS 4.0.1 Sun-4/SPARC SunOS 4.1.3, 5.2 SPARCbook-1 Solaris 1.0.1 SPARCbook Version A.3, B Solbourne Series5E OS/MP 4.1A DEC MIPS Ultrix 4.2A NeXT MC680x0 NeXTStep 2.2, 3.1 IBM RS/6000 AIX 3.2 Alliant *Concentrix 5.X, *Concentrix-2800 2.0 * - No device information support INSTALLATION 1) Read the comments in "Makefile" and make any necessary changes. 2) Run "make". If you have multiple kernel architectures (kvm's) for the same OS (like for SunOS 4.x), you must compile and install sysinfo for each kernel arch. Currently, this is only required for SunOS 4.x. It is _NOT_ required for SunOS 5.x. 3) Run "make install" to install the sysinfo binary and "make install.man" to install the man page. BUG FIXES Please send bug fixes, suggestions, and comments to mcooper@usc.edu. WHERE TO GET IT The latest/greatest version of sysinfo is available via anonymous ftp on usc.edu in "/pub/sysinfo". PLATFORM SPECIFIC NOTES The following are notes regarding specific platforms: SunOS 4.x SYSINFO should be compiled for each kernel architecture machine you wish to run it on. This is only needed for SunOS 4.x. It is _NOT_ required for SunOS 5.x. (SYSINFO is normally installed into /usr/kvm and symlinked into something like /usr/local/bin.) This is necessary if you wish to be able to get the PROM version information. The SunOS 4.x interface to the PROM information does not permit having one binary that can determine the PROM information on all the different kernel architectures. This interface problem is fixed in SunOS 5.x. Your kernel must have NIT (Network Interface Tap) compiled into it in order to determine the Ethernet MAC address under SunOS 4.x. Sun386i device support is shakey, at best. No SCSI disk info is found. The kernel device init table doesn't seem to have any of the disk info in it. I haven't had time to track this down. SunOS 5.x Unlike SunOS 4.x, you only need one SYSINFO binary for each SunOS release. You do not need one for each kernel architecture. i.e. SYSINFO compiled under SunOS 5.2 on a SPARC machine will run on any SunOS 5.2 SPARC machine of any kernel architecture. Under SunOS 5.2 FCS on sun4d hosts (like the SPARCcenter-2000), the kernel has an empty value for the system "root nexus". This means that you will not see a proper device tree on such systems. Various nodes will not be attached where they should be. This bug cropped up between SunOS 5.2 ER2 and FCS. Ultrix Your kernel must have the PF (Packet Filter) compiled into it in order to determine the Ethernet MAC address. Determining the System Model on VAX and MIPS machines is very difficult. You can get a pretty good idea on most, but not all VAX and MIPS machines by determining the number of CPUs in a machine. You really need to know the clock speed of the CPUs to get a good idea. Unfortuntely, I have neither the time nor the equipment to work on this. NeXT Network address info for network interfaces is not working. There is currently no debugger that works with GCC 2.0 so I haven't spent time on this. AIX When looking up device information, SYSINFO uses the AIX "National Language Catalogs". This means that your $LANG environment variable must be set correctly. If it is not, SYSINFO may fail to find most device information. OTHER KNOWN PROBLEMS SPARCbook "id" DISKS The label on "id" disks on the SPARCbook-1 cannot be read. This appears to be because the definition of IDE_READ in is incorrect. This bug is present in Solaris 1.0.1 Rev A.