Search |
University of Florida | Department of Physics
--> Overview

--> Common Questions

--> Adobe Acrobat

--> Cisco

--> SGI Scanner

--> Packet Video Conf

--> Small Video Conf

--> New Users

--> Lic. Software

--> Public Domain

--> X-term & CDE

--> AS400

--> Digital Unix

 * Solaris

--> RedHat Linux(Alpha)

--> Silicon Graphics

--> Next

--> Misc Procedures

--> Windows 95, NT

--> Dialup

--> Linux

Setting up Solaris 2.6

  1. Find the Solaris 2.6 Hardware 3/98 Software CD. Don't use the earlier versions of this software as they do not support all the graphics cards. From the console mode, type boot cdrom and choose the full installation option. We rarely do the upgrades as they are very difficult to recover from in case of disastrous disk failures.
  2. Typically we have more than one disk on the SUN servers. The guidelines to follow in laying out partitions are: About two to three times the memory size for swap balanced between many physical disks, seperate file system for /usr/local, /opt, /var. On some servers we have space for /phys/apps.
  3. We select the full distribution with the OEM support option which is about 700 megs on the Solaris 2.6 and let it reboot automatically. Other options we select are that the system is part of a subnet with subnet mask of 255.255.255.0. We can typically specify that the machine is using NIS for authentication and ask it to find a server. The procedure is slightly complicated for the first NIS server machine in a subnet and differs for the NIS master server and NIS slave server. These procedures are documented later on in this section.
  4. In order to allow root logins over the net, edit the /etc/default/login file and comment out the CONSOLE= line.

  5. In order to route things between subnets edit /etc/defaultrouter file and add the router.
    
    # more /etc/defaultrouter
    128.227.89.1
    
    The machine needs to be rebooted for this to take effect. We can then get out on to the network from the machine and get back in over the net as root if necessary. All the remaining configurations can be done over the network.

  6. Edit the file /etc/auto_master to setup automount. We sue the file auto_direct to mount the home dirs, temp dirs, and mail spool. Here is an example:
    
    # Master map for automounter
    #
    +auto_master
    /net            -hosts          -nosuid,nobrowse
    /-              auto_direct
    /home           auto_home       -nobrowse
    /xfn            -xfn
  7. Here is an example auto_direct:
    
    /maxwell/user0          -nosuid,bg,intr maxwell:/maxwell/user0
    /maxwell/user1          -nosuid,bg,intr maxwell:/maxwell/user1
    /maxwell/user2          -nosuid,bg,intr maxwell:/maxwell/user2
    /maxwell/user3          -nosuid,bg,intr maxwell:/maxwell/user3
    /maxwell/tmp            -nosuid,bg,intr maxwell:/maxwell/tmp
    /maxwell/software       -nosuid,bg,intr maxwell:/maxwell/software
    /quark/users            -nosuid,bg,intr quark:/quark/users
    /wombat/users           -nosuid,bg,intr wombat:/wombat/users
    /wombat/temp            -nosuid,bg,intr wombat:/wombat/temp
    /heeusers               -nosuid,bg,intr hee:/heeusers
    /einstein/user0         -nosuid,bg,intr einstein:/einstein/user0
    /einstein/user1         -nosuid,bg,intr einstein:/einstein/user1
    /einstein/user2         -nosuid,bg,intr einstein:/einstein/user2
    /einstein/tmp1          -nosuid,bg,intr einstein:/einstein/tmp1
    /einstein/tmp2          -nosuid,bg,intr einstein:/einstein/tmp2
    /phys/apps              -nosuid,bg,intr neptune-gw:/phys/apps
    /neptune/user0          -nosuid,bg,intr neptune-gw:/neptune/user0
    /neptune/tmp1           -nosuid,bg,intr neptune-gw:/neptune/tmp1
    /neptune/tmp2           -nosuid,bg,intr neptune-gw:/neptune/tmp2
    /fermi/tmp1             -nosuid,bg,intr fermi:/fermi/tmp1
    /fermi/tmp2             -nosuid,bg,intr fermi:/fermi/tmp2
    /dirac/tmp1             -nosuid,bg,intr dirac:/dirac/tmp1
    /dirac/tmp2             -nosuid,bg,intr dirac:/dirac/tmp1
    /bohr/tmp1              -nosuid,bg,intr bohr:/bohr/tmp1
    /bohr/tmp2              -nosuid,bg,intr bohr:/bohr/tmp2
    /r2d2/tmp1              -nosuid,bg,intr r2d2:/r2d2/tmp1
    /c3p0/tmp1              -nosuid,bg,intr c3p0:/c3p0/tmp1
    /export/cms/cms         -nosuid,bg,intr cms:/export/cms/cms
    /export/cms/cdf         -nosuid,bg,intr cms:/export/cms/cdf
    /ligo/tmp1              -nosuid,bg,intr ligo:/ligo/tmp1
    /ligo/tmp2              -nosuid,bg,intr ligo:/ligo/tmp2
    /ligo/tmp3              -nosuid,bg,intr ligo:/ligo/tmp3
    /vilano/tmp1            -nosuid,bg,intr vilano:/vilano/tmp1
    /vilano/tmp2            -nosuid,bg,intr vilano:/vilano/tmp2
    /vilano/tmp3            -nosuid,bg,intr vilano:/vilano/tmp3
    /deerfield/tmp          -nosuid,bg,intr deerfield:/deerfied/tmp
    /westpalm/tmp           -nosuid,bg,intr westpalm:/westpalm/tmp
    /juno/tmp               -nosuid,bg,intr juno:/juno/tmp
    /delray/tmp             -nosuid,bg,intr delray:/delray/tmp
    /arbat/tmp              -nosuid,bg,intr arbat:/arbat/tmp
    /newton/tmp             -nosuid,bg,intr newton:/newton/tmp
    /atlantic/tmp           -nosuid,bg,intr atlantic:/atlantic/tmp
    /fermi/backup           -nosuid,bg,intr fermi:/fermi/backup
    /fermi/user0            -nosuid,bg,intr fermi:/fermi/user0
    /dirac/backup           -nosuid,bg,intr dirac:/dirac/backup
    /dirac/user0            -nosuid,bg,intr dirac:/dirac/user0
    /bohr/backup            -nosuid,bg,intr bohr:/bohr/backup
    /bohr/user0             -nosuid,bg,intr bohr:/bohr/user0
    /bohr/tmp3              -nosuid,bg,intr bohr:/bohr/tmp3
    /labs/users             -nosuid,bg,intr labs:/labs/users
  8. Edit /etc/vfstab and add the NFS filesystems. These typically vary from machine to machine but as bare minimum should have the central user disks and one or more temporary disks and the mail spool area from the mail server.
    
    
    quark:/quark/users     - /quark/users   nfs - yes nosuid,bg,intr
    wombat:/users          - /users         nfs - yes nosuid,bg,intr
    hee:/heeusers          - /heeusers      nfs - yes nosuid,bg,intr
    maxwell:/maxwell/user0 - /maxwell/user0 nfs - yes nosuid,bg,intr
    maxwell:/maxwell/user1 - /maxwell/user1 nfs - yes nosuid,bg,intr
    maxwell:/maxwell/user2 - /maxwell/user2 nfs - yes nosuid,bg,intr
    maxwell:/phys/apps     - /phys/apps     nfs - yes nosuid,bg,intr
    maxwell:/opt           - /opt           nfs - yes nosuid,bg,intr
    maxwell:/maxwell/tmp   - /maxwell/tmp   nfs - yes nosuid,bg,intr
    neptune-gw:/var/mail   - /var/mail      nfs - yes nosuid,bg,intr,actimeo=0
    
    

  9. Create the directories and mount the filesystems using mount -a -F nfs. If this a brand new machine being added to the network, we will need to add it into a netgroup in the /etc/yp/netgroup file on the NIS master server and propagate that to the entire network. It may also be necessary to explicitely export filesystems for the client to be able to mount them. On the alphas this is done by issuing touch /etc/exports command. On the suns we normally do exportfs -va.

  10. Make a link using ln -s /local /usr/local if the machine is going to have its own local. Populate the /usr/local filesystem from maxwell using rdist. You will need to edit /.rhosts file to allow root logins from maxwell through rsh without password. You can copy it from some other client. Remember to do chmod 400 /.rhosts after the file is created. You will then need to login to maxwell as root in /local/adm/system/rdist directory and use the command
    rdist -v -f Distfile.local local
    Check the output of what will be updated.  
    If it is alright then use
    rdist -f Distfile.local local
    
    After this is done, remember to add the new client to the Distfile.weekly script so that /usr/local area gets updated automatically. You may have to copy /usr/bin/rdistd to the new machine, on our first Solaris 7 install I could not find rdistd!
  11. Copy /etc/shells from some other client or add our local shells to the system shells one per line. This will let our users ftp into that machine. Here is an example:
    
    /bin/csh
    /bin/ksh
    /usr/local/bin/tcsh
    /usr/local/bin/bash

  12. Create the /etc/resolv.conf with the following contents
    domain phys.ufl.edu
    nameserver 128.227.64.2
    nameserver 128.227.64.7
    nameserver 128.227.64.70
    nameserver 128.227.128.24
    nameserver 128.227.148.253
    
  13. Edit /etc/nsswitch.conf and modify the hosts entry to look like
    
    hosts:      dns xfn nis [NOTFOUND=return] files
    
  14. Edit /etc/init.d/sendmail and modify the line that starts sendmail to not start the background daemon (unless this is the mail server):
    
    # /usr/lib/sendmail -bd -q15m & (-bd starts daemon listening on port 25)
    /usr/lib/sendmail -q15m &
    
  15. We have access to the SUNSolve patch databases as part of our ScholarPAK contract. There are typically a lot of patches clustered as recommended patch cluster. We get those patches and install them to get all the security related patches and any new graphics drivers etc. This step typically requires a reboot as well.
  16. On workstations with 3D graphics cards like Creator 3D and Elite 3D, the steps needed are:
  17. Customize the CDE Enviroment with our own images, menus and startup sessions. This is typically done by tarring the /etc/dt area from another similar machine (cedar) and untarring it here. You need to do the same from /usr/openwin/lib/X11/fonts for the 75dpi and 100dpi directories. Some of our customizations to get publisher and other software going are in these directories. Reboot the machine.

  18. Merge in the X-applications default resources files from a similar client in /usr/openwin/lib/app-defaults directory into the new machine. This will fix the colors for xterm, xplot, xclock etc.
  19. Run admintool as root and select the printers from the Browse menu. Edit and then add access to printers. Typically you will add cmtduplex on neptune as the default and cmtsimplex on neptune. Send a small job to the printer and test out the connection.
  20. Add the new machine in /etc/hosts.equiv on our server maxwell from where it will be copied over to other machines.
  21. On the mailserver (phys.ufl.edu), we need to edit sendmail.clients in the /etc/mail directory to add the new machine name as a client.

