Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP id AA1333 ; Tue, 23 Feb 93 14:35:39 EST Newsgroups: comp.unix.bsd Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!caen!destroyer!cs.ubc.ca!uw-beaver!newsfeed.rice.edu!rice!news.Rice.edu!rich From: rich@Rice.edu (Richard Murphey) Subject: XFree86 1.2 for 386BSD Available In-Reply-To: dwex@cbnewsj.cb.att.com's message of Mon, 15 Feb 1993 13:18:36 GMT Message-ID: <RICH.93Feb15114759@omicron.Rice.edu> Followup-To: comp.unix.bsd Sender: news@rice.edu (News) Reply-To: Rich@Rice.edu Organization: Department of Electrical and Computer Engineering, Rice University References: <1993Feb15.131836.14649@cbnewsj.cb.att.com> Date: Mon, 15 Feb 1993 17:47:59 GMT Lines: 274 The XFree86-1.2 binary release for 386BSD is available by anon ftp from agate.berkeley.edu in /pub/386BSD/0.1-ports/XFree86-1.2. The posting `Announcing the release of XFree86 1.2' has general information about the XFree86 1.2 release. The 386BSD specific details below are a copy of agate.berkeley.edu:/pub/386BSD/0.1-ports/XFree86-1.2/README.386BSD. Rich README for XFree86 1.2 on 386BSD 0.1 ------------------------------------ Contents -------- 1) What and Where is XFree86? 2) Installing The Binaries 3) Configuring X for Your Hardware 4) Running X 5) Kernel Support for X 6) Rebuilding the XFree86 Distribution 7) Building New X Clients 1 - What and Where is XFree86? ------------------------------ XFree86 is a port of X11R5 that supports several versions of Intel-based Unix. It is derived from X386 1.2, which was the X server distributed with X11R5. This release consists of many new features and performance improvements as well as many bug fixes. The release is available as source patches against the MIT X11R5 code, as well as binary distributions for many architectures. The sources for XFree86 are available by anonymous ftp from export.lcs.mit.edu in /contrib/XFree86 and ftp.physics.su.oz.au in /XFree86. Binaries for X386 on 386BSD as well as the above sources are available from agate.berkeley.edu (128.32.136.1) in /pub/386BSD/0.1-ports/XFree86-1.2. 2 - Installing the Binaries --------------------------- The binary distribution comes in a number of tar archives which are the executables, server, fonts, include files, libraries, man pages, linkkit, and config files. Those much longer than 1 meg are split. You must choose between two versions of the server, one for the stock console driver, pccons, and one for Holger Veit's enhanced console driver, codrv. Get either XFree86-server-1.2-pccons.tar.Z or XFree86-server-1.2-codrv.tar.Z according to which driver is present in your kernel. If you don't have a kernel with X support, see item 5. To unpack and install the full distribution use: zcat XFree86-1.2-bin.tar.Z.* |tar xf - tar xzf XFree86-1.2-server-pccons.tar.Z zcat XFree86-1.2-fonts.tar.Z.* |tar xf tar xzf XFree86-1.2-fonts-scaled.tar.Z tar xzf XFree86-1.2-inc.tar.Z zcat XFree86-1.2-lib.tar.Z.* |tar xf tar xzf XFree86-1.2-man.tar.Z tar xzf XFree86-1.2-xinit-config.tar.Z tar xzf XFree86-1.2-xdm-config.tar.Z zcat XFree86-1.2-linkkit-pccons.tar.Z.* |tar xf ./X386/lib/X11/etc/x386install If you have previously installed XFree86 and have customized your xinit scripts, omit XFree86-xinit-config.tar.Z. If you have customized your xdm config files, extract XFree86-xdm-config.tar.Z somewhere else and merge the changes in the new X386/lib/X11/xdm/Xsession file into your customized version. The scaled fonts, XFree86-fonts-scaled-1.2.tar.Z, and the kit for linking a server for each console driver, XFree86-linkkit-pccons.tar.Z or XFree86-linkkit-codrv.tar.Z, are also optional. x386install creates links so that the distribution appears to be in /usr/X386, puts the X man pages in /etc/man.conf, creates /dev/vga if needed, adds /usr/X386/bin to the default path in /etc/csh.login, and when using the pccons driver, changes `console' to `vga' in /etc/ttys so that the X server will interact properly with the console login session. Note: Do not uncompress the font files themselves or your server will abort when unable to find the 'fixed' font as listed in fonts.dir. When using the pccons console driver together with xdm, unless you have configured the console to be one of the com ports or have disabled logins on the PC console, /etc/ttys must be changed as shown below. If /etc/ttys is changed, you must reboot for the change to take effect (e.g. `sync;shutdown -r now'). Although `kill -HUP 1' should work instead, it will sometimes hang the console, so rebooting is safer. Remember to add /usr/X386/bin to your shell's `path' variable. 3 - Configuring X for Your Hardware ----------------------------------- You *must* edit /usr/X386/lib/X11/Xconfig to suit your hardware. The Xconfig file tells the X server what kind of monitor, adapter and mouse you have. 'man X386' and /usr/X386/lib/X11/Xconfig.sample describe the contents. Once you understand the structure of Xconfig, try to find your specific monitor and vga card in /usr/X386/lib/X11/etc/modeDB.txt. If your Clocks and ModeDB lines are there, grab the values there and put them in your Xconfig. If modeDB.txt does not have your hardware, read /usr/X386/lib/X11/etc/VideoModes.doc for instructions on how to create the video timing values given your vga card and monitor specs. The manual for your monitor and adapter should have these values. Given your clock frequency and horizontal frequency of your monitor, the program xclk (on agate.berkeley.edu in /pub/386BSD/0.1-ports/XFree86-1.1) can calculate a ModeDB line for you. X386 will print out the Clocks values for your vga card if you leave the Clocks line out of your Xconfig and run 'xinit >& xinit.out'. If your mouse does not work try using kermit or tip to connect to the mouse serial port and verify that it does indeed generate characters. 4 - Running X ------------- 8mb of memory is a recomended minimum for running X. The server, window manager and an xterm take about 2.5 Mb of memory themselves. On a 4Mb system that would leave very little left over for other applications like gcc that expect a few meg free. X will work with 4Mb of memory, but in practice compillation while running X can take 5 or 10 times as long due to constant paging. The easiest way for new users to start X windows is to type 'startx >& startx.log'. Note that this redirects error messages to a file that would otherwise be lost. To get out of X windows, exit from the console xterm. You can customize your X environment using .xinitrc, ..xserverrc, and .twmrc files in your home directory as described in the xinit and startx man pages. Or you can run the X display manager (xdm). Root can invokes `xdm -nodaemon' on the console to start the display manager. If you would rather run xdm on bootup, and add code like the following to your /etc/rc.local script. (If you are using the pccons driver, you must also disable logins on the console by removing `vga' from /etc/ttys.) if [ -x /usr/X386/bin/xdm ]; then echo -n ' xdm'; /usr/X386/bin/xdm fi If you have replaced crypt on your system (see Chris Demetriou's /usr/386bsd.errata/crypt.instructions) and use encrypted passwords, you cannot use the supplied xdm binary. The supplied xdm binary uses the 386BSD 0.1's dummy crypt routine that prints the message 'Crypt not present in system' in the xdm-errors file each time a user logs in. You can ignore this. It merely tells you that passwords are unencrypted. Export restrictions prevent us from providing binaries with a real crypt in the US, but Thomas Meidinger <pingo@guug.de> has made an xdm with DES available on cony.gsf.de (146.107.1.2) in /pub/xdm. Or, to recompile xdm with DES, first install a working crypt according to Chris Demetriou's /usr/386bsd.errata/crypt.instructions. Once you have patched your libc's crypt, you can recompile it. Amancio Hasty put the xdm sources alone on nova.cc.purdue.edu (128.210.7.22) in /pub/386bsd/submissions/XFree86/xdm-src-1.1.tar.Z. 5 - Kernel Support for X ------------------------ You will need either a 386BSD kernel binary which supports X or kernel patches that add X support. The easiest way to get an up-to-date kernel binry is to ftp it from agate.berkeley.edu in /pub/386BSD/386bsd-0.1/unofficial/patch-kit. 386bsd.nostrip.X supports X and uses the pccons console driver. We also supply kernel binaries that have all of patchkit-0.2, XFree86 support and Julian's scsi drivers. There are two versions: kernel-1.2.pccons.tar.Z - uses the stock pccons console driver kernel-1.2.codrv.tar.Z - uses Holger Veit's enhanced console driver Unless you have replaced your keybord driver, use kernel-1.2.pccons.tar.Z: cd /tmp tar xzf kernel-1.2.pccons.tar.Z mv /386bsd /386bsd.alt mv 386bsd /386bsd shutdown -r now If you want to recompile your kernel, we suggest you use patchkit 0.2.1 or the most recent version to add X support because at least one patch (for the bell, patch00078.tar.Z) isn't included with previous versions. It's available by anon ftp from agate.berkeley.edu in /pub/386BSD/386bsd-0.1/unofficial/patch-kit. Be sure you don't apply both the patchkit *and* the kernel patches distributed with previous versions XFree86. They are identical to those in the patchkit because they were contributed to patchkit version 0.1. That is, if you apply patches 28-31 from the patchkit, don't apply the kernel patches that were distributed with XFree86 1.1. Also, you *must* add `option XSERVER,UCONSOLE' to your kernel configuration file when you rebuild the kernel. Holger Veit's replacement keyboard driver is superior to the pccons driver. It's available by anonymous ftp from ref.tfs.com as /usr/src/sys.extras/veit-console/keycap-0.1.1.tar.Z. His README there contains instructions on configuring your kernel, and BUGLIST.270193 contains patches needed when using patchkit-2.0. For a general description of BSD kernel configurtion get smm.02.config.ps.Z from gatekeeper.dec.com (16.1.0.2) in /pub/BSD/manuals. It is a ready postscript copy of the kernel configutation chapter from the systems maintainers manual. 6 - Rebuilding the XFree86 Distribution --------------------------------------- To rebuild the distribution you will need mit X11R5 sources, fixes 1-22, Type 1 font sources and patches, XFree86-1.2.sh, and XFree86-1.2.diff. On export.lcs.mit.edu the files are: /pub/R5/mit-*/mit-*, pub/R5/fixes/fix-01 through 22, contrib/XFree86/Type1.tar.Z, contrib/XFree86/Type1.patch{1,2}.Z contrib/XFree86/XFree86-1.2.sh and contrib/XFree86/XFree86-1.2.diff. Extract the mit-*.tar.Z files, apply patches fix-*, extract Type1.tar.Z in mit/fonts/lib/font, apply Type1.patch1, Type1.patch2, and then run XFree86-1.2.sh and apply XFree86-1.2.diff from the directory containing your mit directory. Finally, apply mit/server/ddx/x386/etc/stdlib.diff, a patch for /usr/include/stdlib.h needed for using gcc's builtin alloca. If you are using Holger Veit's console driver (codrv), uncomment the Has386BsdCoDriver line in mit/config/site.def. If you are using gcc-2.x, add the following line to mit/config/site.def, make sure that your path is set so that running `gcc' finds the correct compiler: #define HasGcc2 YES You should then be able to invoke `make World' in the mit directory to build the distribution. The files mit/RELNOTES.TXT and mit/server/ddx/x386/README contain information on how to configure and build the distribution. 7 - Building New X Clients -------------------------- The easiest way to build a new client (X application) is to use xmkmf if an Imakefile is included in the sources. Type 'xmkmf -a' to create the Makefiles, check the configuration if necessary and type 'make'. Whenever you install additional preformatted man pages you should update whatis.db by running the mkwhatis script in /usr/X386/man. To avoid the `Virtual memory exhausted' message from cc while compiling, increase the data and stack size limits (in csh type `limit datasize 32M' and `limit stacksize 16M'). If you are using gcc-2.x, make sure that /usr/X386/lib/X11/config/site.def contains the following line: #define HasGcc2 YES Many thanks to - Pace Willison for providing the initial port to 386BSD. - Amacio Hasty for fixing cursor restoration, mouse bugs and many others. - Christoph Robitschko for fixing com.c and thus select(). - Nate Williams the patchkit support for X. Rich Murphey David Dawes $Header: /home/id/rich/faq/RCS/README.386BSD,v 1.7 93/02/15 01:50:43 rich Exp Locker: rich $