Documentation/fb/sisfb.rst GitHub 원문 ↗

Linux 6.18.37 · Frame Buffer

sisfb - SiS framebuffer device driver

SiS 칩 지원, 내장·모듈 매개변수, 모드와 사용자 공간 드라이버의 전문 번역입니다.

Source pathDocumentation/fb/sisfb.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

sisfb.rst:1-160

`sisfb`는 SiS 300/315/330 계열의 콘솔 framebuffer이며 내장과 모듈의 매개변수 구분자가 다릅니다. `vesafb`와 함께 쓰면 안 되고 X11에서는 전용 `sis`, SVGALib에서는 `FBDEV`가 권장됩니다.

sisfb 운영 체크
항목선택
내장`video=sisfb:key:value,...`
모듈`modprobe sisfb key=value ...`
모드`mode` 또는 `vesa` 중 하나
X11/SVGALib`sis` / `FBDEV`

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =====================================
2 sisfb - SiS framebuffer device driver
3 =====================================
4
5 sisfb is a framebuffer device driver for SiS (Silicon Integrated Systems)
6 graphics chips. Supported are:
7
8 - SiS 300 series: SiS 300/305, 540, 630(S), 730(S)
9 - SiS 315 series: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)
10 - SiS 330 series: SiS 330 ("Xabre"), (M)760
11
12
13 Why do I need a framebuffer driver?
14 ===================================
15
16 sisfb is eg. useful if you want a high-resolution text console. Besides that,
17 sisfb is required to run DirectFB (which comes with an additional, dedicated
18 driver for the 315 series).
19
20 On the 300 series, sisfb on kernels older than 2.6.3 furthermore plays an
21 important role in connection with DRM/DRI: Sisfb manages the memory heap
22 used by DRM/DRI for 3D texture and other data. This memory management is
23 required for using DRI/DRM.
24
25 Kernels >= around 2.6.3 do not need sisfb any longer for DRI/DRM memory
26 management. The SiS DRM driver has been updated and features a memory manager
27 of its own (which will be used if sisfb is not compiled). So unless you want
28 a graphical console, you don't need sisfb on kernels >=2.6.3.
29
30 Sidenote: Since this seems to be a commonly made mistake: sisfb and vesafb
31 cannot be active at the same time! Do only select one of them in your kernel
32 configuration.
33
34
35 How are parameters passed to sisfb?
36 ===================================
37
38 Well, it depends: If compiled statically into the kernel, use lilo's append
39 statement to add the parameters to the kernel command line. Please see lilo's
40 (or GRUB's) documentation for more information. If sisfb is a kernel module,
41 parameters are given with the modprobe (or insmod) command.
42
43 Example for sisfb as part of the static kernel: Add the following line to your
44 lilo.conf::
45
46 append="video=sisfb:mode:1024x768x16,mem:12288,rate:75"
47
48 Example for sisfb as a module: Start sisfb by typing::
49
50 modprobe sisfb mode=1024x768x16 rate=75 mem=12288
51
52 A common mistake is that folks use a wrong parameter format when using the
53 driver compiled into the kernel. Please note: If compiled into the kernel,
54 the parameter format is video=sisfb:mode:none or video=sisfb:mode:1024x768x16
55 (or whatever mode you want to use, alternatively using any other format
56 described above or the vesa keyword instead of mode). If compiled as a module,
57 the parameter format reads mode=none or mode=1024x768x16 (or whatever mode you
58 want to use). Using a "=" for a ":" (and vice versa) is a huge difference!
59 Additionally: If you give more than one argument to the in-kernel sisfb, the
60 arguments are separated with ",". For example::
61
62 video=sisfb:mode:1024x768x16,rate:75,mem:12288
63
64
65 How do I use it?
66 ================
67
68 Preface statement: This file only covers very little of the driver's
69 capabilities and features. Please refer to the author's and maintainer's
70 website at http://www.winischhofer.net/linuxsisvga.shtml for more
71 information. Additionally, "modinfo sisfb" gives an overview over all
72 supported options including some explanation.
73
74 The desired display mode can be specified using the keyword "mode" with
75 a parameter in one of the following formats:
76
77 - XxYxDepth or
78 - XxY-Depth or
79 - XxY-Depth@Rate or
80 - XxY
81 - or simply use the VESA mode number in hexadecimal or decimal.
82
83 For example: 1024x768x16, 1024x768-16@75, 1280x1024-16. If no depth is
84 specified, it defaults to 8. If no rate is given, it defaults to 60Hz. Depth 32
85 means 24bit color depth (but 32 bit framebuffer depth, which is not relevant
86 to the user).
87
88 Additionally, sisfb understands the keyword "vesa" followed by a VESA mode
89 number in decimal or hexadecimal. For example: vesa=791 or vesa=0x117. Please
90 use either "mode" or "vesa" but not both.
91
92 Linux 2.4 only: If no mode is given, sisfb defaults to "no mode" (mode=none) if
93 compiled as a module; if sisfb is statically compiled into the kernel, it
94 defaults to 800x600x8 unless CRT2 type is LCD, in which case the LCD's native
95 resolution is used. If you want to switch to a different mode, use the fbset
96 shell command.
97
98 Linux 2.6 only: If no mode is given, sisfb defaults to 800x600x8 unless CRT2
99 type is LCD, in which case it defaults to the LCD's native resolution. If
100 you want to switch to another mode, use the stty shell command.
101
102 You should compile in both vgacon (to boot if you remove you SiS card from
103 your system) and sisfb (for graphics mode). Under Linux 2.6, also "Framebuffer
104 console support" (fbcon) is needed for a graphical console.
105
106 You should *not* compile-in vesafb. And please do not use the "vga=" keyword
107 in lilo's or grub's configuration file; mode selection is done using the
108 "mode" or "vesa" keywords as a parameter. See above and below.
109
110
111 X11
112 ===
113
114 If using XFree86 or X.org, it is recommended that you don't use the "fbdev"
115 driver but the dedicated "sis" X driver. The "sis" X driver and sisfb are
116 developed by the same person (Thomas Winischhofer) and cooperate well with
117 each other.
118
119
120 SVGALib
121 =======
122
123 SVGALib, if directly accessing the hardware, never restores the screen
124 correctly, especially on laptops or if the output devices are LCD or TV.
125 Therefore, use the chipset "FBDEV" in SVGALib configuration. This will make
126 SVGALib use the framebuffer device for mode switches and restoration.
127
128
129 Configuration
130 =============
131
132 (Some) accepted options:
133
134 ========= ==================================================================
135 off Disable sisfb. This option is only understood if sisfb is
136 in-kernel, not a module.
137 mem:X size of memory for the console, rest will be used for DRI/DRM. X
138 is in kilobytes. On 300 series, the default is 4096, 8192 or
139 16384 (each in kilobyte) depending on how much video ram the card
140 has. On 315/330 series, the default is the maximum available ram
141 (since DRI/DRM is not supported for these chipsets).
142 noaccel do not use 2D acceleration engine. (Default: use acceleration)
143 noypan disable y-panning and scroll by redrawing the entire screen.
144 This is much slower than y-panning. (Default: use y-panning)
145 vesa:X selects startup videomode. X is number from 0 to 0x1FF and
146 represents the VESA mode number (can be given in decimal or
147 hexadecimal form, the latter prefixed with "0x").
148 mode:X selects startup videomode. Please see above for the format of
149 "X".
150 ========= ==================================================================
151
152 Boolean options such as "noaccel" or "noypan" are to be given without a
153 parameter if sisfb is in-kernel (for example "video=sisfb:noypan). If
154 sisfb is a module, these are to be set to 1 (for example "modprobe sisfb
155 noypan=1").
156
157
158 Thomas Winischhofer <[email protected]>
159
160 May 27, 2004
161

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

지원 칩과 framebuffer의 역할

1-33

`sisfb`는 SiS(Silicon Integrated Systems) 그래픽 칩용 framebuffer 드라이버입니다. SiS 300 계열의 300/305, 540, 630(S), 730(S), SiS 315 계열의 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX), SiS 330 계열의 330(Xabre), (M)760을 지원합니다.

고해상도 텍스트 콘솔을 쓰거나 DirectFB를 실행할 때 유용합니다. DirectFB에는 315 계열용 전용 드라이버가 추가로 포함됩니다.

2.6.3보다 오래된 커널의 SiS 300 계열에서는 `sisfb`가 DRM/DRI의 3D texture와 기타 데이터용 memory heap을 관리했으므로 DRI/DRM 사용에 필요했습니다. 약 2.6.3 이상에서는 SiS DRM 드라이버 자체 memory manager가 사용되므로 그래픽 콘솔이 필요하지 않다면 `sisfb`가 필요 없습니다.

`sisfb`와 `vesafb`는 동시에 활성화할 수 없습니다. 커널 설정에서는 둘 중 하나만 선택해야 합니다.

sisfb 지원과 용도
영역내용
SiS 300300/305, 540, 630(S), 730(S)
SiS 315315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)
SiS 330330 Xabre, (M)760
오래된 커널DRM/DRI memory heap 관리
주의`sisfb`와 `vesafb` 동시 활성화 금지

=====================================
sisfb - SiS framebuffer device driver
=====================================

sisfb is a framebuffer device driver for SiS (Silicon Integrated Systems)
graphics chips. Supported are:

- SiS 300 series: SiS 300/305, 540, 630(S), 730(S)
- SiS 315 series: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)
- SiS 330 series: SiS 330 ("Xabre"), (M)760


Why do I need a framebuffer driver?
===================================

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).

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.

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.

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.

내장·모듈 매개변수 형식

34-63

드라이버를 커널에 정적으로 넣었다면 lilo의 `append` 문이나 GRUB 커널 명령행을 사용합니다. 예는 `append="video=sisfb:mode:1024x768x16,mem:12288,rate:75"`입니다. 모듈이라면 `modprobe` 또는 `insmod`를 사용하며 예는 `modprobe sisfb mode=1024x768x16 rate=75 mem=12288`입니다.

내장 드라이버에서는 `video=sisfb:mode:none` 또는 `video=sisfb:mode:1024x768x16`처럼 키와 값 사이에 콜론을 씁니다. 모듈에서는 `mode=none` 또는 `mode=1024x768x16`처럼 등호를 씁니다. `:`와 `=`를 서로 바꾸면 전혀 다른 결과가 납니다.

내장 `sisfb`에 인수를 여러 개 줄 때는 쉼표로 구분합니다. 예는 `video=sisfb:mode:1024x768x16,rate:75,mem:12288`입니다.

sisfb 매개변수 전달 비교
형태구분자
커널 내장`:`와 인수 사이 `,``video=sisfb:mode:1024x768x16,rate:75,mem:12288`
모듈`=`와 인수 사이 공백`modprobe sisfb mode=1024x768x16 rate=75 mem=12288`
모드 없음내장/모듈`video=sisfb:mode:none` / `mode=none`


How are parameters passed to sisfb?
===================================

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.

Example for sisfb as part of the static kernel: Add the following line to your
lilo.conf::

     append="video=sisfb:mode:1024x768x16,mem:12288,rate:75"

Example for sisfb as a module: Start sisfb by typing::

     modprobe sisfb mode=1024x768x16 rate=75 mem=12288

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::

   video=sisfb:mode:1024x768x16,rate:75,mem:12288

모드 문법과 커널 버전별 기본값

64-109

이 문서는 드라이버 기능의 일부만 다룹니다. 더 자세한 정보는 `http://www.winischhofer.net/linuxsisvga.shtml`과 `modinfo sisfb`에서 확인할 수 있습니다.

`mode` 값은 `XxYxDepth`, `XxY-Depth`, `XxY-Depth@Rate`, `XxY` 형식 또는 10진수·16진수 VESA mode 번호를 사용합니다. 예는 `1024x768x16`, `1024x768-16@75`, `1280x1024-16`입니다. depth를 생략하면 8, rate를 생략하면 60 Hz입니다. depth 32는 24비트 색 깊이를 32비트 framebuffer 깊이로 저장한다는 뜻입니다.

`vesa=791` 또는 `vesa=0x117`처럼 `vesa` 키워드도 이해합니다. `mode`와 `vesa`는 둘 중 하나만 써야 합니다.

Linux 2.4에서 모드를 주지 않은 모듈은 `mode=none`이고, 내장 드라이버는 CRT2가 LCD이면 native resolution, 아니면 800x600x8입니다. 다른 모드로 바꿀 때는 `fbset`을 사용합니다. Linux 2.6은 내장 여부와 관계없이 LCD이면 native resolution, 아니면 800x600x8이며 전환에는 `stty`를 사용합니다.

SiS 카드를 제거해도 부팅할 수 있도록 `vgacon`과 그래픽 모드용 `sisfb`를 함께 빌드해야 합니다. Linux 2.6 그래픽 콘솔에는 `fbcon`도 필요합니다. `vesafb`를 내장하거나 lilo/GRUB에서 `vga=`를 쓰지 말고 `mode` 또는 `vesa` 매개변수로 선택합니다.

