Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > dbd5ca9a747c2d10b86b60cc9cea10eb > files > 53

zhcon-0.2.b2-1mdk.i586.rpm

\documentclass[a4paper]{article}
\usepackage{CJK}
\usepackage{html}
\begin{document}
\begin{CJK*}{GB}{fs}
\title{zhconÓû§ÊÖ²á}
\author{ejoy\\
\htmladdnormallink{ejoy@users.sourceforge.net}{mailto:ejoy@users.sourceforge.net}} \maketitle \pagebreak
\section{½éÉÜ}
\subsection{Linux¿ØÖÆ̨ÖÐÎÄ»¯µÄÏÖ×´}
LinuxÊÇÒ»¸ö¹¦ÄÜÇ¿´ó£¬ÐÔÄܳöÖÚ£¬Îȶ¨¿É¿¿µÄ²Ù×÷ϵͳ£¬µ«LinuxÉè¼ÆÖ®³õ²¢Î´¿¼Âǵ½·ÇÓ¢Óï¹ú¼ÒʹÓÃÕßµÄÐèÒª£¬´Ó¶øÔì³ÉÔÚLinuxÉÏʹÓÃÖÐÎĵÄÀ§ÄÑ£¬¼«´óÖÆÔ¼ÁËLinuxÔÚ¹úÄÚµÄÓ¦ÓúÍÆÕ¼°¡£Ëæ×ÅLinuxµÄÆÕ¼°£¬Ò»Ð©ÓÐʶ֮ʿÒѾ­ÔÚÖÐÎÄ»¯¿ÎÌâÉÏÕ¹¿ªÁËÑо¿£¬´ÓÔçÆÚµÄchdrv,yact,wzce,cceµ½ºóÀ´µÄÀ¶µã£¬TurboLinuxºº»¯Äںˣ¬Ðí¶à×ÔÓÉÈí¼þµÄ°®ºÃÕßΪLinuxÖÐÎÄ»¯×÷³öÁ˹±Ïס£

»ùÓÚ×Ö·û½çÃæµÄ¿ØÖÆ̨±¾Éí²¢²»Ö§³ÖµãÕó»¯×Ö·ûÊä³ö£¬ÒªÏëʹ֧֮³ÖÖÐÎÄ£¬±ØÐ뽫¿ØÖÆ̨Çл»µ½Í¼ÐÎģʽ²¢¼ÓÈëÖÐÎĽâÂëÖ§³Ö¡£ÕâЩ¿ØÖÆ̨ÖÐÎĽâ¾ö·½°¸Ê¹Óõļ¼Êõ²»¾¡Ïàͬ£¬»ù±¾ÉÏ¿ÉÒÔ·ÖΪÍâ¹ÒʽºÍÄں˺º»¯Á½ÖÖ·½Ê½¡£Íâ¹Òʽ½â¾ö·½°¸Ê¹ÓÃαÖն˼¼ÊõÀ´¹Ò½ÓÖÐÎÄƽ̨£¬ÓŵãÊDz»ÓÃÖØбàÒëÄںˣ¬È±µãÊǼæÈÝÐÔ²»Ì«ºÃ£¬ÌرðÊÇ¿ØÖÆ̨µÄescape´¦Àí£¬Ï൱À§ÄÑ¡£

ÏÖÓеÄÖÐÎÄƽ̨ÔÚÒ×ÓÃÐÔ£¬¿ÉÀ©Õ¹ÐÔ£¬Ó¦ÓóÌÐò¼æÈÝÐÔ·½Ãæ»ò¶à»òÉÙ´æÔÚ×Ų»×㣬zhcon¾ÍÊÇÔÚÕâÑùµÄ±³¾°Ïµ®ÉúµÄ¡£zhconµÄÄ¿±êÊÇΪÖÐÎÄLinuxʹÓÃÕßÌṩһ¸ö±ã½ÝÒ×ÓõÄÖÐÎÄ»·¾³¡£
\subsection{zhcon¼ò½é}
zhconÊÇÒ»¸ö¹¤×÷ÔÚLinux¿ØÖÆ̨ϵĶàÄÚÂëÖÐÎÄƽ̨¡£ ËüÄܹ»¿ØÖÆ̨ÉÏÏÔʾ¼òÌåÖÐÎÄ¡¢·±ÌåÖÐÎÄ¡¢ÈÕÎÄ¡¢º«ÎĵÈË«×Ö½Ú×Ö·û¡£ µ±Ç°°æ±¾µÄzhconÓµÓÐÒÔÏÂÌØÐÔ:
\begin{itemize}
\item ¹ã·ºµÄÓ²¼þ¼æÈÝÐÔ\\
zhconÖ§³Öframebuffer,vga,libggiÈýÖÖÏÔʾÇý¶¯·½Ê½£¬¿ÉÒÔÖ§³Ö¼¸ºõËùÓеÄÏÔ¿¨¡£ÔÚÄں˱àÒëÓÐFrameBufferÇý¶¯³ÌÐòµÄÇé¿öÏ£¬zhcon½«Ê¹ÓÃFrameBuffer×öºº×ÖÊä³ö£¬Ö§³Ö´Ó640x480x8bpp µ½ 1024x768x32bppµÄ·Ö±çÂÊ¡£Èç¹ûÄúµÄÄÚºËûÓÐÌṩFrameBufferÉ豸µÄÖ§³Ö»òÕß¹¤×÷ÔÚVGAÎı¾Ä£Ê½£¬zhcon½«Ê¹ÓÃÄÚ½¨µÄvgaÇý¶¯£¬Ê¹ÏÔ¿¨¹¤×÷ÔÚ640x480x16ɫģʽÏ¡£´ËÍ⣬ÈôϵͳÖÐ×°ÓÐlibggi£¬zhcon¿ÉÒÔͨ¹ýlibggiÖ§³Ö¸ü¶àµÄÏÔʾӲ¼þºÍÏÔʾģʽ¡£


