sstfb.rst 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. =====
  2. sstfb
  3. =====
  4. Introduction
  5. ============
  6. This is a frame buffer device driver for 3dfx' Voodoo Graphics
  7. (aka voodoo 1, aka sst1) and Voodoo² (aka Voodoo 2, aka CVG) based
  8. video boards. It's highly experimental code, but is guaranteed to work
  9. on my computer, with my "Maxi Gamer 3D" and "Maxi Gamer 3d²" boards,
  10. and with me "between chair and keyboard". Some people tested other
  11. combinations and it seems that it works.
  12. The main page is located at <http://sstfb.sourceforge.net>, and if
  13. you want the latest version, check out the CVS, as the driver is a work
  14. in progress, I feel uncomfortable with releasing tarballs of something
  15. not completely working...Don't worry, it's still more than usable
  16. (I eat my own dog food)
  17. Please read the Bug section, and report any success or failure to me
  18. (Ghozlane Toumi <gtoumi@laposte.net>).
  19. BTW, If you have only one monitor , and you don't feel like playing
  20. with the vga passthrou cable, I can only suggest borrowing a screen
  21. somewhere...
  22. Installation
  23. ============
  24. This driver (should) work on ix86, with "late" 2.2.x kernel (tested
  25. with x = 19) and "recent" 2.4.x kernel, as a module or compiled in.
  26. It has been included in mainstream kernel since the infamous 2.4.10.
  27. You can apply the patches found in `sstfb/kernel/*-2.{2|4}.x.patch`,
  28. and copy sstfb.c to linux/drivers/video/, or apply a single patch,
  29. `sstfb/patch-2.{2|4}.x-sstfb-yymmdd` to your linux source tree.
  30. Then configure your kernel as usual: choose "m" or "y" to 3Dfx Voodoo
  31. Graphics in section "console". Compile, install, have fun... and please
  32. drop me a report :)
  33. Module Usage
  34. ============
  35. .. warning::
  36. #. You should read completely this section before issuing any command.
  37. #. If you have only one monitor to play with, once you insmod the
  38. module, the 3dfx takes control of the output, so you'll have to
  39. plug the monitor to the "normal" video board in order to issue
  40. the commands, or you can blindly use sst_dbg_vgapass
  41. in the tools directory (See Tools). The latest solution is pass the
  42. parameter vgapass=1 when insmodding the driver. (See Kernel/Modules
  43. Options)
  44. Module insertion
  45. ----------------
  46. #. insmod sstfb.o
  47. you should see some strange output from the board:
  48. a big blue square, a green and a red small squares and a vertical
  49. white rectangle. why? the function's name is self-explanatory:
  50. "sstfb_test()"...
  51. (if you don't have a second monitor, you'll have to plug your monitor
  52. directly to the 2D videocard to see what you're typing)
  53. #. con2fb /dev/fbx /dev/ttyx
  54. bind a tty to the new frame buffer. if you already have a frame
  55. buffer driver, the voodoo fb will likely be /dev/fb1. if not,
  56. the device will be /dev/fb0. You can check this by doing a
  57. cat /proc/fb. You can find a copy of con2fb in tools/ directory.
  58. if you don't have another fb device, this step is superfluous,
  59. as the console subsystem automagicaly binds ttys to the fb.
  60. #. switch to the virtual console you just mapped. "tadaaa" ...
  61. Module removal
  62. --------------
  63. #. con2fb /dev/fbx /dev/ttyx
  64. bind the tty to the old frame buffer so the module can be removed.
  65. (how does it work with vgacon ? short answer : it doesn't work)
  66. #. rmmod sstfb
  67. Kernel/Modules Options
  68. ----------------------
  69. You can pass some options to the sstfb module, and via the kernel
  70. command line when the driver is compiled in:
  71. for module : insmod sstfb.o option1=value1 option2=value2 ...
  72. in kernel : video=sstfb:option1,option2:value2,option3 ...
  73. sstfb supports the following options:
  74. =============== =============== ===============================================
  75. Module Kernel Description
  76. =============== =============== ===============================================
  77. vgapass=0 vganopass Enable or disable VGA passthrou cable.
  78. vgapass=1 vgapass When enabled, the monitor will get the signal
  79. from the VGA board and not from the voodoo.
  80. Default: nopass
  81. mem=x mem:x Force frame buffer memory in MiB
  82. allowed values: 0, 1, 2, 4.
  83. Default: 0 (= autodetect)
  84. inverse=1 inverse Supposed to enable inverse console.
  85. doesn't work yet...
  86. clipping=1 clipping Enable or disable clipping.
  87. clipping=0 noclipping With clipping enabled, all offscreen
  88. reads and writes are discarded.
  89. Default: enable clipping.
  90. gfxclk=x gfxclk:x Force graphic clock frequency (in MHz).
  91. Be careful with this option, it may be
  92. DANGEROUS.
  93. Default: auto
  94. - 50Mhz for Voodoo 1,
  95. - 75MHz for Voodoo 2.
  96. slowpci=1 fastpci Enable or disable fast PCI read/writes.
  97. slowpci=1 slowpci Default : fastpci
  98. dev=x dev:x Attach the driver to device number x.
  99. 0 is the first compatible board (in
  100. lspci order)
  101. =============== =============== ===============================================
  102. Tools
  103. =====
  104. These tools are mostly for debugging purposes, but you can
  105. find some of these interesting:
  106. - `con2fb`, maps a tty to a fbramebuffer::
  107. con2fb /dev/fb1 /dev/tty5
  108. - `sst_dbg_vgapass`, changes vga passthrou. You have to recompile the
  109. driver with SST_DEBUG and SST_DEBUG_IOCTL set to 1::
  110. sst_dbg_vgapass /dev/fb1 1 (enables vga cable)
  111. sst_dbg_vgapass /dev/fb1 0 (disables vga cable)
  112. - `glide_reset`, resets the voodoo using glide
  113. use this after rmmoding sstfb, if the module refuses to
  114. reinsert.
  115. Bugs
  116. ====
  117. - DO NOT use glide while the sstfb module is in, you'll most likely
  118. hang your computer.
  119. - If you see some artefacts (pixels not cleaning and stuff like that),
  120. try turning off clipping (clipping=0), and/or using slowpci
  121. - the driver don't detect the 4Mb frame buffer voodoos, it seems that
  122. the 2 last Mbs wrap around. looking into that .
  123. - The driver is 16 bpp only, 24/32 won't work.
  124. - The driver is not your_favorite_toy-safe. this includes SMP...
  125. [Actually from inspection it seems to be safe - Alan]
  126. - When using XFree86 FBdev (X over fbdev) you may see strange color
  127. patterns at the border of your windows (the pixels lose the lowest
  128. byte -> basically the blue component and some of the green). I'm unable
  129. to reproduce this with XFree86-3.3, but one of the testers has this
  130. problem with XFree86-4. Apparently recent Xfree86-4.x solve this
  131. problem.
  132. - I didn't really test changing the palette, so you may find some weird
  133. things when playing with that.
  134. - Sometimes the driver will not recognise the DAC, and the
  135. initialisation will fail. This is specifically true for
  136. voodoo 2 boards, but it should be solved in recent versions. Please
  137. contact me.
  138. - The 24/32 is not likely to work anytime soon, knowing that the
  139. hardware does ... unusual things in 24/32 bpp.
  140. Todo
  141. ====
  142. - Get rid of the previous paragraph.
  143. - Buy more coffee.
  144. - test/port to other arch.
  145. - try to add panning using tweeks with front and back buffer .
  146. - try to implement accel on voodoo2, this board can actually do a
  147. lot in 2D even if it was sold as a 3D only board ...
  148. Ghozlane Toumi <gtoumi@laposte.net>
  149. Date: 2002/05/09 20:11:45
  150. http://sstfb.sourceforge.net/README