[comp.unix.questions] uname

jr@amanue.UUCP (Jim Rosenberg) (04/09/88)

I'm in the process of getting things all ship-shape on an Altos 2000.  I had
to put a rather disgusting hack into Elm to get it to know my site name, since
uname(2) reports "" for the nodename.  This is probably available by RTFMing
*some*where, but does anybody know how to set the node name on an Altos 2000
so that uname(2) knows it?  I've set /etc/systemid -- if I remember that file
name correctly -- which keeps uucp happy enough.  I wouldn't be surprised if
none of the Altos utilities even *use* uname(2).

This is a Xenix System V -- exactly which version I don't have in front of me,
and the machine isn't up for login yet.

Where does the uname(2) information reside?  It doesn't seem to be in the
kernel.  Somone once told me he thought it was in the superblock.  Is this
correct?  If so, can one fsdb the uname(2) nodename into place?  I have
patched superblocks on occasion, but I sure don't enjoy it.

Any help appreciated.
-- 
 Jim Rosenberg
     CIS: 71515,124                         decvax!idis! \
     WELL: jer                                   allegra! ---- pitt!amanue!jr
     BIX: jrosenberg                  uunet!cmcl2!cadre! /

ron@topaz.rutgers.edu (Ron Natalie) (04/10/88)

There is a struct in system V called something like utsname that
has all the stuff in it that the UNAME system call returns.  I
suppose that they expect you to compile it into the system as they
give you no other way to set it.  You can fix it with adb (the
format of the structures is in one of the include files you do
have) but my favorite is to run EMACS on /unix to change it.
Don't forget to turn on overwrite mode.  You can use the search
command to find the text of the string.

-Ron

taylor@hermes.ai.mit.edu (David Taylor) (04/11/88)

The node name returned by uname *IS* stored in the kernel.  It's *NOT*
in the superblock.  If you have the development system, then you should
be able to easily set the name.  It's documented somewhere in the stuff
for reconfiguring the kernel...

[Check the stuff dealing with the config command and the master and xenxiconf
files.  One of the files will have a line that reads: ``nodename ""''.
Change it and rerun config.  Alternatively, if you feel comfortable with
adb, you can adb it -- I believe the structure returned by uname is called
uname or somethimg similar (all I remember for sure, is that its name was
obvious when I did an nm...).]

And if your version is 2.2.1 (possibly 2.2.0 -- it's been awhile since I last
used Xenix) or later, then there's a utility to set it without needing the
development system.  If I remember right it's called configure.

In 2.1.*, they documented that none of the current utilities used uname(2)
-- instead they used /etc/systemid.  I don't know how this changes in later
versions.

David
--
David Taylor
taylor@think.com, think!taylor

jack@turnkey.TCC.COM (Jack F. Vogel) (04/15/88)

In article <267@amanue.UUCP> jr@amanue.UUCP (Jim Rosenberg) writes:
>I'm in the process of getting things all ship-shape on an Altos 2000.  I had
>to put a rather disgusting hack into Elm to get it to know my site name, since
>uname(2) reports "" for the nodename. 
>... does anybody know how to set the node name on an Altos 2000
>so that uname(2) knows it? 
 
Although Altos's Xenix is typically NOT SysV compatable, if it conforms with
SCO's release there should be a way in the link kit to enter the nodename
and then relink the kernal. Check to see what you have in the /usr/sys/conf
directory (if Altos even has this), there should be an executable there called
configure. This program or some equivalent should let you tune the parameters
of the kernal. If you do not have this you will need to use adb, check your
documentation, in the 2.1.3 release there was documentation on how to enter
the nodename into the kernal using adb.

>Where does the uname(2) information reside?  It doesn't seem to be in the
>kernel.  Somone once told me he thought it was in the superblock.  Is this
>correct?  
 
No this is not correct, the uname data resides in the kernal in a structure
called utsname. Sorry I could not be more definitive on how to do this but
my experience with Altos has been that more often than not they do things
differently. Best advise is to check your manuals.

					Best of luck,



-- 
Jack F. Vogel
Turnkey Computer Consultants, Costa Mesa, CA
UUCP: ...{nosc|uunet}!turnkey!jack 
Internet: jack@turnkey.TCC.COM

henrik@blblbl.UUCP (Larry DeLuca) (04/17/88)

In article <173@turnkey.TCC.COM>, jack@turnkey.TCC.COM (Jack F. Vogel) writes:
} In article <267@amanue.UUCP> jr@amanue.UUCP (Jim Rosenberg) writes:
} >I'm in the process of getting things all ship-shape on an Altos 2000.  I had
} >to put a rather disgusting hack into Elm to get it to know my site name, since


Folks, it's really *quite* easy.  Put the node name in /etc/systemid.  That's
all there is to it.

					larry...

mdc@mcp.entity.com (Marty Connor) (04/18/88)

In article <208@blblbl.UUCP>, henrik@blblbl.UUCP (Larry DeLuca) writes:

> Folks, it's really *quite* easy.  Put the node name in /etc/systemid.  That's
> all there is to it.			larry...

On a box running SCO Xenix 2.2.1 you should do:

   cd /usr/sys/conf
   ./configure
   10
   <new name>
   q
   y

and reboot the system.  Changing /etc/systemid will not change the
name that the kernel reports via a system call.

We found this out when bringing up News.  It is a little strange that
this requires re-linking the kernel.  

But, as a fellow on TV just said...   'you have my word on it.'

-- 
----------------
Marty Connor
Director of Innovation, The Entity
mdc@mcp.entity.com, ...{harvard|uunet}!mit-eddie!spt!mcp!mdc

jr@amanue.UUCP (Jim Rosenberg) (04/20/88)

In article <208@blblbl.UUCP> henrik@blblbl.UUCP (Larry DeLuca) writes:
>In article <173@turnkey.TCC.COM>, jack@turnkey.TCC.COM (Jack F. Vogel) writes:
>} In article <267@amanue.UUCP> jr@amanue.UUCP (Jim Rosenberg) writes:
>} >I'm in the process of getting things all ship-shape on an Altos 2000.  I had
>} >to put a rather disgusting hack into Elm to get it to know my site name, since
>
>
>Folks, it's really *quite* easy.  Put the node name in /etc/systemid.  That's
>all there is to it.

Uh, well, no, that's not all there is to it.  Not to flame, but horsefeathers.
I believe I mentioned in my original article that I *DID* set /etc/systemid,
and uname(1) still reports (empty) as the nodename.  At the moment our system
*doesn't* have the link kit, though I will probably get it.  So thanks to all
who suggested adb'ing the kernel; looks like that's what I would have to do.
To the person who suggested just setting /etc/systemid, try uname(1) on your
machine and see what it does!
-- 
 Jim Rosenberg
     CIS: 71515,124                         decvax!idis! \
     WELL: jer                                   allegra! ---- pitt!amanue!jr
     BIX: jrosenberg                  uunet!cmcl2!cadre! /