\item ¶àÄÚÂëÖ§³Ö£¬¼ò·±ÌåÄÚÂë×Ô¶¯×ª»» \\
zhconÖ§³ÖGB2312,GBK,BIG5,JIS,KSCMµÈ¶àÖÖË«×Ö½Ú±àÂ뷽ʽ£¬¿ÉʹÓÃÈȼüÔÚÎåÖÖÄÚÂë¼ä¶¯Ì¬Çл»£¬Í¨¹ýÉèÖã¬zhcon¿ÉÒÔ×Ô¶¯¼ì²âGB2312ºÍBIG5ÄÚÂ룬²¢ÄÜÔÚ¶þÕß¼ä×Ô¶¯×ª»»(ÀàËÆhztty)¡£


\item ¶àÖÖÊäÈë·¨Ö§³Ö\\
¾­¹ýת»»£¬zhconÄܹ»ÓÃWindows98ºÍUCDOSÖеÄÂë±íÊäÈë·¨(×Ô´ø14ÖÖ)¡£Í¬Ê±£¬zhcon»¹Ö§³ÖUNICONµÄÊäÈ뷨ģ¿é£¬¿ÉÒÔºÍChinput¹²ÏíÊäÈë·¨¡£


\item ¶þÖÖÊäÈë·ç¸ñ\\
zhconÔÚ¿ØÖÆ̨ʵÏÖÁËOverspot¹â±ê¸úË淽ʽºÍµ×²¿×´Ì¬Ðз½Ê½¶þÖÖÊäÈë·ç¸ñ£¬½çÃæÃÀ¹Û´ó·½£¬²¢¿É×Ô¶¨ÒåÊäÈëÌõµÄÑÕÉ«¡£


\item ÓÅÐãµÄÖÐÎÄÖƱí·ûʶ±ð\\
zhcon¿ÉÒÔÕýȷʶ±ð¾ø´ó¶àÊýÓ¦ÓóÌÐò(mc,linuxconf...)ÖеÄÖƱí·ûºÅ£¬²»»á³öÏÖÂÒÂë¡£


\item ÀúÊ·ÆÁÄ»ä¯ÀÀ\\
ÔÚzhconÖпÉÒÔËæʱʹÓÃSHIFT-PAGEUP,SHIFT-PAGEDOWN,SHIFT-UP,SHIFT-DOWNÀ´ä¯ÀÀÀúÊ·ÆÁÄ»¡£


\item ¶àµãÕó×ÖÌåÖ§³Ö\\
zhconÖ§³Ö12µãÕó£¬14µãÕó£¬16µãÕó£¬24µãÕóµÈ¶àÖÖ²»Í¬µãÕó×ÖÌåµÄÏÔʾ£¬¿É¸ù¾ÝÆÁÄ»·Ö±çÂʵIJ»Í¬Ñ¡Óò»Í¬µãÕóµÄ×ÖÌåÀ´ÓÅ»¯ÏÔʾЧ¹û¡£


