[comp.protocols.tcp-ip] Serial Line IP and ULTRIX-32 2.0

dave@moogvax.UUCP (06/29/87)

Does anybody know if Ultrix 2.0 supports SLIP? If not, is it possible to install
it if you are binary site. 

Thanks.
-- 
Dave Szczepanski
Moog Inc.
UUCP:{decvax,rocksanne,rocksvax}!sunybcs!moogvax!dave

avolio@decuac.dec.com (Fred Avolio) (06/30/87)

In article <662@moogvax.UUCP>, dave@moogvax.UUCP (Dave Szczepanski) writes:
> Does anybody know if Ultrix 2.0 supports SLIP? If not, is it possible to install
> it if you are binary site. 

It does not come with SLIP support.  I agree, it is needed.  I see no
easy way to install it with a binary kit since you need to modify
init_main, but perhaps someone running SLIP under ULTRIX could send
you the binaries on a tape for you to install (if you sent them
electronic mail with your USMail address).

We are running SLIP under ULTRIX 2.0.

Fred

mouse@mcgill-vision.UUCP (der Mouse) (07/05/87)

In article <1358@decuac.DEC.COM>, avolio@decuac.dec.com (Fred Avolio) writes:
> In article <662@moogvax.UUCP>, dave@moogvax.UUCP (Dave Szczepanski) writes:
>> [I]s it possible to install [SLIP] if you are binary site. 

> I see no easy way to install it with a binary kit since you need to
> modify init_main,

Fortunately it *is* possible.  It is not especially easy, and it is a
dreadful hack, but until we manage to stamp out binary distributions
this trick may come in handy to someone.

What we do is to patch the "_loattach" symbol in the init_main.o symbol
table to something like "_F_Avolio" (Hi Fred!) and then configure in a
file containing something like the following (or add it to an existing
file we have source to):

F_Avolio()
{
 do_whatever_we_want();
 loattach();
}

(Why F_Avolio?  No particular reason.  You can use derMouse if you'd
rather - Fred might even prefer you did :-).  Anything the same length
as "loattach" will do perfectly well, provided it doesn't conflict with
anything already present in the kernel.)

How do we patch the symbol table?  Assuming a normal Ultrix system,

# strings - -o init_main.o | egrep _loattach
    1234      _loattach
# adb -w init_main.o init_main.o
0t1234/S
4d2:		_loattach
.+1/W 'vA_F'
4d3:		74616f6c	= 76415f46
0t1234/S
4d2:		_F_Avtach
.+5/W 'oilo'
4d7:		68636174	= 6f696c6f
0t1234/S
4d2:		_F_Avolio
$q
#

We give adb the file name twice so we can use the offset strings gave
us:  since the file is an a.out, adb does address mapping for a.outs,
which is good in general, but doesn't help here, so we get around by
giving the filename twice and using the / forms of the examine and
deposit commands.  You can also do this by using $m and a little
arithmetic, but it's much simpler to just do the above.  It works
because the .o file is not a valid core image, so adb doesn't do its
address mapping for the / command forms.  (F_Av and olio are spelled
backwards because adb is too dumb to fix the order of the characters in
'xxxx' constants.)

If you do try this, I MOST STRONGLY urge you to keep backup copies of
EVERYTHING you touch!

					der Mouse

				(mouse@mcgill-vision.uucp)