| 1 | # Copyright 2000, International Business Machines Corporation and others. |
| 2 | # All Rights Reserved. |
| 3 | # |
| 4 | # This software has been released under the terms of the IBM Public |
| 5 | # License. For details, see the LICENSE file in the top-level source |
| 6 | # directory or online at http://www.openafs.org/dl/license10.html |
| 7 | |
| 8 | # An InstallGuide for installing the initialization script |
| 9 | # For IBM RS/6000 systems running AIX 4.x |
| 10 | # |
| 11 | |
| 12 | sub rc { |
| 13 | my($rcfile,$initfile, $method,$line,$method,%Method); |
| 14 | |
| 15 | # Defaults |
| 16 | $rcfile = "/etc/rc.afs"; |
| 17 | $initfile = "/etc/inittab"; |
| 18 | |
| 19 | &ErrorsAreFatal(1); |
| 20 | |
| 21 | # Add AFS kernel loader to RC file |
| 22 | &VPrint("Creating $rcfile file"); |
| 23 | &DisplaceFile($rcfile); |
| 24 | $rc = open(RC, "> $rcfile"); |
| 25 | &ErrorMsg("Could not overwrite", $rcfile) if (!$rc); |
| 26 | |
| 27 | |
| 28 | $method = "none"; |
| 29 | if ($Configuration{"NFSEXTENSIONS"}) { |
| 30 | $method = "nfs"; |
| 31 | # Determine if this AIX system uses the iauth system |
| 32 | # AIX 4.1.x for x>=5 |
| 33 | # AIX 4.2.x for x>=1 |
| 34 | # AIX 4.x for x>=3 |
| 35 | open(LPP, "/bin/lslpp -L |"); |
| 36 | while ($line = <LPP>) { |
| 37 | next unless ($line =~ /bos.rte\s/); |
| 38 | $line =~ /bos.rte\s+(\d)\.(\d)\.(\d)/; |
| 39 | ($a,$b,$c) = ($1,$2,$3); |
| 40 | $method = "iauth" if ($a == 4 && $b == 1 && $c >= 5); |
| 41 | $method = "iauth" if ($a == 4 && $b == 2 && $c >= 1); |
| 42 | $method = "iauth" if ($a == 4 && $b >= 3); |
| 43 | last; }; |
| 44 | close(LPP); }; |
| 45 | |
| 46 | $Method{"none"} = "#USENFS=\"none\""; |
| 47 | $Method{"nfs"} = "#USENFS=\"nfs\""; |
| 48 | $Method{"iauth"} = "#USENFS=\"iauth\""; |
| 49 | $Method{$method} =~ s:#::; |
| 50 | |
| 51 | print RC <<"EORC"; |
| 52 | #!/bin/sh |
| 53 | |
| 54 | |
| 55 | # Choose one depending on how much usage this client gets |
| 56 | #OPTIONS="-stat 300 -dcache 100 -daemons 2 -volumes 50" |
| 57 | #OPTIONS="-stat 2000 -dcache 800 -daemons 3 -volumes 70" |
| 58 | OPTIONS="-stat 2800 -dcache 2400 -daemons 5 -volumes 128" |
| 59 | |
| 60 | # Choose one depending on how you want NFS requests handled by AFS |
| 61 | $Method{"none"} |
| 62 | $Method{"nfs"} |
| 63 | $Method{"iauth"} |
| 64 | |
| 65 | if [ "\$USENFS" = "nfs" ]; then |
| 66 | ExportExt="" |
| 67 | AFSExt=".trans" |
| 68 | NFS="-rmtsys" |
| 69 | elif [ "\$USENFS" = "iauth" ]; then |
| 70 | ExportExt=".nonfs" |
| 71 | AFSExt=".iauth" |
| 72 | NFS="-rmtsys" |
| 73 | else |
| 74 | ExportExt=".nonfs" |
| 75 | AFSExt="" |
| 76 | NFS="" |
| 77 | fi |
| 78 | |
| 79 | # Load AFS into the kernel |
| 80 | cd /usr/vice/etc/dkload |
| 81 | /usr/vice/etc/dkload/cfgexport -a /usr/vice/etc/dkload/export.ext\${ExportExt} |
| 82 | /usr/vice/etc/dkload/cfgafs -a /usr/vice/etc/dkload/afs.ext\${AFSExt} |
| 83 | |
| 84 | # Start bosserver |
| 85 | if [ -x /usr/afs/bin/bosserver ]; then |
| 86 | echo 'Starting bosserver' > /dev/console |
| 87 | /usr/afs/bin/bosserver & |
| 88 | fi |
| 89 | |
| 90 | # Start afsd |
| 91 | /usr/vice/etc/afsd \$OPTIONS \$NFS |
| 92 | |
| 93 | # Start AFS inetd services |
| 94 | if [ -f /etc/inetd.afs -a -f /etc/inetd.conf.afs ]; then |
| 95 | /etc/inetd.afs /etc/inetd.conf.afs |
| 96 | fi |
| 97 | |
| 98 | EORC |
| 99 | close(RC); |
| 100 | |
| 101 | # Add AFS entry to the inittab file |
| 102 | &VPrint("Adding AFS entry to $initfile"); |
| 103 | |
| 104 | &Patch::Verbose if ($InstallVerbose); |
| 105 | &Patch::FileOpen($initfile); |
| 106 | $SearchString = <<"xxENDxx"; |
| 107 | rcnfs:2:wait:/etc/rc.nfs > /dev/console 2>&1 # Start NFS Daemons |
| 108 | xxENDxx |
| 109 | |
| 110 | $NewString = <<"xxENDxx"; |
| 111 | rcafs:2:wait:/etc/rc.afs > /dev/console 2>&1 # Start AFS Daemons |
| 112 | xxENDxx |
| 113 | |
| 114 | if (!&Patch::Patch($initfile, [[0, "Insert", $SearchString, $NewString]])) { |
| 115 | &ErrorMsg("Did not succeed with patch", $initfile); |
| 116 | } |
| 117 | &Chmod (0755, $rcfile); |
| 118 | &Chown (0,0, $rcfile); |
| 119 | } |