\item ¶ÔFreeBSDµÄÖ§³Ö\\
´ÓV0.2¿ªÊ¼zhconÕýʽÔö¼ÓÁ˶ÔFreeBSDµÄÖ§³Ö¡£
\end{itemize}
\subsection{zhconµÄ»ù±¾¹¤×÷Ô­Àí}
ͨ³£ Linux µÄ¿ØÖÆ̨¹¤×÷ÔÚÎı¾Ä£Ê½Ï£¬ÒªÏëÔÚÆÁÄ»ÉÏÕýÈ·ÏÔʾ£¬ºº×Ö±ØÐ뽫ÆÁÄ»Çл»µ½ ͼÐÎģʽ£¬Õâ¿ÉÒÔͨ¹ýµ÷ÓÃÄÚºË FrameBuffer Çý¶¯³ÌÐòÀ´ÊµÏÖ¡£´ËÍ⣬»¹ÒªÄÜÕýȷʶ±ðϵ ͳÊä³öµ½¿ØÖÆ̨µÄºº×ÖÐÅÏ¢£¬²¢µ÷Óúº×ÖÏÔʾģ¿é½«ÆäÊä³öµ½ÆÁÄ»¡£Ò»ÖÖ·½·¨ÊÇÏñ DOS Ï µÄºº×ÖϵͳËù×öµÄÄÇÑù£ºÀûÓÃϵͳʱÖÓÖж϶¨Ê±¼àÊÓÏÔ´æµØÖ· B800:0000 ´¦µÄÏÔʾ»º³åÇø £¬¶¯Ì¬Ê¶±ð»º³åÇøÖеÄ×Ö·ûÐÅÏ¢¡£ÕâÖÖ·½·¨ÒªÇóÐÞ¸ÄÄÚºËÖÐ¶ÏºÍ TTY Çý¶¯³ÌÐò£¬ÊµÏÖÆðÀ´ ±È½ÏÀ§ÄÑ£¬¶øÇÒÐèÒªÖ±½Ó²Ù×ÝÓ²¼þÊÓƵ»º³åÇø£¬´ó´óÓ°ÏìÁËϵͳµÄ¿ÉÒÆÖ²ÐÔºÍÎȶ¨ÐÔ¡£ÁíÒ» ÖÖ·½·¨¾ÍÊDZ¾ÏµÍ³Ëù²ÉÓõĻùÓÚαÖնˣ¨ Pseudo-Terminals £©µÄÍâ¹Òʽ½â¾ö·½°¸¡£ αÖնˣ¨ Pseudo-Terminal £©ÊÇÒ»ÖÖÀàËÆÓÚÖն˵ÄÌØÊâµÄ½ø³Ì¼äͨÐÅͨµÀ£¨ channel £©¡£ ͨµÀµÄÒ»¶Ë±»³ÆΪÖ÷É豸£¨ master pseudo-terminal device £©£¬ÁíÒ»¶Ë±»³ÆΪ´ÓÉ豸¡£> дÈëÖ÷É豸µÄÊý¾Ý±»·¢Ë͵½´ÓÉ豸£¬¶øдÈë´ÓÉ豸µÄÊý¾ÝÒ²¿É´ÓÖ÷É豸¶Á³ö£¬¶ÔÓû§À´Ëµ¾Í ºÃÏñ×Ô¼ºÊµ¼ÊÉÏÁ¬½Óµ½ÁËÕæÕýµÄ¼ÆËã»úÖÕ¶ËÖ®ÉÏ¡£¼ò¶øÑÔÖ®£¬Î±ÖÕ¶ËÊÇλÓÚÐéÄâÖն˺Í×îÖÕ ÖÕ¶ËÉ豸֮¼äµÄÒ»Öֳе£×ÅÊäÈëÊä³öת»»¹¦ÄܵÄÉ豸¡£

αÖն˵®ÉúÖ®³õ¾ÍµÃµ½Á˹㷺ӦÓ㬵äÐ͵ÄÀý×ÓÊÇTelnet·þÎñ³ÌÐò¡£TelnetÊÇÒ»ÖÖÔ¶³ÌµÇ¼ ·þÎñ£¬Óû§Ê¹ÓÃTelnet¿Í»§¶Ë³ÌÐòͨ¹ýÍøÂçµÇ¼µ½Ô¶³ÌÖ÷»úÖ®ÉϽøÐи÷ÖÖ²Ù×÷¡£Telnet·þÎñ ³ÌÐò¾ÍÊÇÒ»¸öαÖնˣ¬Ò»¶ËÁ¬½Óµ½Telnet¿Í»§¶Ë³ÌÐò£¬ÁíÒ»¶ËÁ¬½Óµ½Ö÷»úÓ¦ÓóÌÐò£¬¿Í»§ºÍ Ó¦ÓóÌÐòÖ®¼äͨ¹ýαÖն˽øÐжԻ°¡£

µ±Ó¦ÓóÌÐòÐèÒª´ÓÊäÈëÉ豸£¨¼üÅÌ£©¶ÁÈëÊý¾Ýʱ£¬ËüÏò¿ØÖÆ̨É豸£¨ /dev/console £©·¢³ö ϵͳµ÷Óà read() £¬½Ó×ÅÄÚºË console Çý¶¯ÏìÓ¦¸ÃϵͳÇëÇ󣬴ÓÊäÈëÉ豸Çý¶¯³ÌÐò£¨Í¨³£ Ϊ¼üÅÌÇý¶¯ keyboard.c £©»ñµÃÊäÈëÊý¾Ý£¬²¢½«Ö®·µ»Ø¸øÓ¦ÓóÌÐò¡£¶øµ±Ó¦ÓóÌÐòÐèÒªÏë¿Ø ÖÆ̨Êä³öÊý¾Ýʱ£¬Ëüͨ¹ý write() ϵͳµ÷Óý«Êý¾Ý·¢ËÍÖÁ console É豸£¬ÔÙÓÉÄÚºË console Çý¶¯×ª·¢µ½ÕæÕýµÄÊä³öÉ豸£¨Öնˡ¢´òÓ¡»ú£®£®£®£®£®£®£©ÉÏÈ¥¡£

