요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
=====================================
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.
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
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
===
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.
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
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 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`입니다.
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` 매개변수로 선택합니다.
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-128XFree86 또는 X.org에서는 범용 `fbdev`보다 전용 `sis` X 드라이버를 권장합니다. `sis` X 드라이버와 `sisfb`는 모두 Thomas Winischhofer가 개발했으며 서로 잘 협력합니다.
SVGALib가 하드웨어에 직접 접근하면 특히 노트북이나 LCD/TV 출력에서 화면을 올바르게 복원하지 못합니다. 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일입니다.
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
요약·해설
sisfb.rst:1-160`sisfb`는 SiS 300/315/330 계열의 콘솔 framebuffer이며 내장과 모듈의 매개변수 구분자가 다릅니다. `vesafb`와 함께 쓰면 안 되고 X11에서는 전용 `sis`, SVGALib에서는 `FBDEV`가 권장됩니다.