Aus Knowledgebase
Zur Navigation springen Zur Suche springen


DECstation 5000/240

DEC released ULTRIX for the DECstation with release 3 in 1989. ULTRIX 4.0 already came in 1990 and quickly most DECstation and VAX machines were running some release of 4.X. When people think of ULTRIX, they usually remember some 4.X release. ULTRIX 4 is based on 4.2BSD + some 4.3BSD + some System V. ULTRIX never received some modern stuff like shared libraries. Early 4.X releases sometimes had nasty bugs and people kept upgrading until it was stable. The last release was 4.5, released in 1995, but only few sites actually ran it. DECstation weren't really important by 1995 and there was little to be gained over 4.4 or 4.3A. ULTRIX comes with a full development system, TCP/IP, NFS, and so on. ULTRIX/RISC ships with a port of the MIPS C-Compiler. ULTRIX/VAX has the older VAX C compiler.
ULTRIX got the ability to use and install on generic SCSI disks with 4.2. There was a bug in the disk driver that corrupts data on disks larger than 1GB on ULTRIX release 4.2 and earlier. A fix was introduced in 4.2A.
ULTRIX/RISC 4.5 supports all DECstations and DECsystems from the earliest 3100 to the latest 5000/260. R4000 based machines need 4.3A or newer. ULTRIX/VAX runs on all VAX machines up to the CVAX range, including the popular first generation MicroVAX 3100 and VAXstation 3100. ULTRIX supports SMP on the large DECsystem 5800 and VAX 6000. ULTRIX/VAX does not run on any more modern VAX, like the VAXstation 4000 series.
ULTRIX 4 requires license PAKs like all the other DEC operating systems. A two-user system will boot up fine without any licenses installed. Having more than two users and using layered products needs extra licenses.

Installing ULTRIX on a DECstation

Get the CDs ready: ULTRIX 4.5 installation CD. ULTRIX software product library CDs ULTRIX consolidated software distribution


if ($term == xterm-256color) then
setenv TERM vt100


# set a fancy prompt
PS1='\u@\h:\w\$ '
export PS1


if [ $TERM = "xterm-256color" ]
then TERM=vt100; export TERM

install ULTRIX 4.5

boot ULTRIX installation media. choose single user shell partition disk with chpt

show partition table chpt -q /dev/rrz0c

create default table chpt -d /dev/rrz0c

adjust partitions chpt -pa 0 65536 /dev/rrz0c

choose advanced installation select everything

load license PAKs lmf reg <template>

load layered products DECnet, Fortran, C++, Pascal, disk shadowing

build kernel for DECnet /usr/etc/decnetsetup kernel

DEC released a Y2K patchset for ULTRIX 4.3A and later:

load patchsets Base and UWS setenv PATCHES /path/to/patch/dir run patch scripts like: for i in `ls U*`; do ./$i ; done

configure TCP/IP network: netsetup install

configure resolver bindsetup svcsetup

configure DECnet: /usr/etc/decnetsetup [basic|advanced]

ULTRIX /bin/sh is an ancient Bourne shell. It is best to replace it:

mv /bin/sh /bin/sh.save
cp -p /usr/bin/ksh /bin/sh

if bash is build copy /usr/local/bin/bash to /bin/sh

interesting things and tools:

diskless management services utility /etc/dms

remote installation services /etc/ris

MIPS RISC C compiler /bin/cc

DEC ANSI C compiler /usr/bin/c89

DEC C++ compiler /usr/bin/cxx

DEC Fortran compiler /usr/bin/f77

MIPS Pascal compiler /usr/bin/pc

build freeware:

flex-2.5.4 gcc- make-3.75 m4-1.4 patch-2.5.9 binutils-2.12.1

get gcc-2.95.3 get libio patch copy patch to libio dir apply patch like: /usr/local/bin/patch < libio_patch.txt build gcc-2.95.3 as usual


gettext-0.14.6: build without C++

bash-2..05b bzip2-1.0.3 neu: bzip2-1.0.6 bison-1.875 jpeg-6b tar-1.11.8

make-3.79: --disable-locale --disable-nls

unzip-5.52 zip-2.32 sed-3.02