ͨ¹ýÒÔÉÏ·ÖÎö¿ÉÒÔ·¢ÏÖÈç¹ûÔÚÓ¦ÓóÌÐò´Ó¿ØÖÆ̨É豸£¨ /dev/console £©¶ÁÈëÊý¾Ý֮ǰ½Ø»ñ ¼üÅÌÊäÈëÐÅÏ¢£¬²¢Ìá½»ÊäÈ뷨ģ¿é´¦Àí£¬ÔÙ½«´¦ÀíºóµÃµ½µÄÖÐÓ¢ÎÄÐÅÏ¢·¢ËÍÖÁÓ¦ÓóÌÐò¼´¿É Íê³ÉÖÐÎÄÊäÈë¡£¶øÔÚÓ¦ÓóÌÐò½«Êä³öÊý¾ÝдÈë /dev/console É豸֮ǰ½Ø»ñÊä³ö²¢½»Óɺº×Ö Ê¶±ðÄ£¿é´¦Àí£¬×îÖÕÓɺº×ÖÏÔʾģ¿éÊä³öÖÁÆÁÄ»£¬¼´¿ÉʵÏÖÖÐÓ¢ÎÄÊä³ö¡£
\section{ÏÂÔغͰ²×°}
\subsection{ϵͳÐèÇó}
zhconÊÇÒ»¸ö±ê×¼µÄLinux¿ØÖÆ̨³ÌÐò£¬ÎªÁ˱àÒëºÍÔËÐÐzhconÄúÐèÒªÒÔÏÂÈí¼þ£º

\begin{itemize}
\item  ÔËÐÐÄں˰汾2.2ÒÔÉϵÄLinuxϵͳ(»òFreeBSD)¡£½¨ÒéÔÚ±àÒëÄں˽ø¼ÓÈë¶ÔFrameBufferµÄÖ§³Ö¡£
GNU C++(gcc).½¨ÒéʹÓÃgcc 2.95.2ÒÔÉÏ°æ±¾¡£
\item GNU autoconf/automake
\item UNICON\&Chinput(¿ÉÑ¡)
\item libggi(¿ÉÑ¡)
\end{itemize}
µ½Ä¿Ç°ÎªÖ¹£¬zhconÒѾ­ÄÜÔÚÏÂÁÐϵͳÉÏÕý³£ÔËÐУº
\begin{itemize}
\item RedHat 6.2,7.1
\item Mandrake 8.1
\item Debian 2.2,woody
\item Slackware
\item FreeBSD(???)
\end{itemize}
Èç¹ûÄúÔÚÆäËüƽ̨ÉϵÄϵͳҲÄÜÔËÐÐzhcon£¬Çëemail¸æËßÎÒÃÇ¡£
\subsection{ÏÂÔØ}
×îа汾µÄÔ´´úÂë¿ÉÒÔ´ÓzhconµÄÕ¾µã:zhcon.gnuchina.orgÉÏÏÂÔØ¡£ ÏÂÔصÄÊÇÒ»¸öÔ´Âë°ü£¨ÒÔv0.2ΪÀý£©£ºzhcon-0.2.tar.gz

