home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / fj / maillis / xwindow / 18867 < prev    next >
Encoding:
Internet Message Format  |  1992-12-22  |  9.5 KB

  1. Path: sparky!uunet!wupost!darwin.sura.net!sgiblab!nec-gw!nec-tyo!wnoc-tyo-news!scslwide!wsgw!wsservra!onoe
  2. From: kaleb@stingray.Jpl.Nasa.Gov (Kaleb Keithley)
  3. Newsgroups: fj.mail-lists.x-window
  4. Subject: R5.Xsun.multi-screen
  5. Message-ID: <1992Dec23.040945.2020@sm.sony.co.jp>
  6. Date: 23 Dec 92 04:09:45 GMT
  7. Sender: onoe@sm.sony.co.jp (Atsushi Onoe)
  8. Distribution: fj
  9. Organization: Workstation Div., Supermicro Systems Group, Sony Corporation
  10. Lines: 217
  11. Approved: michael@sm.sony.co.jp
  12.  
  13. Date: Tue, 22 Dec 92 16:42:57 -0500
  14. Message-Id: <9212222142.AA14415@expo.lcs.mit.edu>
  15.  
  16. I have installed a new version of the R5.Xsun.multi-screen server on
  17. export.lcs.mit.edu (18.24.0.12).  It may be found in the file
  18. ~ftp/contrib/R5.Xsun.multi-screen.tar.Z.  The highlights are:
  19.  
  20.     Incorporated Martin Forssen's 16 December 1992 keyboard patch.
  21.  
  22.     A fix for the CG2 screen-saver and colormap-install when compiled 
  23.     with gcc-2.x.x.
  24.  
  25.     A fix for a spurious abort when running under xdm and 
  26.     "*terminateServer: False"
  27.  
  28. The complete README follows.
  29.  
  30. ========================================================================
  31.  
  32. The R5 Xsun Multi-screen server is a general purpose replacement for the 
  33. MIT server/ddx/sun layer.  
  34.  
  35. It was written to fulfill the following requirements:
  36.  
  37.     First, (and foremost) to support up to three of the same type of
  38.     frame buffers on VME and S-Bus architectures.
  39.  
  40.     Second, to simplify the interface to the frame buffers.
  41.  
  42.     Third, to eliminate the SunView support.  The King is dead.  Long 
  43.     live the King.
  44.  
  45.     Fourth, fully integrated keyboard support, written by Martin Forssen.
  46.     No patches to apply, no muss, no fuss, no hassles.  This source is
  47.     current with his set of patches dated 16 December, 1992.
  48.  
  49. =============================================================================
  50.  
  51. Things to know and miscellaneous notes:
  52.  
  53. I've decided to stop advertising that you may use 24-bit frame buffers
  54. in 8-bit mode.  I am currently working to make this this a reality, but 
  55. until such a time as it truly works...
  56.  
  57.  
  58. XDEVICE environment variable.  Xsun will look here first to get the
  59.     device(s) to try; examples:  
  60.  
  61.     'setenv XDEVICE /dev/cgtwo0:/dev/cgtwo1' 
  62.     'setenv XDEVICE /dev/cgeight0'
  63.     'setenv XDEVICE /dev/cgthree0:/dev/cgsix0'
  64.     'setenv XDEVICE /dev/cgsix0:/dev/cgthree0'
  65.  
  66. -dev command line argument.  Xsun will look here second, and override
  67.     XDEVICE specified devices, to get the device(s) to try; examples:
  68.  
  69.     'Xsun -dev /dev/cgtwo0:/dev/cgtwo1'
  70.     'Xsun -dev /dev/cgeight0'
  71.     'Xsun -dev /dev/cgthree0:/dev/cgsix0'
  72.     'Xsun -dev /dev/cgsix0:/dev/cgthree0'
  73.  
  74. fallback list.  If neither of the two methods listed above are employed,
  75.     Xsun will resort to a fallback list of devices to try.  The list is:
  76.  
  77.     /dev/cgtwo0, /dev/cgtwo1, /dev/cgtwo2, /dev/cgthree0, /dev/cgthree1,
  78.     /dev/cgthree2, /dev/cgsix0, /dev/cgsix1, /dev/cgsix2, /dev/cgfour0,
  79.     /dev/bwtwo0, /dev/bwtwo1.
  80.  
  81.  
  82. cgfour note:
  83.     Some Suns are equipped with a mono frame buffer on the mother board.
  84.     All cgfours have an implicit mono frame buffer.  /dev/bwtwo0, I believe 
  85.     will find the mother board frame buffer rather than the cgfour mono 
  86.     plane.  In the absence of a real bwtwo, /dev/bwtwo0 will find the
  87.     cgfour mono plane.
  88.  
  89.     If you experience strange behaviour, i.e. you have a cgfour and the 
  90.     cursor appears to go off the side of the screen, override the
  91.     fallback list with either XDEVICE or -dev, e.g. 'Xsun -dev /dev/cgfour'
  92.  
  93.     Likely ways of having a bwtwo are: real bwtwo frame buffer in a
  94.     slot, real bwtwo frame buffer on the mother board (3/60 only),
  95.     or the cgfour emulates a bwtwo.  Real problems arise when you
  96.     have both a cgfour and another bwtwo.  What happens is that the
  97.     real bwtwo is assigned to /dev/bwtwo0, but this server expects
  98.     /dev/bwtwo0 to be the mono plane of the cgfour, when there is
  99.     one.  The consequences are, that dragging the pointer off the
  100.     edge of the screen causes the cgfour code to enable the mono
  101.     plane; that's okay when the /dev/bwtwo0 is using the cgfour
  102.     mono plane, but not okay when it's some other bwtwo, especially
  103.     if that other bwtwo isn't hooked up to a monitor.
  104.  
  105.     As there is no way to tell from software whether a given bwtwo
  106.     is real or emulated, it poses real problems with trying to
  107.     automagically set up the server to handle all the available
  108.     hardware correctly.  Possible work arounds are:
  109.       1) specify the device list with either -dev or XDEVICE.
  110.       2) specify -zaphod
  111.       3) ensure that /dev/bwtwo0 uses the cgfour:
  112.          'cd /dev;mv bwtwo0 bwtwo1;MAKEDEV bwtwo0' is alleged to work.
  113.  
  114. cgeight/cgnine/cgtwelve note:
  115.     Sun apparently has a utility program that will allow these devices to 
  116.     emulate other "supported" devices.  MIT's Xsun checks the emulation 
  117.     mode in a sort of backward way, thus, a cgeight, emulating a cgfour 
  118.     would be rejected, and would terminate claiming that no screens were 
  119.     found.  Needless to say, if the multi-screen server finds a cgeight,
  120.     cgnine, or cgtwelve, and it is emulating a "supported" device, it 
  121.     will be used.  
  122.  
  123.     NOTE, that since I don't have any of these devices, I haven't tested 
  124.     this feature.
  125.  
  126. xdm note:
  127.     Running MIT's Xsun with xdm has a funny peculiar problem.  The 
  128.     keyboard driver will erroneously report an unknown keyboard type 
  129.     within 750 milliseconds of a mode change.  Normally this isn't a 
  130.     problem if you're running via xinit.  xdm, on the other hand, can 
  131.     (and does) terminate and refork-and-exec the server fast enough to 
  132.     encounter this.  The poor server, thinks it's got an unknown keyboard 
  133.     type, aborts and leaves a spurious core file.  The multi-screen
  134.     includes a fix for this problem.
  135.  
  136. Sun 386i notes:
  137.     Even though a Sun 386i cannot have multiple screens, the multi-screen 
  138.     server source contains conditional compilation for building on Sun 386 
  139.     boxes.  The conditional eliminates support for devices that will never 
  140.     be found on a Sun 386 and therefore produces a smaller binary than might
  141.     otherwise be created.  
  142.  
  143.     Suns' 386 compiler has a severe bug and will not generate correct code 
  144.     for mi/miscrinit.c, and cfb/cfbteblt8.c.  You may overcome this flaw by 
  145.     compiling all the server code, or just these two files with gcc.  I have 
  146.     used gcc-1.xx with success.
  147.  
  148. Bug fixes to server/ddx/mi:
  149.     There is a bug in ddx/mi with regard to tracking the pointer across
  150.     multiple screens.  This apparently seems to only be a problem on
  151.     machines where there is no hardware cursor support.  This is true
  152.     of all the "supported" Sun frame buffers.  Three files are supplied
  153.     to fix the bug.  These files came from MIT, and, although the need
  154.     to make them "public fixes" might seem apparent to those of us using
  155.     multiple screens, MIT doesn't feel that the fixes, or the bug that
  156.     they fix are critical enough to warrant their inclusion into a public 
  157.     fix.  I've been told not to expect them to be official in any respect 
  158.     until R6.  If you disagree with this assessment, I encourage you to 
  159.     let MIT know.  Perhaps if enough people ask nicely, they'll make them 
  160.     official by distributing them in a public fix.
  161.  
  162.     If you don't want to install the three ddx/mi files, the multi-screen
  163.     feature will still work but you're apt to get some strange behavior 
  164.     if you warp the pointer from screen to screen.
  165.  
  166.  
  167. New constype.
  168.     The old constype was pretty nearly useless (apologies to the original 
  169.     author) and initial versions of the R5.Xsun.multi-screen didn't include 
  170.     it for that, and some other reasons.  The new constype probes for all 
  171.     the devices that Xsun supports, and reports any that it finds.
  172.  
  173.  
  174. Old kbd_mode.
  175.     Is included for completeness.
  176.  
  177.  
  178. Credits:
  179.     All the people at the X Consortium, and especially Keith Packard,
  180.     who is, alas, no longer a Consortium employee.
  181.  
  182.     Thanks to George Ross (gdmr@dcs.edinburgh.ac.uk) for pointing
  183.     out that I broke the support for high resolution monochrome
  184.     monitors -- it's fixed now.
  185.  
  186.     Thanks to Jordan Hayes (jordan@moorenet.com) for pushing me to
  187.     include (and indirectly to rewrite) constype and kbd_mode.
  188.  
  189.     Thanks to Andrew McRae (andrew@megadata.mega.oz.au) for finding
  190.     a bug when used with Sun's SunOS GX patch.
  191.  
  192.     Thanks to Martin Forssen (maf@dtek.chalmers.se) and Ian Daniel
  193.     (daniel@europarc.xerox.com) for the enhanced keyboard support and
  194.     encouraging me to put it in, respectively.
  195.  
  196.     Thanks to Obi Thomas (obi@finnbogi.ocs.com) for finding and fixing
  197.     a bug when used under xdm and *terminateServer: False.
  198.  
  199.     Thanks to Eirik Fuller (eirik@elf.tn.cornell.edu) for finding and
  200.     fixing the CG2 colormap and screen saver when compiled with 
  201.     GCC-2.x.x
  202.  
  203.  
  204. Followup thoughts:
  205.     If you're concerned, (and rightfully so) that I might have broken
  206.     something else, rest assured that: 1) I've been adding multi-screen 
  207.     support to Xsun since R3.  2) I have been running the server built
  208.     from this source since shortly after the public release of R5. 
  209.     3) This code is in wide use by numerous others, world-wide.
  210.  
  211.  
  212. Installation instructions:
  213.     'cd .../mit/server'
  214.     'mv ddx/sun ddx/sun.orig'
  215.     'mv ddx/mi/mieq.c ddx/mi/mieq.c.orig
  216.     'mv ddx/mi/mipointer.c ddx/mi/mipointer.c.orig
  217.     'mv ddx/mi/mipointrst.h ddx/mi/mipointrst.h.orig
  218.     'mv ../include/Sunkeysym.h ../include/Sunkeysym.h.orig'
  219.     'mv include/site.h include/site.h.orig
  220.     'zcat R5.Xsun.multi-screen.tar | tar xvf -'
  221.     'make Makefile'
  222.     'make depend'
  223.     'make'
  224.  
  225. If you have any questions or comments, please send them to:
  226.  
  227. kaleb@jpl-devvax.jpl.nasa.gov
  228.  
  229. -- 
  230.