The answer is:
Make sure that the kernel on the machine where top is compiled is the
same as the target. It is not NECESSARY to compile top on each machine you
want to run it on, but it is the safest.
sun4m -> sun4m (SunOS 4.1.X)
sun4c -> sun4c (SunOS 4.1.X)
I have a mixed bag of hardware running different versions of SunOS. The
key is the kernel. I complied on a sun4m (SS10 running 4.1.4) and copied
the binaries to another sun4m (SS5 running 4.1.4), and everything works. I
compiled it on a sun4c (SS2 running 4.1.3) and copied the binaries to a
sun4c (IPX running 4.1.4) and it worked.
I solved the problem of having the wrong top on a machine by adding the
kernel type to the name of each, different, top binary. EG: I have a sun4m
machine, so after the compile, I rename top to top.sun4m and copy it to the
/usr/local/bin. Then I make a ln -s /usr/local/bin/top.sun4m
/usr/local/bin/top. Now I can run "top" on any of the machines. If I update
later, I have to remember to rename the file to top.sun4m before coping it
to /usr/local/bin, and everything keeps working.
Other suggestions, that had no effect, were:
Check ownership and permissions. The owner and groups should be root.kmem
was the most often recommended. Also check that /dev/kmem was set to
crw-r--r--. In one case, a /dev/kmem was set to crw-r-----, changing it had
no effect. The default user and group that top wants to be is root.kmem,
and I didn't change that.
Another dealt with the way a filesystem was mounted.
This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:11:51 CDT