[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

XFree *working* on Laptop with SiS630 (: !!!!!!



On Fri, Jun 15, 2001 at 03:50:38AM -0400, Bernard Julewsky wrote:
> hello,
> I have the same problem as you described in the debian-laptop
> mailinglist.
> the LCD panel flickers and is splitted into 4 parts.
> I don't use Debian, I use the Slackware distrib. I've tried with XF4.03 and XF3.3.6 - also tried just like you with the original X-server from 
> the SiS homepage. anytime nearly the same horrible result.
> now my hope: did you find in the meantime a solution for this problem?
> please let me know, if you are a step ahead in the right direction. 
> I would be very glad to get a (positiv *g*) answer.
> 
> thanks in advance
> beju.

	YEAAAAAAAAHHHHHHHHH!!!!

	There is a solution I founded by chance a few weeks ago. I
sincerely apologize for not telling it you all as soon as possible
(lack of time is the reason), I guess I should be excommunicated from
the Emacs church because of not sharing this before :) Thanks for
remembering me the trouble.

	The configuration I use does not provide pure perfection, but
is all I need, and, believe me, makes you very happy after having
resigned to go on without X. I founded it thanks to a vncclient I
launched by mistake: it displayed the first human-visible X screen on
my 14.1" TFT (the external monitor output works perfectly without any
patch).

	Down here I give you all the necessary steps, let me know
if it works on your laptops.



	I have been able to get a 640x400 physical / 640x480 virtual
