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 !