








			     Linux ADSM Mini-Howto

   : by Thomas Knig, Thomas.Koenig@ciw.uni-karlsruhe.de : Mile Yeh
			     mile@mail.timenet.net

			      v, 15 January 1997



				   Abstract

     ļ Linux/i386 ֮ҵԵ ADSM ϵͳ
     ȥװʹһͻ.



1.  

ADSM һ IBM ·Ϊıϵͳ,ڶ֯ʹ
аʽϵͳ (ͬƷƵ UNIX,Ӵϵ, Novell, Mac,Ӵ NT).
ҵ,ʱûԭ Linux 汾.

Ҫʹ SCO λԪ,װ iBCS2-emulator ִ ADSM. ADSM
v2r1.

дͬʱ,Ψһķ  i386汾 Linux һİ汾.


2.  װ iBCS ģ

iBCS2ģǿԴӴ˴ȡ ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2.
ִк 汾 1.2.13,ȡ ⿪ ibcs-1.2-950721.tar.gz,
⿪ ibcs-1.2-950808.patch1  ibcs-1.2-950828.patch2.  ܹȻ
'make'Ȼʹ 'insmod' װ iBCS modlue ;.

һ 2.0İ汾,ȡ ibcs-2.0-960610.tar.gz,⿪һ
ʵķ,ıĿ¼Ŀ¼,ʹ޲:


     --- iBCSemul/ipc.c.orig  Wed Jan 15 21:32:15 1997
     +++ iBCSemul/ipc.c  Wed Jan 15 21:32:31 1997
     @@ -212,7 +212,7 @@
	  switch (command) {
	       case U_SEMCTL:
		    cmd = ibcs_sem_trans(arg3);
     -		    arg4 = (union semun *)get_syscall_parameter (regs, 4);
     +		    arg4 = (union semun *)(((unsigned long *) regs->esp) + (5));
		    is_p = (struct ibcs_semid_ds *)get_fs_long(arg4->buf);
      #ifdef IBCS_TRACE
		    if ((ibcs_trace & TRACE_API) || ibcs_func_p->trace)




Linux ADSM Mini-Howto							      1





Linux ADSM Mini-Howto							      2



Ȼ, CONFIG.i386 CONFIG, make.

ûЩ豸,ִнҪ豸

     # cd /dev
     # ln -s null XOR
     # ln -s null X0R
     # mknod socksys c 30 0
     # mknod spx c 30 1


3.  װ ADSMͻ

SCOλԪ tar ṩ,ɴŵṩ.ı·
Ŀ¼,趨 umask ,Ȼ һĿ¼⿪ (Ʃ Ŀ¼).Ŀ¼
/tmp, ҵһ;ִ

ʱҪֶ༭ /usr/adsm/dsm.sys /usr/adsm/dsm.opt.  
dsm.sys,Ҫϸ˵:

      Servername
	    The name of the server(ŷ)

      TCPServeraddress
	    ŷ DNS ȫ

      NODename
	    Լ

In dsm.opt,Ҫϸ˵

      Server
	    ͬǰ

      Followsymbolic
	    ҪҪӵ (һ˵һ)

      SUbdir
	    ֧ԮĿ¼ (ͨҪ)

      domain
	    ϵͳ

ʱҪ봴һ SCO-ݵ /etc/mnttab 
/etc/fstab.ʹи Perl , fstab2mnttab,.

















Linux ADSM Mini-Howto							      3



	  #!/usr/bin/perl

	  $mnttab_struct = "a32 a32 I L";
	  open(MTAB, "/etc/mtab") || die "Cannot open /etc/mtab: $!\n";
	  open(MNTTAB, ">/etc/mnttab") || die "Cannot open /etc/mnttab: $!\n";

	  while(<MTAB>) {
	      next if /pid/;
	      chop;
	      /^(\S*)\s(\S*)\s(\S*)\s.*$/;
	      $device = $1;
	      $mountpt = $2;
	      $fstype = $3;
	      if($fstype ne "nfs" && $fstype ne "proc") {
		  $mnttab_rec =
		      pack($mnttab_struct, $device, $mountpt, 0x9d2f, time());
		  syswrite(MNTTAB, $mnttab_rec, 72);
		  print "Made entry for: $device $mountpt $fstype\n";
	      }
	  }

	  close(MNTTAB);
	  exit 0;



Щͻ㲻ҪװκεĹʽ; ÿӵ̶.


4.  ִпͻ

ֿͻ, dsm,һ X11,
dsmc,һн.ĵĻβ .һЩʱ𶯳,

     dsmc schedule -quiet 2>&1 >/dev/null &

ܽҪ


5.  ֪

ҵ, SCO ֻܴ 8 Ԫ̵ ., Inter
net ȫ,Ҳ Ҫ NODenameline in /usr/adsm/dsm.sysϸ˵Ļ..

ʹ DISPLAY ,Ҫṩ ŷ DNS ȫ (. DIS
PLAY=host.full.do.main:0 instead of DISPLAY=host:0).
















Linux ADSM Mini-Howto							      4





































































				   CONTENTS



1.  ..................................................................... 1

2. װ iBCS ģ ........................................................... 1

3. װ ADSMͻ .......................................................... 2

4. ִпͻ ............................................................... 3

5. ֪ ............................................................... 3











































				       i


