| ===== |
| sstfb |
| ===== |
| |
| Introduction |
| ============ |
| |
| This is a frame buffer device driver for 3dfx' Voodoo Graphics |
| (aka voodoo 1, aka sst1) and Voodoo² (aka Voodoo 2, aka CVG) based |
| video boards. It's highly experimental code, but is guaranteed to work |
| on my computer, with my "Maxi Gamer 3D" and "Maxi Gamer 3d²" boards, |
| and with me "between chair and keyboard". Some people tested other |
| combinations and it seems that it works. |
| The main page is located at <http://sstfb.sourceforge.net>, and if |
| you want the latest version, check out the CVS, as the driver is a work |
| in progress, I feel uncomfortable with releasing tarballs of something |
| not completely working...Don't worry, it's still more than usable |
| (I eat my own dog food) |
| |
| Please read the Bug section, and report any success or failure to me |
| (Ghozlane Toumi <gtoumi@laposte.net>). |
| BTW, If you have only one monitor , and you don't feel like playing |
| with the vga passthrou cable, I can only suggest borrowing a screen |
| somewhere... |
| |
| |
| Installation |
| ============ |
| |
| This driver (should) work on ix86, with "late" 2.2.x kernel (tested |
| with x = 19) and "recent" 2.4.x kernel, as a module or compiled in. |
| It has been included in mainstream kernel since the infamous 2.4.10. |
| You can apply the patches found in `sstfb/kernel/*-2.{2|4}.x.patch`, |
| and copy sstfb.c to linux/drivers/video/, or apply a single patch, |
| `sstfb/patch-2.{2|4}.x-sstfb-yymmdd` to your linux source tree. |
| |
| Then configure your kernel as usual: choose "m" or "y" to 3Dfx Voodoo |
| Graphics in section "console". Compile, install, have fun... and please |
| drop me a report :) |
| |
| |
| Module Usage |
| ============ |
| |
| .. warning:: |
| |
| #. You should read completely this section before issuing any command. |
| |
| #. If you have only one monitor to play with, once you insmod the |
| module, the 3dfx takes control of the output, so you'll have to |
| plug the monitor to the "normal" video board in order to issue |
| the commands, or you can blindly use sst_dbg_vgapass |
| in the tools directory (See Tools). The latest solution is pass the |
| parameter vgapass=1 when insmodding the driver. (See Kernel/Modules |
| Options) |
| |
| Module insertion |
| ---------------- |
| |
| #. insmod sstfb.o |
| |
| you should see some strange output from the board: |
| a big blue square, a green and a red small squares and a vertical |
| white rectangle. why? the function's name is self-explanatory: |
| "sstfb_test()"... |
| (if you don't have a second monitor, you'll have to plug your monitor |
| directly to the 2D videocard to see what you're typing) |
| |
| #. con2fb /dev/fbx /dev/ttyx |
| |
| bind a tty to the new frame buffer. if you already have a frame |
| buffer driver, the voodoo fb will likely be /dev/fb1. if not, |
| the device will be /dev/fb0. You can check this by doing a |
| cat /proc/fb. You can find a copy of con2fb in tools/ directory. |
| if you don't have another fb device, this step is superfluous, |
| as the console subsystem automagically binds ttys to the fb. |
| #. switch to the virtual console you just mapped. "tadaaa" ... |
| |
| Module removal |
| -------------- |
| |
| #. con2fb /dev/fbx /dev/ttyx |
| |
| bind the tty to the old frame buffer so the module can be removed. |
| (how does it work with vgacon ? short answer : it doesn't work) |
| |
| #. rmmod sstfb |
| |
| |
| Kernel/Modules Options |
| ---------------------- |
| |
| You can pass some options to the sstfb module, and via the kernel |
| command line when the driver is compiled in: |
| for module : insmod sstfb.o option1=value1 option2=value2 ... |
| in kernel : video=sstfb:option1,option2:value2,option3 ... |
| |
| sstfb supports the following options: |
| |
| =============== =============== =============================================== |
| Module Kernel Description |
| =============== =============== =============================================== |
| vgapass=0 vganopass Enable or disable VGA passthrou cable. |
| vgapass=1 vgapass When enabled, the monitor will get the signal |
| from the VGA board and not from the voodoo. |
| |
| Default: nopass |
| |
| mem=x mem:x Force frame buffer memory in MiB |
| allowed values: 0, 1, 2, 4. |
| |
| Default: 0 (= autodetect) |
| |
| inverse=1 inverse Supposed to enable inverse console. |
| doesn't work yet... |
| |
| clipping=1 clipping Enable or disable clipping. |
| clipping=0 noclipping With clipping enabled, all offscreen |
| reads and writes are discarded. |
| |
| Default: enable clipping. |
| |
| gfxclk=x gfxclk:x Force graphic clock frequency (in MHz). |
| Be careful with this option, it may be |
| DANGEROUS. |
| |
| Default: auto |
| |
| - 50Mhz for Voodoo 1, |
| - 75MHz for Voodoo 2. |
| |
| slowpci=1 fastpci Enable or disable fast PCI read/writes. |
| slowpci=1 slowpci Default : fastpci |
| |
| dev=x dev:x Attach the driver to device number x. |
| 0 is the first compatible board (in |
| lspci order) |
| =============== =============== =============================================== |
| |
| Tools |
| ===== |
| |
| These tools are mostly for debugging purposes, but you can |
| find some of these interesting: |
| |
| - `con2fb`, maps a tty to a fbramebuffer:: |
| |
| con2fb /dev/fb1 /dev/tty5 |
| |
| - `sst_dbg_vgapass`, changes vga passthrou. You have to recompile the |
| driver with SST_DEBUG and SST_DEBUG_IOCTL set to 1:: |
| |
| sst_dbg_vgapass /dev/fb1 1 (enables vga cable) |
| sst_dbg_vgapass /dev/fb1 0 (disables vga cable) |
| |
| - `glide_reset`, resets the voodoo using glide |
| use this after rmmoding sstfb, if the module refuses to |
| reinsert. |
| |
| Bugs |
| ==== |
| |
| - DO NOT use glide while the sstfb module is in, you'll most likely |
| hang your computer. |
| - If you see some artefacts (pixels not cleaning and stuff like that), |
| try turning off clipping (clipping=0), and/or using slowpci |
| - the driver don't detect the 4Mb frame buffer voodoos, it seems that |
| the 2 last Mbs wrap around. looking into that . |
| - The driver is 16 bpp only, 24/32 won't work. |
| - The driver is not your_favorite_toy-safe. this includes SMP... |
| |
| [Actually from inspection it seems to be safe - Alan] |
| |
| - When using XFree86 FBdev (X over fbdev) you may see strange color |
| patterns at the border of your windows (the pixels lose the lowest |
| byte -> basically the blue component and some of the green). I'm unable |
| to reproduce this with XFree86-3.3, but one of the testers has this |
| problem with XFree86-4. Apparently recent Xfree86-4.x solve this |
| problem. |
| - I didn't really test changing the palette, so you may find some weird |
| things when playing with that. |
| - Sometimes the driver will not recognise the DAC, and the |
| initialisation will fail. This is specifically true for |
| voodoo 2 boards, but it should be solved in recent versions. Please |
| contact me. |
| - The 24/32 is not likely to work anytime soon, knowing that the |
| hardware does ... unusual things in 24/32 bpp. |
| |
| Todo |
| ==== |
| |
| - Get rid of the previous paragraph. |
| - Buy more coffee. |
| - test/port to other arch. |
| - try to add panning using tweeks with front and back buffer . |
| - try to implement accel on voodoo2, this board can actually do a |
| lot in 2D even if it was sold as a 3D only board ... |
| |
| Ghozlane Toumi <gtoumi@laposte.net> |
| |
| |
| Date: 2002/05/09 20:11:45 |
| |
| http://sstfb.sourceforge.net/README |