X screen, with 16 bits depth, and with only a minor problem: the
screen is slighty shifted to the upper-left corner, so I cannot see a
few pixels from the left and up sides; but it is far better than
seeing nothing.

	* I use XFree 4.0a (patched by SiS, in
http://www.sis.com.tw/support/download/linux.htm), following the
instructions given at SiS site. (In fact, it can be upgraded to the
latest XFree availabe, I describe this at the end of this post, since
it is not necessary.)

	* `lspci -vvv' says that my SiS 630 card is

01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] SiS630 GUI Accelerator+3D (rev 31) (prog-if 00 [VGA])
        Subsystem: CLEVO/KAPOK Computer: Unknown device 2202
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        BIST result: 00
        Region 0: Memory at 48000000 (32-bit, prefetchable) [size=128M]
        Region 1: Memory at 40000000 (32-bit, non-prefetchable) [size=128K]
        Region 2: I/O ports at a000 [size=128]
        Capabilities: [40] Power Management version 1
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] AGP version 2.0
                Status: RQ=15 SBA+ 64bit- FW- Rate=x1,x2
                Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>


	* And I think the key point is that the patch from SiS must be
suitable only for earlier revisions, so you need to do the following
workaround:

	* I enforce XFree to use only 1MB (VideoRam 1024) (hence the
640x400 physical resolution and 16 bits depth restriction --well, you
can reach 24 bits at the expense of limiting virtual resolution to
640x400, but this is very annoying). It seems that new revisions
changed the distribution of the memory banks in such a way that the
first 1MB is more or less compatible with the cards supported by the
patch. (other resolutions imply the horrible screen splitting AFAIK)

	* The magical XF86Config-4 I use is attached. Enjoy it!



<Upgrading XFree>
	As said above, you can more or less upgrade your XFree, which
can be useful if you are running debian unstable. As far as I know,
you can get XFree 4.0.3 working provided that after upgrading you
replace the following files with the ones from the 4.0a:

tar -zxvf backup-X40a.tar.gz -C / usr/X11R6/bin/XFree86 \
                usr/X11R6/lib/modules/drivers/sis_drv.o \
                usr/X11R6/lib/modules/libxaa.a \
                usr/X11R6/lib/modules/input/mouse_drv.o \
                usr/X11R6/lib/modules/extensions/libextmod.a \
                usr/X11R6/lib/modules/libpcidata.a \
                usr/X11R6/lib/modules/libscanpci.a \
                usr/X11R6/lib/modules/libvgahw.a \
                usr/X11R6/lib/modules/libramdac.a \
                usr/X11R6/lib/modules/libi2c.a \
                usr/X11R6/lib/modules/libddc.a \
                usr/X11R6/lib/modules/fonts/libtype1.a \
                usr/X11R6/lib/modules/fonts/libfreetype.a \
                usr/X11R6/lib/modules/fonts/libbitmap.a 

(Well, this is ugly, since a few core modules are kept frozen from
4.0a, but it solves some headaches if you are used to apt-get upgrade
your system)
</Upgrading XFree>


	

	Hope this helps. If you find it works, sending this recipe to
the gnu/linux laptop howtos would be very helpful. I wonder if this
settings could be improved, nevertheless, I am quite happy with it and
I would not ask for more. I also wonder if the XFree folks are going
to merge the patch from SiS into their code for the next releases,
since it seems to be necessary to get LCD working.

	Enjoy your LCD!




	






# $XFree86: xc/programs/Xserver/hw/xfree86/XF86Conf.cpp,v 3.42 1999/07/18 15:47:47 dawes Exp $
#
# Copyright (c) 1994-1998 by The XFree86 Project, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# 
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#
# $XConsortium: XF86Conf.cpp /main/22 1996/10/23 11:43:51 kaleb $

# **********************************************************************
# This is a sample configuration file only, intended to illustrate
# what a config file might look like.  Refer to the XF86Config(4/5)
# man page for details about the format of this file. This man page
# is installed as /usr/local/X11R6.4/man/man5/XF86Config.5x 
# **********************************************************************

# The ordering of sections is not important in version 4.0 and later.

# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.

    RgbPath	"/usr/X11R6/lib/X11/rgb"

# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)

    FontPath	"/usr/X11R6/lib/X11/fonts/misc/"
    FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/"
#    FontPath	"/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath	"/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath	"/usr/X11R6/lib/X11/fonts/cyrillic/"
    FontPath	"/usr/X11R6/lib/X11/fonts/latin2/75dpi/"
    FontPath	"/usr/X11R6/lib/X11/fonts/latin2/100dpi/"

    FontPath	"/usr/X11R6/lib/X11/fonts/misc/"


# ModulePath can be used to set a search path for the X server modules.
# The default path is shown here.

    ModulePath	"/usr/X11R6/lib/modules"

EndSection

# **********************************************************************
# Module section -- this is an optional section which is used to specify
# which run-time loadable modules to load when the X server starts up.
# **********************************************************************

Section "Module"

# This loads the DBE extension module.

    Load	"dbe"

# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.

    SubSection	"extmod"
	Option	"omit xfree86-dga"
    EndSubSection

# This loads the Type1 and FreeType font modules

    Load	"type1"
    Load	"freetype"

EndSection


# **********************************************************************
# Server flags section.  This contains various server-wide Options.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is 
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

#    Option	"NoTrapSignals"

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# This allows clients to receive this key event.

#    Option	"DontZap"

# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
# sequences.  This allows clients to receive these key events.

#    Option	"DontZoom"

# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.

#    Option	"DisableVidModeExtension"

# Uncomment this to enable the use of a non-local xvidtune client.

#    Option	"AllowNonLocalXvidtune"

# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings.

#    Option	"DisableModInDev"

# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).

#    Option	"AllowNonLocalModInDev"

# Set the basic blanking screen saver timeout.

#    Option	"blank time"	"10"	# 10 minutes

# Set the DPMS timeouts.  These are set here because they are global
# rather than screen-specific.  These settings alone don't enable DPMS.
# It is enabled per-screen (or per-monitor), and even then only when
# the driver supports it.

#    Option	"standby time"	"20"
#    Option	"suspend time"	"30"
#    Option	"off time"	"60"

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************

Section "InputDevice"

    Identifier	"Keyboard1"
    Driver	"keyboard"

# For most OSs the protocol can be omitted (it defaults to "Standard").
# When using XQUEUE (only for SVR3 and SVR4, but not Solaris), comment
# out the above line, and uncomment the following line.

#    Option	"Protocol"	"Xqueue"

# Set the keyboard auto repeat parameters.  Not all platforms implement
# this.

    Option	"AutoRepeat"	"250 50"

# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1)).

#    Option	"Xleds"	"1 2 3"

# To disable the XKEYBOARD extension, uncomment XkbDisable.

#    Option	"XkbDisable"

# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a European
# keyboard, you will probably want to use one of:
#
#    Option	"XkbModel"	"pc102"
#    Option	"XkbModel"	"pc105"
#
# If you have a Microsoft Natural keyboard, you can use:
#
#    Option	"XkbModel"	"microsoft"
#
# If you have a US "windows" keyboard you will want:
#
#    Option	"XkbModel"	"pc104"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#
#    Option	"XkbLayout"	"de"
#
# or:
#
#    Option	"XkbLayout"	"de"
#    Option	"XkbVariant"	"nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
#
#    Option	"XkbOptions"	"ctrl:swapcaps"


# These are the default XKB settings for XFree86
#
#    Option	"XkbRules"	"xfree86"
#    Option	"XkbModel"	"pc101"
     Option	"XkbLayout"	"es"
#    Option	"XkbVariant"	""
#    Option	"XkbOptions"	""

EndSection


# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************

Section "InputDevice"
	Identifier	"Mouse1"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/gpmdata"
	Option		"Protocol"		"IntelliMouse"
	Option		"SendCoreEvents"	"true"
	Option		"Emulate3Buttons"	"true"
EndSection


# Some examples of extended input devices

# Section "InputDevice"
#    Identifier	"spaceball"
#    Driver	"magellan"
#    Option	"Device"	"/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier	"spaceball2"
#    Driver	"spaceorb"
#    Option	"Device"	"/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier	"touchscreen0"
#    Driver	"microtouch"
#    Option	"Device"	"/dev/ttyS0"
#    Option	"MinX"		"1412"
#    Option	"MaxX"		"15184"
#    Option	"MinY"		"15372"
#    Option	"MaxY"		"1230"
#    Option	"ScreenNumber"	"0"
#    Option	"ReportingMode"	"Scaled"
#    Option	"ButtonNumber"	"1"
#    Option	"SendCoreEvents"
# EndSection
#
# Section "InputDevice"
#    Identifier	"touchscreen1"
#    Driver	"elo2300"
#    Option	"Device"	"/dev/ttyS0"
#    Option	"MinX"		"231"
#    Option	"MaxX"		"3868"
#    Option	"MinY"		"3858"
#    Option	"MaxY"		"272"
#    Option	"ScreenNumber"	"0"
#    Option	"ReportingMode"	"Scaled"
#    Option	"ButtonThreshold"	"17"
#    Option	"ButtonNumber"	"1"
#    Option	"SendCoreEvents"
# EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

# The identifier line must be present.

    Identifier	"Generic Monitor"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

#    HorizSync	31.5  # typical for a single frequency fixed-sync monitor
#    HorizSync	30-64         # multisync
#    HorizSync	31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync	15-25, 30-50  # multiple ranges of sync frequencies

    HorizSync	30-95         # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

#    VertRefresh	60  # typical for a single frequency fixed-sync monitor

#    VertRefresh	50-100        # multisync
#    VertRefresh	60, 65        # multiple fixed sync frequencies
#    VertRefresh	40-50, 80-100 # multiple ranges of sync frequencies

    VertRefresh	50-160        # multiple ranges of sync frequencies

# Modes can be specified in two formats.  A compact one-line format, or
# a multi-line format.

# A generic VGA 640x480 mode (hsync = 31.5kHz, refresh = 60Hz)
# These two are equivalent

#    ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525

#    Mode "640x480"
#        DotClock	25.175
#        HTimings	640 664 760 800
#        VTimings	480 491 493 525
#    EndMode

# These two are equivalent

#    ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace

#    Mode "1024x768i"
#        DotClock	45
#        HTimings	1024 1048 1208 1264
#        VTimings	768 776 784 817
#        Flags		"Interlace"
#    EndMode

# This is a set of standard mode timings. Modes that are out of monitor spec
# are automatically deleted by the server (provided the HorizSync and
# VertRefresh lines are correct), so there's no immediate need to
# delete mode timings (unless particular mode timings don't work on your
# monitor). With these modes, the best standard mode that your monitor
# and video card can support for a given resolution is automatically
# used.


# Low-res Doublescan modes
# If your chipset does not support doublescan, you get a 'squashed'
# resolution like 320x400.


# If a monitor has DPMS support, that can be indicated here.  This will
# enable DPMS when the montor is used with drivers that support it.

#    Option	"dpms"

# If a monitor requires that the sync signals be superimposed on the
# green signal, the following option will enable this when used with
# drivers that support it.  Only a relatively small range of hardware
# (and drivers) actually support this.

#    Option	"sync on green"

EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

Section "Device"

# The Identifier must be present.

#    Identifier	"SIS VGA"

# The Driver line must be present.  When using run-time loadable driver
# modules, this line instructs the server to load the specified driver
# module.  Even when not using loadable driver modules, this line
# indicates which driver should interpret the information in this section.

#    Driver	"sis"

# The chipset line is optional in most cases.  It can be used to override
# the driver's chipset detection, and should not normally be specified.

#    Chipset	"generic"

# Various other lines can be specified to override the driver's automatic
# detection code.  In most cases they are not needed.

#    VideoRam	256
#    Clocks	25.2 28.3

# The BusID line is used to specify which of possibly multiple devices
# this section is intended for.  When this line isn't present, a device
# section can only match up with the primary video device.  For PCI
# devices a line like the following could be used.  This line should not
# normally be included unless there is more than one video device
# intalled.

#    BusID	"PCI:0:10:0"

# Various option lines can be added here as required.  Some options
# are more appropriate in Screen sections, Display subsections or even
# Monitor sections.

#    Option	"hw cursor" "off"

    Identifier	"SIS VGA"
    Driver	"sis"
    VideoRam	1024
#    Option	"hw cursor" "off"
#    Option	"no_accel"  "on"
EndSection



# **********************************************************************
# Screen sections.
# **********************************************************************

# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.

Section "Screen"

# The Identifier, Device and Monitor lines must be present

    Identifier	"Screen SIS"
    Device	"SIS VGA"
    Monitor	"Generic Monitor"

# The favoured Depth and/or Bpp may be specified here

    DefaultDepth 16

    SubSection "Display"
        Depth		8
	Modes 		"640x480"
#        Modes		"1024x768" "800x600" "640x480" 
        ViewPort	0 0
#	Virtual 800 600
    EndSubsection
    SubSection "Display"
        Depth		16
	Modes 		"640x400"
#        Modes		"1024x768" "800x600" "640x480" 
        ViewPort	0 0
	Virtual 	640 480
    EndSubsection
    SubSection "Display"
        Depth		24
	Modes 		"640x480"
#	Modes		"1024x768" "800x600" "640x480" 
        ViewPort	0 0
    EndSubsection
    SubSection "Display"
	Depth		4
        Modes		"640x480"
    EndSubSection
    SubSection "Display"
	Depth		1
        Modes		"640x480"
    EndSubSection

EndSection


# **********************************************************************
# ServerLayout sections.
# **********************************************************************
Section "ServerLayout"
    Identifier	"simple layout"
    Screen	"Screen SIS"
    InputDevice	"Mouse1" 
    InputDevice "Keyboard1" "CoreKeyboard"
EndSection



Reply to: