\documentclass[letterpaper,english]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{3D Accelerated With Nvidia HOWTO}
\author{Author: Nvidia Support Team {\ttfamily www.nvidia.com}\\ 
Ä¶ªÌ: \onlynameurl{³¯±Ó¼C}  {\ttfamily expns@yahoo.com}}
\date{Â½Ä¶¤é´Á: 2002¦~11¤ë1¤é reversion 0.23 }
\abstract{¦¹¤åÀÉ¬°§A´£¨Ñ¤@­Ó¦bLinux§@·~¨t²Î¤W³]©w Nvidia 3D¥[³t¥dªº°Ñ¦Ò.}


\begin{document}
\maketitle
\tableofcontents

\section{Án©ú}

¦pªG±Ä¥Î¤F¦¹¤åÀÉ·í¤¤ªº¤èªk¦Ó¾É­P§Aªº¥ô¦ó¹k¥¢(µwÅé·lÃa,¨ç¦¡®w²V¶Ãµ¥),
§@ªÌµLÅv©Ó¾á¥ô¦ó³d¥ô.

¦b¶}©l³]©w¤§«eºò°O:
\begin{itemize}
\item §A¤£¤@©w«D±o«ö¦¹¤åÀÉ¨Ó³]©w.
\item §A¤£¥²¹ï¦¹¤åÀÉ³ø¥H¤Ó¤jªº´Á±æ.
\item ¤@¤Á¥H "Just for fun" ¬°­ì«h. 
\end{itemize}



\subsection{ª©Åv}

Copyright (C) 2002, by Nvidia

This document is free; you can redistribute it and/or modify it under the terms of the 
GNU General Public License as published by the Free Software Foundation; 
either version 2 of the License, or (at your option) any later version. 

This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 
You can get a copy of the GNU GPL 
\onlynameurl{here}




\section{Àô¹Ò}


\subsection{µwÅéÀô¹Ò}

§A¦Ü¤Ö¦³¤@¶ô Nvidia ¨t¦C3D¥[³t¥d©M¤ä«ù¥¦ªº¥ÀªO,¤U­±¬O©Ò¦³Linux¤ä«ùªº Nvidia ¨t¦C3D¥[³t¥d:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
TNT 
TNT2/TNT2 Pro 
TNT2 Ultra 
TNT2 M64/M64 Pro 
Vanta/Vanta LT 
Aladdin TNT2 
GeForce 256 
GeForce2 Pro 
GeForce2 GTS 
GeForce2 MX/MX 400/MX 200/MX 100 
GeForce2 Go 
GeForce2 Ti 
GeForce2 Ultra 
GeForce3 
GeForce3 Ti 200/Ti 500 
GeForce4 Ti 4200/4400/4600  
GeForce4 Mx 420/440/460 
GeForce4 Go 
Quadro 
Quadro DCC 
Quadro2 MXR 
Quadro2 Pro 
Quadro2 EX 
Quadro2 Go 
Quadro4 XGL 550/700/750/900 
Quadro4 NVS 200/400 
nForce 220D/420/420D Integrated GPU
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}




¥H¤U¬O¤£¦b¤ä«ù¤§¦Cªº ­S¿AÀsXGL(Quadro4) ¨t¦Cªº«¬¸¹(AGP8X):
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
NVIDIA Quadro4  980 XGL
NVIDIA Quadro4  580 XGL
NVIDIA Quadro4  380 XGL                
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}



\subsection{³nÅéÀô¹Ò}

\begin{itemize}
\item ª©¥»¬° 2.4.0 ¥H¤Wªº®Ö¤ß. 
\item XFree86ª©¥»¬°4.2.0©Î§ó·s.
\item ª©¥»¬° 3.0 ¥H¤Wªº Gcc
\end{itemize}



\section{¤U¸üÅX°Êµ{¦¡}


\subsection{¤U¸ü GLX ÅX°Êµ{¦¡}

§A¥i¥H¤U¸üªºµ{¦¡¥]®æ¦¡¦³: rpm , tar, srpm. ½Ð¨Ì¾Ú§AªºLinux µo¦æª©¨Ó¤U¸ü:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
GLX RPM                http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_GLX-1.0-3123.i386.rpm
GLX SOURCE RPM         http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_GLX-1.0-3123.src.rpm
GLX Tar File           http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_GLX-1.0-3123.tar.gz
GLX RPM for SuSE 7.2   http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_GLX-1.0-3123.suse72.i386.rpm
GLX RPM for SuSE 7.3   http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_GLX-1.0-3123.suse73.i386.rpm
GLX RPM for SuSE 8.0   http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_GLX-1.0-3123.suse80.i386.rpm
GLX RPM for SuSE 8.1   http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_GLX-1.0-3123.suse81.i586.rpm
FTP1                   ftp://download.nvidia.com/XFree86_40/1.0-3123
FTP2                   ftp://download1.nvidia.com/XFree86_40/1.0-3123
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}





\subsection{¤U¸ü®Ö¤ßÅX°Êµ{¦¡}


\subsubsection{Redhat Linux}

½Ðª`·NRedhat¤£¦Pª©¥»¤§¶¡¬O¦³®t§Oªº, ¬J«K¥¦­Ì¤É¯Å¦¨¬Û¦Pªº®Ö¤ß.
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
RedHat 7.3 ¤É¯Å¦Ü 2.4.18-10 UP i386 ¬[ºc         http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73up_2.4.18_10.i386.rpm

RedHat 7.3 ¤É¯Å¦Ü 2.4.18-10 UP i686 ¬[ºc         http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73up_2.4.18_10.i686.rpm

RedHat 7.3 ¤É¯Å¦Ü 2.4.18-10 ¦hCPU i686 ¬[ºc      http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73smp_2.4.18_10.i686.rpm

RedHat 7.3 ¤É¯Å¦Ü 2.4.18-10 ¦hCPU i586 ¬[ºc      http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73smp_2.4.18_10.i586.rpm

RedHat 7.3 ¤É¯Å¦Ü 2.4.18-10 Enterprise i686 ¬[ºc http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73smp_2.4.18_10.athlon.rpm

RedHat 7.3 ¦hCPU i686 ¬[ºc                       http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73smp.i686.rpm

RedHat 7.3 ¦hCPU i586 ¬[ºc                       http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73smp.i586.rpm

RedHat 7.3 Enterprise i686 ¬[ºc                  http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73bigmem.i686.rpm

RedHat 7.3 UP Athlon ¬[ºc                        http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73up.athlon.rpm 

RedHat 7.3 ¦hCPU Athlon ¬[ºc                     http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh73smp.athlon.rpm 

RedHat 7.2 UP i386 ¬[ºc                          http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh72up.i386.rpm

RedHat 7.2 UP i686 ¬[ºc                          http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh72up.i686.rpm

RedHat 7.2 Enterprise i686 ¬[ºc                  http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.rh72up.athlon.rpm 
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}





\subsubsection{Mandrake Linux}



\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
Mandrake 8.2 UP i586 ¬[ºc                        http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk82up.i586.rpm
Mandrake 8.2 ¦hCPUi586 ¬[ºc                      http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk82smp.i586.rpm
Mandrake 8.2 Enterprise i586 ¬[ºc                http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk82enterprise.i586.rpm
Mandrake 8.2 Secure i586 ¬[ºc                    http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk82secure.i586.rpm
Mandrake 8.1 UP i386 ¬[ºc                        http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk81up.i386.rpm
Mandrake 8.1 UP i686 ¬[ºc                        http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk81up.i686.rpm 
Mandrake 8.1 ¦hCPU i686 ¬[ºc                     http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk81smp.i686.rpm
Mandrake 8.1 Enterprise i686 ¬[ºc                http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.mdk81enterprise.i686.rpm 
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}
 




\subsubsection{SuSE Linux}

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
SuSE 8.1                                       http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.suse81.i586.rpm
SuSE 8.0                                       http://download.nvidia.com/XFree86_40/1.0-3123/NVIDIA_kernel-1.0-3123.suse80.i386.rpm
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}





\subsubsection{·½¥N½X}

Kernel Source RPM  http://download.nvidia.com/XFree86\_40/1.0-3123/NVIDIA\_kernel-1.0-3123.src.rpm   \\ 
 Kernel Tar À£ÁYÀÉ   http://download.nvidia.com/XFree86\_40/1.0-3123/NVIDIA\_kernel-1.0-3123.tar.gz




\section{¦w¸Ë}


\subsection{§Ö³t¦w¸Ë}

¤U¸ü¬Û¾Aªº¦w¸Ë¥], µM«á°õ¦æÃþ¦ü¤U­±ªº«ü¥O:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
 rpm -ivh NVIDIA_kernel.i386.rpm
 rpm -ivh NVIDIA_GLX.i386.rpm
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}



\subsection{¤É¯Å}

§Ú­Ì¤£ÃÙ¦¨ª½±µ¤É¯Å, ½Ð«ö¦p¤U¨BÆJ°õ¦æ:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
rpm -e NVIDIA_kernel.i386
rpm -e NVIDIA_GLX
rpm -i NVIDIA_GLX.i386.rpm
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}





\subsection{¨Ï¥ÎSRPM¦w¸Ë¥]}

½Ð°õ¦æÃþ¦ü¥H¤Uªº«ü¥O:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
rpm --rebuild NVIDIA_kernel.src.rpm
rpm -ivh /§AªºNVIDIA_kernel.i386.rpm¦s©ñ¦ì¸m
rpm -ivh NVIDIA_GLX.i386.rpm
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


ª`·N: RedHat Linux ªºSRPM¦s©ñ¦ì¸m¦b: /usr/src/redhat/RPMS/i386/NVIDIA\_kernel.i386.rpm




\subsection{°ò©ótarªº¦w¸Ë}

¨BÆJ¦p¤U:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
tar xvzf NVIDIA_kernel.tar.gz
tar xvzf NVIDIA_GLX.tar.gz
cd NVIDIA_kernel
make install
cd ../NVIDIA_GLX
make install
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


ª`·N: °õ¦æ make instll ®É,µ{¦¡±N¦Û°Ê²¾°£ÂÂªºÅX°Êµ{¦¡.




\section{³]©w XF86Config-4}

ª`: ¦¹³]©w°ò©ó XFree86 ªº 4.0 ©Î§ó°ªªºª©¥».

¦pªGXF86Config-4³]©wÀÉ¤¤¤v¸g¦³¤F NVIDIA Åã¥Ü¥dªº´y­z,
½Ð·Ó¤U¦C¨BÆJ°õ¦æ:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
±N Dirver "nv" ©Î Driver "vesa" ÅÜ§ó¬° Driver "nvidia"
¦b¼Ò²Õ³¡¥÷²¾°£ Load  "dri" ©M Load  "GLcore" ¨Ã¥B¥[¤J Load "glx"
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


¥H¤U¬O Nvidia 3D ¥[³t¥dªºÅX°Êµ{¦¡¿ï¶µ

´y­z¤èªk¬° Option"NvAGP" "¾ã¼Æ­È". 

Ãö©ó"¾ã¼Æ­È"ªº§@¥Î:
\begin{itemize}
\item 0  AGP¥\¯à¥¢®Ä 
\item 1  ¨Ï¥Î¥d¦Û¨­ªºAGP¥[³t
\item 2  ¨Ï¥Î AGPGART ¥[³t
\item 3  ¨Ï¥Î¥ô¦ó¥i¥Îªº AGP ¥[³t
\end{itemize}
 

´y­z¤èªk¬° Option "NoLogo" "¥¬º¸"
¥¦¥Î¨Ó¨M©w Logo ªº¶}±Ò©MÃö³¬.



Option "NoRenderAccel" "¥¬º¸" . ¥¦¥Î¨Ó¨M©w§Î´è¬Vªº¥[³t¶}±Ò©MÃö³¬.



Option "NoRenderExtension" "¥¬º¸" ¥Î©ó 8 depth ªº´è¬V.


\section{RedHat8.0}

¤U¸ü:NVIDIA\_kernel-1.0-3123.src.rpm 

¤U¸ü:NVIDIA\_GLX-1.0-3123.i386.rpm

½T©w§@·~¨t²Î¤W¦w¸Ë¤F¶}µo³nÅé¥], ¨Ã¥B§A¦³¶i¦æ¹L¤@¦¸®Ö¤ßªº½sÄ¶, ¦pªG§A¦b½sÄ¶¤§«á
°õ¦æ¤F "make mrproper" §A±o¦A°õ¦æ¤@¦¸®Ö¤ßªº½sÄ¶.

°õ¦æ"rpmbuild --rebuild NVIDIA\_kernel-1.0-3123.src.rpm" 
µ²ªG¬°:"/usr/src/redhat/RPMS/i386/NVIDIA\_kernel-1.0-3123.i386.rpm"

¦w¸Ë:®Ö¤ßÅX°Êµ{¦¡ "rpm -ivh /usr/src/redhat/RPMS/i386/NVIDIA\_kernel-1.0-3123.i386.rpm"

¦w¸ËGLX:"rpm -ivh NVIDIA\_GLX-1.0-3123.i386.rpm"

³]©wXFree86Config, ©M­è¤~´£¨ìªº¤@¼Ë


\subsection{®Ö¤ß kernel-2.4.18-17.8.0}

ª`·N:³o¨Ç¨BÆJ¬O°ò©ókernel-2.4.18-17.8.0¨Ó³]©wªº.

¤U¸ü NVIDIA\_kernel-1.0-3123.src.rpm

¤U¸ü NVIDIA\_GLX-1.0-3123.i386.rpm

±N /etc/inittab ³]©wÀÉ¤¤ªº id:5:initdefault: ÅÜ§ó¬° id:3:initdefault:
ª`·N: ³o±N¦b¤U¤@¦¸±Ò°Ê®É¶}±Ò¦h¥Î¤á¼Ò¦¡.

³Æ¥÷ÅX°Êµ{¦¡:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
"cd /usr/src/redhat/RPMS/i386"
"mv NVIDIA_kernel-1.0-3123.i386.rpm NVIDIA_kernel-1.0-3123.i386.rpm.old"
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}

±N®Ö¤ß¤É¯Å¬°kernel-2.4.18-17.8.0 ¨Ã¦P®É¤É¯Å·½¥N½X¬° kernel-source-2.4.18-17.8.0 

¨Ï¥Î·s®Ö¤ß­«·s±Ò°Ê¾÷¾¹. ¥Î root ±b¸¹µn¿ý.

²¾°£¦ÑªºÅX°Êµ{¦¡:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
rpm -e NVIDIA_GLX-1.0-3123
rpm -e NVIDIA_kernel-1.0-3123
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}

°õ¦æ "rpmbuild --rebuild NVIDIA\_kernel-1.0-3123.src.rpm" ¥¦±N¨Ì¾Ú·sªº®Ö¤ß½sÄ¶ÅX°Êµ{¦¡.
µ²ªG¬°: "/usr/src/redhat/RPMS/i386/NVIDIA\_kernel-1.0-3123.i386.rpm"

¦w¸ËÅX°Êµ{¦¡: 
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
"rpm -ivh /usr/src/redhat/RPMS/i386/NVIDIA_kernel-1.0-3123.i386.rpm"
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}




¦w¸ËGLXÅX°Êµ{¦¡
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
"rpm -ivh NVIDIA_GLX-1.0-3123.i386.rpm"
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


«ö·Ó¤W­±ªº¤èªk³]©wXF86Config-4

°õ¦æ "startx" .

±N /etc/inittab ³]©wÀÉ¤¤ªº id:3:initdefault: ÅÜ§ó¬° id:5:initdefault:



³Ì«á,½Ð¨É¨üNvidia±aµ¹§Aªº¨ô¶V©Ê¯à§a!


\section{³]©wTWINVIEW}

TWINVIEW¥i¥H¨Ï¥Î§A¦P®É³s±µ¨â­Ó¼ü¹õ.
¥H¤U«¬¸¹ªºªä¤ù¤ä´©TWINVIEW, ·íµM,§Aªº3D¥[³t¥d¤WÁÙ±o¦³¨â­Ó±µ¤f.
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
GeForce2 MX, 
GeForce2 Go
­S¿AÀs2 (Quadro2) MXR
­S¿AÀs2 (Quadro2) Go
GeForce4 GPUs.
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}



\subsection{³]©wXF86Config }