Ê×ÏȽ«Ô´´úÂë½â¿ªµ½Ò»¸öÁÙʱĿ¼£º
\begin{verbatim}
tar zxf zhcon-0.2.tar.gz -C /tmp
cd /tmp/zhcon-0.2
\end{verbatim}
È»ºóÔËÐÐconfigure½Å±¾¼ì²éϵͳ±àÒë»·¾³£¬´´½¨Makefile:
\begin{verbatim}
./configure
\end{verbatim}
ÕâʱÆÁÄ»ÉÏ»á³öÏֺܶà¼ì²âÐÅÏ¢£¬Èç¹ûûÓÐÎÊÌâµÄ»°½Ó×ÅÖ´ÐÐmake¿ªÊ¼±àÒëÔ´´úÂ룺
\begin{verbatim}
make
\end{verbatim}
±àÒëÍê³ÉºóÇл»µ½rootÓû§Ö´ÐÐmake install°²×°¿ÉÖ´ÐÐÎļþ²¢É¾³ýÁÙʱĿ¼:
\begin{verbatim}
su
make install
cd ..
rm -rf /tmp/zhcon-0.2
\end{verbatim}
ÖÁ´Ë£¬zhconÒѾ­³É¹¦°²×°µ½ÄúµÄϵͳÖС£ÔÚ¿ØÖÆִ̨ÐÐzhcon¾ÍÄܽøÈëÖÐÎÄ»·¾³¡£ Èç¹ûÄúÏëжÔØzhconÇëÒÔrootÉí·ÝµÇ½²¢Ö´ÐУº
\begin{verbatim}
make uninstall
\end{verbatim}
¾ÍÄÜÍê³ÉжÔØ¡£
\section{ʹÓÃÖ¸ÄÏ}
\subsection{ÉèÖÃÏÔʾģʽ}
ÒªÔÚ¿ØÖÆ̨ÉÏÏÔʾÖÐÎÄ£¬Ê×ÏÈҪʹ¿ØÖÆ̨½øÈëͼÐÎ״̬¡£zhconÄ¿Ç°Ö§³ÖFrameBuffer,libggi,vgaÈýÖÖͼÐÎÇý¶¯¡£zhconÔÚ×°ÔØʱ»á¼ì²âÊÇ·ñ´æÔÚFrameBufferͼÐÎÇý¶¯£¬Èç¹ûûÓУ¬ÔòÖ±½Ó¶ÔVGA½øÐпØÖÆ£¬½øÈë640X480µÄ16ɫͼÐÎģʽ¡£ÕâÑù£¬ÉõÖÁ²»ÐèÒªÖØбàÒëÄںˣ¬Ò²¿ÉÒÔ×°Ôغº×Öϵͳ¡£
\begin{itemize}
\item FrameBuffer:
FrameBuffer¿ÉÒÔÒë×÷¡°Ö¡»º³å¡±£¬ÕâÊÇÒ»ÖÖ¶ÀÁ¢ÓÚÓ²¼þµÄ³éÏóͼÐÎÉ豸¡£ FrameBufferµÄÓŵãÔÚÓÚÆä¸ß¶ÈµÄ¿ÉÒÆÖ²ÐÔ£¬Ò×ʹÓÃÐÔÉÏÎȶ¨ÐÔ¡£ fbdrvÊÇLinux kernelºÜÔç¾ÍÌṩµÄͼÐÎÇý¶¯£¬ËüÉõÖÁ¿ÉÒÔ×÷ΪX WindowµÄµ×²ãÇý¶¯£¬²»¹ýÓÐЩLinuxµÄ°æ±¾²¢Ã»ÓаÑËü±àÒëµ½ºËÐÄÖУ¬»òÊÇûÓÐȱʡµÄÅäÖúÍʹÓÃËü¡£¼òµ¥µØÐÞ¸Ä/etc/lilo.cfg£¬Ö´ÐÐlilo -v£¬ÖØÆô¶¯¼ÆËã»úÈç¹ûÄúÐÒÔ˵Ļ°£¬¾Í¿ÉÒÔ¿´µ½¿É°®µÄÆó¶ìͼ±êÁË¡£
fbdrv¿ÉÒÔÖ§³ÖºÜ¶àÀϵÄÏÔ¿¨£¬ÈçVGA£¬EGA£¬´óÁ¦Éñµ¥ÏԵȣ¬Ò²Ö§³Ö×îеÄVESA 2.0±ê×¼¡£ËùÒÔ£¬¾¡Á¿Ñ¡ÓÃfbdrv£¬¿ÉÒԵõ½×î¼Ñ¡¢×î¿ìµÄÏÔʾ£¬Ê¹zhcon¿ÉÒÔÔËÐÐÔÚ640X480X8bppµ½1024x768x32bpp£¬Ò²¾ÍÊÇ˵¿ÉÒÔ³ä·Ö·¢»ÓÏÔ¿¨ºÍÏÔʾÆÁµÄÍþÁ¦¡£Ê¹ÓÃLinuxÄں˵ÄFrameBufferÇý¶¯£¨vesafb£©£¬¿ÉÒÔÇáËÉÖ§³Öµ½1024X768X32bppÒÔÉϵķֱçÂÊ¡£ FrameBufferÊÇÍƼöʹÓõÄÇý¶¯·½Ê½¡£ ¿ÉÒÔÔÚϵͳÆô¶¯Ê±Ïòkernel´«ËÍvga=mode-numberµÄ²ÎÊýÀ´¼¤»îFrameBufferÉ豸£¬È磺
lilo:linux vga=305 ½«»áÆô¶¯1024X768X8bppģʽ¡£

ϱíÁгöÁ˲»Í¬É«²ÊģʽºÍÏàÓ¦µÄ²ÎÊý£º

\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
É«Éî&
640x400&
640x480&
800x600&
1024x768&
1280x1024&
1600x1200\\
\hline
\hline
4bits&
?&
?&
0x302&
?&
?&
?\\
\hline
8bits&
0x300&
0x301&
0x303&
0x305&
0x307&
0x31C\\
\hline
15bits&
?&
0x310&
0x313&
0x316&
0x319&
0x31D\\
\hline
16bits&
?&
0x311&
0x314&
0x317&
0x31A&
0x31E\\
\hline
24bits&
?&
0x312&
0x315&
0x318&
0x31B&
0x31F\\
\hline
32bits&
?&
?&
?&
?&
?&
?\\
\hline
\end{tabular}
ÓйØFrameBuffer¸üÏêϸµÄÐÅÏ¢Çë²ÎÔÄ£º\textit{/usr/src/linux/Documentation/fb/vesafb.txt ºÍ£¼£¼Framebuffer HOWTO£¾£¾}

\item libggi:\\
libggiÊÇÒ»¸ö¿çƽ̨µÄ»æͼ¿â¡£ ÓÉÓÚfbdrvÖ§³ÖµÄÏÔʾÀàÐͺܶ࣬Çý¶¯·½Ê½ÓÖ²»Í³Ò»£¬zhconÖ»ÄÚ½¨ÁË×î³£ÓõÄ4bppµ½32bppµÄVESA 2.0Ö§³Ö£¬ÆäËüµÄÏÔʾÀàÐÍÔò͸¹ýlibggiµÄͳһͼÐνӿÚÌṩ֧³Ö£¬ËùÒÔzhconʵ¼ÊÉÏ¿ÉÒÔÖ§³Ö¸ü¶àµÄfbdrv£¬Ö»ÒªÊÇlibggiÖ§³ÖµÄ¡£
ÔÚLinuxÉÏ£¬libggiÊÇͨ¹ýµ÷ÓÃFrameBuffer»òsvgalibÀ´Íê³ÉͼÐβÙ×÷µÄ£¬Òò´ËËٶȱȽÏÂý¡£ µ«ÔÚijЩ²»Ö§³ÖFrameBufferºÍvgaµÄϵͳÉÏ¿ÉÒÔͨ¹ýlibggiÀ´Íê³É»æͼ²Ù×÷¡£

ҪʹÓÃlibggi£¬ÐèÒªÉèÖÃGGI\_DISPLAY»·¾³±äÁ¿£¬ÀýÈ磺
ÔÚ.bash\_profileÖмÓÈëexport GGI\_DISPLAY=display-fbdev:-noinput
½«Ê¹ÓÃlibggiÌṩµÄ½Ó¿ÚÀ´Íê³ÉͼÐÎÊä³ö£¨Ê¹ÓÃFrameBuffer£©¡£¸üÏêϸµÄÐÅÏ¢Çë²ÎÔÄlibggiµÄÎĵµ¡£

\item vga:\\
Èç¹ûÄúµÄÄں˲¢Ã»ÓбàÒë½ø¶ÔFrameBufferµÄÖ§³Ö£¬ÄÇô¿ÉÒÔʹÓÃÄÚ½¨µÄvgaÇý¶¯À´Ê¹ÏÔÄ¿¹¤×÷ÔÚ640X480X16É«µÄģʽÏ¡£ÒòΪvgaÇý¶¯ÊÇÖ±½Ó¶ÔÏÔ¿¨ÉϵÄ
¼Ä´æÆ÷²Ù×÷£¬ËùÒÔÕâÖÖ·½Ê½µÄÒÆÖ²ÐԺܲ
\end{itemize}

ϵͳÆô¶¯Ê±»á°´ÒÔÏÂ˳ÐòÀ´Ñ¡ÔñͼÐÎÇý¶¯£ºlibggi£¨Èç¹ûÉèÖÃÁË»·¾³±äÁ¿GGI\_DISPLAY£©,framebuffer,vga.
\subsection{¶àÄÚÂëÖ§³Ö}
¶àÄÚÂëÖ§³Ö zhconÊÇÒ»¸ö¶àÄÚÂëÖÐÎÄƽ̨¡£Ä¿Ç°Ö§³ÖGB2312,GBK,BIG5,JIS,KSCMµÈ¶àÖÖÄÚÂë¡£ ÔÚϵͳÔËÐÐʱ¿ÉÒÔͨ¹ýÈȼüCTRL-F1 - CTRL-F5ÔÚÒÔÉϼ¸ÖÖ±àÂ뷽ʽ¼äÇл»¡£

zhcon»¹ÓÐÒ»¸öÄÚÂë×Ô¶¯×ª»»µÄÌØÐÔ¡£¿ÉÒÔÔÚGB2312ºÍBIGÄÚÂëÖ®¼ä×Ô¶¯Ê¶±ð£¬×ª»»¡£ ʹÓÃCTRL-F9¿ÉÒÔÔÚmanual,auto,auto-gb,auto-b5ËÄÖÖ·½Ê½¼äÇл»£º
\begin{itemize}
\item manual£ºÐèÒªÊÖ¹¤Çл»ÄÚÂë
\item auto:ϵͳ×Ô¶¯Ê¶±ðGB2312ºÍBIG5Âë
\item auto-gb:ϵͳ×Ô¶¯Ê¶±ðGB2312ºÍBIG5Â룬²¢Ê¹ÓüòÌå×Ö¿âÀ´ÏÔʾºº×Ö
\item auto-b5:ϵͳ×Ô¶¯Ê¶±ðGB2312ºÍBIG5Â룬²¢Ê¹Ó÷±Ìå×Ö¿âÀ´ÏÔʾºº×Ö
\end{itemize}
\textbf{\textit{×¢Ò⣺ÄÚÂë×Ô¶¯Ê¶±ð¹¦ÄܽöÊÊÓÃÓÚGB2312ºÍBIG5Ö®¼äµÄ×Ô¶¯×ª»»ºÍʶ±ð¡£} }
\subsection{¶àµãÕó×ÖÌåÖ§³Ö}
ÓëÆäËüµÄ¿ØÖÆ̨ÖÐÎÄƽ̨һÑù£¬zhconʹÓõãÕó×ÖÌåÏÔʾºº×Ö¡£ Ä¿Ç°£¬zhconʹÓÃÒ»ÖÖÔÚ±ê×¼µÄLinux PSF×ÖÌå¸ñʽµÄ»ù´¡ÉÏÀ©Õ¹Á˵ÄBPSF¸ñʽÀ´´æ·Å×Ö¿â¡£¶Ô¸Ã¸ñʽµÄÏêϸÃèÊö¿É²ÎÔÄ\textit{doc/bpsf.txt} ¡£

