<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>sisfb - SiS framebuffer device driver — The Linux Kernel documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="sm501fb" href="sm501.html" />
<link rel="prev" title="SH7760/SH7763 integrated LCDC Framebuffer driver" href="sh7760fb.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
</a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>
<p class="blurb">6.18.50</p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>
<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../input/index.html">Input Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../hid/index.html">Human Interface Devices (HID)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../sound/index.html">Sound Subsystem Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../gpu/index.html">GPU Driver Developer’s Guide</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html">Frame Buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../leds/index.html">LEDs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>
</div>
<script type="text/javascript"> <!--
var sbar = document.getElementsByClassName("sphinxsidebar")[0];
let currents = document.getElementsByClassName("current")
if (currents.length) {
sbar.scrollTop = currents[currents.length - 1].offsetTop;
}
--> </script>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/fb/sisfb.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="sisfb-sis-framebuffer-device-driver">
<h1>sisfb - SiS framebuffer device driver<a class="headerlink" href="#sisfb-sis-framebuffer-device-driver" title="Link to this heading">¶</a></h1>
<p>sisfb is a framebuffer device driver for SiS (Silicon Integrated Systems)
graphics chips. Supported are:</p>
<ul class="simple">
<li><p>SiS 300 series: SiS 300/305, 540, 630(S), 730(S)</p></li>
<li><p>SiS 315 series: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)</p></li>
<li><p>SiS 330 series: SiS 330 (“Xabre”), (M)760</p></li>
</ul>
<section id="why-do-i-need-a-framebuffer-driver">
<h2>Why do I need a framebuffer driver?<a class="headerlink" href="#why-do-i-need-a-framebuffer-driver" title="Link to this heading">¶</a></h2>
<p>sisfb is eg. useful if you want a high-resolution text console. Besides that,
sisfb is required to run DirectFB (which comes with an additional, dedicated
driver for the 315 series).</p>
<p>On the 300 series, sisfb on kernels older than 2.6.3 furthermore plays an
important role in connection with DRM/DRI: Sisfb manages the memory heap
used by DRM/DRI for 3D texture and other data. This memory management is
required for using DRI/DRM.</p>
<p>Kernels >= around 2.6.3 do not need sisfb any longer for DRI/DRM memory
management. The SiS DRM driver has been updated and features a memory manager
of its own (which will be used if sisfb is not compiled). So unless you want
a graphical console, you don’t need sisfb on kernels >=2.6.3.</p>
<p>Sidenote: Since this seems to be a commonly made mistake: sisfb and vesafb
cannot be active at the same time! Do only select one of them in your kernel
configuration.</p>
</section>
<section id="how-are-parameters-passed-to-sisfb">
<h2>How are parameters passed to sisfb?<a class="headerlink" href="#how-are-parameters-passed-to-sisfb" title="Link to this heading">¶</a></h2>
<p>Well, it depends: If compiled statically into the kernel, use lilo’s append
statement to add the parameters to the kernel command line. Please see lilo’s
(or GRUB’s) documentation for more information. If sisfb is a kernel module,
parameters are given with the modprobe (or insmod) command.</p>
<p>Example for sisfb as part of the static kernel: Add the following line to your
lilo.conf:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>append="video=sisfb:mode:1024x768x16,mem:12288,rate:75"
</pre></div>
</div>
<p>Example for sisfb as a module: Start sisfb by typing:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>modprobe sisfb mode=1024x768x16 rate=75 mem=12288
</pre></div>
</div>
<p>A common mistake is that folks use a wrong parameter format when using the
driver compiled into the kernel. Please note: If compiled into the kernel,
the parameter format is video=sisfb:mode:none or video=sisfb:mode:1024x768x16
(or whatever mode you want to use, alternatively using any other format
described above or the vesa keyword instead of mode). If compiled as a module,
the parameter format reads mode=none or mode=1024x768x16 (or whatever mode you
want to use). Using a “=” for a “:” (and vice versa) is a huge difference!
Additionally: If you give more than one argument to the in-kernel sisfb, the
arguments are separated with “,”. For example:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>video=sisfb:mode:1024x768x16,rate:75,mem:12288
</pre></div>
</div>
</section>
<section id="how-do-i-use-it">
<h2>How do I use it?<a class="headerlink" href="#how-do-i-use-it" title="Link to this heading">¶</a></h2>
<p>Preface statement: This file only covers very little of the driver’s
capabilities and features. Please refer to the author’s and maintainer’s
website at <a class="reference external" href="http://www.winischhofer.net/linuxsisvga.shtml">http://www.winischhofer.net/linuxsisvga.shtml</a> for more
information. Additionally, “modinfo sisfb” gives an overview over all
supported options including some explanation.</p>
<p>The desired display mode can be specified using the keyword “mode” with
a parameter in one of the following formats:</p>
<blockquote>
<div><ul class="simple">
<li><p>XxYxDepth or</p></li>
<li><p>XxY-Depth or</p></li>
<li><p><a class="reference external" href="mailto:XxY-Depth%40Rate">XxY-Depth<span>@</span>Rate</a> or</p></li>
<li><p>XxY</p></li>
<li><p>or simply use the VESA mode number in hexadecimal or decimal.</p></li>
</ul>
</div></blockquote>
<p>For example: 1024x768x16, <a class="reference external" href="mailto:1024x768-16%4075">1024x768-16<span>@</span>75</a>, 1280x1024-16. If no depth is
specified, it defaults to 8. If no rate is given, it defaults to 60Hz. Depth 32
means 24bit color depth (but 32 bit framebuffer depth, which is not relevant
to the user).</p>
<p>Additionally, sisfb understands the keyword “vesa” followed by a VESA mode
number in decimal or hexadecimal. For example: vesa=791 or vesa=0x117. Please
use either “mode” or “vesa” but not both.</p>
<p>Linux 2.4 only: If no mode is given, sisfb defaults to “no mode” (mode=none) if
compiled as a module; if sisfb is statically compiled into the kernel, it
defaults to 800x600x8 unless CRT2 type is LCD, in which case the LCD’s native
resolution is used. If you want to switch to a different mode, use the fbset
shell command.</p>
<p>Linux 2.6 only: If no mode is given, sisfb defaults to 800x600x8 unless CRT2
type is LCD, in which case it defaults to the LCD’s native resolution. If
you want to switch to another mode, use the stty shell command.</p>
<p>You should compile in both vgacon (to boot if you remove you SiS card from
your system) and sisfb (for graphics mode). Under Linux 2.6, also “Framebuffer
console support” (fbcon) is needed for a graphical console.</p>
<p>You should <em>not</em> compile-in vesafb. And please do not use the “vga=” keyword
in lilo’s or grub’s configuration file; mode selection is done using the
“mode” or “vesa” keywords as a parameter. See above and below.</p>
</section>
<section id="x11">
<h2>X11<a class="headerlink" href="#x11" title="Link to this heading">¶</a></h2>
<p>If using XFree86 or X.org, it is recommended that you don’t use the “fbdev”
driver but the dedicated “sis” X driver. The “sis” X driver and sisfb are
developed by the same person (Thomas Winischhofer) and cooperate well with
each other.</p>
</section>
<section id="svgalib">
<h2>SVGALib<a class="headerlink" href="#svgalib" title="Link to this heading">¶</a></h2>
<p>SVGALib, if directly accessing the hardware, never restores the screen
correctly, especially on laptops or if the output devices are LCD or TV.
Therefore, use the chipset “FBDEV” in SVGALib configuration. This will make
SVGALib use the framebuffer device for mode switches and restoration.</p>
</section>
<section id="configuration">
<h2>Configuration<a class="headerlink" href="#configuration" title="Link to this heading">¶</a></h2>
<p>(Some) accepted options:</p>
<table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>off</p></td>
<td><p>Disable sisfb. This option is only understood if sisfb is
in-kernel, not a module.</p></td>
</tr>
<tr class="row-even"><td><p>mem:X</p></td>
<td><p>size of memory for the console, rest will be used for DRI/DRM. X
is in kilobytes. On 300 series, the default is 4096, 8192 or
16384 (each in kilobyte) depending on how much video ram the card
has. On 315/330 series, the default is the maximum available ram
(since DRI/DRM is not supported for these chipsets).</p></td>
</tr>
<tr class="row-odd"><td><p>noaccel</p></td>
<td><p>do not use 2D acceleration engine. (Default: use acceleration)</p></td>
</tr>
<tr class="row-even"><td><p>noypan</p></td>
<td><p>disable y-panning and scroll by redrawing the entire screen.
This is much slower than y-panning. (Default: use y-panning)</p></td>
</tr>
<tr class="row-odd"><td><p>vesa:X</p></td>
<td><p>selects startup videomode. X is number from 0 to 0x1FF and
represents the VESA mode number (can be given in decimal or
hexadecimal form, the latter prefixed with “0x”).</p></td>
</tr>
<tr class="row-even"><td><p>mode:X</p></td>
<td><p>selects startup videomode. Please see above for the format of
“X”.</p></td>
</tr>
</tbody>
</table>
<p>Boolean options such as “noaccel” or “noypan” are to be given without a
parameter if sisfb is in-kernel (for example “video=sisfb:noypan). If
sisfb is a module, these are to be set to 1 (for example “modprobe sisfb
noypan=1”).</p>
<p>Thomas Winischhofer <<a class="reference external" href="mailto:thomas%40winischhofer.net">thomas<span>@</span>winischhofer<span>.</span>net</a>></p>
<p>May 27, 2004</p>
</section>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©The kernel development community.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/fb/sisfb.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>