gcc-3.0.4: needs fixes for libstdc++ config.h.in: add "#define LITTLE_ENDIAN 1" comment or undef "#define HAVE_IEEEFP_H 1" the ieeefp.h fix might only be applieable for config.h when the build has failed.

perl-5.005_04: I chose to build with gcc. You need to change the CFLAGS in hints/ultrix_4.sh choose "none" for shared libraries, because ULTRIX doesn't have SL. set LANG or LC_ALL to "C"

take install-sh out of gawk-3.1.8 and install it as /usr/local/bin/install

slang-1.4.9: use /usr/local/bin/install

gawk --disable-locale gawk-3.1.8:

If the program you are trying to build complains about that there is no symbol
strdup to link to, then add the library “libiberty” (found in for example GNU
binutils package) i.e. add the switch –liberty when you link. 

copy snprintf.h to /usr/local/include

tar-1.15.1: include snprintf.h in lib/argp-fmtstream.c add -libiberty when linking tar

top-3.5: don't include color support

glib-1.2.10: --without-threads


diffutils-2.8.1: assumes libintl, and failes, because "undefined reference to `libintl_fprintf'" add "-lintl" undefined reference to `mkstemp' include <mkstemp.h>

libungif-4.1.4: needs strdup() add -liberty

libpng-1.2.31: needs an #include <snprintf.h> in pngrutil.c.

readline-6.1: --disable-shared note: readline uses terminal lib functions, such as tputs, but doesn't link to any such library. This means that apps using readline also need to link to libtermcap, libcurses or libncurses. Remember when you see "undefined reference to `tputs'".



freetype-2.3.9: --disable-shared


prng-3.0.2 tin-1.9.5: --enable-broken-system-fix


screen-3.9.15 needs #include <sys/syslog.h> in acls.c

openssl-0.9.8m autoconf-2.60 automake-1.9.6 pcre-8.10 pcre-8.20: if you link pcre with readline remember to also link to libncurses or similar.

zsh-4.3.10: some tests failed

ghostscript 7.07: add SM and ICE to XLIBS in Makefile if you use X11R6. Not necessary with X11R5.

xpm-3.4k: check that xpm.h gets installed

t1lib-5.1.2 expat-2.0.1 teTeX 2.0.2

vim-5.8 --without-x --enable-gui=no

vim-6.4 --without-x --enable-gui=no

renderext-0.9 renderproto-0.9.3 gdbm-1.8.3 binutils-2.15

tiff-3.8.2: problems with libtool. remove -version_info

gtk+-1.2.10 libstroke-0.5.1 db-4.4.20 ssh-1.2.32 fileutils-4.1 findutils-4.1

prngd-0.9.29: remove #include sys/socket.h from prngd.c, serverloop.c, unix_socket.c, tcp_socket.c, sockio.c,

zlib-1.2.5: make install doesn't work, because it assumes shared libs

zlib-1.2.8: words just fine out of the box.

openssh 5.8p2:

remove sys/socket.h and netinet/ip.h from several files when "includes.h" is included. config.h: #define BROKEN_READV_COMPARISON #undef HAVE_TYPE_IN_UTMP #define DISABLE_UTMPX #undef ENABLE_PKCS11 running sshd in debug mode: /bin/sshd -p <listening port> -D -d -e ssh-keygen.c remove references to pkcs11_init and pkcs11_terminate from ssh-keygen.c on lines 1410 and 1493.


libidn-1.19: #define ssize_t size_t in lib/nfkc.c EILSEQ undefined in gltests/test-errno.c lstat undefined in gltests/test-lstat.c no solution yet installed without testing, but looks okay

libidn-1.26: strdup undefined. needs -liberty in lib add "LIBS = -liberty" to src/Makefile "#define ssize_t size_t" in lib/stringprep.h

gtk-1.2.8: some problems with Xsetlocale for unknown reasons. I think this used to just work. "#define _Xsetlocale setlocale" in gtk/gtkrc.c and gdk/gdkim.c

texinfo-4.8: comment out #include setlocale.h in lib/system.h


wget-1.9.1: remove #include sys/socket.h from src/host.h add #include sys/socket.h in ftp.c ftp-ls.c headers.c http.c main.c rbuf.c recur.c retr.c add -lintl to src/Makefile under LIBS