µ±Ç°°æ±¾µÄzhconÖ§³Ö12,14,16,24µÈ¶àÖÖµãÕó×ÖÌå¡£ ÔÚ·Ö±çÂʽϵ͵ÄÇé¿öÏ£¨640X480£©¿ÉÒÔ¿¼ÂÇʹÓÃ12µãÕó×ÖÌåÀ´ÏÔʾºº×Ö£» Ôڸ߷ֱçÂʵÄÇé¿öÏ£¨>=1024X768£©Ôò¿ÉÒÔʹÓÃ24µãÕó×ÖÌåÀ´ÓÅ»¯ÏÔʾЧ¹û¡£

ËùÓÐ×ÖÌåÎļþ¶¼´æ·ÅÔÚ\$prefix/lib/zhcon/font/Ŀ¼Ï¡£ ¿ÉÒÔͨ¹ýÐÞ¸ÄÅäÖÃÎļþzhcon.conf»ò.zhconrcÖеÄ\textit{ascfont}
ºÍ(\textit{gbkfont,big5font,jisfont,kscmfont}  )À´Ñ¡Ôñ²»Í¬µÄ×ÖÌ壬È磺
\begin{verbatim}
ascfont = font/asc16.bpsf
gbfont = font/gb-16.bpsf
gbkfont = font/gbk-16.bpsf
big5font = font/big5-16.bpsf
jisfont = font/jis-16.bpsf
kscmfont = font/kscm-16.bpsf
½«Ê¹ÓÃ16µãÕó×ÖÌå¡£
ascfont = font/asc12.bpsf
gbfont = font/hzk12.bpsf
½«Ê¹ÓÃ12µãÕó×ÖÌåÏÔʾ¼òÌ庺×Ö¡£
ascfont = font/asc24.bpsf
gbfont = font/gb-24-kai.bpsf
½«Ê¹ÓÃ24µãÕó¿¬Ìå×ÖÏÔʾ¼òÌ庺×Ö¡£
\end{verbatim}
\subsection{ÖÐÎÄÊäÈë}
zhconÖ§³ÖÁ½ÖÖÊäÈë·ç¸ñ£º¹â±ê¸úË淽ʽºÍµ×²¿×´Ì¬Ðз½Ê½¡£ ¹â±ê¸úËæÊÇÖ¸ÍâÂë´°ºÍºòÑ¡´°Ê¼ÖÕÔÚÊäÈë¹â±ê¸½½ü³öÏÖ²¢×Ô¶¯¸úËæ¹â±êÒƶ¯£¬ ÒÔʹÓû§ÔÚÖÐÎÄÊäÈëʱ¾ßÓÐÁ¼ºÃµÄÊÓ¾õЧ¹û¡£ ¿ÉÒÔËæʱÓÃCTRL-F7ºÍCTRL-F8ÔÚÕâÁ½ÖÖ·½Ê½¼äÇл»¡£

ʹÓÃCtrl+.£¨¾äºÅ£©¼üÇл»ÖÐÓ¢Îıêµã״̬¡£ ʹÓÃCTRL+,£¨¶ººÅ£©¼üÇл»È«½Ç/°ë½Ç״̬¡£

ϵͳÔËÐÐʱ¿ÉËæʱʹÓÃCTRL-ALT-H¼üÀ´¼¤»î°ïÖú´°¿Ú²é¿´Èȼü¶¨Òå¡£
\subsection{ÅäÖÃÎļþ}
ϵͳÆô¶¯Ê±ÏÈÔÚÓû§Ä¿Â¼Ñ°ÕÒ.zhconrcÎļþ£¬Èç¹ûûÓиÃÎļþ¾ÍʹÓÃ\$prefix/lib/zhcon/zhcon.confÖеÄÉèÖá£