Network installations

  1. cd to /cdrom/sol_2_6*/s0/Solaris2.6/Tools
  2. Run ./setup_install_server /r2d2/tmp1 to copy the products over to the disk.
  3. On each subnet there needs to be a boot manager. Add this by running ./setup_install_server -b /directory
  4. Fix the /etc/dfs/dfstab so that the clients can do root mounts with -ro option
  5. cd to the /r2d2/tmp/Solaris_2.6/Tools directory and run ./add_install_client -s install_server:/r2d2/tmp1 -i ipaddr -e ethernetid client_name platform_group
    For example, to add a Sun Ultra 5 you might type:
    
    ./add_install_client -i 128.227.89.139 -e 08:00:20:93:d5:20 \
    	 -s r2d2:/r2d2/tmp1 graybeal01 SUNW,Ultra-5_10
    
  6. It appears that the machine will complain about the machine to be added into the ethers yp map. However a way around this is to add it to the local /etc/ethers on the bootserver and setup the /etc/nsswitch.conf file to look there instead of in nis
  7. Go to the client and type boot net - install
  8. There seems to be a long delay after the sysidnis is done while it searches for the rules file on the server. Be very patient. It will eventually come back with the menu to install.
  9. On IPX machines it appears Monitor Power management is enabled by default causing an annoying flash. To disable this comment out the autoshutdown line in /etc/power.conf and run pmconfig.

Converting Solaris 2.5 machine on the net to a ppp client from home.

  1. Delete the /etc/hostname.le0 by moving it to /etc/hostname.orig
  2. Edit /etc/nodename file to read hostname instead of hostname.phys.ufl.edu. You can leave the extensions alone in the /etc/hosts file.
  3. Remove the /etc/defaultdomain file by moving it to, for example, /etc/defaultdomain.orig.
  4. Create a /etc/defaultrouter file and put annex as the single line in there. Make sure that annex is in the /etc/hosts file. If you do not create this, routed will get started.
  5. Create a /etc/resolv.conf file with the following information.
    
    domain phys.ufl.edu
    nameserver 128.227.24.1
    
  6. Copy /etc/nsswitch.files to /etc/nsswitch.conf Edit /etc/nsswitch.conf and modify the hosts entry to look like
    
    hosts:      files dns [NOTFOUND=return]
    
  7. Add local password entries to the /etc/passwd file. This is done by cut and pasting the appropriate line from neptune's /etc/yp/passwd, and alter the home directory path to /export/home/username. Don't forget to do pwconv to update /etc/shadow, or the new entries won't work.
  8. The home directories should then be created and files like .login, .cshrc, .profile should be copied to this area.
  9. Edit /etc/asppp.cf. This file has the default_route option which is dynamic; the route won't be active until PPP is up, which is bad if the host you're trying to connect to is in /etc/hosts and an nslookup is not required. We recommend not using this and go with the /etc/defaultrouter
    
    # Sample asynchronous PPP /etc/asppp.cf file
    #
    ifconfig ipdptp0 plumb 128.227.24.204 128.227.24.100 up
    #
    path
            inactivity_timeout 600     # Approx. 10 minutes
            interface ipdptp0      
            peer_system_name annex     # The name we log in with (also in
    #                                  # /etc/uucp/Systems
    
  10. Edit the /etc/uucp/Systems file.
    
    annex Any ACU 38400 27001 "" P_ZERO "" \r login:--login: username 
    Password: password @annex: ppp
    
    Make sure this username is matched to the IP number we are setting up on the machine in /var/spool/erpcd/bfs/acp_dialup. After the testing is finished remember to change the phone number (3927001), username and password strings.
  11. Edit the /etc/uucp/Devices file.
    
    ACU cua/a - Any att
    
    The cua/a or cua/b will depend on the port you plug the modem into.
  12. Edit the /etc/uucp/Dialers file.
    
    att  =,-,  "" \r\r\dATZ\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts 
    "" STTY=litout "" STTY=hup
    
  13. Remove any NFS mounted directories from /etc/vfstab
  14. Reboot, login and telnet to neptune. The modem should go online and start dialing.
  15. On satellite change the printer setup appropriately. Change config.ps to reflect an Apple Laserwriter (canon mode, 300dpi, etc.) We also changed the global.cshrc to eliminate nonexistant (NeWSPrint) man path, put /local/bin ahead of /phys/apps/bin in the path, so that TeX won't get confused with Publisher's TeX. We also had to do AT&D2&W0&W1 to get the zoom to hang up when ppp disconnects.
  16. On sanibel, we changed the fonts.alias file /usr/openwin/lib/X11/fonts/75dpi to get shortcut names to fonts