sisfb 모드 선택
항목값/기본값
문법`XxYxDepth`, `XxY-Depth[@Rate]`, `XxY`, VESA 번호
기본 depth/rate8 bpp / 60 Hz
VESA 예`vesa=791`, `vesa=0x117`
Linux 2.4 전환`fbset`
Linux 2.6 전환`stty`
콘솔 구성`vgacon` + `sisfb`, 2.6은 `fbcon` 추가


How do I use it?
================

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 http://www.winischhofer.net/linuxsisvga.shtml for more
information. Additionally, "modinfo sisfb" gives an overview over all
supported options including some explanation.

The desired display mode can be specified using the keyword "mode" with
a parameter in one of the following formats:

  - XxYxDepth or
  - XxY-Depth or
  - XxY-Depth@Rate or
  - XxY
  - or simply use the VESA mode number in hexadecimal or decimal.

For example: 1024x768x16, 1024x768-16@75, 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).

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.

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.

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.

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.

You should *not* 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.

X11과 SVGALib 권장 구성

110-128

XFree86 또는 X.org에서는 범용 `fbdev`보다 전용 `sis` X 드라이버를 권장합니다. `sis` X 드라이버와 `sisfb`는 모두 Thomas Winischhofer가 개발했으며 서로 잘 협력합니다.

SVGALib가 하드웨어에 직접 접근하면 특히 노트북이나 LCD/TV 출력에서 화면을 올바르게 복원하지 못합니다. SVGALib 설정에서 chipset을 `FBDEV`로 지정하면 framebuffer 장치를 통해 모드 전환과 복원을 수행합니다.

SiS 그래픽 스택 권장 경로
XFree86/X.org전용 `sis` X 드라이버`sisfb`와 협력SVGALib는 chipset `FBDEV`framebuffer를 통한 모드 전환과 복원

직접 하드웨어 접근 대신 전용 또는 framebuffer 경로를 사용합니다.


X11
===

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.


SVGALib
=======

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.

허용 옵션과 불리언 전달법

129-160

`off`는 `sisfb`를 끄며 커널 내장일 때만 이해됩니다. `mem:X`는 콘솔용 메모리를 KB로 정하고 나머지를 DRI/DRM에 둡니다. 300 계열 기본값은 비디오 RAM에 따라 4096, 8192, 16384 KB이고, DRI/DRM이 지원되지 않는 315/330 계열은 사용 가능한 RAM 최대값이 기본입니다.

`noaccel`은 기본으로 사용하는 2D acceleration engine을 끕니다. `noypan`은 기본 y-panning을 끄고 전체 화면 redraw로 스크롤하므로 훨씬 느립니다. `vesa:X`는 0~`0x1FF`의 10진수 또는 `0x` 접두 16진수 VESA mode를 고르고, `mode:X`는 앞에서 설명한 형식으로 시작 모드를 고릅니다.

`noaccel`, `noypan` 같은 불리언 옵션은 커널 내장일 때 값 없이, 예를 들어 `video=sisfb:noypan`으로 줍니다. 모듈일 때는 `modprobe sisfb noypan=1`처럼 1로 설정합니다. 작성자는 Thomas Winischhofer이며 문서 날짜는 2004년 5월 27일입니다.

sisfb 주요 옵션
옵션효과기본/범위
`off`드라이버 비활성화커널 내장만
`mem:X`콘솔 메모리 KB300: 4096/8192/16384, 315/330: 최대
`noaccel`2D 가속 비활성화기본은 가속
`noypan`redraw 스크롤기본은 y-panning
`vesa:X`VESA 시작 모드0~`0x1FF`
`mode:X`문자열 시작 모드앞 절의 형식

Configuration
=============

(Some) accepted options:

=========  ==================================================================
off        Disable sisfb. This option is only understood if sisfb is
           in-kernel, not a module.
mem:X      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).
noaccel    do not use 2D acceleration engine. (Default: use acceleration)
noypan     disable y-panning and scroll by redrawing the entire screen.
           This is much slower than y-panning. (Default: use y-panning)
vesa:X     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").
mode:X     selects startup videomode. Please see above for the format of
           "X".
=========  ==================================================================

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").


Thomas Winischhofer <[email protected]>

May 27, 2004