¦b§AªºXF86Config³]©wÀÉ¤¤¥²»Ý¦³¦p¤Uªº´y­z:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
Option "TwinView"
Option "SecondMonitorHorizSync"     "<hsync range(s)>"
Option "SecondMonitorVertRefresh"   "<vrefresh range(s)>"
Option "MetaModes"                  "<list of metamodes>"
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


§A¥i¯à¥Î¨ì¥H¤Uªº Options, ¥¦­Ì¤£¬O¥²»Ýªº:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
Option "TwinViewOrientation"        "<relationship of head 1 to head 0>"
Option "ConnectedMonitor"           "<list of connected display devices>"
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


¥¦­Ìªº§t¸q:
\begin{itemize}
\item  TwinViwe ¶}±Ò¥\¯à, ¨S¦³³o­Ó´y­z,©Ò¦³¦³ÃöTwinViweªºOptins·|³Q©¿²¤.
\item SecondMonitorHorizSync, SecondMonitorVertRefresh ¥¦­Ì±j¨î²Ä¤G­Ó¼ü¹õ¨Ï¥Î³o¨Ç³]©w.
¦b Monitor ³¡¥÷¦³¬ÛÀ³ªº´y­z¥i¥H°Ñ¦Ò,ª`·N:½Ð¤£­n¤£¥[¥ô¦ó­×§ï¦a½Æ»s¼Æ­È,³o¼Ë°µ¥i¯à¹ïµwÅé²£¥Í·lÃa.
\item MetaModes ¼Ò¦¡³]©w ¦p Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768"
\item TwinViewOrientation ³]©w¬Û¹ï©ó²Ä¤@­Ó¼ü¹õªº¦ì¸m.¦p: 
          
"RightOf"  (the default)
"LeftOf"
"Above"
"Below"
"Clone"
ConnectedMonitor ³s±µÃþ«¬, ¦p Option "ConnectedMonitor" "CRT, DFP"



\end{itemize}









\section{¬G»Ù±Æ°£}


\subsection{§Ú­n¦p¦ó±o¨ì¬G»Ù«H®§ªº¨ãÅé§t¸q?}

¤@¯ë¨Ó»¡,³o¨Ç³£¦b /var/lov/XFree86.*.log ¤é»x·í¤¤.
"(WW)"¥NªíÄµ°T "(EE)"¥Nªí¿ù»~


\subsection{¤£¯à°õ¦æ startx, ¤é»x·í¤¤¦³³o¼Ëªº°T®§:"(EE) NVIDIA(0): Failed to initialize the NVdriver kernel module!"}

³o¬O®Ö¤ß¼Ò²Õªº°ÝÃD, ½Ð¥ý¥Î lsmod ¬d¬Ý¼Ò²Õªº¸ü¤J±¡ªp, ¦pªG¨S¦³AGPÅX°Ê¼Ò²Õ½Ð¥Î
modprobe ¸ü¤J, ¦pªG¦b¸ü¤Jªº®É­Ô¥X²{°ÝÃD, ¥i¯à§A©Ò¸ü¤Jªº¼Ò²Õ¨Ã¤£¬O¬°§Aªº®Ö¤ß½sÄ¶ªº.
¦b½sÄ¶ªºÅX°Êµ{¦¡ªº®É­Ô¥i¥H«ü©w§Aªº®Ö¤ß: 'make install SYSINCLUDE=/path/to/kernel/headers'
¼Ò²Õªº¦WºÙ¬° "NVdriver"




\subsection{§Ú¯à±Ò°ÊX, ¦ý¬O OpenGLªºÀ³¥ÎµL®Ä}

³o¥i¯à©M¨ç¦¡®w¦³Ãö, ½Ð°õ¦æ "ldconfig"
,¥t¥~½ÐÀËµø XF86Config³]©wÀÉ, ½T«H¸Ì­±¦³¥[¸üglxªº´y­z.




\subsection{OpenGL ³nÅé¥X²{¦p¤UÄµ°T¬O¤°»ò°ÝÃD?}

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
 Error: Could not open /dev/nvidiactl because the permissions
        are too restrictive.  Please see the FREQUENTLY ASKED QUESTIONS
        section of /usr/share/doc/NVIDIA_GLX-1.0/README for steps
        to correct.
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


¬Ý°_¨Ó¹³¬OPAM¦w¥þ¼Ò²Õªº°ÝÃD(¥¦ÅÜ§ó¤F³]³Æªº³X°ÝÅv­­),
¦pªG­n¸Ñ¨M¥¦,½ÐÃö³¬PAM. 
¦pªG§Aªº /etc/security/ ¥Ø¿ý¸Ì¦³ console.perms ³]©wÀÉ
½Ð±N¥H $<$ dri $>$ ¶}ÀYªº¦r¥y¾ã¦æ²¾°£.
¦pªG§Aªº¨t²Î¸Ì¦³ /etc/logindevperms ½Ð²¾°£»P /dev/nvidiactl ¦³Ãöªº¦r¥y.
µM«á°õ¦æ chmod 0666 /dev/nvidia* ; chown root /dev/nvidia*




\subsection{OpenGL µ{¦¡±¾±¼¨Ã¥B¦³¦p¤UÄµ°T:}

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
WARNING: Your system is running with a buggy dynamic loader.
        This may cause crashes in certain applications.  If you
        experience crashes you can try setting the environment
        variable __GL_SINGLE_THREADED.  For more information please
        consult the FREQUENTLY ASKED QUESTIONS section in the file
        /usr/share/doc/NVIDIA_GLX-1.0/README.
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


³o¬O¦Ñª©¥»ªº°ÊºA¥[¸ü¾¹³y¦¨ªº. ½Ð³]©wÀô¹ÒÅÜ¶q \_\_GL\_SINGLE\_THREADED ¬°¥ô·N­È.
¦pªG§A¨Ï¥Îbash shell ,½Ð§A³o¼Ë°õ¦æ:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
 export __GL_SINGLE_THREADED
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


¦pªG§A¨Ï¥Î csh ©M¬ÛÃöªºshell ½Ð³o¼Ë°õ¦æ:

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
setenv __GL_SINGLE_THREADED
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}



\subsection{¦b§Ú°õ¦æ ¹p¯«III ¤Á´«Åã¥Ü¼Ò¦¡®É, ¥¦±¾±¼¤F.}

·Ó¤W­±ªº¤èªk³]©w \_\_GL\_SINGLE\_THREADED




\subsection{·í§Ú°õ¦æ startx ®É, X ±¾±¼¤F, ¨Ã¦b XFree86 ¤é»x¤¤¯d¦³¦p¤U°O¿ý:}

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
(II) LoadModule: "nvidia"
        (II) Loading /usr/X11R6/lib/modules/drivers/nvidia_drv.o
        No symbols found in this module
        (EE) Failed to load /usr/X11R6/lib/modules/drivers/nvidia_drv.o
        (II) UnloadModule: "nvidia"
        (EE) Failed to load module "nvidia" (loader failed, 256)
        ...
        (EE) No drivers available.
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


 nvidia\_drv.o »Ý­n¤@­Ó²Å¸¹³sµ², ¦³¨Çrpmª©¥»¦b¦w¸Ë®É¨S¦³«Ø¥ß³oºØ³sµ²,
±ÀÂË§A¥Î NVIDIA\_GLX ªº tar ¦w¸Ë¥]¶i¦æ¦w¸Ë. 


\subsection{§Úªº¨t²Î¥i¥H¹B¦æ, ¦ý¤£Ã­©w, ³o¬O«ç»ò¦^¨Æ?}

³o»PAGP¼Ò¦¡¦³Ãö, ¥i¥H³q¹L Option "NvAgp" "0¦Ü3ªº­È" ¨Ó³]©w.
"0"ªí¥ÜÃö³¬¥[³t; "1" ªí¥Ü¨Ï¥ÎNVAGP; "2" ªí¥Ü¨Ï¥ÎAGPGART; "3" ªí¥Ü¨Ï¥Î AGPART,
¦pªG¥¢®Ä, ´N¦Û°Ê¨Ï¥ÎNVAGP¼Ò¦¡.
ª`·N: ­n¨Ï¥Î AGPGART ¼Ò¦¡, §A¥²»Ý±N¥¦½sÄ¶¶i®Ö¤ß,©ÎªÌ¬O½sÄ¶¦¨¼Ò²Õ.
¦pªG¨t²Î®Ö¤ß·í¤¤¦³ AGPGART, NVAGP ¼Ò¦¡±N¤£°_¥ô¦ó§@¥Î. ©Ò¥H±ÀÂË§A±N AGPGART
½sÄ¶¦¨¼Ò²Õ. ¥t¥~­nª`·Nªº¬O, ÅÜ§óÅX°Êµ{¦¡«á­n­«·s±Ò°Ê§Aªº¾÷¾¹¤~¯à¥Í®Ä.

¥H¤Uªºªä¤ù¶°¤ä´© NVAGP ¼Ò¦¡, ¨ä¥¦ªºªä¤ù¶°½Ð¨Ï¥Î AGPGART ¼Ò¦¡.
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
Intel 440LX
  o Intel 440BX
  o Intel 440GX
  o Intel 815 ("Solano")   
  o Intel 820 ("Camino")   
  o Intel 830
  o Intel 840 ("Carmel")   
  o Intel 845 ("Brookdale")
  o Intel 845G
  o Intel 850 ("Tehama")
  o Intel 860 ("Colusa")
  o AMD 751 ("Irongate")
  o AMD 761 ("IGD4")   
  o AMD 762 ("IGD4 MP")
  o VIA 8371   
  o VIA 82C694X
  o VIA KT133
  o VIA KT266
  o RCC 6585HE
  o Micron SAMDDR ("Samurai") 
  o Micron SCIDDR ("Scimitar")
  o nForce AGP
  o ALi 1621
  o ALi 1631
  o ALi 1647
  o ALi 1651
  o ALi 1671
  o SiS 630
  o SiS 633
  o SiS 635
  o SiS 645
  o SiS 730
  o SiS 733
  o SiS 735
  o SiS 745
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


¤@¨Ç Linux ®Ö¤ß¦bAMD¬[ºcªºCPU¤W¹B¦æ®É¥i¯à·|¥X²{»PAGP¦³ÃöªºBug.
¥¦­Ì¬O:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
 AMD Athlon XP
 AMD Athlong 4
 AMD Athlon MP and Models 6 
 AMD Duron
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}

§A¥i¥H¦b¶}¾÷ªº®É­ÔÁ×¶}¥¦­ÌªºBug: ¦b GRUB ¤¤¿é¤J mem=nopentium
©Î¦b lilo.conf ³]©wÀÉ¤¤¥[¤J : append = "mem=nopentium"



³]©w BIOS ¤¤AGPªº½d³ò¦b 0xEA ©M 0xEE ¤§¶¡. 

½Ð¤É¯Å§Aªº BIOS.

³]©w AGPªº³t²vÀÉ¦ì:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
insmod NVdriver NVreg_ReqAGPRate=2   # ¥u¨Ï¥Î²Ä2ÀÉ
insmod NVdriver NVreg_ReqAGPRate=1   # ¥u¨Ï¥Î²Ä1ÀÉ
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


¤]¥i¥H¦b /etc/modules.conf ³]©wÀÉ¤¤¶i¦æ´y­z:
\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
alias char-major-195 NVdriver
options NVdriver NVreg_ReqAGPRate=2  
options NVdriver NVreg_ReqAGPRate=1 
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}



\subsection{¬°¤°»ò§Úªº OpenGL ³nÅéºC±o­n¦º?}

¥i¯à¥¦ÁÙ¦b¨Ï¥Î¦Ñªº¨ç¦¡®w.






\subsection{¦b½sÄ¶®Ö¤ßÅX°Êµ{¦¡®É¥X²{Äµ°T:}

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
You appear to be compiling the NVdriver kernel module with
        a compiler different from the one that was used to compile
        the running kernel. This may be perfectly fine, but there
        are cases where this can lead to unexpected behaviour and
        system crashes.

        If you know what you are doing and want to override this
        check, you can do so by setting IGNORE_CC_MISMATCH.

        In any other case, set the CC environment variable to the
        name of the compiler that was used to compile the kernel.
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


¨t²Î¤Wªº®Ö¤ß¤£¬O¥Î·í«eªºGCC½sÄ¶ªº, ½Ð­«·s½sÄ¶®Ö¤ß, ¨Ã¦b­«·s±Ò°Ê®É¸ü¤J·s®Ö¤ß.


\subsection{X ±¾±¼¤F, ¨Ã¥X²{Äµ°T"Failed to allocate LUT context DMA"}

¸Ñ¨M¤èªk¦P¤W¤@­Ó°ÝÃD¤@¼Ë.



\end{document}