Setting up a dialout modem on IPX

Tip and /etc/remote

You may hate tip and love kermit or pcomm. I understand. But, do this via tip to keep it simple, ok?

Decide which serial port you want to use. (One with no cable already plugged in is often a good bet.) The port will be labeled "A", "B", "A/B" or could even be "C" or higher.

If you use one labeled "A/B" and have no Y-type splitter cable plugged into it, you'll have access only to port A. With the splitter, you'll get ports A and B on separate sockets of the splitter cable.

The Sun serial port device driver splits each physical port into two logical devices, /dev/term/a or /dev/term/b for incoming transmission, and /dev/cua/a or /dev/cua/b for outgoing transmission.

The speed referred to in this section is the DTE or Sun-to-modem speed. It is NOT the modem-to-modem speed. A 14400bps modem may have a 19200bps DTE speed.

Make sure you have your serial port permissions right. uucp should own the outgoing side, and root should own the incoming side.

Execute these commands as root, substituting your port name (a, b, c, or d) where needed:

 
prompt# chown uucp /dev/cua/a; chgrp tty /dev/cua/a
prompt# chown root /dev/term/a; chgrp tty /dev/term/a
  1. Edit tip's configuration file, /etc/remote, and find the entry beginning with "hardwire:". This is the entry you use to program the modem, and is not usually used for dialing out directly, unless you enjoy AT commands.
  2. (If this is the second modem you're adding, clone the entire hardwire entry and label the new entry "hardwire2".)

    Change it from an entry like:

       
    hardwire:\
            :dv=/dev/????/?:br#????:el=^C^S^Q^U^D:ie=%$:oe=^D:
    

    to one set to your port (like /dev/cua/a) and baud rate (like 9600):

       
    hardwire:\
            :dv=/dev/cua/a:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:
    

    Go to step 2

  3. Run tip:
  4. NOTE: Never run tip from a cmdtool. Use a shelltool, xterm, or some other window without scrollbars. The scrollbars may confuse tip's <carriage return> processing.
    There are exceptions to this, but if you never run tip in a scrollbar-type window, you won't have to remember all the ways it does and does not work.

    Now use your edited "hardwire" entry from /etc/remote and type:

       
    prompt# tip hardwire       (or "tiphardwire2")
    

    you should see "connected"

    type:

              
    ATE1V1<carriage return>
    

    (This will work for all Hayes-compatible modems, even cheapies.)

    • You should see "OK". Congratulations! You're talking with the modem!
    • Now, issue the appropriate AT commands to program the modem. Don't forget to write the new settings out to the modem's NonVolatile RAM.

    • If you don't see "OK", you are not communicating with the modem. See if the modem is plugged in, verify the baud rate of the modem and the hardwire entry in /etc/remote, verify the modem cable.

  • Exit tip by typing:
  • <carriage return>~. (This means to type 3 separate keys, one at a time, of <carriage return> <tilde> <period> This will also exit rlogin, so if you're running tip through an rlogin, make that <carriage return>~~. (<carriage return> <tilde> <tilde> <period>) or you'll only exit rlogin.)

  • The cuaa entry (below) allows you to type "tip cuaa" and talk directly to a modem on port A at 19200bps, using 7 bits, even parity.
  • The cuab entry (below) allows you to type "tip cuab" and talk directly to a modem on port A at 9600bps, using 8 bits, no parity.
  • "tip some_phone_number" will look for the tip0 entry and use that definition to dial "some_phone_number". (In the /etc/remote example below, it will use tip0, which points to UNIX-19200, which sets up a dialup 19200bps 7 bits even parity Hayes compatible modem. UNIX-19200 points to diala, which references /dev/cua/a. Convoluted, eh?)
  • "tip mysystem" (below) looks up the "mysystem" entry, and dials the number 14155551234 via a 19200bps 7 bits, no parity connection on /dev/cua/a.

/etc/remote example

The following sample /etc/remote file is set up for:

  • port a, 19200bps Hayes-compatible modem, 7 bits even parity (It's 7E1 because there is no "p8" entry)
  • port b, 9600bps Hayes-compatible modem, 8 bits no parity (It's 8N1 because there is a "p8" entry)

See the remote(4) man page for all the possible options.


cuaa:dv=/dev/cua/a:br#19200:
cuab:dv=/dev/cua/b:p8:br#9600
mysystem:pn=14155551234:tc=UNIX-19200:
hardwire:\
        :dv=/dev/cua/b:p8:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:
tip0|tip19200:tc=UNIX-19200:
tip9600:tc=UNIX-9600:
UNIX-9600:\
        :el=^D^U^C^S^Q^O@:du:at=hayes:ie=#$%:oe=^D:br#9600:tc=dialb:
UNIX-19200:\
        :el=^D^U^C^S^Q^O@:du:at=hayes:ie=#$%:oe=^D:br#19200:tc=diala:
diala:\
        :dv=/dev/cua/a:
dialb:\
        :p8:dv=/dev/cua/b:
--------------------------------------------------------------------
The attributes are:
dv      device to use for the tty
du      make a call flag (dial up)
pn      phone numbers (@ =>'s search phones file; possibly taken from
                              PHONES environment variable)
at      ACU type
ie      input EOF marks (default is NULL)
oe      output EOF string (default is NULL)
cu      call unit (default is dv)
br      baud rate (defaults to 300)
tc      to continue a capability

Setting up an NIS master server for a domain.

Setting up the first NIS slave server for a subnet.

Porting code or Compiling

If the configure process needs to know your system type and Solaris 2.5 (or SunOS 5.5) is not an option, the best bet fallbacks are: Solaris 2.4/SunOS 5.4 Solaris 2.x/SunOS 5.x X/Open Programmer's Guide Release 4 (XPG4) POSIX SysVR4

(With the caveat that if you need true XPG4 compatibility you need to make sure it calls the programs in /usr/xpg4/bin instead of any others that may be present in other directories)

Make sure /usr/ucb is either not in your path (preferred) or near the end of it when configuring/building. NEVER use /usr/ucb/cc to compile software - always use the SparcWorks Pro cc or gcc. Avoid linking with libucb whenever possible - if you must use it (and you should almost never have to with software written/modified anytime in the last 3 or 4 years), add it to the *END* of the LDFLAGS like this: -lc -L/usr/ucblib -R/usr/ucblib -lucb (otherwise you may get unexpected conflicts with curses or calls that are in both libraries).

However, most "make install" scripts expect the /usr/ucb/install or /usr/local/gnu/bin/install behavior, not the bizzare /usr/sbin/install behavior - if you get strange "not found" errors from install, it's probably because you're using the wrong one. And NEVER run install as root without specifying the full path to the install program since you can easily blow away system software with the sbin install program.

Tips for answering configuration questions (these are just general guidelines, and may not always be the best answer for a particular package - the symbol ">" is used to mean "is preferred over"): - Sparcs are big-endian (like Motorola 68k processors) - waitpid > wait3/wait4 > wait - signal handling: - sigaction > sigset > signal - sig{set,long}jmp > {set,long}jmp (when appropriate) - reading directories: readdir/dirent.h > getdents/getdirentries/[n]dir.h - finding # of file descriptors: sysconf > getdtablesize > NOFILE - open() flags: O_NONBLOCK > O_NDELAY - file system stats: statvfs > statfs - file locking: fcntl > lockf > flock - tty interface: POSIX/termios > termio > sgtty/ioctl - getting the current time: time > gettimeofday - formatting the time: strftime > asc[f]time/c[f]time - getting current dir: getcwd > getwd - getting the hostname: gethostname > uname - terminal info: terminfo > termcap - string matching: strcasecmp > stricmp - process creation: fork > vfork

For some information about what the various system libraries are, run "man -s 3 intro"

Some configure scripts will find -lmalloc and try using it - you probably want to discourage this since the -lmalloc versions of the memory routines are slower (more space-efficient, yes, but slower - see "man -s 3c malloc" for more info on the different versions).

Always link with any shared libraries available instead of the equivalent static libraries, so that when bugs are fixed in the shared libraries they will be automatically fixed in your programs, and so that your programs work after OS upgrades.

If you need to link with shared libraries in non-standard paths, ALWAYS use "cc -R" to specify the path instead of requiring that LD_*_PATH environment variables be set (don't just try writing a wrapper to set the variables and call the program).

To link with the Motif libraries, add this to your LDFLAGS *before* -lXt or other X11 libraries: -L/usr/dt/lib -R/usr/dt/lib -lXm

Check out http://www.sun.com/smcc/solaris-migration/ when you're looking for already ported source or porting hints. Read the comp.unix.solaris FAQ and the Solaris Porting FAQ for answers to other questions: http://www.fwi.uva.nl/pub/solaris/solaris2/ http://www.cis.ohio-state.edu/hypertext/faq/usenet/Solaris2/