Note: As of FreeBSD 2.0.5 pcvt is integrated into the FreeBSD source tree and
      the item #1 no longer applies!


How to install the pcvt driver on a FreeBSD 2.0 machine        (pcvt rel. 3.20)
-------------------------------------------------------------------------------
                                     last edit-date: [Fri Jun 30 20:35:28 1995]

(1) Copy the driver distribution files into appropriate directories:

	(1a) make a fresh directory
	
		mkdir /usr/src/sys/i386/isa/pcvt
		cd /usr/src/sys/i386/isa/pcvt

	(1b) copy the pcvt distribution (or unshar it) into this newly
 	     created directory (/usr/src/sys/i386/isa/pcvt)

	(1c) copy the ioctl-header file into its destination directory

		cp pcvt_ioctl.h /usr/include/machine

(2) You have the choice of two keyboard layouts regarding the placement of
    the vt220 function keys and the HELP and DO keys.

    Both configurations are documented in the files Keyboard.HP and Keyboard.VT
    respectively.

    Decide which one to use and set the "#define" of PCVT_VT220KEYB to 
    compile the one you choosed.(see also pcvt_conf.h and pcvt_kbd.c)
    Note: the preferable way to do all option hacking is to add "options"
    lines to the kernel's config file. See the pcvt(4) man page (in this
    directory).

(3) There are several other configuration "#define"-able options located at
    the beginning of pcvt_conf.h. "user"-settable options all start with
    "PCVT_".
    Please (!!!) read the comments for them in the header file !

(4) Add a line

	option    "PCVT_FREEBSD=200"

    into your kernel config file. The quotes are important. The number
    should represent the version of your kernel, "200" stands for "2.00",
    which is the official version number for FreeBSD 2.0 (Release).

(5) Edit your kernel configuration file and comment the following line out
    by placing a "#" in front of it:

      device     sc0     at isa? port "IO_KBD" tty irq 1 vector scintr

    add a new config-line just below it:

      device     vt0     at isa? port "IO_KBD" tty irq 1 vector pcrint

    The lines in my config file look like this:

      #device    sc0     at isa? port "IO_KBD" tty irq 1 vector scintr
      device     vt0     at isa? port "IO_KBD" tty irq 1 vector pcrint

    You can use now either the pccons driver or the pcvt driver (or possibly
    other console drivers too!) by simply un-commenting ONE of them.

    YOU CANNOT USE/UNCOMMENT MORE THAN __ONE__ CONSOLE DRIVER !!!

(6) Configure a new kernel using config(8).

(7) Run "make depend" for the new kernel !!!!

(8) Compile the new kernel

(9) Test the new kernel and check whether it still works with your
    keyboard and your videoboard. Testing could be done best by entering
    the kernel name (e.g. /kernel.pcvt) at the boot prompt, append a
    "-s" flag to prevent it from booting multi-user! The multi-user
    boot phase requires the kernel to be named "/kernel".

    If the kernel works, rename the old kernel (you don't need it any
    more?), link the new one to "/kernel", and reboot up to multi-user.

(10) Change into the distribution subdirectory "Util".
     Copy Makefile.inc.FreeBSD to Makefile.inc and edit Makefile.inc
     to suit your needs, especially have a look at "MANDIR" and "BINDIR".
     Then execute "make". This makes all the utilities in their directories.
     when you are satisfied with the results, execute "make install". This
     installs all programs in all subdirs in "BINDIR" and all manual pages
     in "MANDIR", all fonts in "FONTDIR" and the keycap database in "CAPDIR".
     NB: unless you've got this distribution along with a FreeBSD distrib-
     ution (where it is pre-installed:-), you WILL have to edit Makefile.inc
     in order to get the man pages installed in source form.

     Change into the distribution subdirectory "Doc" and edit Makefile
     to suit your needs. Then execute "make" to prepare the manpage for
     the driver.

(11) If necessary, edit /usr/share/misc/keycap to match your keyboard.
     Keycap uses special codes which are documented in Util/kcon/keycap.3
     and Util/kcon/keycap.5. Also have a look at Util/kcon/kcon.1.

(12) There are example termcap entries for the various screen resolutions
     in the file "Etc/Termcap". Integrate them into your termcap file if
     you don't have a "normal" vt220 entry or want to use pcvt's extensions.
     Don't forget to run cap_mkdb after changing your termcap file !

     NOTE: pcvt works with an unmodified VT220 termcap entry !
	   (it was written to do that .... ;-)
	
(13) To use the virtual terminals, one must "mknod" this devices, they have 
     major number 12 and minor numbers 0 to n. The MAKEDEV script in the
     /dev directory is suitable for this task, just change into the /dev
     directory and execute 'sh ./MAKEDEV vty8' to make devicefiles for 8
     virtual terminals.

     If you want to use the mouse emulator, see the comments in pcvt(4).

(14) edit /etc/ttys to enable login on the virtual consoles, mine looks like
     this:
	
	ttyv0	"/usr/libexec/getty Pc"	pcvt25h	on secure
	ttyv1	"/usr/libexec/getty Pc"	pcvt25h	on secure
	ttyv2	"/usr/libexec/getty Pc"	pcvt25h	on secure
	ttyv3	"/usr/libexec/getty Pc"	pcvt25h	on secure
	ttyv4	"/usr/libexec/getty Pc"	pcvt25h	on secure
	ttyv5	"/usr/libexec/getty Pc"	pcvt25h	on secure
	ttyv6	"/usr/libexec/getty Pc"	pcvt25h	on secure
	ttyv7	"/usr/libexec/getty Pc"	pcvt25h	on secure
	

(15) Edit /etc/rc.local to download fonts and establish emulation modes, mine
     looks like the example provided in Etc/rc.local


(16) For FreeBSD 2.0 there is a patch to cons.c necessary, if you don't
     apply this patch, you don't have a console device; Joerg Wunsch 
     provided this patch:

*** cons.c.orig	Mon Oct 31 18:20:14 1994
--- cons.c	Tue Dec 13 16:16:52 1994
***************
*** 67,73 ****
  #endif
  
  struct	consdev constab[] = {
! #if NSC > 0
  	{ pccnprobe,	pccninit,	pccngetc,	pccncheckc,	pccnputc },
  #endif
  #if NSIO > 0
--- 67,73 ----
  #endif
  
  struct	consdev constab[] = {
! #if NSC > 0 || NVT > 0
  	{ pccnprobe,	pccninit,	pccngetc,	pccncheckc,	pccnputc },
  #endif
  #if NSIO > 0



good luck !