Äú¿ÉÒÔͨ¹ý¶¨ÖÆzhcon.conf/.zhconrcÖеÄÄÚÈÝÀ´¸öÐÔ»¯zhcon¡£ ¾ßÌåµÄ¶¨ÖÆÐÅÏ¢Çë¼û¸ÃÎļþÖеÄ×¢ÊÍ¡£
\subsection{zhconÈȼüÒ»ÀÀ}
ϱíÁгöÁ˵±Ç°ÏµÍ³ÖпÉÓõÄÈȼü:

\begin{tabular}{|c|c|}
\hline
°´¼ü&
¹¦ÄÜ\\
\hline
\hline
CTRL-SPACE&
´ò¿ª/¹Ø±ÕÊäÈë·¨\\
\hline
ALT -SPACE&
´ò¿ª/¹Ø±ÕCJK·½Ê½\\
\hline
CTRL\_F1&
ʹÓÃGB2312±àÂë\\
\hline
CTRL\_F2&
ʹÓÃGBK±àÂë\\
\hline
CTRL\_F3&
ʹÓÃBIG5±àÂë\\
\hline
CTRL\_F4&
ʹÓÃJIS±àÂë\\
\hline
CTRL\_F5&
ʹÓÃKSCM±àÂë\\
\hline
CTRL\_F7&
Çл»ÊäÈë·ç¸ñ\\
\hline
CTRL\_F9&
Çл»×Ô¶¯±àÂ뷽ʽ\\
\hline
CTRL\_F10&
ϵͳ²Ëµ¥\\
\hline
CTRL\_ALT\_H&
°ïÖú´°¿Ú\\
\hline
CTRL\_ALT\_0&
½øÈëÌáʾ״̬\\
\hline
CTRL\_ALT\_1 -- CTRL\_ALT\_9&
Ñ¡ÔñÊäÈë·¨\\
\hline
SHIFT\_PAGEUP&
ÉϾí°ëÆÁÀúÊ·ÐÅÏ¢\\
\hline
SHIFT\_PAGEDOWN&
Ͼí°ëÆÁÀúÊ·ÐÅÏ¢\\
\hline
SHIFT\_ARROWUP&
ÉϾíÒ»ÐÐÀúÊ·ÐÅÏ¢\\
\hline
SHIFT\_ARROWDOWN&
ϾíÒ»ÐÐÀúÊ·ÐÅÏ¢\\
\hline
\end{tabular}
\section{¿ª·¢¼Æ»®}
±àдzhconµÄ³õÖÔÊÇΪ¹ã´óLinux°®ºÃÕßÌṩһ¸ö±ã½ÝµÄ¿ØÖÆ̨ÖÐÎÄʹÓû·¾³Ä¿Ç°zhconÈÔÔ¶·ÇÍêÃÀ£¬»¹ÔÚ²»¶Ï¸Ä½øÖ®ÖС£ zhconÊÇ¿ª·ÅÔ´´úÂëµÄ×ÔÓÉÈí¼þ£¬ÔÚGPL°æȨÏ·¢ÐУ¬»¶Ó­¶ÔLinuxÖÐÎÄ¿ª·¢ÓÐÐËȤµÄÅóÓÑ¼Ó È뿪·¢£¬Ô¸ÎÒÃǵĹ²Í¬Å¬Á¦ÄÜΪLinuxÖÐÎÄ»¯×÷³öÒ»µã¹±Ïס£

zhconµÄÖ÷Ò³ÔÚ\htmladdnormallink{http://zhcon.gnuchina.org}{http://zhcon.gnuchina.org}.ÏîÄ¿µÄ¿ª·¢Ò³ÃæÔÚ
\htmladdnormallink{http://sourceforge.net/projects/zhcon}{http://sourceforge.net/projects/zhcon}ͨ¹ý¸ÃÒ³Ãæ¿ÉÒÔ·ÃÎʵ½zhconÏîÄ¿µÄһЩÏà
¹Ø ЊϢ¡£ ½¨Òé¶Ôzhcon¿ª·¢ÓÐÐËȤµÄÅóÓѼÓÈëÏÂÃæµÄÓʼþÁбízhcon-devel£¬ÈκÎʹÓ㬿ª·¢·½ÃæµÄÎÊÌⶼ¿ÉÒÔ·¢Ðŵ½£º
\htmladdnormallink{zhcon-devel@lists.sourceforge.net}{mailto:zhcon-devel@lists.s
ourceforge.net}.
\section{ÖÂл}
ÔÚ¿ª·¢zhconµÄ¹ý³ÌÖУ¬ÎÒÃǵõ½ÁËÐí¶àÅóÓѵİïÖú£¬ÔÚ´ËÏòËûÃDZíʾÕæ³ÏµÄ¸Ðл£¨¼ûTHANKSÎļþ£¬Èç¹û²»É÷ÒÅ©ÁËÄúµÄÃû×Ö£¬Ç뷢ПøÎÒÃÇ£©¡£

ͬʱҲҪ¸Ðл
\htmladdnormallink{www.gnuchina.org}{http://www.gnuchina.org}
ΪzhconÌṩÖ÷Ò³¿Õ¼ä¡£ 
\end{CJK*}
\end{document}