make-3.81 bc-1.06: --with-readline

openssl-0.9.8r ./Configure zlib --prefix=/usr/local --openssldir=/usr/local ultrix-gcc temporally create a link /usr/local as /usr/local/ssl then rebuild some apps that rely on openssl.

Xaw3d follow the instructions for building outside the source tree

m4-1.4.5: fix src/stackovf.c: vec.sv_flags = (SV_ONSTACK #ifdef SV_RESETHAND | SV_RESETHAND #endif ); some tests fail with doc/m4.texinfo. This is known.

RIS - remote installation service

ULTRIX provides ris, as a way to install from the network. It is easy to setup by scripts.

A common failure is this:

Cannot find rzux1 in risdb file.  Check the sytem manager of                    
your host server.                                                               

If this happens, make sure: the client is in the /etc/hosts of the server the r services have to be enabled in /etc/inetd.conf on the server /usr/adm/ris/.rhosts should include the client /usr/adm/ris/clients/risdb should include the client /etc/hosts should be beautiful like this: ds3100 ds3100.domain.tld but NOT like this: ds3100.domain.tld ds3100

ULTRIX 4.1 contains a floating point signalling bug. a patch is supplied with and needed for DEC Fortran.

ULTRIX 4.1 on RISC is also full of bugs. It is really best to avoid that version.

ULTRIX 4.1 partition for DECstation 3100:

make sure there is enough swap space! ULTRIX can only swap on partations that are configured in the kernel. config vmunix root on rz0a swap on rz0b and rz0e dumps on rz0b fstab: /dev/rz0a:/:rw:1:1:ufs:: /dev/rz0d:/var:rw:1:2:ufs:: /dev/rz1a:/usr:rw:1:2:ufs:: /dev/rz0f:/home:rw:1:2:ufs:: /dev/rz0e::sw::::: bash-2.05b# chpt -q /dev/rrz0a /dev/rrz0a Current partition table: partition bottom top size overlap a 0 131071 131072 c,g,h / b 131072 327679 196608 c swap1 c 0 832526 832527 a,b,d,e,f,g,h d 327680 393215 65536 c /var e 589824 832526 242703 c swap2 f 393216 589823 196608 c /home g 0 0 0 a,c,h h 0 0 0 a,c,g bash-2.05b# chpt -q /dev/rrz1a /dev/rrz1a Current partition table: partition bottom top size overlap a 0 2050859 2050860 b,c,d,e,f,g,h /usr b 0 0 0 a,c,d,e,f,g,h c 0 2050859 2050860 a,b,d,e,f,g,h d 0 0 0 a,b,c,e,f,g,h e 0 0 0 a,b,c,d,f,g,h f 0 0 0 a,b,c,d,e,g,h g 0 0 0 a,b,c,d,e,f,h h 0 0 0 a,b,c,d,e,f,g

important note: the ULTRIX kernel cannot be built with any GNU tools in the path

installing ULTRIX 4.0 RISC

some save sets were unreadable from the distribution tapes. unable to install X11 UDTEXER

ULTRIX 4.0 does not remember the correct ethernet device. Installation assumes that ln0 is correct. Drop to system shell and /etc/ifconfig ln1.

Install software from a remote server using setld:

/etc/setld -l dxsoft:

the colon is necessary!

set default gateway and start services: add to /etc/rc.local:

# prngd
echo 'starting pseudo random number generator' > /dev/console
/usr/local/sbin/prngd /var/run/egd-pool
# SSHd
echo 'starting SSH daemon' > /dev/console
# default route
echo 'setting default route' > /dev/console
/etc/route add default 1
# start DECnet
# Start all OSI applications
if [ -s /etc/osi_applstartup ]
echo "OSI Applications Starting" ; /bin/sh5 /etc/osi_applstartup

Installing ULTRIX 4.2 on a MicroVAX 3100:

MicroVAX 3100

change /etc/ttys: add secure to all ttys











replace /bin/sh with bash

cp install-sh /usr/local/bin/install from gawk-3.0.6

bzip2-1.0.6 grep-2.3

gcc-2.8.1 --enable-languages=c,c++,f77 --disable-nls

perl-5.005_04 use gcc