Difference between revisions of "S3 Savage IX8"
(LCD+CRT workaround) |
(changed category) |
||
(21 intermediate revisions by 12 users not shown) | |||
Line 14: | Line 14: | ||
* AGP 2X | * AGP 2X | ||
* 8MB SGRAM video memory | * 8MB SGRAM video memory | ||
+ | |||
+ | === Driver Download === | ||
+ | |||
+ | As of 2013, the official S3 website still offers Linux Drivers: [http://www.s3graphics.com/en/drivers/legacy_software_archive.aspx Savage Family Linux XFree86 4.0.3 X Server Binary and Switch Utility version 1.1.18] | ||
+ | |||
</div> | </div> | ||
|style="vertical-align:top" | | |style="vertical-align:top" | | ||
Line 19: | Line 24: | ||
=== Linux X.Org driver === | === Linux X.Org driver === | ||
− | This chip is supported by the '[[savage]]' driver as part of the X.Org distribution | + | This chip is supported by the '[[savage]]' driver as part of the X.Org distribution. |
==== ThinkPad LCD ==== | ==== ThinkPad LCD ==== | ||
− | Display on the internal LCD works as long as you set the monitor settings | + | Display on the internal LCD works as long as you set the monitor settings correctly. The driver does not appear |
+ | to support [[DPMS]] on the internal LCD, so it is necessary to make sure that horizontal sync and vertical refresh settings are included in the "Monitor" section of xorg.conf. | ||
+ | |||
+ | HorizSync 31.5 - 48.5 | ||
+ | VertRefresh 50-70 | ||
==== External VGA port ==== | ==== External VGA port ==== | ||
− | Works. Fn-F7 switches between | + | Works. {{key|Fn}}-{{Key|F7}} switches between LCD and CRT. To use both, use [http://www.probo.com/timr/savage40.html s3switch] (on some models you need to run "'''s3switch lcd crt tv'''" even if you want only CRT and LCD, otherwise the CRT display is corrupted). You can also use [[thinkpad-acpi]] to control video output by echoing commands to {{path|/proc/acpi/ibm/video}}. |
==== SVideo port ==== | ==== SVideo port ==== | ||
− | + | Works. Use [http://www.probo.com/timr/savage40.html s3switch] to change display output in software. | |
=== Linux kernel Framebuffer driver === | === Linux kernel Framebuffer driver === | ||
This chip will work with either the 'vesa' or 'savagefb' driver as part of any recent 2.4 or 2.6 kernel. | This chip will work with either the 'vesa' or 'savagefb' driver as part of any recent 2.4 or 2.6 kernel. | ||
− | To | + | ==== Dual Monitor Tip ==== |
+ | The chip supports using an external monitor plus the LCD as one big monitor. This can lead to a problem | ||
+ | if X is configured for this, but the external monitor has been detached. This creates a ghost monitor that you | ||
+ | cannot see, but can move the mouse onto and applications can open windows on. | ||
+ | |||
+ | Sometimes in this situation it's necessary to grab a window from the ghost monitor and drag it into view. | ||
+ | This can be done by moving the mouse onto the ghost screen and then holding down the ALT key, which allows you | ||
+ | to click-and-drag a window back into view. To see what is on the ghost monitor, a screen capture utility like | ||
+ | Ksnapshot can help you. When it takes a screenshot of the entire screen, it will show the contents of the ghost | ||
+ | screen, even though you can't see it directly. | ||
+ | |||
+ | === Quirks === | ||
+ | ==== Power Management and savagefb ==== | ||
+ | The savagefb appears to interfere with acpi sleep. (tested on 2.6 kernels up to 2.6.12) There are also some display problems with savagefb including limiting boot text to a 800x600 window centered in a 1024x768 display and problems with libdirectfb. For those reasons, vesafb is recommended as the framebuffer driver.<br /> | ||
+ | The 800x600 boot-text problem can be resolved by altering the savagefb.c (pre-2.6.20) or savagefb_driver.c (2.6.20 and later) and then recompiling the Kernel or the respective module. To do that, open the savagefb_driver.c, for example under ''<Kernel Root>/drivers/video/savage'' in the 2.6.20 release. Now, locate the following function: | ||
+ | <pre>static struct fb_var_screeninfo __devinitdata savagefb_var800x600x8 = { | ||
+ | .accel_flags = FB_ACCELF_TEXT, | ||
+ | .xres = 800, | ||
+ | .yres = 600, | ||
+ | .xres_virtual = 800, | ||
+ | .yres_virtual = 600, | ||
+ | .bits_per_pixel = 8, | ||
+ | .pixclock = 25000, | ||
+ | .left_margin = 88, | ||
+ | .right_margin = 40, | ||
+ | .upper_margin = 23, | ||
+ | .lower_margin = 1, | ||
+ | .hsync_len = 128, | ||
+ | .vsync_len = 4, | ||
+ | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, | ||
+ | .vmode = FB_VMODE_NONINTERLACED | ||
+ | };</pre> | ||
+ | |||
+ | Alter the lines ''.xres'', ''.yres'', ''.xres_virtual'' and ''.yres_virtual'' to reflect your chosen resolution. Recompile and reinstall the Kernel, reboot or reload the module and the savagefb should use the new resolution. | ||
+ | |||
+ | ==== Video-related System Lockups ==== | ||
+ | Some quirks in the interactions between the OS and the Savage hardware can cause system lockups, especially due to high video load and 3D rendering operations. For a more complete description of this problem and the workarounds, see the [[Problem with video related system lockup]] page. | ||
+ | |||
+ | ==== The Black 'X' (old X pointer) Problem ==== | ||
+ | On some systems a black 'X' (which is actually the old default XFree86 pointer) appears frozen in the middle of the screen inside of X Windows. This problem can be remedied by setting | ||
+ | |||
+ | Option "SWCursor" "on" | ||
+ | |||
+ | in xorg.conf. Also see the [[Problem with black X]] page for more information. | ||
+ | |||
+ | ==== 3D Acceleration Quirks ==== | ||
+ | If 3D acceleration is not working on your system (after installing the DRM savage module), or 3D programs are exhibiting strange behavior, one of the following changes may fix the problem. First, most Savage chips do not have enough video memory to support 3D textures and acceleration with a frame buffer depth of 24 bits. Therefore, you may need to change "DefaultDepth 24" to "DefaultDepth 16" in the "Screen" section of xorg.conf (and of course provide the appropriate subsection for 16 bit depth if it is not present). Also, adding one of both of the following configuration options to the "Device" section of your xorg.conf may solve the video quirks (also explained in the [[Problem with video related system lockup|video related system lockup]] page) | ||
+ | |||
+ | Option "BusType" "PCI" | ||
+ | Option "DmaMode" "None" | ||
+ | |||
+ | On Debian based systems you need the package '''libgl1-mesa-dri''' to enable 3d acceleration. Deborphan may decide it is just a futile library, but that is false. | ||
+ | |||
+ | ==== Blank screen ==== | ||
+ | |||
+ | Symptoms: | ||
+ | |||
+ | * X starts but nothing shows up on screen, hard drive led shows normal activity up to login | ||
+ | * /etc/init.d/xorg.conf does not exist, so X.org is using autoconfiguration which fails | ||
+ | * /var/log/Xorg.0.log does not show any relevant errors or warnings | ||
+ | |||
+ | This happened on a T20 running Debian Etch and Lenny. | ||
+ | |||
+ | Workaround is to add DmaType and BusType as "PCI" in /etc/X11/xorg.conf: | ||
+ | |||
+ | Section "Device" | ||
+ | Identifier "S3 Inc. 86C270-294 Savage/IX-MV" | ||
+ | Driver "savage" | ||
+ | BusID "PCI:1:0:0" | ||
+ | Option "DmaType" "PCI" | ||
+ | Option "BusType" "PCI" | ||
+ | EndSection | ||
− | === | + | === ThinkPads this chip may be found in === |
* {{A22e}} | * {{A22e}} | ||
* {{T20}}, {{T21}}, {{T22}} | * {{T20}}, {{T21}}, {{T22}} | ||
− | [[Category: | + | [[Category:Video Controllers]] |
Latest revision as of 14:00, 22 January 2021
S3 Savage IX8 or IX8+This is a S3 video adapter The IX8 and IX8+ chips share the same PCI-ID Features
Driver DownloadAs of 2013, the official S3 website still offers Linux Drivers: Savage Family Linux XFree86 4.0.3 X Server Binary and Switch Utility version 1.1.18 |
Linux X.Org driver
This chip is supported by the 'savage' driver as part of the X.Org distribution.
ThinkPad LCD
Display on the internal LCD works as long as you set the monitor settings correctly. The driver does not appear to support DPMS on the internal LCD, so it is necessary to make sure that horizontal sync and vertical refresh settings are included in the "Monitor" section of xorg.conf.
HorizSync 31.5 - 48.5 VertRefresh 50-70
External VGA port
Works. Fn-F7 switches between LCD and CRT. To use both, use s3switch (on some models you need to run "s3switch lcd crt tv" even if you want only CRT and LCD, otherwise the CRT display is corrupted). You can also use thinkpad-acpi to control video output by echoing commands to /proc/acpi/ibm/video.
SVideo port
Works. Use s3switch to change display output in software.
Linux kernel Framebuffer driver
This chip will work with either the 'vesa' or 'savagefb' driver as part of any recent 2.4 or 2.6 kernel.
Dual Monitor Tip
The chip supports using an external monitor plus the LCD as one big monitor. This can lead to a problem if X is configured for this, but the external monitor has been detached. This creates a ghost monitor that you cannot see, but can move the mouse onto and applications can open windows on.
Sometimes in this situation it's necessary to grab a window from the ghost monitor and drag it into view. This can be done by moving the mouse onto the ghost screen and then holding down the ALT key, which allows you to click-and-drag a window back into view. To see what is on the ghost monitor, a screen capture utility like Ksnapshot can help you. When it takes a screenshot of the entire screen, it will show the contents of the ghost screen, even though you can't see it directly.
Quirks
Power Management and savagefb
The savagefb appears to interfere with acpi sleep. (tested on 2.6 kernels up to 2.6.12) There are also some display problems with savagefb including limiting boot text to a 800x600 window centered in a 1024x768 display and problems with libdirectfb. For those reasons, vesafb is recommended as the framebuffer driver.
The 800x600 boot-text problem can be resolved by altering the savagefb.c (pre-2.6.20) or savagefb_driver.c (2.6.20 and later) and then recompiling the Kernel or the respective module. To do that, open the savagefb_driver.c, for example under <Kernel Root>/drivers/video/savage in the 2.6.20 release. Now, locate the following function:
static struct fb_var_screeninfo __devinitdata savagefb_var800x600x8 = { .accel_flags = FB_ACCELF_TEXT, .xres = 800, .yres = 600, .xres_virtual = 800, .yres_virtual = 600, .bits_per_pixel = 8, .pixclock = 25000, .left_margin = 88, .right_margin = 40, .upper_margin = 23, .lower_margin = 1, .hsync_len = 128, .vsync_len = 4, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, .vmode = FB_VMODE_NONINTERLACED };
Alter the lines .xres, .yres, .xres_virtual and .yres_virtual to reflect your chosen resolution. Recompile and reinstall the Kernel, reboot or reload the module and the savagefb should use the new resolution.
Some quirks in the interactions between the OS and the Savage hardware can cause system lockups, especially due to high video load and 3D rendering operations. For a more complete description of this problem and the workarounds, see the Problem with video related system lockup page.
The Black 'X' (old X pointer) Problem
On some systems a black 'X' (which is actually the old default XFree86 pointer) appears frozen in the middle of the screen inside of X Windows. This problem can be remedied by setting
Option "SWCursor" "on"
in xorg.conf. Also see the Problem with black X page for more information.
3D Acceleration Quirks
If 3D acceleration is not working on your system (after installing the DRM savage module), or 3D programs are exhibiting strange behavior, one of the following changes may fix the problem. First, most Savage chips do not have enough video memory to support 3D textures and acceleration with a frame buffer depth of 24 bits. Therefore, you may need to change "DefaultDepth 24" to "DefaultDepth 16" in the "Screen" section of xorg.conf (and of course provide the appropriate subsection for 16 bit depth if it is not present). Also, adding one of both of the following configuration options to the "Device" section of your xorg.conf may solve the video quirks (also explained in the video related system lockup page)
Option "BusType" "PCI" Option "DmaMode" "None"
On Debian based systems you need the package libgl1-mesa-dri to enable 3d acceleration. Deborphan may decide it is just a futile library, but that is false.
Blank screen
Symptoms:
- X starts but nothing shows up on screen, hard drive led shows normal activity up to login
- /etc/init.d/xorg.conf does not exist, so X.org is using autoconfiguration which fails
- /var/log/Xorg.0.log does not show any relevant errors or warnings
This happened on a T20 running Debian Etch and Lenny.
Workaround is to add DmaType and BusType as "PCI" in /etc/X11/xorg.conf:
Section "Device" Identifier "S3 Inc. 86C270-294 Savage/IX-MV" Driver "savage" BusID "PCI:1:0:0" Option "DmaType" "PCI" Option "BusType" "PCI" EndSection