\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{Linux¥H¤Óºô-HOWTO}
\author{by Paul Gortmaker}
\date{v2.8, Oct 29, 2000}
\abstract{      ¥»¤å¬°¥H¤Óºô-HOWTO¡A¶×¶°¤F¦³Ãö­þ¨Ç¥H¤Óºô¸Ë¸m¥i¥H¥Î¤_Linux¡A¥H¤Î¦p¦ó¶i¦æ³]¸mªº«H®§¡C½Ðª`·N¥»¤å°¼­«¤_¥H¤Óºô¥dªºµw¥ó»P©³¼hÅX°Ê¤è­±ªº¤º®e¡A¦}¥¼²[»\½Ñ¦p{\ttfamily ifconfig}©M{\ttfamily route}µ¥³n¥ó¤è­±ªº°ÝÃD¡C¹ï¤_¨º¨Ç°ÝÃD¡A½Ð°Ñ¾\Network-HOWTO¡C}


\begin{document}
\maketitle
\tableofcontents

\section{¾É¨¥\label{main-intro}}



¥H¤Óºô-HOWTO¥]¬A¤F¸Ó¶R¤°¤\ºô¥d»P¤£¸Ó¶R¤°¤\ºô¥d¡Q¦p¦ó³]¸mºô¥d¡A«ç¼Ë¹B¦æ¦h­Óºô¥d¡A¥H¤Î¨ä¥¦±`¨£¿ù»~©M°ÝÃD¡C¥¦¥]§t¤F¹ï¥Ø«e©Ò¦³¯à°÷±o¨ìªº³Ì±`¨£ºô¥dªº¤ä«ùªº²Ó¸`¸ê®Æ¡C

¥¦{\itshape ¤£\/}¥]§t¦³Ãö³n¥ó¤è­±ªº¤º®e¡A¦]¬°NET-3 Howto¤¤¥]§t¤F³o¨Ç¤º®e¡CÁÙ­nª`·N³o¨½¤£¥]¬A¡]©ÎªÌ¦Ü¤Ö¤£À³·í¥]¬A¡^¨º¨Ç«DLinux¯S¦³ªº¦³Ãö¥H¤Óºôªº¤@¯ë°ÝÃDªº¸Ñµª¡C¹ï¤_¨º¨Ç°ÝÃD¡A¥i¥H°Ñ¦Ò{\itshape comp.dcom.lans.ethernet\/}ªºFAQ¤¤ªº¤j¶q¸ê®Æ¡A»P©Ò¦³¨ä¥¦·s»D²ÕFAQ¤@¼Ë³q¹LFTP¨ì{\ttfamily rtfm.mit.edu}Àò¨ú¡C

¥»­×­qª©ÂÐ»\¤FLinux 2.2.17¤Î¨ä¤§«eªº¤º®Öµo¦æª©¥»¡C

¥H¤Óºô-HOWTOªº§@ªÌ¬°:
\begin{quotation}
Paul Gortmaker, {\ttfamily p\_gortmaker@yahoo.com}
\end{quotation}


­ì©lªºASCIIª©¥»ªº¥H¤Óºô-HOWTOªº¥D­n¸ê®Æ¨Ó·½¬°¡G
\begin{quotation}
Donald J. Becker, {\ttfamily becker@scyld.com}
\end{quotation}


·PÁÂ¥L½s¼g¤F³\¦hLinux¥Ø«e¨Ï¥Îªº¥H¤Óºô¥dÅX°Êµ{§Ç¡C¥L¤]¬O³ÌªìªºNFSªA°È¾¹ªº§@ªÌ¡CÁÂÁÂDonald¡I

Copyright (c) 1993-2000 ¥»¤åªºª©Åv©Ò¦³¤H¬°Paul Gortmaker¡C½Ð¾\Åª¥»¤åÀÉµ²§À³BªºÁn©ú»Pª©Åv«H®§(\ref{copyright} {(copyright)})¥H¤F¸Ñ¦³Ãö¤Àµo¥»¤å¤Î³q±`ªº¡§§Ú­Ì¤£¹ï§A¸Õ¹Ï¯}Ãa......ªº¦æ¬°­t³d¡¨¤§Ãþªºªk«ß«H®§¡C




\subsection{¥»¤åÀÉªº·sª©¥»\label{new-doc}}



¥»¤åÀÉªº·sª©¥»¥i¥H±q¦p¤U¥D­¶Àò±o¡G

\nameurl{http://metalab.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html}{Ethernet-HOWTO}

§Æ±æªö¥ÎFTP¤è¦¡©ÎªÌ§Æ±æÀò¨ú«DHTML®æ¦¡¤åÀÉªº¥i¨Ï¥Î¥H¤U¯¸ÂI¡G

\nameurl{ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/}{Sunsite HOWTO Archive}

³o¬O¡§©x¤è¡¨¯¸ÂI¢w¢w¤]¥i¥H¦b¨ä¥¦¦UºØLinux WWW/ftpÃè¹³¯¸ÂI§ä¨ì¥»¤åÀÉ¡C¦b¦³¤F·s¸ê®Æ©Î·sÅX°Êµ{§Ç®É¥»¤åÀÉ±N¶i¦æ§ó·s¡C¦pªG§A¾\Åªªº¤åÀÉ¤w¸g¦s¦b6­Ó¤ë¥H¤W¤F¡A¨º¤\§A»Ý­nÀË¬d¤@¤U¬O§_¤w¸g¦³§ó·s¹Lªºª©¥»¡C

¥»¤åÀÉ¦³¦hºØ®æ¦¡¡]postscript¡Advi¡AASCII¡AHTML¡Aµ¥µ¥¡^¡C±À¯ò¥ÎHTML®æ¦¡ÂsÄý¡]³q¹LWWWÂsÄý¾¹¡^©ÎPostscript/dvi®æ¦¡ÂsÄý¡C³o¨âºØ®æ¦¡³£¥]§t¦³´¶³q¤å¥»ASCII®æ¦¡µLªk´£¨Ñªº¥æ¤e¤Þ¥Î¥\¯à¡C




\subsection{¥H¤Óºô-HOWTOªº¥Îªk\label{using}}



¥Ñ¤_¥»«ü«n¶V¨Ó¶V¤j¡A§A¥i¯à¤£§Æ±æªá¤@­Ó¤U¤È±qÀYÅª¨ì§À¡C¦Ó¥O¤H°ª¿³ªº¬O§A{\itshape ¤£¥²\/}¾\Åª¥þ³¡¤º®e¡CHTML©MPostscript/dviª©¥»³£¦³¤º®e¦Cªí¡A¥i¥HÀ°§U§A§ó§Ö¦a§ä¨ì©Ò»Ýªº¤º®e¡C

¥i¯à§A¬O¥Ñ¤_µLªk¨Ïºô¥d¤u§@¡A¦Ó¥B¤£ª¾¹D¸Ó«ç¤\°µ©ÎªÌ¦p¦óÀË¬d¡A¤~¨Ó¾\Åª¥»¤åÀÉªº¡C¤U¤@¸`(\ref{help} {(À°À°§Ú¢w¢wºô¥d¨S¤ÏÀ³¡I)})´N¬O°w¹ïLinuxªì¾ÇªÌ¦}µ¹¥X¥¿½Tªº«ü¾É¡C

¸g±`¦³¤@¨Ç°ÝÃD³Q¤£¦Pªº¤H°Ý¤F{\itshape ¤@¹M¤S¤@¹M\/}¡C¥i¯à§A¸I¨ìªº¬Y­Ó°ÝÃD´N¬O±`¨£°ÝÃD¤§¤@¡A¦Ó¥B¦b¥»¤åÀÉªºFAQ³¡¤À(\ref{faq} {(±`¨£°ÝÃD)})¤w¸g¦³¤Fµª®×¡C¨C­Ó¤H¦bµo¤å´M¨DÀ°§U¤§«e³£³Ì¦n¥ý¬Ý¤@¤U³o¤@¸`¡C

¦pªG§AÁÙ¨S¦³ºô¥d¡A¨º¤\§A¥i¯à·Q±q¨M©w¶Rºô¥d¶}©l¡C(\ref{what-card} {(¸Ó¬°Linux¶R¤°¤\ºô¥d¡H)})

¦pªG§A¤w¸g¦³¤F¤@¶ô¥H¤Óºô¥d¡A¦ý¤£¯à½T©w¬O§_¥i¥H¦bLinux¤W¨Ï¥Î¥¦¡A¨º¤\§A¥i¯à·QÅª¤@¤U¥]§t¨C¤@­Ó¨î³y¼t®a¤Î¨äºô¥dªº¯S©w«H®§ªº³¹¸`¡C(\ref{card-intro} {(¦³Ãö¾P°â°Ó/¨î³y¼t®a/«¬¸¹ªº«H®§)})

¦pªG§A¹ïLinux³]³ÆÅX°Êµ{§Çªº¤@¨Ç§Þ³N²Ó¸`·P¿³½ì¡A¨º¤\§A¥i¥HÂsÄý¦³¦¹Ãþ«H®§ªº³¹¸`¡C(\ref{tech-intro} {(§Þ³N«H®§)})




\subsection{À°À°§Ú¢w¢wºô¥d¨S¤ÏÀ³¡I\label{help}}



¦n¡A§Oºò±i¡C¤U­±´N§i¶D§A¦p¦ó¸Ñ¨M°ÝÃD¡A§Y¨Ï§A¦¹«e¹ïLinux©Î¥H¤Óºôµw¥ó¤@µL©Òª¾¡C

­º¥ý§A»Ý­n§Ë²M·¡§Aªººô¥dÃþ«¬¡AµM¦Z½T©wLinux¬O§_¦³¦¹Ãþ«¬ºô¥dªºÅX°Êµ{§Ç¡C¥D¾÷¦b±±¨î¤£¦Pªººô¥d®É¨Ï¥Îªº¤èªk¤@¯ë¤]¤£¤@¼Ë¡A¦ÓLinuxÅX°Êµ{§Ç¡]¦pªG¦³ªº¸Ü¡^´N¥H¤¹³\Linux¨Ï¥Î¦¹¥dªº®æ¦¡¥]§t¤F³o¼Ëªº±±¨î«H®§¡C¦pªG§A¨S¦³¤â¥U¤@ÃþªºªF¦èÅý§Aª¾¹Dºô¥dªºÃþ«¬¡A¨º¤\§A¥i¥H¹Á¸Õ³B²z¡§¯«¯µ¡¨ºô¥dªº³¹¸`(°Ñ¦Ò³¹¸`¡G\ref{mystery} {(ÃÑ§O¥¼ª¾ºô¥d)})¡C

²{¦b§Aª¾¹D¤F§Aªººô¥dÃþ«¬¡A¾\Åª¯S©wºô¥d³¹¸`¤¤¦³Ãö§Aªººô¥dªº²Ó¸`¡]°Ñ¦Ò³¹¸`¡G\ref{card-intro} {(¦³Ãö¾P°â°Ó/¨î³y¼t®a/«¬¸¹ªº«H®§)}¡^¡A¨º¨½¥H¦r¥À¶¶§Ç¦C¥X¤Fºô¥d¨î³y¼t®a¡B¦U¦ÛªºÃþ«¬¸¹¥H¤Î¬O§_¦³LinuxÅX°Êµ{§Ç¡C¦pªG¦b¦Cªí¤¤³Qªí©ú¡§¤£¤ä«ù¡¨¡A§A´N¥i¥H©ñ±ó¤F¡C¦pªG±q¤¤§ä¤£¨ì§Aªººô¥d¡A¨º¤\¬Ý¤@¤U§Aªººô¥d¤â¥U¬O§_»¡¥¦»P¬Y­Ó¤wª¾ºô¥dÃþ«¬¡§­Ý®e¡¨¡C¨Ò¦p¦Ü¤Ö¦³¤L¦ÊºØºô¥d»P­ì¨ÓªºNovell NE2000³]­p­Ý®e¡C

°²³]§A¤w¸gµo²{¤F§Aªººô¥d¦³LinuxÅX°Êµ{§Ç¡A²{¦b´N§ä¨ì¦}§Q¥Î¥¦¡C¦]¬°Linux¦³§Aªººô¥dªºÅX°Êµ{§Ç¦}{\itshape ¤£\/}·N¨ýµÛ¥¦¦s¦b¨C¤@­Ó¤º®Ö¤¤¡C¡]¤º®Ö¬O±Ò°Ê®É³Ì¥ý¸ü¤Jªº¾Þ§@¨t²Î®Ö¤ß¡A¥]§t¦UºØµw¥óªºÅX°Êµ{§Ç¡A¥H¤Î¨ä¥¦µ¥µ¥¡C¡^¥i¯à¥u¦³«Ü¤Ö¤L­Ó¹w¥ý¥Í¦¨ªº¤º®Ö¡A©M¤@¤j§å¸û¤pªº§@¬°¤À¥ß¼Ò¶ôªºÅX°Êµ{§Ç¡A©ÎªÌ¬O³\¦hªº¤º®Ö¡AÂÐ»\¤F¤j¶q¤º«ØÅX°Êµ{§Çªº²Õ¦X¡A³o³£§¹¥þ¨ú¨M¤_¬O½Ö¥Í¦¨¤F§A©Ò¨Ï¥ÎªºLinuxµo¦æª©¥»¡C

²{¦bªº¤j¦h¼ÆLinuxµo¦æª©¥»³£´£¨Ñ¤j¶q¸û¤pªº§@¬°¤À¥ß¼Ò¶ôªº¤£¦PÅX°Êµ{§Ç¡C»Ý­nªº¼Ò¶ô³q±`¥i¥H¦b±Ò°Ê¹Lµ{ªº¦Z´Á¸ü¤J¡A©ÎªÌ¦b¦s¨ú¯S©w³]³Æ®É¥H©R¥Oªº§Î¦¡¸ü¤J¤@­ÓÅX°Êµ{§Ç¡C§A»Ý­n¦b¤º®Ö±Ò°Ê¦Z§â¸Ó¼Ò¶ô¥[¸ü¨ì¤º®Ö¤W¡C¬d¾\§A©Ò¥Îªºµo¦æª©¥»¤¤¦³Ãö¦w¸Ë©M¨Ï¥Î¼Ò¶ôªº«H®§¡A¦}°Ñ¦Ò¥»¤åÀÉªº¦³Ãö¼Ò¶ô³¹¸`¡C(\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)})

¦pªG§A¨S¦³§ä¨ì¥]§t§Aªººô¥dÅX°Êµ{§Çªº¤w¥Í¦¨¤º®Ö¡A¤]¨S¦³§ä¨ì¸ÓÅX°Êµ{§Çªº¼Ò¶ô§Î¦¡¡A¨º¤\¥i¯à¬O§Aªººô¥d¤£°÷±`¨£¡A¦Ó¥B»Ý­n§A¦Û¤v¥Í¦¨¤@­Ó¥]§t¸ÓÅX°Êµ{§Çªº¤º®Ö¡C¥u­n§A¤w¸g¦w¸Ë¤FLinux¡A¥Í¦¨¤@­Ó©w¨îªº¤º®Ö¤@ÂI¨à³£¤£Ãø¡C§A¥u­n¹ï¤º®Ö»Ý­n¥]§t¨Ç¤°¤\¦^µª¬O©ÎªÌ¤£¬O¡AµM¦ZÅý¥¦¥Í¦¨´N¦æ¤F¡C¦³¤@­ÓKernel-HowTo¥i¥HÀ°§U§A¡C

¦¹®É§AÁÙ»Ý­n¥H¬YºØ¤è¦¡±Ò°Ê¤º«Ø¤F§AªºÅX°Êµ{§Çªº¤º®Ö¡A©ÎªÌ¥H¼Ò¶ôªº§Î¦¡¸ü¤JÅX°Êµ{§Ç¡C¤j¬ù¤H­Ì¸I¨ìªº°ÝÃD¦³¤@¥b¨à¥X¦b¨S¦³¥H³oºØ©Î¨ººØ¤è¦¡¸ü¤JÅX°Êµ{§Ç¡A©Ò¥H§A·|µo²{ºô¥d²{¦b¤u§@¤F¡C

¦pªG¥¦ÁÙ¤£¤u§@¡A¨º¤\§A»Ý­nµý¹ê¤@¤U¤º®Ö½T¹êÀË´ú¨ì¤Fºô¥d¡C­n°µ¨ì³o¤@ÂI¡A§A»Ý­n¦b¨t²Î±Ò°Ê¥H¤Î©Ò¦³¼Ò¶ô¸ü¤J¤§¦ZÁä¤J{\ttfamily dmesg $|$ more}¡C³o¥i¥HÅý§A¬d¬Ý±Ò°Ê¹Lµ{¤¤¤º®Ö©ÒÅã¥Üªº±Ò°Ê«H®§¡C¦pªGºô¥d³QÀË´ú¨ì¡A§A¥i¥H±q¤¤§ä¨ì¥H{\ttfamily eth0}¶}ÀYªººô¥dÅX°Êµ{§ÇÅã¥Ü«H®§¡A«ü¥Xºô¥d©Ò¨Ï¥ÎªºÅX°Êµ{§Ç¦WºÙ©Mµw¥ó°Ñ¼Æ¡]¤¤Â_³]¸m¡BI/O¦a§}µ¥µ¥¡^¡C¡]ª`·N¡G¦b±Ò°Ê®É¡ALinux·|¦C¥X©Ò¦³¨t²Î¤¤¦w¸ËªºPCI¥d¡AµL½×¬O§_¦³ÅX°Êµ{§Ç¢w¢w¤£­n§â³o­Ó»~»{¬°¨ä¦ZªºÅX°Êµ{§ÇÀË´ú¡I¡^

¦pªG§A¨S¬Ý¨ì³o¼ËªºÅX°Êµ{§ÇÃÑ§O«H®§¡A¨º¤\ÅX°Êµ{§Ç´N¨S¦³ÀË´ú¨ì§Aªººô¥d¡A³o´N¬O°ÝÃD©Ò¦b¡C¬d¬ÝFAQ(\ref{faq} {(±`¨£°ÝÃD)})´M§äºô¥d¥¼ÀË´ú¨ì®É¸Ó°µ¨Ç¤°¤\¡C¦pªG§Aªººô¥d¬ONE2000­Ý®eªº¡A¦bFAQ¤¤¦³¤@¨Ç¦³ÃöNE2000ºô¥dÀË´úªº§Þ¥©¡C

¦pªGºô¥d³QÀË´ú¨ì¤F¡A¦ýÀË´ú«H®§³ø§i¤F¤@¨Ç¿ù»~¡A¤ñ¦p¸ê·½¨R¬ð¡A¨º¤\ÅX°Êµ{§Ç¥i¯àµLªk¥¿±`ªì©l¤Æ¡Aºô¥dÁÙ¬O¤£¥i¥Î¡C³o¤@Ãþªº³Ì±`¨£¿ù»~«H®§¤]¦bFAQ¤¤¦C¥X¨Ó¤F¡A¦}µ¹¥X¤F¬ÛÀ³ªº¸Ñ¨M¤è®×¡C

¦pªGÀË´ú«H®§¬Ý°_¨Ó¨S°ÝÃD¡A¨º¤\¦AÀË¬d¤@¤UÅX°Êµ{§Ç³ø§iªººô¥d¸ê·½¬O§_»Pºô¥dªºª«²z³]¸m¤@­P¡]ºô¥dªºª«²z³]¸m©ÎªÌ¬O³q¹Lºô¥d¤Wªº¸õ½u¡A©ÎªÌ¬Oºô¥d¨î³y¼t®a´£¨Ñªº³n¥ó¤u¨ã§¹¦¨¡C¡^¥¦­Ì¥²¶·§¹¥þ¤@­P¡C¨Ò¦p¡Aºô¥dªº¸õ½u©Î°t¸m¬°IRQ 15¡A¦ÓÅX°Êµ{§Ç¦b±Ò°Ê«H®§¤¤³ø§i¬°IRQ 10¡A¨º¤\´N·|¥X°ÝÃD¡C¦bFAQ¤¤°Q½×¤F³Ì±`¨£ªºÅX°Êµ{§Ç¿ù»~¦aÀË´ú¦UºØºô¥d°t¸m«H®§ªº±¡ªp¡C

²{¦b§A¤w¸g¨Ï§Aªººô¥d¥H¥¿½Tªº°Ñ¼Æ³QÀË´ú¨ì¤F¡A¦ýº@¤@¤Á¥¿±`¡C¦pªGÁÙ¦³°ÝÃD¡A¨º¤\©ÎªÌ¬O³n¥ó°t¸m¦³¿ù¡A©ÎªÌ¬Oµw¥ó°t¸m¦³¿ù¡C³n¥ó°t¸m¿ù»~´N¬O¦b{\ttfamily ifconfig}©M{\ttfamily route}©R¥O¤¤¨S¦³³]¸m¥¿½Tªººôµ¸¦a§}¡A¨ä³B²z²Ó¸`¥i¥H¦bNetwork HowTo©M¡§Network Administrator's Guide¡¨¤¤§ä¨ì¡A¥¦­Ì¥i¯à³£¦b§A¥Î¨Ó¦w¸ËªºCD-ROM¤W¡C

µw¥ó°t¸m¿ù»~¬O¬Y¨Ç¸ê·½¨R¬ð©Î§Ñ°O°t¸m¡]§Y¦b±Ò°Ê®É¨SÀË´ú¨ìÅX°Êµ{§Ç¡^¡A¨Ïºô¥dµLªk¥¿±`¤u§@¡C³q±`¥i¥H¥Î¤LºØ¤£¦Pªº¤èªk¨ÓÀË¬d¡C(1) ¦b{\ttfamily ifconfig}¸Õ¹Ï¥´¶}³]³Æ¨Ó¨Ï¥Î®É³ø§i¥X¿ù«H®§¡A¦p¡§SIOCSFFLAGS: Try again¡¨¡C(2) ÅX°Êµ{§Ç³ø§i{\ttfamily eth0}¥X¿ù«H®§¡]¥Î{\ttfamily dmesg $|$ more}¬d¬Ý¡^©ÎªÌ¨C¦¸¸Õ¹Ïµo°e©Î±µ¦¬¼Æ¾Ú®É©_©Çªº¤£¤@­P¡C(3) Áä¤J{\ttfamily cat /proc/net/dev}¨ÓÅã¥Ü{\ttfamily eth0}ªºerrs¡Bdrop¡Bfifo¡Bframe©Îcarrier¦C¤¤ªº«D¹s¼Æ¦r¡C(4) Áä¤J{\ttfamily cat /proc/interrupts}Åã¥Üºô¥dªº¹s¤¤Â_­p¼Æ¡C¤j¦h¼Æ¨å«¬ªºµw¥ó°t¸m¿ù»~¤]¦bFAQ¤¤¶i¦æ¤F°Q½×¡C

¦n§a¡A¦pªG§A²{¦bÁÙ¦³³Â·Ð¡A¾\Åª¥»¤åÀÉªºFAQ¡A¾\Åª¦³Ãö¾P°â°Ó³¹¸`¤¤¦³Ãö§Aªººô¥dªº²Ó¸`¡A{\itshape ¦pªG°ÝÃDÁÙ¨S¸Ñ¨M\/}¡A¨º¤\§A¥u¦n¨D§U¤_¬Y­Ó¬ÛÀ³ªº·s»D²Õ¤F¡C¦b¨D§U¤å³¹¤¤½Ðµ¹¥X©Ò¦³¬ÛÃöªº²Ó¸`¸ê®Æ¡A¤ñ¦pºô¥d°Ó¼Ð¡B¤º®Öª©¥»¡BÅX°Êµ{§Çªº±Ò°Ê«H®§¡B{\ttfamily cat /proc/net/dev}ªº¿é¥X¡B²M´·ªº°ÝÃD´y­z¡A·íµMÁÙ¦³§A¦b¸Õ¹Ï¸Ñ¨M°ÝÃD®É¹Á¸Õªö¥Îªº¤èªk¡C

§A¥i¯à·|©_©Ç¦³¨º¤\¦hªº¤Hµo¥X½Ñ¦p¡§Can someone help me? My ethernet doesn't work.¡¨¦Ó¨S¦³¨ä¥¦¤º®eªºµL¥Î«H¥ó¡C·s»D²ÕªºÅªªÌ¤@¯ë·|©¿²¤±¼³o¨Ç·MÄøªº«H¥ó¡A¦Ó¸Ô²Óªº¦³¤º®eªº°ÝÃD´y­z«h·|Åý¡§Linux±M®a¡¨¥ß§Y«ü¥X§Aªº°ÝÃD©Ò¦b¡C·íµM¦b¥Î¹q¤l¶l¥óµo°e°ÝÃD³ø§i®É³o¤]¦P¼Ë¦¨¥ß¢w¢wÁ`¬O´£¨ÑºÉ¥i¯à¦hªº«H®§¡C






\subsection{ºô¥dÀ³¸Ó¤ä«ùªº¹qÆlÃþ«¬\label{cable-intro}}



¨Ï¥ÎRJ-45¡]¤jªº¹q¸Ü´¡ÀY¡^³s±µ¾¹ªºÂùµ±½u±q§Þ³N¤W¨Ó»¡¥s°µ10BaseT¡C§A¥i¯àÅ¥¨ì¹L¥¦³QºÙ¬°UTP¡]µL«Ì½ªÂùµ±½u¡^¡C

¨Ï¥ÎBNC¡]ª÷ÄÝªº±À¶i©M±ÛÂàÂê©w¡^³s±µ¾¹ªº¥H¤Óºô²ÓÆl¡]RG-58¦P¶b¹qÆl¡^±q§Þ³N¤W¨Ó»¡¥s°µ10Base2¡C

¥u·|¦b¦­´Áªº¸Ë¸m¤Wµo²{ªº¦Ñ¦¡¥H¤Óºô²ÊÆl¡]10mm¦P¶b¹qÆl¡^³QºÙ¬°10Base5¡C¦b¬Y¨Ç¥H¤Óºô¥d¤W¨Ï¥Îªº15°wD§Î´¡®y¡]AUI³s±µ¾¹¡^¬O¥Î¨Ó³s±µ¥H¤Óºô²ÊÆl©M¥~³¡¦¬µo¾¹ªº¡C

¤j¦h¼Æ¥H¤Óºô¥d³£¦³»ù®æµy°ª\$10-\$20ªº¡§Combo¡¨ª©¥»¡C¥¦­Ì¦P®É´£¨ÑÂùµ±½u©M²ÓÆl¥H¤Óºô¦¬µo¾¹¡A¥i¥HÅý§A¥H¦Z§ïÅÜ¥D·N¡C

¤j¦h¼Æ¸Ë¸m¨Ï¥Î10BaseT /100BaseT¡A¦]¬°10Base2µLªk¤É¯Å¬°100Base¤§Ãþªººôµ¸¡C10Base2¹ï¤_¦]¬°¬YºØ­ì¦]¤£·QÁÊ¶RHUBªº·R¦nªÌ«Ø¥ß«Ç¤ººôµ¸¦Ó¨¥¬O¨¬°÷ªº¡C

°Ñ¦Ò\ref{cable} {(¹qÆl¡B¦P¶b¹qÆl......)}¥H¤F¸Ñ¦³Ãö¥H¤Óºô½uÆl¤£¦PÃþ«¬ªº±¡ªp¡C




\section{±`¨£°ÝÃD\label{faq}}



³o¨½¬O¤@¨Ç¦³Ãö¨Ï¥ÎLinux¶i¦æ¥H¤Óºô³s±µªº±`¨£°ÝÃD¡C¬Y¨Ç¯S©w°ÝÃD«ö·Ó¨î³y°Ó¶i¦æ¤ÀÃþ¡C¥i¯à§A·Q°Ýªº°ÝÃD§O¤H¤w¸g°Ý¹L¡]¦Ó¥B³Q¦^µª¤F¡I¡^¡A©Ò¥H§Y¨Ï¨S¦³¦b³o¨½§ä¨ì§Aªºµª®×¡AÁÙ¥i¯à¦b½Ñ¦p\nameurl{http://www.dejanews.com}{Dejanews}¤§Ãþªº·s»DÀÉ®×¤¤§ä¨ì§A©Ò­nªº¡C




\subsection{¸Ó¬°Linux¶R¤°¤\ºô¥d¡H\label{what-card}}



³o­Ó°ÝÃDªºµª®×«Ü¤jµ{«×¨ú¨M¤_§A§Æ±æ¥Îºôµ¸³s±µ¤z¨Ç¤°¤\¡A¥H¤Î·|¹J¨ì¦h¤jªº¼Æ¾Ú¬y¶q¡C

¦pªG§A¥u·Q§@¬°¤@­Ó¥Î¤á°¸º¸¨Ï¥Î¤@¤UFTP©ÎWWW¡A¨º¤\§Y¨Ï¬O8¤ñ¯Sªº¦ÑISAºô¥d³£¯àº¡¨¬§Aªº»Ý­n¡C

¦pªG§A·Q«Ø¥ß¤@­ÓªA°È¾¹¡A¦}­n¨D±µ¦¬©Îµo°eºôµ¸¼Æ¾Úµ¹CPU±a¨Óªº­t¸ü³Ì¤p¡A¨º¤\§A¥i¯à»Ý­n¬Ý¤@¤U¨Ï¥Î¨ã¦³Á`½u±±¨î¯à¤Oªºªä¤ùªºPCIºô¥d¡A¤ñ¦pDEC tulip (21xxx)ªä¤ù¡A©ÎªÌAMD PCnet-PCIªä¤ù¡C

¦pªG§Aªº»Ý¨D¦b³o¤GªÌ¤§¶¡¡A¨º¤\¨Ï¥Î¦³Ã­©wªºÅX°Êµ{§Çªº«K©yªºPCIºô¥d©Î16¤ñ¯SªºISAºô¥d´N¥i¥H¤F¡C




\subsection{AlphaÅX°Êµ{§Ç¢w¢wÀò¨ú»P¨Ï¥Î\label{alfa}}



§ÚÅ¥»¡§Úªººô¥d¦³¤@­Ó§ó·sªº©Îªì¨Bªº/alphaÅX°Êµ{§Ç¡C±q­þ¨à±o¨ì¥¦©O¡H

³Ì·sªº¡§·s¡¨ÅX°Êµ{§Ç¥i¥H¦bDonaldªºFTP¯¸ÂI¡G{\ttfamily cesdis.gsfc.nasa.gov}¨½­±ªº{\ttfamily /pub/linux/}¤U§ä¨ì¡C¦]¬°¨Æ±¡ÅÜ¤Æ«ÜÀWÁc¡A¥i¯à»Ý­n¥|³B§ä¤@§ä¡C©ÎªÌ¨Ï¥ÎWWWÂsÄý¾¹¥h¡G

\nameurl{http://cesdis.gsfc.nasa.gov/linux/}{Don's Linux Home Page}

¬d§ä§A·Q­nªºÅX°Êµ{§Ç§óÂ²³æ¤@¨Ç¡C¡]¯d¯«WWWÂsÄý¾¹·|®¨®¨¦a§â·½½X¤¤ªºTABs´À´«¬°ªÅ®æ¡Aµ¥µ¥¢w¢w¦pªGµLªk½T©wªº¸Ü¡A¨Ï¥ÎFTP¤U¸ü¡A¦Ü¤Ö¤]±o¥ÎWWWÂsÄý¾¹ªºFTP URL¡C¡^

¦pªGÅX°Êµ{§Ç½T¹ê¬Oalphaª©¥»¡A©Îpre-alphaª©¥»¡A¨º¤\½Ð«ê·í¦a¹ï«Ý¥¦¡C´«¥y¸Ü»¡¡A¤£­n©ê«è¡A¦]¬°§AµLªk§Ë²M¥Î¥¦¯à°µ¨Ç¤°¤\¡C¦pªG§Ë¤£²M¦p¦ó¦w¸Ë¡A³Ì¦n¤£­n¥h¸Õ¡C¦P¼Ë¡A¦pªG¥¦¨Ï§Aªº¾÷¾¹ÌX¾÷¤F¡A¤£­n©ê«è¡C¬Û¤Ï¡A§AÀ³¸Óµoµ¹§Ú­Ì¤@¥÷§÷®Æ²ÕÂ´«Ü¦nªºBug³ø§i¡A¦pªG¬O¤@­Ó¸É¤B¡A¨º´N§ó¦n¡I

ª`·N¡A¬Y¨Ç¡§¥i¥Î¡¨ªº¹êÅç©Ê/alphaÅX°Êµ{§Ç¤w¸g¥]§t¦b¼Ð­ãªº¤º®Ö·½½X¾ð¤¤¡C¦b¹B¦æ{\ttfamily make config}®É§A­º¥ý­n¦^µªªº¤@­Ó°ÝÃD´N¬O¡§Prompt for development and/or incomplete code/drivers¡¨¡C¦b¦¹§A­n¦^µª¡§Y¡¨¥H¥]¬A¥ô¦óalpha/¹êÅç©ÊÅX°Êµ{§Ç¡C




\subsection{¤@¥x¾÷¾¹¨Ï¥Î¦h­Ó¥H¤Óºô¥d\label{two-card}}



°µ¨Ç¤°¤\¤~¯àÅýLinux¹B¦æ¨â¶ô¥H¤Óºô¥d¡H

³o­Ó°ÝÃDªºµª®×¨ú¨M¤_ÅX°Êµ{§Ç¬O§_³Q¥Î°µ¥i¸ü¤Jªº¼Ò¶ô©ÎªÌª½±µ½sÄ¶¶i¤F¤º®Ö¡C¤j¦h¼ÆLinuxµo¦æª©¥»²{¦b³£¨Ï¥Î¼Ò¶ô¤ÆªºÅX°Êµ{§Ç¡C³o¼Ë´N¤£¥Îµo¦æ³\¦h¤º®Ö¡A¨CºØ¤º®Ö³]¸m¤@­Ó¤£¦Pªº¤º«ØÅX°Êµ{§Ç¡C¨Ï¥Î¤@­Ó³æ¤@ªº°ò¥»¤º®Ö¡A¦pªG¯S©w¥Î¤á¨t²Î»Ý­n¡A¤@¥¹¨t²Î±Ò°Ê¡A´N¥i¥H±qÅX°Êµ{§Ç¼Ò¶ô¤å¥ó¡]³q±`¦s©ñ¦b{\ttfamily /lib/modules/}¡^¤¤¸ü¤J­Ó§OªºÅX°Êµ{§Ç¡C

{\itshape §âÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î¡G\/}¹ï¤_PCIÅX°Êµ{§Ç¡A¼Ò¶ô³q±`·|¦Û°ÊÀË´ú¸Ó«~µPÃþ«¬©Ò¦³¦w¸Ëªººô¥d¡C¦ý¹ï¤_ISAºô¥d¡A±´´M¤@­Óºô¥d¬O¤£¦w¥þªº¾Þ§@¡A¦]¦¹§A»Ý­n´£¨Ñºô¥dªºI/O¦a§}¥H«K¼Ò¶ôª¾¹D¥h­þ¨½¬d§ä¡C³o¤@«H®§¦sÀx¦b¤å¥ó{\ttfamily /etc/conf.modules}¤¤¡C

¨Ò¦p¡A¦pªG¤@­Ó¥Î¤á¦³¨â¶ôISA NE2000ºô¥d¡A¤@¶ô¦b{\ttfamily 0x300}¡A¤@¶ô¦b{\ttfamily 0x240}¡A¥¦­Ì¦b{\ttfamily /etc/conf.modules}¤å¥ó¤¤Åã¥Ü¦p¤U¡G

\begin{verbatim}
        alias eth0 ne
        alias eth1 ne
        options ne io=0x240,0x300
\end{verbatim}


³o¤L¦æªº·N¸q¡G´N¬O»¡¦pªGºÞ²z­û¡]©Î¤º®Ö¡^¶i¦æ{\ttfamily modprobe eth0}©ÎªÌ{\ttfamily modprobe eth1}¡A¨º¤\¬°{\ttfamily eth0}©ÎªÌ{\ttfamily eth1}¸ü¤J{\ttfamily ne.o}ÅX°Êµ{§Ç¡C¦¹¥~¡A¦b¸ü¤J{\ttfamily ne.o}¼Ò¶ô®É¡A¨Ï¥Î¿ï¶µ{\ttfamily io=0x240,0x300}¡A³o¼ËÅX°Êµ{§Ç´Nª¾¹D¥h­þ¨½´M§äºô¥d¡Cª`·N{\ttfamily 0x}«Ü­«­n¢w¢wDOS¨½±`¥Îªº{\ttfamily 300h}¦b³o¨½¨S¦³¥Î¡C§ïÅÜ{\ttfamily 0x240}©M{\ttfamily 0x300}ªº¶¶§Ç·|¨Ï­þ¤@¶ôª«²zºô¥d¥H{\ttfamily eth0}©M{\ttfamily eth1}µ²§Àµo¥Í§ïÅÜ¡C

¦P³o­Ó¨Ò¤l¤@¼Ë¡A¤j¦h¼ÆISA¼Ò¶ôÅX°Êµ{§Ç¥i¥H±µ¨ü¦h­Ó¥H³r¸¹¤À¹jªºI/O­È¥H³B²z¦h¶ôºô¥d¡C¦ý¬O¡A¬Y¨Ç¡]¦Ñªº¡H¡^ÅX°Êµ{§Ç¡A¤ñ¦p3c501.o¼Ò¶ô¡A¥Ø«e¸ü¤J¤@­Ó¼Ò¶ô¥u¯à³B²z¤@¶ôºô¥d¡C³o¼Ë¡A­nÀË´ú¨â¶ôºô¥d´N¥²¶·¸ü¤J¨â¦¸¸Ó¼Ò¶ô¡C¦¹®É¡A¤å¥ó{\ttfamily /etc/conf.modules}±N¦p¤U©Ò¥Ü¡G

\begin{verbatim}
        alias eth0 3c501
        alias eth1 3c501
        options eth0 -o 3c501-0 io=0x280 irq=5
        options eth1 -o 3c501-1 io=0x300 irq=7
\end{verbatim}


¦b¦¹¨Ò¤¤¡A¿ï¶µ{\ttfamily -o}¥Î¨Óµ¹¨C­Ó¼Ò¶ô¹ê¨Ò¤@­Ó°ß¤@ªº¦W¦r¡A¦]¬°¤£¯à¥Î¦P¤@­Ó¦W¦r¸ü¤J¨â­Ó¼Ò¶ô¡C¿ï¶µ{\ttfamily irq=}¤]¬O¥Î¨Ó«ü©wºô¥d³]¸mªºµw¥óIRQ¡C¡]¦¹¤èªk¤]¯à¥Î¤_¥i±µ¨ü¦h­Ó¥H³r¸¹¤À¹jªºI/O­Èªº¼Ò¶ô¡A¦ý³o¼Ë·|¨Ï¼Ò¶ô³Q¤£¥²­n¦a¸ü¤J¨â¦¸¡A­°§C¤F®Ä²v¡C¡^

³Ì¦Z¤@­Ó¨Ò¤l¡A°²³]¥Î¤á¦³¤@¶ô¦b{\ttfamily 0x350}ªº3c503ºô¥d©M¤@¶ô¦b{\ttfamily 0x280}ªºSMC Elite16 (wd8013)ºô¥d¡C«hÀ³¸Ó³o¼Ë¡G

\begin{verbatim}
        alias eth0 wd
        alias eth1 3c503
        options wd io=0x280
        options 3c503 io=0x350
\end{verbatim}


¹ï¤_PCIºô¥d¡A¥u­n¥Î{\ttfamily alias}»y¥y§â{\ttfamily ethN}±µ¤f©M¬ÛÀ³ªºÅX°Êµ{§Ç¦WÁp¨t°_¨Ó´N¦æ¤F¡A¦]¬°PCIºô¥dªºI/O¦a§}¥i¥H³Q¦w¥þ¦aÀË´ú¨ì¡C

¥i¥Îªº¼Ò¶ô¤@¯ë¦s©ñ¦b{\ttfamily /lib/modules/`uname -r`/net}¤U¡A³o¨½{\ttfamily uname -r}©R¥O¥i¥H±o¨ì¤º®Öªºª©¥»¡]¤ñ¦p2.0.34¡^¡C§A¥i¥H¦b³o¨½¬Ý¬Ý­þ¤@­ÓÅX°Êµ{§Ç¾A¦X§Aªººô¥d¡C¤@¥¹§A¦b{\ttfamily conf.modules}¤å¥ó¨½¶i¦æ¤F¥¿½Tªº³]¸m¡A´N¥i¥H¥Î¤U­±ªº¤èªkÀË¬d¤@¤U¡G

\begin{verbatim}
        modprobe ethN
        dmesg | tail
\end{verbatim}


³o¨½¡§N¡¨¬O§A­nÀË´úªº¥H¤Óºô¥dªº±µ¤f¸¹¡C



{\itshape ¨Ï¥Î½sÄ¶¶i¤º®ÖªºÅX°Êµ{§Ç¡G\/}¦pªG§A»Ý­nªºÅX°Êµ{§Ç½sÄ¶¶i¤F¤º®Ö¡A¨º¤\³B²z¦h¶ô¥H¤Óºô¥dªº±µ¤f¤w¸g¦s¦b¤F¡C¦ý¯Ê¬Ù±¡ªp¤U¥u¦Û°ÊÀË´ú{\itshape ¤@¶ô\/}¥H¤Óºô¥d¡C³o¼Ë´NÁ×§K¤F±Ò°Ê®ÉÀË´ú±Ó·Pºô¥d¥i¯à¤Þ°_ªº³Â·Ð¡C

¡]ª`·N¡G¦b2.1.x¤§¦Zªº¤º®Ö¤¤¡A±Ò°ÊÀË´ú³Q¤À¬°¦w¥þ©M¤£¦w¥þªº¨âÃþ¡A©Ò¦³¦w¥þªºÀË´ú¡]¦p¹ïPCI©MEISAºô¥d¡^¥i¥H¦Û°Ê§ä¨ì©Ò¦³¬ÛÃöªººô¥d¡C¦b¦Ü¤Ö¦³¤@¶ôISAºô¥dªº¦hºô¥d¨t²Î¤¤ÁÙ»Ý­n¶i¦æ¥H¤Uªº³B²z¡C¡^

¦³¨âºØ¤èªk¥i¥H±Ò°Ê¹ï²Ä¤G¶ô¡]©Î²Ä¤T¶ôµ¥µ¥¡^ºô¥dªº¦Û°ÊÀË´ú¡C³ÌÂ²³æªº¤èªk¬O¦V¤º®Ö¶Ç»¼±Ò°Ê°Ñ¼Æ¡A¥ÑLILO§¹¦¨¡C¨Ï¥Î{\ttfamily ether=0,0,eth1}³o¼ËÂ²³æªº±Ò°Ê°Ñ¼Æ´N¥i¥H§¹¦¨¹ï²Ä¤G¶ôºô¥dªºÀË´ú¡C¦¹®É«ö·Ó±Ò°Ê®É§ä¨ìªººô¥d¶¶§Ç¤À°t{\ttfamily eth0}©M{\ttfamily eth1}¡C°²¦p§A·QÅý{\ttfamily 0x300}³Bªººô¥d¬°{\ttfamily eth0}¡A¦Ó{\ttfamily 0x280}³Bªººô¥d¬°{\ttfamily eth1}¡A¨º¤\¥i¥H¨Ï¥Î

\begin{tscreen}
LILO: linux ether=5,0x300,eth0 ether=15,0x280,eth1
\end{tscreen}


©R¥O{\ttfamily ether=}¥i¥H±µ¨üªº°Ñ¼Æ¦}¤£¶È­­¤_¦p¤W©Ò¥ÜªºIRQ + I/O + name¡C½Ð°Ñ¬Ý\ref{lilo} {(¶Ç»¼¥H¤Óºô°Ñ¼Æ......)}¥H¤F¸Ñ¥þ³¡ªº¥yªk¡Bºô¥d¯S©w°Ñ¼Æ©MLILO¨Ï¥Î§Þ¥©¡C

³o¨Ç±Ò°Ê°Ñ¼Æ¥i¥H©T©w¡A³o¼Ë´N¤£¥Î¨C¦¸³£¥²¶·­«·sºV¤@¹M¡C°Ñ¬ÝLILO¤â¥U¤¤¦³ÃöLILOªº°t¸m¿ï¶µ¡§{\ttfamily append}¡¨¡C

²Ä¤GºØ¤èªk¡]¤£«ØÄ³¨Ï¥Î¡^¬O½s¿è¤å¥ó{\ttfamily Space.c}¦}¥Î¹s´À´«I/O¦a§}¤¤ªº{\ttfamily 0xffe0}¤J¤f¡C{\ttfamily 0xffe0}¤J¤f¬O¥Î¨Ó§i¶D¤º®Ö¤£­nÀË´ú¸Ó³]³Æ¢w¢w§â¥¦´À´«¬°¹s´N±Ò°Ê¤F¹ï¸Ó³]³Æªº¦Û°ÊÀË´ú¡C




\subsection{³o­Ó{\ttfamily ¥H¤Ó}ªFªF¤£¤z¬¡¡C¬°¤°¤\¡H}



¦p¤W©Ò­z¡A{\ttfamily ether=}©R¥O{\itshape ¥u\/}¹ï½sÄ¶¶i¤F¤º®ÖªºÅX°Êµ{§Ç°_§@¥Î¡C²{¦b¤j¦h¼Æªºµo¦æª©¥»³£¥Î¼Ò¶ôªº¤è¦¡¨Ï¥ÎÅX°Êµ{§Ç¡A©Ò¥H«Ü¤Ö¦A¨Ï¥Î{\ttfamily ether=}©R¥O¤F¡C¡]¬Y¨Ç¦­´Á¤åÀÉ»Ý­n§ó·s¥H¤Ï¬M³o¤@ÅÜ¤Æ¡C¡^¦pªG§A·Q¨Ï¥Î¼Ò¶ô¤Æªº¥H¤ÓºôÅX°Êµ{§Çªº¿ï¶µ¡A{\itshape ¥²¶·\/}­×§ï{\ttfamily /etc/conf.modules}¤å¥ó¡C

¦pªG§A{\itshape ¬O\/}¨Ï¥Î½sÄ¶ªºÅX°Êµ{§Ç¡A¦Ó¥B¤w¸g§â{\ttfamily ether=}¥[¶i¤FLILO°t¸m¤å¥ó¡A»Ý­n­«·s¹B¦æ{\ttfamily lilo}¨Ï§ó·s¦Zªº°t¸m¤å¥ó¥Í®Ä¡C




\subsection{NE1000/NE2000ºô¥d¡]¤Î¨ä­Ý®e¥d¡^ªº°ÝÃD\label{ne2k-probs}}



{\bfseries °ÝÃD¡G}
¦b¥Îv2.0.x±Ò°Ê®É¨S¦³ÀË´ú¨ìPCI NE2000­Ý®eºô¥d¡C

{\bfseries ­ì¦]¡G}
¦bv2.0.30¤§«eªº{\ttfamily ne.c}ÅX°Êµ{§Ç¥uª¾¹D°ò¤_RealTek 8029ªº­Ý®eºô¥dªºPCI ID¸¹¡C¦b¦¹¥u¦Z¤~¥X²{¤F¨Ï¥Î¨ä¥¦PCI ID¸¹ªºPCI NE2000­Ý®eºô¥d¡A©Ò¥HÅX°Êµ{§ÇµLªkÀË´ú³o¨Çºô¥d¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
³ÌÂ²³æªº¤èªk¬O§âLinux¤º®Ö¤É¯Å¨ìv2.0.31¥H¤Wª©¥»¡C¥¦¥i¥HÃÑ§O¤­ºØ¤£¦PªºNE2000-PCIªä¤ùªºID¸¹¡A¦b±Ò°Ê©Î¸ü¤J¼Ò¶ô®É¦Û°ÊÀË´ú¨ì¥¦­Ì¡C¦pªG§A¤É¯Å¨ì¤F2.0.34¥H¤Wª©¥»¡A·|¦³¤@­Ó¤ñ­ì¥ýªºISA/PCIÅX°Êµ{§Çµy¤p¦ý§ó°ª®ÄªºPCI±M¥ÎNE2000ÅX°Êµ{§Ç¡C

{\bfseries °ÝÃD¡G}
±Ò°Ê®ÉPCI NE2000­Ý®eºô¥d³Q³ø§i¬°ne1000¡]8¤ñ¯Sºô¥d¡I¡^©ÎªÌ¦bv2.0.x¤U¸ü¤Jne.o¼Ò¶ô¤£°_§@¥Î¡C

{\bfseries ­ì¦]¡G}
¬Y¨ÇPCI­Ý®eºô¥d¤£¤ä«ù¦r¸`¦s¨ú¡]¦]¦¹¤£¬O¦Ê¤À¤§¦Ê­Ý®eªºNE2000¡^¡C³o¨Ï¥¦¦bÀË´ú®É³Q»~»{¬°NE1000ºô¥d¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
§A»Ý­n¤É¯Å¨ìv2.0.31¥H¤Wª©¥»¡C²{¦bªºÅX°Êµ{§Ç·|ÀË´ú¨ì³oºØµw¥óBug¡C

{\bfseries °ÝÃD¡G}
PCI NE2000ºô¥dªº©Ê¯à«Ü®t¡A§Y¨Ï«ö·Ó©Ê¯à§Þ¥©³¹¸`©Ò»¡ªº´î¤p¤Fµ¡¤f¤j¤p¡C

{\bfseries ­ì¦]¡G}
¤Q¦h¦~«e³]­p©M¥X°âªºªì©l8390ªä¤ùªº§Þ³N¼Æ¾Ú¤â¥U¤W´£¨ì¡A¬°¤F±o¨ì³Ì°ªªº¥i¾a©Ê¡A¦b¨C¦¸¼g¾Þ§@¤§«e»Ý­n¤@­ÓÅª¾Þ§@¡CÅX°Êµ{§Ç¯à°÷»´©ö¦a°µ¨ì³o¤@ÂI¡A¦ý±qv1.2¤º®Ö®É¥N°_¡A¯Ê¬Ù±¡ªp¤U¨ú®ø¤F³o¤@¾Þ§@¡C¦³¤@­Ó¥Î¤á³ø§i»¡­«·s±Ò¥Î³o¤@¡§¿ù»~ªº¯S©Ê¡¨´N¥i¥H§ïµ½·G»ùªºPCI NE2000­Ý®eºô¥dªº©Ê¯à¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¥Ñ¤_¥u¦³¤@­Ó¥Î¤á´£¥X³ø§i§â¥¦§@¬°¸Ñ¨M¤è®×¡A¤£­n¹ï¦¹±H¤©¤Ó¤jªº§Æ±æ¡C­«·s¨Ï¥Î¼g¤§«eªºÅª¾Þ§@¥i¥HÂ²³æ¦a½s¿è{\ttfamily linux/drivers/net/}¤UªºÅX°Êµ{§Ç¤å¥ó¡A¨ú®ø¥]§t{\ttfamily NE\_RW\_BUGFIX}ªº¨º¤@¦æªºª`ÄÀ¡AµM¦Z­««Ø¤º®Ö©Î¸ü¤J¬ÛÀ³ªº¼Ò¶ô¡C¦pªG³o¼Ë½T¹ê¦³®Ä¡A½Ðµ¹§Úµo¤@«Êe-mail¡A´y­z©Ê¯à¤Wªº®t²§©M§A©Ò¨Ï¥Îªººô¥d/ªä¤ùÃþ«¬¡C¡]¹ï{\ttfamily ne2k-pci.c}ÅX°Êµ{§Ç¤]¥i¥H¦pªk¬¶¨î¡C¡^

{\bfseries °ÝÃD¡G}
{\ttfamily ne2k-pci.c}ÅX°Êµ{§Ç¹ïPCI NE2000ºô¥d³ø§i½Ñ¦p{\ttfamily timeout waiting for Tx RDC}¿ù»~«H®§¡AµLªk¥¿±`¤u§@¡C

{\bfseries ­ì¦]¡G}
§Aªººô¥d©Îºô¥d¨ìPCIÁ`½uªº³s±µµLªk³B²z¸ÓÅX°Êµ{§Ç¨Ï¥Îªºªø¦rI/OÀu¤Æ¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
­º¥ý¡AÀË¬dBIOS/CMOS³]¸m¡A¬Ý¬Ý»PPCIÁ`½u¬ÛÃöªº­p®É¹ï¤_¥i¾aªº¾Þ§@¬O§_¹L¤_ÄY®æ¤F¡C§_«h¡A¨Ï¥ÎISA/PCIªº{\ttfamily ne.c}ÅX°Êµ{§Ç¡]©ÎªÌ§R°£{\ttfamily ne2k-pci.c}¤¤ªº{\ttfamily \#define USE\_LONGIO}¡^¡A¨Ï§Aªººô¥d¥i¥Î¡C

{\bfseries °ÝÃD¡G}
¨SÀË´ú¨ìISAªº§Y´¡§Y¥ÎNE2000ºô¥d¡]¦pRealTek 8019¡^¡C

{\bfseries ­ì¦]¡G}
ªì©lªºNE2000¯S©Ê¤£¤ä«ù§Y´¡§Y¥Î¡A¦]¦¹LinuxªºNE2000ÅX°Êµ{§Ç¤]¤£¤ä«ù§Y´¡§Y¥Î¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¨Ï¥Îºô¥d©ÒªþªºDOS°t¸m½L¨ú®øPnP¡A¦}¬°¸Óºô¥d³]¸m¤@­Ó«ü©wªºI/O¦a§}©MIRQ¡C¦b{\ttfamily /etc/conf.modules}¨½¼W¥[³o¼Ëªº¤@¦æ{\ttfamily options ne io=0xNNN}¡A¨ä¤¤{\ttfamily 0xNNN}¬O§A¬°ºô¥d³]¸mªº16¶i¨îI/O¦a§}¡C¡]°²³]§A¨Ï¥Îªº¬O¼Ò¶ô¤ÆÅX°Êµ{§Ç¡Q§_«h¡A¦b±Ò°Ê®É¨Ï¥Î¤@­Ó{\ttfamily ether=0,0xNNN,eth0}°Ñ¼Æ¡^¡C§A¤]¥i¥H¶i¤JBIOS/CMOS³]¸m¡A§âIRQ±qPnP§ï¬°Legacy-ISA¡C¦pªG§A»Ý­n¬°­Ý®e¨ä¥¦ªº¾Þ§@¨t²Î¦Ó«O¯dPnP³]¸m¡A¨º¤\§A¥i¥H¬Ý¤@¤U{\itshape isapnptools\/}³n¥ó¥]¡C¨Ï¥Î{\ttfamily man isapnp}¬Ý¬Ý¥¦¬O§_¤w¸g¦w¸Ë¦b§Aªº¨t²Î¤W¤F¡C¦pªG¨S¦³¡AÂsÄý¤@¤U¤U­±ªº³s±µ¡G

\nameurl{http://www.roestock.demon.co.uk/isapnptools/}{ISA PNP Tools}

{\bfseries °ÝÃD¡G}
¦b±Ò°ÊÀË´ú®ÉNE*000ÅX°Êµ{§Ç³ø§i¡§not found (no reset ack)¡¨¡C

{\bfseries ­ì¦]¡G}
³o¸ò¤W­±©Ò»¡ªº§ï°Ê¦³Ãö¡C¦bµý¹ê8390³B¤_©ÒÀË´úªºI/O¦a§}¤§¦Z¡A¶i¦æ­«·s³]¸m¡C¦bºô¥d§¹¦¨­«·s³]¸m¦Z¡AÀ³·í³qª¾­«·s³]¸m§¹¦¨¡C§Aªººô¥d¨S¦³³qª¾¡A©Ò¥HÅX°Êµ{§Ç»{¬°¤£¦s¦bNEºô¥d¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
§A¥i¥H¦b±Ò°Ê®É¨Ï¥Î¤@­Ó¥¼³Q¨Ï¥Îªº{\ttfamily mem\_end}ªº16¶i¨î­È{\ttfamily 0xbad}¡A§i¶DÅX°Êµ{§Ç§A¦³¤@­ÓÃaºô¥d¡C¦b¨Ï¥Î{\ttfamily 0xbad}ÂÐ»\®É§A{\itshape ¥²¶·\/}¬°ºô¥d´£¨Ñ¤@­Ó«D¹sªºI/O¦a§}¡C¨Ò¦p¡A¦b{\ttfamily 0x340}ªººô¥d¤£ÅTÀ³­«·s³]¸m®É¡A«h¨Ï¥Î¦p¤U¤èªk¡G

\begin{tscreen}
LILO: linux ether=0,0x340,0,0xbad,eth0
\end{tscreen}




³o¼Ë¡A§Y¨Ï§Aªººô¥d¤£ÅTÀ³­«·s³]¸m¡Aºô¥dÀË´úÁÙ¯àÄ~Äò¤U¥h¡C¦pªG§A¬O¥H¼Ò¶ô¤è¦¡¨Ï¥ÎÅX°Êµ{§Ç¡A¨º¤\¥i¥H¶H´£¨ÑI/O¦a§}¤@¼Ë´£¨Ñ¿ï¶µ{\ttfamily bad=0xbad}¡C

{\bfseries °ÝÃD¡G}
NE*000ºô¥d¨Ï¾÷¾¹¦b²Ä¤@¦¸ºôµ¸³X°Ý®É¦º¾÷¡C

{\bfseries ­ì¦]¡G}
³o­Ó°ÝÃD±q¦­´Áªº1.1.57¤º®Ö¨ì²{¦b³£¥X²{¹L¡A¦Ó¥B¥u¦b¦³­­ªº¤LºØ³n¥ó°t¸mªº­Ý®eºô¥d¤W¥X²{¡C¬Ý¨Ó¬O»Ý­n¥Î¬Y¨Ç¯S®íªº¤èªk¨Óªì©l¤Æ¥¦­Ì¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¦³¤L­Ó¤H³ø§i¦b¼ö±Ò°Ê¡]§Yloadlin©ÎCtrl-Alt-Del¡^Linux¤§«e¡A¹B¦æ´£¨ÑªºDOS³n¥ó°t¸mµ{§Ç©Î´£¨ÑªºDOSÅX°Êµ{§Ç¥i¥H¨Ïºô¥d¤u§@¡C³oªí©ú³o¨Ç¥d»Ý­n¥H¬YºØ¯S®íªº¤è¦¡ªì©l¤Æ¡A»P·í«eªºLinuxÅX°Êµ{§Çµy¦³°Ï§O¡C

{\bfseries °ÝÃD¡G}
¦b{\ttfamily 0x360}ªºNE*000¥H¤Óºô¥d¨S¦³ÀË´ú¨ì¡C

{\bfseries ­ì¦]¡G}
§AªºNE2000ºô¥d¦bI/OªÅ¶¡¥e¾Ú¤F{\ttfamily 0x20}­Ó¦r¸`¡A¨Ï¥¦»P{\ttfamily 0x378}³Bªº¦}¤fµo¥Í¨R¬ð¡C¨ä¥¦¥i¯àªº³]³Æ¬O{\ttfamily 0x370}³Bªº²Ä¤G­Ó³n½L±±¨î¾¹¡]¦pªG¦³ªº¸Ü¡^¡A¥H¤Î{\ttfamily 0x376--0x377}³Bªº²Ä¤G­ÓIDE±±¨î¾¹¡C¦pªG¸Ó¤f¤w³Q¨ä¥¦ÅX°Êµ{§Çª`¥U¡A¤º®Ö±N¤£¦A¶i¦æÀË´ú¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
©ÎªÌ§â§Aªººô¥d²¾¨ì{\ttfamily 0x280, 0x340, 0x320}¤@Ãþªº¦a§}¡A©ÎªÌ¦b½sÄ¶®É¤£¤ä«ù¦}¦æ¥´¦L¾÷¡C

{\bfseries °ÝÃD¡G}
¨C¦¸¥´¦L®Éºôµ¸³£Â_¶}¡]NE2000¡^¡C

{\bfseries ­ì¦]¡G}
»P¤W¤@­Ó°ÝÃD¬Û¦P¡A¦ý§Aªº¤º®Ö¤ñ¸û¦Ñ¡A¤£¤ä«ù¹ï­«Å|I/O°Ï°ìªºÀË¬d¡C¨Ï¥Î¦p¤Wªº¸Ñ¨M¤è®×¡A¦³ªÅ®ÉÀò¨ú¤@­Ó·sªº¤º®Ö¡C

{\bfseries °ÝÃD¡G}
¨SÀË´ú¨ì0xNNN: 00 00 C5 ... ³BªºNE*000¥H¤Óºô¥d¡C¡]«Dªk¼ÐÃÑyy zz¡^

{\bfseries ­ì¦]¡G}
­º¥ý¡A§A¬O§_¦b¦a§}0xNNN³B¦³¤@­ÓNE1000©ÎNE2000ºô¥d¡H¦pªG¦³¡A³ø§iªºµw¥ó¦a§}¬O§_¶H¤@­Ó¦Xªk¦a§}¡H¦pªG¬Oªº¸Ü¡A¨º¤\§AªºNE*000­Ý®eºô¥d«Ü®t«l¡C©Ò¦³ªºNE*000­Ý®eºô¥d³£°²©wºô¥d¤WªºSA PROMªº²Ä14©M15¦r¸`¬°{\ttfamily 0x57}¡C¦Ó§Aªººô¥d¤£¬O³o¼Ë¢w¢w¥¦ªº­È¬°¡§yy zz¡¨¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¦³¨âºØ¸Ñ¨M¤èªk¡C³ÌÂ²³æªº¤èªk´N¬O¦p¤W©Ò­zªº¡§no reset ack¡¨¸Ñ¨M¤è®×¡A¨Ï¥Î¤@­Ó{\ttfamily 0xbad}ªºmem\_end­È¡C³o¼Ë¦b´£¨Ñ¤@­Ó«D¹sªºI/O¦a§}®É´N¥i¥H©¿²¤¼ÐÃÑÀË¬d¡C¦¹¤èªkµL»Ý­«·s½sÄ¶¤º®Ö¡C

²Ä¤GºØ¤èªk¡]¹ï¶Â«È¡^»Ý­n­×§ïÅX°Êµ{§Ç¡A¦}­«·s½sÄ¶¤º®Ö¡]©Î¼Ò¶ô¡^¡C¦bÅX°Êµ{§Ç¡]/usr/src/linux/drivers/net/ne.c¡^ªº42¦æ¦³¤@­Ó¡§Hall of Shame¡¨¦Cªí¡C³o­Óªí¬O¥Î¨ÓÀË´ú¨º¨Ç®t«lªº­Ý®eºô¥dªº¡C¨Ò¦p¡ADFIºô¥d¦bPROMªº«e¤T­Ó¦r¸`¨Ï¥Î¡§DFI¡¨¡A¦Ó¤£¬O¶H­n¨Dªº¨º¼Ë¦b²Ä14©M15¦r¸`¨Ï¥Î{\ttfamily 0x57}¡C

{\bfseries °ÝÃD¡G}
¾÷¾¹¦b±Ò°Ê®É¥X²{¡§8390...¡¨©Î¡§WD....¡¨«H®§¦Z¦º¾÷¡C©Þ±¼NE2000´N¦n¤F¡C

{\bfseries ­ì¦]¡G}
§AªºNE2000­Ý®eºô¥d­Ý®e©Ê¤£¦n¡C¤@­Ó¿E¬¡ªºNE2000¬O­ÓµL©³¬}¡A·|¨Ï¨ä¥¦ªºÅX°Êµ{§Ç³´¦b¨äªÅ¶¡¤º¶i¦æ¦Û°ÊÀË´ú¡C§âNE2000§ï¨ì¤@­Ó¤£±`¥Îªº¦a§}´N¥i¥H±q¨ä¥¦ªº¦Û°ÊÀË´ú¤¤®ø°£³o¤@³´¨À¡A¾÷¾¹¤]´N¥i¥H±Ò°Ê¤F¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
§â§AªºNE2000¦a§}§ï¬°{\ttfamily 0x340}¤@Ãþªº¦a§}¡C¦¹¥~¡A§A¥i¥H¦b©M¡§ether=¡¨°Ñ¼Æ¤@°_¨Ï¥Î¡§reserve=¡¨±Ò°Ê°Ñ¼Æ¡A«OÅ@ºô¥d¤£¨ü¨ä¥¦³]³ÆÅX°Êµ{§ÇÀË´úªº¼vÅT¡C

{\bfseries °ÝÃD¡G}
¾÷¾¹±Ò°Ê®É¦b¶i¦æSCSIÀË´ú®É¦º¾÷¡C

{\bfseries ­ì¦]¡G}
³o­Ó°ÝÃD¸ò¤W­±ªº¤@¼Ë¡A§ïÅÜ¥H¤Óºô¥dªº¦a§}¡A©Î¨Ï¥Îreserve/ether±Ò°Ê°Ñ¼Æ¡C

{\bfseries °ÝÃD¡G}
¾÷¾¹±Ò°Ê®É¦b¶i¦æÁn¥dÀË´ú®É¦º¾÷¡C

{\bfseries ­ì¦]¡G}
¤£¹ï¡A¹ê»Ú¤W¬Oµo¥Í¦bÀRÀq¤è¦¡ªºSCSIÀË´ú¹Lµ{¤¤¡A»P¤W­±ªº°ÝÃD¤@¼Ë¡C

{\bfseries °ÝÃD¡G}
±Ò°Ê®ÉÀË´ú¤£¨ìNE2000 -- ®Ú¥»´N¨S¦³±Ò°Ê«H®§¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¦]¬°³y¦¨ÀË´ú¤£¨ìªº­ì¦]«Ü¦h¡A©Ò¥H¨S¦³¡§¯«©_ªº¸Ñ¨M¤è®×¡¨¡C¤U­±¦C¥X¤F¥i¯à¦³©ÒÀ°§Uªº¤@¨Ç±¹¬I¡C

1) ºc«Ø¤@­Ó¥u¥]§t»Ý­nªº³]³ÆÅX°Êµ{§Çªº¤º®Ö¡Cµý¹ê§A½T¹ê¬O±q·s¤º®Ö±Ò°Êªº¡C§Ñ°O¹B¦æliloµ¥·|¨Ï§A±q¦Ñªº¤º®Ö±Ò°Ê¡C¡]¥J²ÓÆ[¹î±Ò°Ê®É³ø§iªººc«Ø®É¶¡/¤é´Á¡C¡^Å¥°_¨Ó«Ü©úÅã¡A¦ý§Ú­Ì¥H«e³£¥Ç¹L³o­Ó¿ù¡C³q¹LÀË¬d{\ttfamily System.map}¤å¥ó¨½{\ttfamily ne\_probe}¤@Ãþªº¦WºÙ¡A½T©wÅX°Êµ{§Ç¤w¥]§t¦b·sªº¤º®Ö¨½¡C

2) ¥J²ÓÆ[¹î±Ò°Ê«H®§¡C¬Ý¬Ý¥¦¬O§_´£¤Î¥¿¦b¶i¦æ½Ñ¦p¡§NE*000 probe at 0xNNN: not found (blah blah)¡¨¤@Ãþªºne2kÀË´ú¡A©ÎªÌ´N¬OÀR®¨®¨¦a¥¢±Ñ¤F¡C³o¨½ªº°Ï§O«Ü¤j¡C¨Ï¥Î{\ttfamily dmesg$|$more}¦bµn¿ý¦ZÂsÄý±Ò°Ê«H®§¡A©ÎªÌ¦b±Ò°Ê§¹¦¨Åã¥Üµn¿ý´£¥Ü²Å®É¨Ï¥ÎShift-PgUp¨÷¦^«Ì¹õ¡C

3) ±Ò°Ê¦Z¡A°õ¦æ{\ttfamily cat /proc/ioports}¡Aµý¹êºô¥d­n¨Dªº¥þ³¡I/OªÅ¶¡¬OªÅªº¡C¦pªGºô¥d¦b{\ttfamily 0x300}¡A¨º¤\ne2kÅX°Êµ{§Ç­n¨DªºªÅ¶¡¬°{\ttfamily 0x300-0x31f}¡C¦pªG¨ä¥¦³]³ÆªºÅX°Êµ{§Çª`¥U¤F¨ä¤¤ªº¤@­Ó¤f¡A´N¤£·|¹ï¸Ó¦a§}¶i¦æÀË´ú¡A¦Ó¬OÀR®¨®¨¦aÀË´ú¤U¤@­Ó­nÀË´úªº¦a§}¡C±`¨£ªº±¡ªp¬OlpÅX°Êµ{§Ç«O¯d¤F
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
0x378
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
¡A©ÎªÌ²Ä¤G­ÓIDE³q¹D«O¯d¤F{\ttfamily 0x376}¡A³o´N¨ÏneÅX°Êµ{§Ç°±¤îÀË´ú{\ttfamily 0x360-0x380}¡C

4) »P¤W­±¤@¼Ë°õ¦æ{\ttfamily cat /proc/interrupts}¡C½T©w¨S¦³¨ä¥¦³]³Æª`¥U¤F§A¬°¥H¤Óºô¥d³]¸mªº¤¤Â_¡C³oºØ±¡ªp¤U¡AÀË´ú¥i¥H¶i¦æ¡A¥H¤Óºô¥dÅX°Êµ{§Ç·|¦b±Ò°Ê®É¤jÁn©ê«èµLªk±o¨ì©Ò­n¨DªºIRQ¤¤Â_½u¡C

5) ¦pªG§AÁÙ¬°ÅX°Êµ{§ÇÀR®¨®¨¦a¥¢±Ñ¦Ó­W´o¡A¨º¤\½s¿è¦}µ¹ÀË´ú¼W¥[¤@¨Çprintk()¡C¤ñ¦p¡A¹ï¤_ne2k¡A§A¥i¥H¦b{\ttfamily linux/drivers/net/ne.c}¤¤¼W¥[/§R°£¬Y¨Ç¦æ¡]¥Î¡§+¡¨©Î¡§-¡¨ªí¥Ü¡^¡A¦p¤U©Ò¥Ü¡G

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
    int reg0 = inb_p(ioaddr);

+    printk("NE2k probe - now checking %x\n",ioaddr);
-    if (reg0 == 0xFF)
+    if (reg0 == 0xFF) {
+       printk("NE2k probe - got 0xFF (vacant I/O port)\n");
        return ENODEV;
+    }
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


¨º¤\¥¦´N·|¿é¥XÀË¬dªº¨C¤@­Ó¤f¦a§}«H®§¡A§A¥i¥H¬Ý¨ì§Aªººô¥d¦a§}¬O§_³QÀË´ú¤F¡C

6) §AÁÙ¥i¥H±qDonªºftp¯¸ÂI¡]¦bhowto¤¤¤]´£¤Î¤F¡^Àò¨úne2kªº¶EÂ_µ{§Ç¡A¬Ý¬Ý§A¦b±Ò°Ê¶i¤JLinux¦Z¯à§_¥Î¥¦ÀË´ú§Aªººô¥d¡C¨Ï¥Î¡§{\ttfamily -p 0xNNN}¡¨¿ï¶µ§i¶D¥¦¦b­þ¨½´M§ä§Aªººô¥d¡C¡]¯Ê¬Ù±¡ªp¤U¥uÀË´ú{\ttfamily 0x300}¡A»P±Ò°Ê®Éªº±´´ú¤£¦P¡A¤£·|ÀË´ú¨ä¥¦ªº¦a§}¡C¡^¦b§ä¨ìºô¥d®Éªº¿é¥X¦p¤U¡G

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
Checking the ethercard at 0x300.
  Register 0x0d (0x30d) is 00
  Passed initial NE2000 probe, value 00.
8390 registers: 0a 00 00 00 63 00 00 00 01 00 30 01 00 00 00 00
SA PROM  0: 00 00 00 00 c0 c0 b0 b0 05 05 65 65 05 05 20 20
SA PROM 0x10: 00 00 07 07 0d 0d 01 01 14 14 02 02 57 57 57 57

        NE2000 found at 0x300, using start page 0x40 and end page 0x80.
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


§Aªºª`¥U­È©MPROM­È¥i¯à·|¤£¤@¼Ë¡Cª`·N¡A¹ï16¤ñ¯Sºô¥d¡A©Ò¦³PROM­È³£¼W¥[¤@­¿¡A¥H¤Óºô¥d¦a§}¡]00:00:c0:b0:05:65¡^¥X²{¦b²Ä¤@¦æ¡A¥[­¿¦Zªº{\ttfamily 0x57}¼ÐÃÑ¥X²{¦bPROMªºµ²§À¡C

¦b{\ttfamily 0x300}³B¨S¦³¦w¸Ëºô¥d®Éªº¿é¥X¦p¤U¡G

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
Checking the ethercard at 0x300.
  Register 0x0d (0x30d) is ff
  Failed initial NE2000 probe, value ff.
8390 registers: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
SA PROM        0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
SA PROM 0x10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

 Invalid signature found, wordlength 2.
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


¥X²{­È{\ttfamily 0xff}ªº­ì¦]¬O¦bÅª¨úªÅI/O¤f®Éªð¦^ªº´N¬O¸Ó­È¡C¦pªG¦bÀË´úªº°Ï°ì¤º¦³¨ä¥¦µw¥ó¡A§A¥i¥H¬Ý¨ì¤@¨Ç«D{\ttfamily 0xff}ªº­È¡C

7) ¹Á¸Õ¦b¹B¦æ´£¨ÑªºDOSÅX°Êµ{§Ç©Î°t¸mµ{§Ç¤§¦Z¡A±qDOS±Ò°Ê³n½L¡]³q¹Lloadlin¡^¼ö±Ò°Ê¶i¤JLinux¡C³o¥i¯à·|¶i¦æ¤@¨ÇÃB¥~ªº¡]§Y«D¼Ð­ãªº¡^¡§Å]ªk¡¨¨Óªì©l¤Æºô¥d¡C

8) ¸Õ¤@¤URuss Nelsonªºne2000.com¥]ÅX°Êµ{§Ç¡A¬Ý¥¦¯à§_¬Ý¨£§Aªººô¥d¢w¢w¦pªGÁÙ¤£¦æ¡A¨Æ±¡´N¤£¤j§®¤F¡C¨Ò¦p¡G

\begin{tscreen}
A:{$>$} ne2000 0x60 10 0x300
\end{tscreen}


©Ò¥Î°Ñ¼Æ¬°³n¥ó¤¤Â_¦V¶q¡Bµw¥óIRQ©MI/O¦a§}¡C§A¥i¥H±q¥ô·NªºmsdosÀÉ®×¤å¥ó¤¤ªºpktdrv11.zip¨½§ä¨ì¥¦¢w¢w²{¦bªºª©¥»¤j·§¬O11¥H¤W¤F¡C






\subsection{SMC Ultra/EtherEZ©MWD80*3ºô¥dªº°ÝÃD\label{8013-probs}}



{\bfseries °ÝÃD¡G}
§A±o¨ì¤F¦p¤U«H®§¡G

\begin{verbatim}
        eth0: bogus packet size: 65531, status=0xff, nxpg=0xff
\end{verbatim}


{\bfseries ­ì¦]¡G}
¬O¦@¨É¤º¦sªº°ÝÃD¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
³Ì´¶¹Mªº­ì¦]¬O°t¸mªºPCI¾÷¾¹¨S¦³¬M®g¨ìISA¤º¦s³]³Æ¨½¡C¦]¦¹§AÅª¨ìªº¬OPCªºRAM¡]¥þ³£¬O{\ttfamily 0xff}­È¡^¡A¦Ó¤£¬O¦s©ñ±µ¦¬¼Æ¾Ú¥]¼Æ¾Úªººô¥d¤WªºRAM¡C

¥t¤@­Ó®e©ö¸Ñ¨Mªº¨å«¬°ÝÃD¬OªO¥d¨R¬ð¡A¦b¦¹°Ï°ì¦³½w¦s©Î¡§shadow ROM¡¨¡A©ÎªÌ§AªºISAÁ`½u¹B¦æ³t«×°ª¤_8Mhz¡C¥H¤Óºô¥d¤Wªº¤º¦s¥¢®Äªº¼Æ¥Ø¤]¥O¤HÅå©_¡A©Ò¥H¦pªG§Aªº¥H¤Óºô¥d¦³¶EÂ_µ{§Çªº¸Ü¡A¹B¦æ¤@¤U¡C

{\bfseries °ÝÃD¡G}
SMC EtherEZ¦b«D¦@¨É¤º¦s¡]PIO¡^¼Ò¦¡¤U¤£¤u§@¡C

{\bfseries ­ì¦]¡G}
¦Ñª©¥»ªºUltraÅX°Êµ{§Ç¥u¤ä«ù¦@¨É¤º¦s¼Ò¦¡¤Uªº¾Þ§@¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
ª©¥»2.0¥H¤Wªº¤º®Ö©ÒªþÅX°Êµ{§Ç´N¤ä«ù¥i½sµ{I/O¼Ò¦¡ªº¾Þ§@¡C¤É¯Å¨ìv2.0¥H¤Wª©¥»¡C

{\bfseries °ÝÃD¡G}
¦Ñªºwd8003©Î¥i¸õ½uªºwd8013Á`¬O±o¨ì¿ù»~ªºIRQ¡C

{\bfseries ­ì¦]¡G}
¦Ñªºwd8003ºô¥d©Î¥i¸õ½uªºwd8013­Ý®e¥d¨S¦³ÅX°Êµ{§Ç¥i¥H±q¤¤Åª¨ú³]¸mªºIRQªºEEPROM¡C¦pªGÅX°Êµ{§ÇµLªkÅª¨ìIRQ¡A´N¹Á¸Õ¥Îauto-IRQµo²{¥¦¡C­Yauto-IRQªð¦^0¡A¨º¤\ÅX°Êµ{§Ç´Nµ¹8¤ñ¯Sºô¥d¤À°tIRQ 5¡A©ÎªÌ¬°16¤ñ¯Sºô¥d¤À°tIRQ 16¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¨Ïauto-IRQ¥N½XµL®Ä¡A¦}¦b§Aªº¼Ò¶ô°t¸m¤å¥ó¡]¹ï¤_¤º«ØªºÅX°Êµ{§Ç«h³q¹L±Ò°Ê°Ñ¼Æ¡^§i¶D¤º®Ö§A§âºô¥d¸õ¦¨¤F¤°¤\IRQ¡C

{\bfseries °ÝÃD¡G}
SMC Ultraºô¥d³QÀË´ú¦¨¤Fwd8013¡A¦ýIRQ©M¦@¨É¤º¦s¦a§}¬O¿ùªº¡C

{\bfseries ­ì¦]¡G}
Ultraºô¥d¬Ý°_¨Ó¸òwd8013«Ü¬Û¶H¡A¦pªG¤º®Ö¨½¨S¦³UltraÅX°Êµ{§Ç¡AwdÅX°Êµ{§Ç´N·|§âultra»~»{¬°wd8013¡CultraÀË´ú¦bwd¤§«e¡A©Ò¥H¤@¯ë¤£·|¥X°ÝÃD¡Cultra¦bEEPROM«O¦sªºIRQ©M¤º¦s¦a§}»Pwd8013«O¦sªº¦ì¸m¤£¦P¡A©Ò¥H³ø§iªº­È¬O°²ªº¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¥u«O¯d»Ý­nªºÅX°Êµ{§Ç­«·s½sÄ¶¤º®Ö¡C¦pªG§A¦b¦P¤@¥x¾÷¾¹¤W¦P®É¨Ï¥Îwd©Multraºô¥d¡A¦}¨Ï¥Î¼Ò¶ô¡A¨º¤\­º¥ý¸ü¤Jultra¼Ò¶ô´N¦æ¤F¡C




\subsection{3Comºô¥dªº°ÝÃD\label{3com-probs}}

{\bfseries °ÝÃD¡G}
3c503¿ï¾Ü¤FIRQ N¡A¦ý¨ä¥¦³]³Æ¤]»Ý­nIRQ N¡C¡]¤ñ¦pCD ROMÅX°Êµ{§Ç¡Bmodemµ¥¡C¡^¥i¥H¤£½sÄ¶¶i¤º®Ö´N¸Ñ¨M³o­Ó°ÝÃD¶Ü¡H

{\bfseries ¸Ñ¨M¤è®×¡G}
3c503ÅX°Êµ{§Ç«ö·Ó¶¶§Ç$\{$5, 9/2, 3, 4$\}$ÀË´úªÅ¶~ªºIRQ½u¡A±q¤¤§ä¨ì¤@­Ó¥¼³Q¨Ï¥ÎªºIRQ¡C¦bºô¥d³Q{\ttfamily ifconfig}¾Þ§@°t¸m®É¿ï¾Ü¤¤Â_IRQ¡C

¦pªG§A¨Ï¥Îªº¬O¼Ò¶ô¤ÆªºÅX°Êµ{§Ç¡A¥i¥H¥Î¼Ò¶ô°Ñ¼Æ³]¸m¦UºØ±¡ªp¡A¥]¬A¤¤Â_IRQªº­È¡C

¤U­±ªº»y¥y¿ï¾ÜIRQ9¡B°ò§}{\ttfamily 0x300}¡B$<$ignored value$>$©Mif\_port \#1¡]¥~³¡¦¬µo¾¹¡^¡C



\begin{tscreen}
io=0x300 irq=9 xcvr=1
\end{tscreen}


¥t¥~¡A¦pªGÅX°Êµ{§Ç³Q½sÄ¶¶i¤F¤º®Ö¡A§AÁÙ¥i¥H³q¹LLILO¦b±Ò°Ê®É¶Ç»¼°Ñ¼Æ¨Ó³]¸m¦P¼Ëªº­È¡C

\begin{tscreen}
LILO: linux ether=9,0x300,0,1,eth0
\end{tscreen}


¤U­±ªº»y¥y¿ï¾ÜIRQ3¡BÀË´ú°ò§}¡B$<$ignored value$>$©M¯Ê¬Ùif\_port \#0¡]¥~³¡¦¬µo¾¹¡^¡C

\begin{tscreen}
LILO: linux ether=3,0,0,0,eth0
\end{tscreen}


{\bfseries °ÝÃD¡G}
3c503: configured interrupt X invalid, will use autoIRQ.

{\bfseries ­ì¦]¡G}
3c503ºô¥d¥u¯à¨Ï¥Î¤¤Â_IRQ$\{$5, 2/9, 3, 4$\}$¤¤ªº¤@­Ó¡]³o¨Ç¬Oºô¥d©Ò¯à³s±µªº¤¤Â_½u¡C¡^¦pªG§A¨Ï¥Î¤@­Ó¤£¦b¨ä¤¤ªºIRQ­È¡A´N·|±o¨ì¦p¤Wªº´£¥Ü¡C¤@¯ë±¡ªp¤U¡A¨S¥²­n¬°3c503«ü©w¤¤Â_­È¡C3c503·|¦bifconfig°t¸m®É¨Ï¥ÎautoIRQ¡A¦}±qIRQ$\{$5, 2/9, 3, 4$\}$¤¤¿ï¾Ü¤@­Ó¡C

{\bfseries ¸Ñ¨M¤è®×¡G}
¨Ï¥Î¤W­zªº¦XªkIRQ­È¡A©ÎªÌ¤£«ü©wIRQ¥H±Ò¥ÎautoIRQ¡C

{\bfseries °ÝÃD¡G}
´£¨Ñªº3c503ÅX°Êµ{§ÇµLªk¨Ï¥ÎAUI¡]²ÊÆl¥H¤Óºô¡^ºÝ¤f¡C«ç¼Ë¤~¯à¤£¨Ï¥Î¯Ê¬Ùªº²ÓÆl¥H¤ÓºôºÝ¤f¦Ó¿ï¾ÜAUIºÝ¤f¡H

{\bfseries ¸Ñ¨M¤è®×¡G}
3c503ªºAUIºÝ¤f¹ï¤_¤º«ØÅX°Êµ{§Ç¥i¥H¦b±Ò°Ê®É¿ï¾Ü¡A¹ï¤_¼Ò¶ô¤ÆÅX°Êµ{§Ç¥i¥H¦b´¡¤J¼Ò¶ô®É¿ï¾Ü¡C³o¤@¿ï¾Ü·|ÂÐ»\¥¼¨Ï¥Îªºdev-$>$rmem\_startÅÜ¶qªº§C¤ñ¯S¦ì¡A©Ò¥H±Ò°Ê°Ñ¼Æ¡G

\begin{tscreen}
LILO: linux ether=0,0,0,1,eth0
\end{tscreen}


¥i¥H¹ï¤º«Ø¦b¤º®ÖªºÅX°Êµ{§Ç°_§@¥Î¡C

­n¦b¸ü¤J¼Ò¶ô®É«ü©wAUIºÝ¤f¡A¥u»Ý§â{\ttfamily xcvr=1}ªþ¥[¦b¼Ò¶ô¿ï¶µ¥]§t§AªºI/O©MIRQ­Èªº¨º¤@¦æ´N¦æ¤F¡C




\subsection{«D¯S©wºô¥dªºFAQ¡C}






\subsubsection{Linux»PISAªº§Y´¡§Y¥Î¥H¤Óºô¥d¡C}



­nÀò±o³Ì¨Î®ÄªG¡]°ÝÃD³Ì¤Ö¡^¡A±À¯ò¨Ï¥ÎÀHºô¥dªþªºµ{§Ç¡]³q±`¬ODOSµ{§Ç¡^¨ú®øPnP¾÷¨î¡A¦}µ¹ºô¥d³]¸m¤@­Ó©T©wªºI/O¦a§}©MIRQ¡C½T©w¨Ï¥ÎªºI/O¦a§}¦b±Ò°Ê®É³QÅX°Êµ{§ÇÀË´ú¨ì¡A¦pªG¨Ï¥Î¼Ò¶ô¡A«h¦b{\ttfamily /etc/conf.modules}¤¤¨Ï¥Î{\ttfamily io=}¿ï¶µ´£¨Ñ¦a§}¡C¤]¥i¥H¶i¤JBIOS/CMOS³]¸m¡A§âIRQ±qPnP§ï¬°Legacy-ISA¡]¦pªG­pºâ¾÷¦³¦¹¿ï¶µªº¸Ü¡^¡C

ª`·N¡A¹B¦æ°ò¤_DOSªº°t¸mµ{§Ç¤@¯ë¦}¤£»Ý­n¦w¸ËDOS¡C¥i¥H¥ÎDOS³n½L±Ò°Ê¡AµM¦Z±q´£¨Ñªº³n½L¤W¹B¦æ¥¦­Ì´N¥i¥H¤F¡C¦P¼Ë¥i¥H¦Û¥Ñ¦a¤U¸üOpenDOS©MFreeDOS¡C

¦pªG»Ý­n¨Ï¥ÎPnP¥H»P¨ä¥¦¾Þ§@¨t²Î­Ý®e¡A´N±o¨C¦¸±Ò°Ê®É³£¨Ï¥ÎLinuxªºisapnptools¥]°t¸mºô¥d¡CÁÙ»Ý­n½T©w¬°ºô¥d¿ï¾ÜªºI/O¦a§}³QÅX°Êµ{§ÇÀË´ú¨ì¡A©Î¥Î{\ttfamily io=}¿ï¶µ´£¨ÑI/O¦a§}¡C

¦³¨Ç¨t²Î¦bBIOS/CMOS³]¸mµæ³æ¤¤¦³¡§enable PnP OS¡¨¡]©ÎÃþ¦üªº¦WºÙ¡^¿ï¶µ¡A¤L¥G¦b©Ò¦³±¡ªp¤U©Îºô¥dµLªk¥¿±`¤u§@¬Æ¦ÜÀË´ú¤£¨ìªº±¡ªp¤U³£»Ý­n¸T¥Î¦¹¿ï¶µ¡C¤@­Ó¥Î¤á¹ï¦¹´y­z±o«Ü¦n¡§§Ú¤£ª¾¹D¥¦¦b«Ì¹õ¦Z¤z¤F¨Ç¤°¤\¡A¦ý¬Ý°_¨Ó¬O¦b·o¶Ã¡C¡¨




\subsubsection{±Ò°Ê®É¨S¦³ÀË´ú¨ì¥H¤Óºô¥d¡C}



¥X²{³o­Ó°ÝÃDªº±`¨£­ì¦]¬O¤H­Ì¨Ï¥Îªº¤º®Ö¤£¤ä«ù¯S©wªººô¥d¡C¹ï¤_¼Ò¶ô¤Æªº¤º®Ö¡A³o¤@¯ë»¡©ú­n¨Dªº¼Ò¶ô©|¥¼³Q¸ü¤J¡A©ÎªÌ»Ý­n¥Î¼Ò¶ô¿ï¶µ«ü©w¨äI/O¦a§}¡C

¦pªG¨Ï¥Îªº¬O¼Ò¶ô¤Æªº¤º®Ö¡A´N¶H¤j¦h¼Æ¥ÎLinuxµo¦æª©¦w¸Ëªº¨º¼Ë¡A¸ÕµÛ¥Î¤@¤U¸Óµo¦æª©ªº°t¸m¤u¨ã¨Ó¿ï¾Üºô¥d©Ò¥Î¼Ò¶ô¡C¹ï¤_ISAºô¥d¤@­Ó¸û¦nªº¥D·N¬O¡A½T©wºô¥dªºI/O¦a§}¡A¦pªG°t¸m¤u¨ã­n¨D¿ï¶µ«h§â¥¦§@¬°¤@­Ó¿ï¶µ¡]¦p{\ttfamily io=0x340}¡^¥[¶i¥h¡C¦pªG¨S¦³°t¸m¤u¨ã¡A¨º¤\»Ý­n¦b{\ttfamily /etc/conf.modules}¨½²K¥[¥¿½Tªº¼Ò¶ô¦WºÙ¡]¤Î¿ï¶µ¡^¢w¢w¾\Åª{\ttfamily man modprobe}¥H¤F¸Ñ§ó¦hªº²Ó¸`¡C

¦pªG¨Ï¥Îªº¬Oµo¦æª©®M¥ó¨½ªº¹w½sÄ¶¤º®Ö¡A¨º¤\»Ý­n¬d¬Ý¤åÀÉ¥H½T©w¦w¸Ëªº¬O­þ¤@ºØ¤º®Ö¡A¥H¤Î¬O§_¤ä«ù©Ò¥Îªººô¥d¡C¦pªG¤£¤ä«ùªº¸Ü¡A­n¤\¸ÕµÛ§ä¤@­Ó¤ä«ù©Ò¥Îºô¥dªº¤º®Ö¡A­n¤\¦Û¤v¥Í¦¨¤@­Ó¤º®Ö¡C

¥u«O¯d©Ò»ÝªºÅX°Êµ{§Ç¥Í¦¨¦Û¤vªº¤º®Ö¬O­ÓÁo©úªº¥D·N¡A¦]¬°³o·|´î¤p¤º®Ö¤j¤p¡]¬°À³¥Îµ{§Ç«O¯dÄ_¶QªºRAM¡I¡^¡A´î¤Ö¥´ÂZ±Ó·Pµw¥óªº³]³ÆÀË´ú¼Æ¥Ø¡C¥Í¦¨¤º®Ö¦}¤£¶HÅ¥°_¨Ó¨º¤\´_Âø¡C§A¥u»Ý­n¹ï¤@¨Ç¦³Ãö·Q­n­þ¨ÇÅX°Êµ{§Çªº°ÝÃD¦^µª¬O©Î¤£¬O¡A¨ä¥¦ªº¨Æ³£¥Ñµ{§Ç§¹¦¨¡C

¥t¤@­Ó¥D­n­ì¦]¬O¨ä¥¦ªº³]³Æ¥e¥Î¤Fºô¥d©Ò»Ýªº³¡¤ÀI/OªÅ¶¡¡C¤j¦h¼Æºô¥d¦bI/OªÅ¶¡¨½¥e¥Î¤F16©Î32­Ó¦r¸`¡C¦pªG§Aªººô¥d³]¦b{\ttfamily 0x300}¦}»Ý­n32­Ó¦r¸`¡A¨º¤\ÅX°Êµ{§Ç´N­n¨D{\ttfamily 0x300-0x31f}¡C¦pªG¬Y­Ó¨ä¥¦³]³ÆÅX°Êµ{§Çª`¥U¤F­þ©È¨ä¤¤¤@­ÓºÝ¤f¡AÅX°Êµ{§Ç´N¤£·|¹ï¸Ó¦a§}¶i¦æÀË´ú¡A¦Ó¬OÀR®¨®¨¦a¶i¤J¤U¤@­ÓÀË´ú¦a§}¡C©Ò¥H¡A¦b±Ò°Ê¤§¦Z¡A¹B¦æ¤@¤U{\ttfamily cat /proc/ioports}¥H½T©wºô¥d­n¨Dªº¥þ³¡I/OªÅ¶¡³£¬OªÅªº¡C

ÁÙ¦³¤@­Ó°ÝÃD´N¬Oºô¥d¸õ¨ìªºI/O¦a§}¤£¬O¯Ê¬ÙÀË´úªº¦a§}¡C¨C­ÓÅX°Êµ{§ÇªºÀË´ú¦a§}¦Cªí¥i¥H«Ü®e©ö¦a¦bÅX°Êµ{§Ç·½½X¤¤ªº¤å¥»ª`ÄÀ¨½§ä¨ì¡C§Y¨Ïºô¥d³]©wªºI/O¦a§}¤£¦bÀË´ú¦a§}¦Cªí¤W¡A§A¤]¥i¥H¦b±Ò°Ê®É¥Î{\ttfamily ether=}©R¥O´£¨Ñ¡]¹ï¤º«ØÅX°Êµ{§Ç¡^¡A°Ñ¨£\ref{lilo} {(¶Ç»¼¥H¤Óºô°Ñ¼Æ...)}¡C¼Ò¶ô¤ÆªºÅX°Êµ{§Ç¥i¥H¦b{\ttfamily /etc/conf.modules}¨½¨Ï¥Î{\ttfamily io=}¿ï¶µ«ü©w¤@­Ó«D¯Ê¬ÙÀË´úªº¦a§}¡C






\subsubsection{{\ttfamily ifconfig}³ø§i¤F¿ù»~ªººô¥dI/O¦a§}¡C}



³o¤£¥i¯à¡C§A¥u¬O²z¸Ñ¿ù»~¡C³o{\itshape ¤£\/}¬O¤@­ÓBug¡A¦Ó¥B³ø§iªº¼Æ¦r¬O¥¿½Tªº¡C³o¥u¥X²{¦b¬Y¨Ç°ò¤_8390ªººô¥d¤W¡]¦pwd80x3¡Bsmc-ultraµ¥¡^¡A¹ê»Úªº8390ªä¤ù¦ì¤_²Ä¤@­Óµ¹©wI/OºÝ¤f¥[¤W¤@­Ó°¾²¾¶q³B¡C¦¹°¾²¾¶q«O¦s¦b{\ttfamily dev-{$>$}base\_addr}¨½¡A¤]´N¬O{\ttfamily ifconfig}³ø§iªº­È¡C¦pªG§A·Q¬Ý¨ìºô¥d¨Ï¥Îªº¥þ³¡ºÝ¤f¡A¸Õ¤@¤U{\ttfamily cat /proc/ioports}¥H±o¨ì·Q­nªº¼Æ¦r¡C




\subsubsection{PCI¾÷¾¹±´´ú¨ì¤Fºô¥d¡A¦ýÅX°Êµ{§ÇÀË´ú¥¢±Ñ¡C}



¬Y¨ÇPCIªºBIOS¦b¤W¹q®É¨S¦³±Ò¥Î©Ò¦³ªºPCI¥d¡A¯S§O¬O¦b¨Ï¥Î¤F¡§PNP OS¡¨ªºBIOS¿ï¶µ±¡ªp¤U¡C³o¤@¯S©Ê¬O¬°¤F¤ä«ù·í«e¨ÌµM¨Ï¥Î¬Y¨Ç¹ê¼Ò¦¡ÅX°Êµ{§ÇªºWindowsª©¥»¡C©ÎªÌ¸T¥Î¸Ó¿ï¶µ¡A©ÎªÌ¤É¯Å¨ì¤@­Ó¥i¥H±Ò¥Î³Q¸T¥Îºô¥dªº·sÅX°Êµ{§Ç¡C




\subsubsection{PCI¾÷¾¹¨½ªº¦@¨É¤º¦sISAºô¥d¤£¤u§@¡]{\ttfamily 0xffff}¡^}



³o±`ªí²{¬°Åã¥ÜÅª¥X¤j¶q{\ttfamily 0xffff}­È¡C°£«D§A¥¿½T¦a³]¸m¤FPCI ROM BIOS/CMOS SETUP°t¸m¡A¥ô¦óÃþ«¬ªº¦@¨É¤º¦sºô¥d³£¤£·|¦bPCI¾÷¾¹¤W¤u§@¡C§A¥²¶·§âºô¥d©Ò¥Î¤º¦s°Ï°ì³]¸m¬°¥i¥H±qISAÁ`½u³X°Ý¦@¨É¤º¦s¡C¦pªG§A¤£ª¾¹D­þ¨Ç³]¸m¦³¥Î¡A¨º¤\¸ß°Ý§Aªº¨ÑÀ³°Ó©ÎªÌ·í¦aªº­pºâ¾÷¤j®³¡C¹ï¤_AMI BIOS¡A¦b¡§Plug and Play¡¨³¡¤À¦³¤@­Ó¡§ISA Shared Memory Size¡¨©M¡§ISA Shared Memory Base¡¨ªº³]¸m¡C¹ï¤_Ãþ¦üwd8013©MSMC Ultraªººô¥d¡A§â¦@¨É¤º¦sªº¤j¤p±q¯Ê¬Ùªº¸T¥Î§ï¬°16kB¡A¦}§â°ò§}§ï¬°ºô¥dªº¦@¨É¤º¦s¦a§}¡C






\subsubsection{ºô¥d¬Ý¨Ó¦bµo°e¼Æ¾Ú¡A¦ý¨S¦³¦¬¨ì¹L¼Æ¾Ú¡C}



°õ¦æ{\ttfamily cat /proc/interrupts}¡C³o¼Ë²£¥Íªº¦Cªí·|Åã¥Üºô¥d²£¥Íªº©Ò¦³¤¤Â_¨Æ¥óªº¹ê®É¼Æ¥Ø¡C¦pªG¬°0©Î¦b¸Õ¹Ï¨Ï¥Îºô¥d®É¨S¦³¼W¥[¡A¨º¤\¥i¯à¬O»P­pºâ¾÷¦w¸Ëªº¨ä¥¦³]³Æµo¥Íª«²z¤¤Â_¨R¬ð¡]µL½×¨ä¥¦ªº³]³Æ¬O§_¦w¸Ë/´£¨Ñ¤FÅX°Êµ{§Ç¡^¡C§â¨ä¤¤¤@­Ó³]³ÆªºIRQ§ï¦¨¥¼¨Ï¥ÎªºIRQ¡C






\subsubsection{²§¨B¶Ç¿é¼Ò¦¡(ATM)¤ä«ù}



Werner Almesberger¦b¶i¦æLinuxªºATMªº¤ä«ù¤u§@¡C¥L¨Ï¥Îªº¬OEfficient NetworksªºENI155pªO¡]\nameurl{http://www.efficient.com/}{Efficient Networks}¡^©MZeitnetªºZN1221ªO¡]\nameurl{http://www.zeitnet.com/}{Zeitnet}¡^¡C

Werner»¡ENI155pªºÅX°Êµ{§Ç¤w¸g«ÜÃ­©w¤F¡A¦ÓZN1221ªºÅX°Êµ{§Ç¥Ø«eÁÙ¨S¦³§¹¦¨¡C

¥h¤U­±ªº³s±µ¬d¬Ý¤@¤U³Ì·sªº¶i®i¡G

\nameurl{http://lrcwww.epfl.ch/linux-atm/}{Linux ATM Support}




\subsubsection{¦N¤ñ¯S¥H¤Óºô¤ä«ù}



Linux¤ä«ù¦N¤ñ¯S¥H¤Óºô¶Ü¡H

¬Oªº¡A¥Ø«e¦Ü¤Ö¤w¸g¦³¤F¨â­ÓÅX°Êµ{§Ç¡C¦bv2.0©Mv2.2¤º®Ö¨½¦³¤@­ÓPacket Engines G-NIC PCI¦N¤ñ¯S¥H¤Óºô¾A°t¾¹ªºÅX°Êµ{§Ç¡CÅX°Êµ{§Çªº§ó¦h²Ó¸`¡B¤ä«ù©M§ó·s¥i³X°Ý¡G

{\ttfamily http://www.scyld.com/linux/drivers/yellowfin.html}

v2.2¤º®Ö´£¨Ñªº{\ttfamily acenic.c}ÅX°Êµ{§Ç¥i¥Î¤_AlteonªºAceNIC¦N¤ñ¯S¥H¤Óºô¥d©M¨ä¥¦¦p3Comªº3c985¤@Ãþªº°ò¤_Tigonªººô¥d¡C³o­ÓÅX°Êµ{§ÇÁÙ¥i¥H¥Î¤_NetGearªºGA620¡A¦ýÁÙ»Ý­nµý¹ê¡C




\subsubsection{FDDI¤ä«ù}

Linux¤ä«ùFDDI¶Ü¡H

¬Oªº¡CLarry Stefani¬°v2.0½s¼g¤FDigitalªºDEFEA¡]FDDI EISA¡^©MDEFPA¡]FDDI PCI¡^ºô¥dÅX°Êµ{§Ç¡C¥¦³Q¥]§t¶iv2.0.24¤º®Ö¡C¥Ø«eÁÙ¨S¦³¨ä¥¦ªººô¥d³Q¤ä«ù¡C




\subsubsection{¥þÂù¤u¤ä«ù}



¥þÂù¤u¯à¹F¨ì20MBps¶Ü¡HLinux¤ä«ù¶Ü¡H

Cameron Spitzer¹ï¥þÂù¤u10Base-Tºô¥d¦³¦p¤U½×Â_¡G¡§¦pªG§A³s¦b¥þÂù¤u¥æ´«HUB¤W¡A§Aªº¨t²Î¨¬°÷§Ö¦Ó¥B¤£°µ¤Ó¦h¨ä¥¦ªº¤u§@¡A¥¦·|¨Ï§Aªººôµ¸¦b¨â­Ó¤è¦V¤W³£«O«ù¦£¸L¡C¤£¦s¦b¤°¤\¥þÂù¤uªº10BASE-2©Î10BASE-5¡]²ÓÆl©M²ÊÆl¡^¡C¥þÂù¤u¬O³q¹L¨ú®ø¾A°t¾¹ªº¸I¼²ÀË´ú¨Ó¹F¨ìªº¡C³o´N¬O¬°¤°¤\¥Î¦P¶b¹qÆl¹ê²{¤£¤F¥þÂù¤u¡QLANµLªk¥H¥þÂù¤u¤è¦¡¹BÂà¡C10BASE-T¡]RJ45±µ¤f¡^¨Ï¥Î¤£¦Pªº½u¶i¦æµo°e©M±µ¦¬¡A©Ò¥H¤GªÌ¥i¯à¦P®É¶i¦æ¡C¥æ´«HUB³B²z¸I¼²°ÝÃD¡C«H¸¹³t²v¬O10Mbps¡C¡¨

©Ò¥H¡A§A¥u¯à¥H10Mbps³t²v±µ¦¬©Îµo°e¼Æ¾Ú¡AµLªk´Á±æ±o¨ì¨â­¿ªº©Ê¯à´£°ª¡C¹ï¤_¬O§_¤ä«ù¡A¨ú¨M¤_ºô¥d©M¥i¯àªºÅX°Êµ{§Ç¡C¦³¨Çºô¥d¥i¥H¦Û°Ê¨ó°Ó¡A¦³¨Ç»Ý­nÅX°Êµ{§Ç¤ä«ù¡AÁÙ¦³ªº»Ý­n¥Î¤á¦bºô¥dªºEEPROM°t¸m¤¤³]¸m¿ï¶µ¡C¥u¦³¨º¨Ç»{¯uªº¥Î¤á·|ª`·N¨ì¥þÂù¤u»P¥bÂù¤u¼Ò¦¡¶¡ªº®t§O¡C




\subsubsection{SMP¾÷¾¹¤WªºLinux¥H¤Óºô¥d}



¦pªG¦³¿ú¶R¦h³B²z¾¹¡]MP¡^ªº­pºâ¾÷¡A¨º¤\³Ì¦n¶R¤@­Ó¦nÂI¨àªº¥H¤Óºô¥d¡C¹ïv2.0¤º®Ö³oÁÙ¤£¬O­Ó°ÝÃD¡A¦ý¹ïv2.2´N¦¨°ÝÃD¤F¡C¤j¦h¼Æ¦Ñ¦¡ªº«D´¼¯à¡]¦pISAÁ`½uªºPIO©M¦@¨É¤º¦s³]­p¡^ºô¥d¦b³]­p®É®Ú¥»¨S¦Ò¼{¦h³B²z¾¹À³¥Î¡CÂ²³æ¦a»¡´N¬O¶R¤@­Ó²{¥N³]­pªº´¼¯àºô¥d¡A¦}½T©w¦³¯à°÷³B²z¦h³B²z¾¹¾Þ§@ªºÅX°Êµ{§Ç¡C¡]ª`·N³o¨½ªº¡§²{¥N³]­p¡¨ - PCI-NE2000´N¬O¦b²{¥NÁ`½u¤W¦³10¦h¦~¾ú¥vªº¦Ñ¦¡³]­p¡C¡^¦bÅX°Êµ{§Çªº·½½X¨½¬d§ä{\ttfamily spin\_lock}¥i¥H«Ü¦n¦a»¡©ú¸ÓÅX°Êµ{§Ç¬O§_¯à°÷³B²z¦h³B²z¾¹¾Þ§@¡C¤U­±¸Ô²Ó¸ÑÄÀ¤F¬°¦ó­n¬°¦h³B²z¾¹À³¥ÎÁÊ¶R¦nªººô¥d¡]¥H¤Î¤£¶R·|¥X²{¤°¤\°ÝÃD¡^¡C

¦bv2.0¤º®Ö¡A¦b¥ô·N®É¨è¥u¦³¤@­Ó³B²z¾¹¤¹³\¶i¤J¡§¤º®ÖºA¡¨¡]§Y§ïÅÜ¤º®Ö¼Æ¾Ú©Î¹B¦æ³]³ÆÅX°Êµ{§Ç¡^¡C©Ò¥H±qºô¥d¡]¤Î¬ÛÃöÅX°Êµ{§Ç¡^ªº¨¤«×¨Ó¬Ý¡A³o»P³æ³B²z¾¹¾Þ§@¨S¦³¤°¤\¤£¦P¡A©Ò¥H¤£·|¥X°ÝÃD¡C(³o¤]¬O±o¨ì¤@­Ó¥i¥H¤u§@ªºLinux¦h³B²z¾¹ª©¥»ªº³ÌÂ²³æªº¿ìªk¢w¢w¨Ï¥Î¤@­Ó¤jÂê¨Ï±o¤@¦¸¥u¦³¤@­Ó³B²z¾¹³B¤_¤º®Öª¬ºA¡C³o¼Ë§A´Nª¾¹D¤£¥i¯à¦³¨â­Ó³B²z¾¹¦P®É­n­×§ï¦P¤@¼Æ¾Ú¡I¡^

¦b¥ô·N®É¨è¥u¦³¤@­Ó³B²z¾¹¤¹³\¶i¤J¤º®ÖºAªº¤£§Q¤§³B¦b¤_¥u¦³¹B¦æ¦Û§Ú±±¨î©M±K¶°­pºâªºµ{§Ç®É¤~·|Àò±o¦h³B²z¾¹ªºÀu¶V©Ê¡C¦pªGµ{§Ç¶i¦æ¤F¤j¶q½Ñ¦p¦VºÏ½L©Îºôµ¸Åª/¼g¼Æ¾ÚªºI/O¾Þ§@¡A¦b³B¤_¤º®Öªº¨º­Ó³B²z¾¹§V¤O¹B¦æ©Ò¦³ªº³]³ÆÅX°Êµ{§Ç¥Hº¡¨¬I/O½Ð¨Dªº¦P®É¡A¨ä¥¦ªº³B²z¾¹³£¥²¶·µ¥«Ý¦Û¤vªºI/O½Ð¨D³Q³B²z§¹¦¨¡C³o¼Ë¤º®Ö´N¦¨¬°¤F²~ÀV¡A¥Ñ¤_¥u¦³¤@­Ó³B²z¾¹¹B¦æ¦b¤º®ÖºA¡A¦h³B²z¾¹¾÷¾¹ªº©Ê¯à¦bI/O¥ô°È­«¡B³æÂêªº±¡ªp¤U¨³³t­°¯Å¨ì±µªñ³æ³B²z¾¹ªº¤ô¥­¡C

«Ü©úÅã³o»P²z·Q±¡ªp¬Û®t¤Ó»·¡]¤×¨ä¬O¹ï¤_¤å¥ó/WWWªA°È¾¹¡B¸ô¥Ñ¾¹µ¥¡^¡Av2.2ªº¤º®Ö´N¨Ï¥Î¤F²É«×§ó¤pªºÂê¢w¢w¤]´N¬O»¡¦P®É¥i¥H¦³¦h­Ó³B²z¾¹¶i¤J¤º®Ö¡C¤£¦A¬O¹ï¾ã­Ó¤º®Ö¨Ï¥Î¤@­Ó¤jÂê¡A¦Ó¬O¨Ï¥Î³\¦h¸û¤pªºÂê«OÅ@ÃöÁä¼Æ¾Ú¡A¨¾¤î¦P®É³Q¦h­Ó³B²z¾¹±±¨î¢w¢w¨Ò¦p¡A¤@­Ó³B²z¾¹¥i¥H¹B¦æºô¥dÅX°Êµ{§Ç¡A¦P®É¥t¤@­Ó³B²z¾¹¥i¥H¹B¦æºÏ½LÅX°Ê¾¹ªºÅX°Êµ{§Ç¡C

¦nªº¡A³o¼Ë´N¦³°ÝÃD¤F¡G§ó¤pªºÂê©w´N·N¨ýµÛ¥i¥H¦³¤@­Ó³B²z¾¹¸Õ¹Ï³q¹L¥H¤ÓºôÅX°Êµ{§Çµo°e¼Æ¾Ú¡A¦P®É¥t¤@­Ó³B²z¾¹¸Õ¹Ï³X°Ý¦P¤@­ÓÅX°Êµ{§Ç/ºô¥d¨Ó°µ§Oªº¨Æ±¡¡]¤ñ¦p³q¹L{\ttfamily cat /proc/net/dev}±o¨ìºô¥d²Î­p¼Æ¾Ú¡^¡C«uËç¢w¢w§Aªººô¥d¥¿¦b³q¹Lºô½uµo¼Æ¾Ú¡A§A¤S­n¥Î¥¦¨Ó¦¬¼Æ¾Ú¡Cºô¥d³Q¦P®É­n¨D°µ¨â¥ó¨Æ¡]©Î§ó¦h¡^¡A·|§Ë½kÒ\ªº¡A©Ò¥H¦³¥i¯à¦b³B²z¹Lµ{¤¤ºô¥d¨Ï§Aªº¾÷¾¹¦º¾÷¡C

¦]¦¹¡A¬°³æ³B²z¾¹¼gªºÅX°Êµ{§Ç¤£¦A¾A¥Î¢w¢w¥¦»Ý­n§ó·s±±¨î¹ïºô¥d³X°ÝªºÂê¡A¨Ï±oºô¥dªº±µ¦¬¡Bµo°e©M¾Þ§@°t¸m¼Æ¾Ú³o¤TºØ¥ô°È¥Hºô¥dÃ­©w¾Þ§@©Ò­n¨Dªºµ{«×¦ê¦æ¤Æ°_¨Ó¡C¨S¦³§ó·s¬°¨Ï¥ÎÃ­©w¦h³B²z¾¹¾Þ§@ªºÂêªºÅX°Êµ{§Ç¦b»´ªººôµ¸­t¸ü¤U¥i¯à¬Ý°_¨Ó·|¥¿±`¤u§@¡A¦ý¦b¨â­Ó¡]©Î§ó¦h¡^³B²z¾¹¸Õ¹Ï¦P®É¶i¦æ¦h­Ó¥ô°È®É´N·|³y¦¨¦º¾÷¡A©Î¦Ü¤Öªí²{¥X©_©Çªº¦æ¬°¡A³o´N¬O°ÝÃD¡C

§ó·s¦Zªº·NÃÑ¨ì¦h³B²z¾¹ªº¥H¤ÓºôÅX°Êµ{§Ç±N­n¨D¤@­ÓÅX°Êµ{§Ç­S³òªºÂê¡A¨Ï±o¤º®Ö¶i¤JÅX°Êµ{§Çªº³X°Ý¤J¤f³Q­­¨î¬°¤@¦¸¤@­Ó¡C³o¼Ë¡A¥ô°È´N³Q¦ê¦æ¤Æ¡A¦Ó¹ïµw¥óªº³B²z´N¦p¦P¦b³æ³B²z¾¹¤U¤@¼Ë¡A¤]´N¤@©wÀ³·íÃ­©w¡C¨Ï¥ÎÅX°Êµ{§Ç­S³òªºÂêªº¤£§Q¤§³B¦b¤_¥¦Ãþ¦ü¤_¹ï¾ã­Ó¤º®Ö¥[Âê¡]¦ý³W¼Ò¸û¤p¡^¹ï©Ê¯àªº¼vÅT¢w¢w¤]´N¬O»¡¡A¤@¦¸¥u¥i¥H¦³¤@­Ó³B²z¾¹³B²zºô¥d¡C
{[}§Þ³N´£¥Ü¡G¦pªG¼W¥[ªºÂê¬O{\ttfamily irqsave}Ãþ«¬ªº¦Ó¥B³Q«ù¦³¸ûªø®É¶¡¡A¹ï©Ê¯àªº¼vÅTÁÙ¥]¬A¼W¥[¤F¤¤Â_©µ¿ð¡C{]}

³o¨½¥i¥H¶i¦æªº§ï¶i¦³¨â³B¡C¥i¥H¹Á¸Õ´î¤ÖÀò±o»PÄÀ©ñÂê¤§¶¡©Ò¥Îªº®É¶¡¡A©ÎªÌ¦bÅX°Êµ{§Ç¤º³¡¹ê²{§ó¬°²Ó¤ÆªºÂê¡]¤ñ¦pº¡¨¬ºô¥d»Ý¨Dªº«e´£¤U¡A§â¾ã­ÓÅX°Êµ{§ÇªºÂê´À´«¬°­Y¤z«OÅ@¦P®É³X°Ý­Y¤z±Ó·P±H¦s¾¹©Î³]¸mªºÂê¡^¡C

¦ý¬O¡A¹ï¤_¦Ñ¦¡ªº«D´¼¯àºô¥d¦Ó¨¥¡A¦b³]­p®É®Ú¥»´N¨S¦³¦Ò¼{¹L¦h³B²z¾¹ªºÀ³¥Î¡A³o¼Ëªº§ï¶i¥i¯àµLªk¹ê²{¡C§óÁVªº¬O«D´¼¯àºô¥d¤@¯ë­n¨D³B²z¾¹¦bºô¥d©M¤º¦s¤§¶¡¶Ç°e¼Æ¾Ú¡A©Ò¥H¦b³ÌÃaªº±¡ªp¤U¡A¨C·í¦bISAÁ`½u¶Ç°e1.5kB¼Æ¾Ú¥]®É¡AÂê³£³Q¤@ª½«O«ùµÛ¡C

²{¥Nªº´¼¯àºô¥d¤@¯ëµL»Ý³B²z¾¹ªºÀ°§U´N¥i¥Hª½±µ¦bºô¥d©M¤º¦s¤§¶¡¶Ç»¼ºôµ¸¼Æ¾Ú¡C³o¬O­Ó«Ü¤jªº§ï¶i¡A¦]¬°¥u»Ý­n¦b³B²z¾¹³qª¾ºô¥d¨Ï¥Î­þ¤@¶ô¤º¦s«O¦s¤U¤@­Óºôµ¸¼Æ¾Ú¥]ªº¨º¤@¤p¬q®É¶¡«ù¦³Âê¡C²{¥Nªººô¥d¦b³]­p®É¦P¼Ë¤]¤£­n¨D¹ï¾ã­ÓÅX°Êµ{§Ç¨Ï¥Î¤@­Ó¤jÂê¡C






\subsubsection{Alpha/AXP PCIªO¤WªºLinux¥H¤Óºô¥d}



¹ï¤_v2.0¡A¥u¦³3c509¡Bdepca¡Bde4x5¡Bpcnet32©M©Ò¦³8390ÅX°Êµ{§Ç¡]wd¡Bsmc-ultra¡Bne¡B3c503µ¥µ¥¡^¬O½s¼g¦¨¡§µ²ºcµLÃö¡¨ªº¡A©Ò¥H¥¦­Ì¥i¥H¹B¦æ¦b°ò¤_DECªºAlpha CPU¨t²Î¤W¡C¨ä¥¦¤@¨Ç±qDonaldªºWWW¥D­¶¤W¤U¸üªº§ó·s¹LªºPCIÅX°Êµ{§Ç¤]¥i¥H¤u§@¡A¦]¬°¥¦­Ì¤]¬O«ö·Óµ²ºcµLÃöªº«ä·Q½s¼gªº¡C

ª`·N¡A¨ÏÅX°Êµ{§Ç»Pµ²ºcµLÃö©Ò»Ý­n¶i¦æªº§ï°Ê¦}¤£«Ü´_Âø¡C¥u»Ý­n¦p¤U¶i¦æ¡G

¢w¢w§â©Ò¦³»P{\ttfamily jiffies}¦³Ãöªº­È³£­¼¥HHZ/100¡A±o¨ìAlpha¨Ï¥Îªº¤£¦PªºHZ­È¡C¡]§Y{\ttfamily timeout=2;}ÅÜ¦¨{\ttfamily timeout=2*HZ/100;}¡^

¢w¢w§â©Ò¦³I/O¤º¦s¡]±q640k¨ì1MB¡^ªº«ü°w¤Þ¥Î´À´«¬°¬ÛÀ³ªºreadb() writeb() readl() writel()½Õ¥Î¡A¦p¤U¨Ò©Ò¥Ü¡C

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
-       int *mem_base = (int *)dev->mem_start;
-       mem_base[0] = 0xba5eba5e;
+       unsigned long mem_base = dev->mem_start;
+       writel(0xba5eba5e, mem_base);
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


¢w¢w§â©Ò¦³¨Ï¥ÎI/O¤º¦s§@¬°·½©Î¥Øªº¦a§}ªºmemcpy()½Õ¥Î´À´«¬°¬ÛÀ³ªº{\ttfamily memcpy\_fromio()}©ÎªÌ{\ttfamily memcpy\_toio()}½Õ¥Î¡C

¥Hµ²ºcµLÃöªº¤è¦¡³B²z¤º¦s³X°Ýªº²Ó¸`¦bªñ´Áªº¤º®Ö©Òªþªº¤å¥ó{\ttfamily linux/Documentation/IO-mapping.txt}¤¤¶i¦æ¤F»¡©ú¡C




\subsubsection{SUN/Sparcµw¥ó¤WªºLinux¥H¤Óºô¥d¡C}

­n±o¨ì³Ì·sªºSparc«H®§¡A¥i¥H³X°Ý¥H¤UURL¡G

\nameurl{http://www.geog.ubc.ca/sparc}{Linux Sparc}

ª`·N¡A¦³¨ÇSparcªº¥H¤Óºôµw¥ó±q¥D¾÷Àò±o¨äMAC¦a§}¡A¦]¦¹¥i¯à·|¦³¦h­Ó±µ¤f¨ã¦³¬Û¦PªºMAC¦a§}¡C¦pªG·Q¦b¦P¤@­Óºôµ¸¤W¨Ï¥Î¦h­Ó±µ¤f¡A¥i¥H¨Ï¥Î{\ttfamily ifconfig}ªº{\ttfamily hw}¿ï¶µ¥H¤À°t°ß¤@ªºMAC¦a§}¡C

§âPCIÅX°Êµ{§Ç²¾´Ó¨ìSparc¥­¥x¤W»P¤W­±´£¨ìªºAXP¥­¥x¬Û¦ü¡C¥i¯àªº®t²§¥X¦bendian¤W¡A¦]¬°Sparc¬Obig endian¡A¦ÓAXP©Mix86¬Olittle endian¡C




\subsubsection{¨ä¥¦µw¥ó¤WªºLinux¥H¤Óºô¥d¡C}

ÁÙ¦³¤@¨Ç¨ä¥¦µw¥ó¥­¥x¥i¥H¹B¦æLinux¡A¤ñ¦pAtari/Amiga¡]m68k¡^¡C´N¶HSparc¤@¼Ë¡A³Ì¦n¬O³X°Ý¨C­ÓLinux¤ä«ùªº¥­¥x¥D­¶¡A¥H¤F¸Ñ·í«e³£¤ä«ù­þ¨Çµw¥ó¡C¡]Åwªï´£¨Ñ³o¼Ëªº¯¸ÂI³s±µ¢w¢w§â¥¦­Ìµoµ¹§Ú¡I¡^




\subsubsection{¤£¨Ï¥ÎHub³s±µ10/100BaseT}

¥i¥H¤£¨Ï¥ÎHub³s±µ°ò¤_10/100BaseT¡]RJ45¡^ªº¨t²Î¶Ü¡H

¦pªG¤£¨Ï¥ÎÃB¥~ªº³]³Æ©Î¾÷±ñ¸Ë¸m¡A¥i¥H«Ü®e©ö¦a³s±µ¨â¥x³o¼Ëªº¾÷¾¹¡A ¦ý¤£¥i¯à¦A¦h¡C°Ñ¾\\ref{utp} {(Âùµ±½u)} ¢w¢w¸ÑÄÀ¤F¦p¦ó°µ¨ì³o¤@ÂI¡C¦Ó¥B§A¤£¥i¯àÂ²³æ¦a¥æ¤e¤L®Ú½u©Î¨ä¥¦¤°¤\ ´N§Ë¥X¤@­ÓHub¡A¤£´_¨îHub¤]µLªk¥¿½T§¹¦¨¨R¬ð«H¸¹¡C




\subsubsection{SIOCSIFxxx: No such device}

¦b±Ò°Ê®É¥X²{¤F¤@¤j°ï¡§SIOCSIFxxx: No such device¡¨«H®§¡A¦Z­±ÁÙ¦³¤@±ø¡§SIOCADDRT: Network is unreachable¡¨¡A«ç¤\¦^¨Æ¡H

§Aªº¥H¤Óºô³]³Æ¦b±Ò°Ê/´¡¤J¼Ò¶ô®É¨S¦³³QÀË´ú¨ì¡A·í{\ttfamily ifconfig}©M{\ttfamily route}¹B¦æ®É¡A¥¦­Ì¨S¦³¥i¥Îªº³]³Æ¡C¨Ï¥Î{\ttfamily dmesg $|$ more}¨ÓÂsÄý±Ò°Ê«H®§¡A¬Ý¬Ý¦³¨S¦³ÀË´ú¥H¤Óºô¥dªº«H®§¡C




\subsubsection{SIOCSFFLAGS: Try again}

¦b¹B¦æ¡§ifconfig¡¨®É¥X²{¡§SIOCSFFLAGS: Try again¡¨¢w¢w«ç¤\¦^¨Æ¡H

¬Y¨Ç¨ä¥¦ªº³]³Æ¨Ï¥Î¤F¥H¤Óºô¥d·Q¥ÎªºIRQ¡A©Ò¥H¥H¤Óºô¥dµLªk¨Ï¥Î¸ÓIRQ¡C§A¤£¥²­«·s±Ò°Ê¨Ó¸Ñ¨M³o­Ó°ÝÃD¡A¦]¬°¬Y¨Ç³]³Æ¥u¬O¦b»Ý­n®É¤~Àò¨úIRQ¡A¦b§¹¦¨¦Z´NÄÀ©ñ¤F¡C¨Ò¦p¬Y¨ÇÁn¥d¡B¦ê¤f¡B³n½LÅX°Ê¾¹µ¥¡C§A¥i¥HÁä¤J{\ttfamily cat /proc/interrupts}¨Ó¬Ý¬Ý­þ¨Ç¤¤Â_¥¿¦b {\itshape ³Q¨Ï¥Î\/}¡Cµ´¤j¦h¼ÆLinux¥H¤Óºô¥dÅX°Êµ{§Ç¥u¦³¦b¥Î¡§ifconfig¡¨¥´¶}®É¤~Àò¨úIRQ¡C¦pªG§A¯àÅý¨ä¥¦³]³Æ¡§©ñ¶}¡¨©Ò»ÝªºIRQ¤¤Â_½u¡A¨º¤\§A´N¥i¥H¥Îifconfig¨Ó¡§Try again¡¨¤F¡C




\subsubsection{¨Ï¥Î¡§ifconfig¡¨±o¨ìªº³s±µ¬°UNSPEC¡A¦Óµw¥ó¦a§}¬O00:00:00:00:00:00}

¦b¤£±a°Ñ¼Æ¹B¦æifconfig®É¡A³ø§i»¡³s±µ¬°UNSPEC¡]¦Ó¤£¬O10Mbs¥H¤Óºô¡^¡A¦Ó¥Bµw¥ó¦a§}³£¬O¹s¡C

³o¬O¦]¬°¹B¦æªº¡§ifconfig¡¨µ{§Çª©¥»¤ñ¤º®Öªºª©¥»°ª¡C¦b»P¦Ñª©¥»ªº¤º®Ö¤@°_¹B¦æ®É¡A·sª©¥»ªºifconfigµLªk³ø§i³o¨Ç¯S©Ê¡C§A¥i¥H¤É¯Å¤º®Ö¡A©ÎªÌ¡§­°¯Å¡¨ifconfig¡A©ÎªÌ¤z¯Ü¤£²z·|³o­Ó¿ù»~¡C¤º®Öª¾¹Dµw¥ó¦a§}¡A©Ò¥H§Y¨ÏifconfigµLªkÅª¥X¥¦¤]¨S¦³Ãö¨t¡C

¦pªG¨Ï¥Îªº{\ttfamily ifconfig}µ{§Ç¤ñ¨Ï¥Îªº¤º®ÖÂÂ«Ü¦hªº¸Ü¡A¤]·|¥X²{¤@¨Ç©_©Çªº«H®§¡C




\subsubsection{¤j¶qªºRX©MTX¿ù»~}

¦b¤£±a°Ñ¼Æ¹B¦æifconfig®É¡A³ø§i¤j¶qªº±µ¦¬©Mµo°e¼Æ¾Ú¥]¿ù»~¡C¦ý¬Ý°_¨Ó¤u§@¥¿±`¢w¢w«ç¤\¦^¨Æ¡H

¦A¬Ý¤@¹M¡C³ø§i¬O»¡{\ttfamily RX packets} {\itshape big number\/} {\bfseries °±¹y}{\ttfamily errors 0} {\bfseries °±¹y} {\ttfamily dropped 0} {\bfseries °±¹y} {\ttfamily overrun 0}¡C©Ò¥H§A¬Ý¨ìªº¨º­Ó¤j¼Æ¦r¬O¾÷¾¹±µ¦¬©Mµo°eªº¼Æ¾Ú¥]Á`¼Æ¡C¦pªGÁÙÄ±±o¤£¥i«äÄ³¡AÁä¤J{\ttfamily cat /proc/net/dev}¬Ý¬Ý¡C




\subsubsection{{\ttfamily /dev/}¤Uªº¥H¤Óºô¥d¤J¤f}

/dev/eth0¹³¬O­Ó¨ì/dev/xxxªº³s±µ¡C³o¼Ë¹ï¶Ü¡H

»P§AÅ¥¹Lªº¥¿¦n¬Û¤Ï¡A/dev/*¤Uªº¤å¥ó¨S³Q¨Ï¥Î¡C§A¥i¥H§R°£±¼¥ô¦ó {\ttfamily /dev/wd0¡B/dev/ne0}¥H¤ÎÃþ¦üªº¤J¤f¡C




\subsubsection{Linux»P¡§trailers¡¨}

¦b¡§ifconfig¡¨ºô¥d®É¡A»Ý­n¸T¤îtrailers¶Ü¡H

¤£¯à¸T¤îtrailers¡A¦Ó¥B¤]¨S¥²­n¡C¡§trailers¡¨¬OÁ×§K¦bºôµ¸¼h´_¨î¼Æ¾Úªº¤u¨ã¡C¨ä·Qªk¬O¨Ï¥Î¤@­Ó¤j¤p¬°¡§H¡¨ªº©T©w¤j¤pªºÀY¡A§â¥iÅÜ¤j¤pªºÀY«H®§©ñ¦b¥]ªº§À³¡¡A¦}§â©Ò¦³¥]©w¦ì¦b­¶¶}©l¤§«eªº¡§H¡¨¦r¸`¡C³o¥u¬O­Ó¦n·Qªk¡A¦b¹ê»Ú¤¤¤u§@±o¦}¤£¦n¡C¦pªG¦³¤H«ØÄ³¨Ï¥Î¡§-trailers¡¨¡A¨º¤£¹L¬O§ä­Ó´À¸o¦Ï½}¤F¡C³o¹ï¸Ñ¨M°ÝÃD¨S¦³¥ô¦ó·N¸q¡A¦ý¦pªG°ÝÃD¯uªº¦Û¦æ¸Ñ¨M¤F¡A¨º¤\¥L´N¥i¥H§j¼N¦Û¤vªº¯«©_¥»»â¤F¡C






\subsubsection{³X°Ý­ì©l¥H¤Óºô³]³Æ}

¦bLinux¤U«ç¼Ë¤£³q¹LTCP/IP¤§ÃþªºªF¦è³X°Ý­ì©lªº¥H¤Óºô³]³Æ¡H

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
        int s=socket(AF_INET,SOCK_PACKET,htons(ETH_P_ALL));
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


³o¼Ë´N¥i¥H±o¨ì¤@­Ó±µ¦¬©Ò¦³¨óÄ³Ãþ«¬ªºsocket¡C¹ï¥¦°õ¦æ{\ttfamily recvfrom()}½Õ¥Î¡A¥¦´N·|¥Îsa\_family¨½ªº³]³ÆÃþ«¬©Msa\_data¼Æ²Õ¨½ªº³]³Æ¦W¨Ó¶ñ¥Rsockaddr¡C§Ú¤£ª¾¹D¬O½Ö³Ì¦­¦bLinux¨½¨Ï¥ÎSOCK\_PACKET¡A¦ý¥¦½T¹ê¬O­Ó«D±`¦nªºªF¦è¡C§A¤]¥i¥H³q¹L{\ttfamily sendto()}½Õ¥Îµo°e­ì©l¼Æ¾Ú¥]¡C·íµM¡A¦b³o¼Ë°µ®É§A¥²¶·¾Ö¦³rootªºÅv­­¡C




\section{©Ê¯à¤p§Þ¥©\label{perf}}

¦pªG§Aªº¥H¤Óºô§]¦R¶q¤Ó¤p¡A©ÎªÌ·Q´£°ªftp¶Ç¿éªº³t«×¡A¥i¥H¨Ï¥Î³o¨½ªº¤@¨Ç¤p§Þ¥©¡C

µ{§Ç{\ttfamily ttcp.c}¬O´ú¸Õ­ì©l§]¦R¶q¤j¤pªº¦n¹êÅç¡C¥t¤@­Ó´¶³qªº§Þ¥©¬O§â¤@­Ó¤j¤_1MBªº{\ttfamily large\_file}¾n¯d¦bµo°e¾÷¾¹ªº½w¨R¤º¦s¨½¡AµM¦Z°õ¦æ{\ttfamily ftp{$>$} get large\_file /dev/null}¡C¡]¦Ü¤Ö­n¡§get¡¨¨â¦¸¡A¦]¬°²Ä¤@¦¸¬O§â¤å¥ó¾n¯d¦bµo°e¾÷¾¹ªº½w¨R¤º¦s¤¤¡C¡^§â¤å¥ó¾n¯d¦b½w¨R¤º¦sªº­ì¦]¬O§A¹ï´ú¶q¨½²V¶i±qºÏ½L¦s¨ú¤å¥óªº³t«×¤£·P¿³½ì¡C³o¤]¬O§â¿é¤J¼Æ¾Úµo°e¨ì{\ttfamily /dev/null}¦Ó¤£¬OºÏ½L¤Wªº­ì¦]¡C




\subsection{¤@¯ë·§©À}

§Y¨Ï¤@­Ó8¤ñ¯Sªººô¥d¦b±µ¦¬­I¾a­Iªº¼Æ¾Ú¥]®É¤]¨S¦³°ÝÃD¡C¦ý¦b­pºâ¾÷µLªk¨³³t¦a±qºô¥d±µ¦¬¼Æ¾Ú¥]¬°§ó¦h¶i¨Óªº¼Æ¾Ú¥]ÄË¥XªÅ¶¡®É¡A§xÃø´N¥X²{¤F¡C¦pªG­pºâ¾÷¤£¯à¨³³t¦a²M°£¤w¸g±µ¦¬¨ìªº¼Æ¾Ú¥]¥e¾Úªººô¥d¤º¦s¡Aºô¥d´N¨S¦³ªÅ¶¡¦s©ñ·sªº¼Æ¾Ú¥]¤F¡C

¦b³oºØ±¡ªp¤U¡Aºô¥d©ÎªÌ¥á±ó·sªº¼Æ¾Ú¥]¡A©ÎªÌ§â¥¦©ñ¦b¥H«e±µ¦¬ªº¼Æ¾Ú¥]¦ì¸m¤W¡C¥ô¦ó¤@­Ó³£·|¤Þ°_­«·s¶Ç°e¦ÓÄY­«¦a¤¤Â_¥­·Æªº¼Æ¾Ú¶Ç¿é¬y¡A¦}¨Ï©Ê¯à³QÄY­«­°§C¡A¨ä­°¯Å¦]¤l¬Æ¦Ü¥i¥H¹F¨ì5¡I

¾Ö¦³§ó¦hªO¤W¤º¦sªººô¥d¥i¥H¡§½w¨R¡¨§ó¦hªº¼Æ¾Ú¥]¡A¦]¦¹¥i¥HµL»Ý¥á±ó´N³B²z§ó¤j¶qªº¬ðµo­I¾a­I¼Æ¾Ú¥]¡C³o¤]´N·N¨ýµÛºô¥d¤£»Ý­n¥D¾÷ÅTÀ³±q½w¦sÅª¨ú¼Æ¾Ú¥]ªº©µ¿ð§ó¤p¥HÁ×§K¥á±ó¼Æ¾Ú¥]¡C

¤j¦h¼Æ8¤ñ¯Sºô¥d¦³8kB½w¦s¡A¦Ó¤j¦h¼Æ16¤ñ¯Sºô¥d¦³16kB½w¦s¡C¤j¦h¼ÆªºLinuxÅX°Êµ{§Ç­n«O¯d3kBªº½w¦s¡]§@¬°¨â­ÓTx½w¦s¡^¡A³o¼Ë´N¥uµ¹8¤ñ¯Sºô¥d³Ñ¤U5kB§@¬°±µ¦¬ªºªÅ¶¡¡C¥¦¥u°÷¦s©ñ¤T­Ó§¹¥þ¤j¤p¡]1500¦r¸`¡^ªº¥H¤Óºô¼Æ¾Ú¥]¡C




\subsection{ISAºô¥d©MISAÁ`½u³t«×}

¦b¤W­±´£¨ì¡A¦pªG±qºô¥d²¾¨«¼Æ¾Ú¥]ªº³t«×¨¬°÷§Ö¡A§Y¨ÏRx¼Æ¾Ú¥]½w¨R¤º¦sªº¼Æ¶q¤p¡A¥á±ó/ÂÐ»\ªº±¡ªp¤]¤£·|¥X²{¡C³]¸m¼Æ¾Ú¥]±qºô¥d²¾¨ì­pºâ¾÷¤º¦sªº³t²vªº¦]¤l¬O³s±µ³o¤GªÌªº¼Æ¾Ú³q¹Dªº³t«×¢w¢w§YISAÁ`½uªº³t«×¡C¡]¦pªGCPU¬O«ÜºCªº386sx-16¡A¥¦¤]·|°_¤@©wªº§@¥Î¡C¡^

±À¯òªºISAÁ`½u®ÉÄÁ¬°8MHz¡A¦ý«Ü¦h¥DªO©M©PÃä³]³Æ¥i¥H¹B¦æ¦b§ó°ªªºÀW²v¤W¡C¤@¯ë³q¹L¦bCMOS³]¸m¨½¿ï¾Ü¥DªO/CPU®ÉÄÁÀW²v¦]¤l¡A¥i¥H³]¸mISAÁ`½uªº®ÉÄÁÀW²v¡C¦³¨ÇISA©MPCI/ISA¥DªO¥i¯à¨S¦³³o¤@¿ï¶µ¡A¨º¤\´N¥u¯à¨Ï¥Î¨î³y°Óªº¯Ê¬Ù­È¤F¡C

¨Ò¦p¡A¤U­±¬O¦b¤@¥x40MHzªº486¤W¡A¤£¦PISAÁ`½u³t«×¤U¡A8¤ñ¯SWD8003EPºô¥d¥ÎTTCPµ{§Ç´ú¶q±o¨ìªº¤@¨Ç±µ¦¬³t«×¡C

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
        ISAÁ`½u³t«×(MHz)    Rx TTCP (kB/s)
        -------------------                  --------------
        6.7                     740
        13.4                    970
        20.0                    1030
        26.7                    1075
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


¨Ï¥ÎTCP/IP¡A¹ï{\itshape ¥ô¦ó\/}10Mb/s¥H¤Óºô¥d³£Ãø¥H±o¨ì°ª¤_1075kB/sªºµ²ªG¡C¦ý¬O¡A¤£­n´Á±æ¨C¤@­Ó¨t²Î³£¥i¥H¤u§@¦b§ÖªºISAÁ`½u³t«×¤U¡C¤j¦h¼Æ¨t²Î¦b°ª¤_13MHzªº³t«×¤WµLªk¥¿±`¤u§@¡C¡]¦P¼Ë¡A¬Y¨ÇPCI¨t²ÎªºISAÁ`½u³t«×©T©w¦b8MHz¡A©Ò¥H¥Î¤á¨S¦³¾÷·|´£°ª¥¦¡C¡^

¥t¥~¡A¹ï¤_§Öªº¶Ç¿é³t«×¡A¥i¥H±q¸ûµuªº¤º¦s©MI/O©P´Á´î¤ÖCPU¥e¥Î¶q¤¤Àò¯q¡C¡]ª`·N¡A³]¸m¦bISAÁ`½u¤Wªºµw½L©MµøÀW¥d¤]·|±q´£°ªªºISAÁ`½u³t«×¤¤·P¨ü¨ì©Ê¯àªº´£°ª¡C¡^

¦b¹êÅç¶W¹L8MHzªºISAÁ`½u³t«×¤§«e¡A¤@©w­n³Æ¥÷§Aªº¼Æ¾Ú¡A¦}¦b´£°ª³t«×¦Z¹ý©³´ú¸Õ©Ò¦³ªºISA©PÃä³]³Æ¬O§_¤u§@¥¿±`¡C




\subsection{³]¸mTCPªºRxµ¡¤f}



¦A»¡¤@¹M¡Aºô¥dªºªO¤WRAM¤p¥H¤Îºô¥d»P­pºâ¾÷¤º¦s¶¡ªº¼Æ¾Ú³q¹D¬Û¹ï¸ûºC·|¤Þ°_³Â·Ð¡CTCP¯Ê¬ÙªºRxµ¡¤f³]¸m¬°32kB¡A¤]´N¬O»¡»P§A¦b¦P¤@¤lºôªº¤@¥x¸û§Öªº­pºâ¾÷·|¤@¤U¤lµoµ¹§A32kBªº¼Æ¾Ú¡A¦Ó¤£·|°±¤U¨Ó¬Ý¬Ý§A¬O§_¥¿±`¦a±µ¦¬¨ì¤F¥¦­Ì¡C

ªñ´Áª©¥»ªº{\ttfamily route}©R¥O¯à°÷¦b¹B¦æ¹Lµ{¤¤³]¸m³o­Óµ¡¤fªº¤j¤p¡C¤@¯ë¥¦¥u¥Î¦b»Ý­n´î¤p¸Óµ¡¤fªº§½°ìºô¡A¦]¬°¦b­Y¤z¸ô¥Ñ¾¹©ÎºôÃö¦Z­±ªº­pºâ¾÷·|±o¨ì¨¬°÷ªº¡§½w¨R¡¨¦Ó¤£³y¦¨°ÝÃD¡C¤U¨Ò¬°¤@­Ó¥i¯àªº¥Îªk¡G

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
        route add <whatever> ... window <win_size>
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


¨ä¤¤ªº{\ttfamily win\_size}¬O§A§Æ±æ¨Ï¥Îªºµ¡¤f¤j¤p¡]¥H¦r¸`­pºâ¡^¡C¤@­Ó¹B¦æ¦b8MHz©Î§ó§C³t«×¤UªºISAÁ`½u¤Wªº8¤ñ¯S3c503ºô¥d¡A¥i¥H¦b4kB¤j¤pªºµ¡¤f¤U«Ü¦n¦a¤u§@¡C¤Ó¤jªºµ¡¤f·|¾É­PÂÐ»\©M¥á±ó¼Æ¾Ú¥]¡A¦}ÄY­«­°§C¥H¤Óºôªº§]¦R¶q¡C§A¥i¥H¥Î{\ttfamily cat /proc/net/dev}ÀË¬d¾Þ§@ª¬ºA¡A¥¦·|Åã¥Ü¥X²{ªº¥á±ó©ÎÂÐ»\ª¬ªp¡C




\subsection{¼W±jNFS©Ê¯à}

¦³¨Ç¤Hµo²{¦b¨Ï¥Î8kB¡]Sunªº­ì©l­È¡^ªºNFS¼Æ¾Ú¥]¤j¤p®É¡A¦bNFS«È¤áºÝ¨Ï¥Î8¤ñ¯Sºô¥d±o¨ìªº©Ê¯à¤ñ¹w´Áªº­n®t¡C

¥i¯àªº­ì¦]¦b¤_8¤ñ¯Sºô¥d»P16¤ñ¯Sºô¥dªºªO¤W½w¦s¤j¤p¤£¦P¡C³Ì¤jªº¥H¤Óºô¼Æ¾Ú¥]¤j¤p¬°1500¦r¸`¡C³o¼Ë8kBªºNFS¼Æ¾Ú¥]´N¦¨¬°¤j¬ù6­Ó­I¾a­Iªº³Ì¤j¤j¤pªº¥H¤Óºô¼Æ¾Ú¥]¡C8¤ñ¯Sºô¥d©M16¤ñ¯Sºô¥d¦b±µ¦¬­I¾a­I¼Æ¾Ú¥]®É³£¨S¦³°ÝÃD¡C¦b¾÷¾¹µLªk¤Î®É±qºô¥d½w¦s²¾¨«¼Æ¾Ú¥]®É´N¦³°ÝÃD¤F¡A½w¦s·|·¸¥X¡C8¤ñ¯Sºô¥d¨C¦¸¶Ç°e®É­n¦h¥e¥Î¤@­ÓISAÁ`½u©P´Áªº¨Æ¹ê¤]À°¤£¤W¦£¡C¦pªG¥Îªº¬O8¤ñ¯Sºô¥d¡A§A{\itshape ¯à\/}°µªº¬O§âNFS¶Ç°e¤j¤p³]¸m¬°2kB¡]¬Æ¦Ü1kB¡^¡A©ÎªÌ¸ÕµÛ´£°ªISAÁ`½u³t«×¥H¥[§Ö²MªÅºô¥d¤Wªº½w¦s¡C§Úµo²{8MHz¤U¡]¨S¦³¨ä¥¦¨t²Î­t¸ü¡^¡A¤@­ÓÂÂªºWD8003Eºô¥d¥i¥H¸ò±o¤W2kB¤j¤pªºNFS±µ¦¬¡A¦ý¦b4kB®É¡A©Ê¯à­°§Cªº¦]¤l¬°3¡C

¥t¤@¤è­±¡A¦pªG¯Ê¬Ùªº¦w¸Ë¿ï¶µ¬°1kB¤j¤p¡A¦Ó§Aªººô¥d¦Ü¤Ö¬°16¤ñ¯Sªº
ISAºô¥d¡A§â¨ä¤j¤p´£°ª¨ì4kB¡]¬Æ¦Ü8kB¡^·|¨Ï©Ê¯àÅãµÛ´£°ª¡C




\section{¦³Ãö¾P°â°Ó/¨î³y¼t®a/«¬¸¹ªº«H®§\label{card-intro}}



¤U­±«ö·Ó¾P°â°Ó¦WºÙ©M²£«~¼ÐÃÑªº¦r¥À¶¶§Ç¦C¥X¤F³\¦hºô¥d¡C¦b¨C­Ó²£«~ID®Ç³£¼Ð©ú¤F¡§¤ä«ù¡¨¡B¡§¥b¤ä«ù¡¨©Î¡§¤£¤ä«ù¡¨¡C

¤ä«ù·N¨ýµÛ¸Óºô¥dªºÅX°Êµ{§Ç¦s¦b¡A¦Ó¥B³\¦h¤H¦b´r§Ö¦a¨Ï¥ÎµÛ¦¹ÅX°Êµ{§Ç¡A¥¦¬Ý°_¨Ó¬Û·í¥i¾a¡C

¥b¤ä«ù·N¨ýµÛ¸Óºô¥dªºÅX°Êµ{§Ç¦s¦b¡A¦ý¦Ü¤Ö¤U­±ªº´y­z¤¤¦³¤@­Ó¬O¯u¹êªº¡G(1) ÅX°Êµ{§Ç©Îµw¥ó¦³Bug¡A·|¾É­P©Ê¯à®t¡B³s±µ¥¢±Ñ¬Æ¦Ü¦º¾÷¡C(2) ÅX°Êµ{§Ç¬O·sªº©Îºô¥d¤£°÷´¶¤Î¡A¦]¦¹ÅX°Êµ{§Ç±o¨ìªº¨Ï¥Î/´ú¸Õ¾÷·|«Ü¤Ö¡AÅX°Êµ{§Çªº§@ªÌ¦¬¨ì«Ü¤Öªº¤ÏõX«H®§¡C«Ü©úÅã(2)¤ñ(1)­n¦n¤@¨Ç¡A¦bºô¥d/ÅX°Êµ{§Çªº¿W¥ß´y­z¤¤·|«ü©ú¥¦ÄÝ¤_­þºØ±¡ªp¡C¹ï³o¨âºØ±¡ªp¡A¦b¹B¦æ{\ttfamily make config}¦^µª¡§Prompt for development and/or incomplete code/drivers?¡¨®É³£À³¸Ó¦^µª¡§Y¡¨¡C

¤£¤ä«ù·N¨ýµÛ¸Óºô¥d¥Ø«eÁÙ¨S¦³¥i¨Ï¥ÎªºÅX°Êµ{§Ç¡C³o¥i¯à¬O¥Ñ¤_¹ï«Ü¤Ö¨£ªºµw¥ó¯Ê¥F¿³½ì¡A¤]¥i¯à¬O¾P°â°ÓÁÙ¨S¦³µo¥¬½s¼gÅX°Êµ{§Ç©Ò»Ýªºµw¥ó¸ê®Æ¡C

ª`·N¡A¡§¤ä«ù¡¨©M¡§¥b¤ä«ù¡¨¤§¶¡ªº°Ï§O¬O¬Û·í¥DÆ[ªº¡A¬O°ò¤_·s»D²Õ©M¶l¥ó¦Cªí«H®§¤W±o¨ìªº¥Î¤á¤ÏõX¶i¦æ°Ï¤Àªº¡C¡]µL½×¦p¦ó¡A¤@­Ó¤H¨Ó´ú¸Õ¨C­Óª©¥»¤º®Ö¤W©Ò¦³ºô¥dªº©Ò¦³ÅX°Êµ{§Ç¬O¤£¥i¯àªº¡I¡I¡I¡^©Ò¥H§A¥i¯à·|µo²{¤@­Ó³Q¼Ð¬°¥b¤ä«ùªººô¥d¤u§@±o«Ü¦n¡]³o¼Ë«Ü¤£¿ù¡^¡A©ÎªÌ¤@­Ó³Q¼Ð¬°¤ä«ùªººô¥dµ¹§A±a¨ÓµL½aªº³Â·Ð¡]³o¼Ë´N¤£°÷¦n¡^¡C

¦b³o¨Çª¬ºA¦Z­±¡A¦C¥X¤FLinux¤º®Ö¤¤µ¹¥XªºÅX°Êµ{§Ç¦WºÙ¡C³o¤]¬O{\ttfamily /etc/conf.modules}¼Ò¶ô°t¸m¤å¥ó¨½{\ttfamily alias eth0 driver\_name}¤@¦æ©Ò¨Ï¥ÎªºÅX°Êµ{§Ç¼Ò¶ôªº¦WºÙ¡C






\subsection{3Com\label{3com}}



¦pªG§A½T©w¤£¤F§Aªººô¥d¬O¤°¤\¡A¦ý»{¬°¥¦¬O3Comºô¥d¡A§A¥i¥H³q¹L¶°¦¨¶ô½s¸¹¨ÓÃÑ§O¥¦¡C3Com¦³¤@¥»¸ê®Æ¡§³q¹L¶°¦¨¶ô½s¸¹ÃÑ§O¾A°t¾¹¡¨¡]ref 24500002¡^¡A¥¦À³¸Ó¯àÅý§A§Ë©ú¥Õ¡C°Ñ¨£\ref{3com-tech} {(3Comªº§Þ³N«H®§)}¥H¤F¸Ñ¦p¦ó±q3Com¯Á¨ú¸Ó¸ê®Æ¡C

ª`·N¡A3ComÁÙ¦³­Ó¦³¦UºØ¦nªF¦èªºWWW/FTP¯¸ÂI¡G{\ttfamily ftp.3Com.com}¡A§A¤]³\·Q¥h¬Ý¬Ý¡C¹ï¤_¬Y¨Ç¥L­Ìªººô¥d¬Æ¦ÜÁÙ¦³LinuxÅX°Êµ{§Ç¡A¥i¯à§A·QÀËÅç¤@¤U¡C¾Ú»¡¥L­ÌªºÅX°Êµ{§Ç¤£¤ÓÃ­©w¡A©ÎªÌ¦bSMP©M«D°ò¤_ix86ªº¾÷¾¹¤W¤£Ã­©w¡A©Ò¥H»Ý­n°O¦í³o¤@ÂI¡C






\subsubsection{3c501\label{3c501}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c501

³oºØ¹L®Éªº¥Û¾¹®É¥Nªº8¤ñ¯Sºô¥d¥Î°_¨Ó·|«ÜÀY¯kªº¡C¶H½E¬Ì¤@¼Ë¸ú¶}¥¦§a¡C¤£­n¶R³oºØºô¥d¡A­þ©È¬O¶}ª±¯º¤]¤£­n¶R¡C¥¦ªº©Ê¯à«Ü®t«l¡A¦Ó¥B«Ü®e©öÃa±¼¡C

¹ï¨º¨ÇÁÙ¤£ªÖ¬Û«Hªº¤H¨Ó»¡¡A3c501¤@¦¸¥u¯à¤z¤@¥ó¨Æ¢w¢w¦b±q¨ä³æ¥]½w¦s²¾¥X¤@­Ó¼Æ¾Ú¥]®É¡A¥¦¤£¯à±µ¦¬¥t¤@­Ó¥]¡A¦b¸ü¤J¤@­Óµo°e¥]®É¤]¤£¯à±µ¦¬¤@­Ó¥]¡C¹ï¤_¨â¥x³B²z¤@­Ó¥]¦}¦^µª·|ªá±¼10²@¬íªº°ò¤_8088ªº­pºâ¾÷¤§¶¡ªººôµ¸¦Ó¨¥¡A³o´N¤£¿ù¤F¡A¦ý²{¥Nºôµ¸¤L¥G¨C¦¸¨Æ°È³£·|µo°e­I¾a­I¼Æ¾Ú¥]¡C

AutoIRQ¥i¥H¤u§@¡A¨S¨Ï¥ÎDMA¡A¦Û°ÊÀË´ú¥u¯à¬d¬Ý{\ttfamily 0x280}©M{\ttfamily 0x300}¡A¶EÂ_¯Å§O³q¹L²Ä¤T­Ó±Ò°Ê°Ñ¼Æ³]¸m¡C

¦A»¡¤@¹M¡A{\itshape ±j¯P¤Ï¹ï\/}¨Ï¥Î3c501¡I§ó®tªº¬O¦bIP¼s¼½¤º®Ö¤¤¡A¦b°»Å¥{\itshape ©Ò¦³\/}¼s¼½¥]®É§A·|¶i¤J¼È°±ª¬ºA¡C¾\Åª·½½XÀY³¡ªºª`ÄÀ¥H±o¨ì§ó¦hªº²Ó¸`¡C




\subsubsection{EtherLink II, 3c503, 3c503/16\label{3c503}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c503 (+8390)

3c503¨S¦³¡§EEPROM setup¡¨¡A©Ò¥H¦bLinux¤U¹B¦æ¸Óºô¥dµL»Ý¨Ï¥Î¶EÂ_/³]¸mµ{§Ç¡C3c503ªº¦@¨É¤º¦s¦a§}¬O¥Î¸õ½u³]¸mªº¡A»P±Ò°ÊPROM¦a§}¦@¨É¡C¼ô±x¨ä¥¦ISAºô¥dªº¤H¥i¯à·|³Q§Ë½kÒ\¡A¦]¬°¨ä¥¦ISAºô¥d°£«D¦³±Ò°ÊPROM¡A³£¬OÅý¸õ½u³]¬°¡§¸T¤î¡¨ªº¡C

¦]¬°WD80x3ªºÁ`½u¼e«×¤@¼Ë¡A³o¨Çºô¥dªº³t«×¤]À³¸Ó¤@¼Ë¡A¦ý¹ê»Ú¤W§óºC¤@¨Ç¡C³o¨Ç¦@¨É¤º¦sªºªº¥H¤Óºô¥dÁÙ¦³¤@ºØ¤£¨Ï¥Î8390¤u¨ãªº¥i½sµ{I/O¼Ò¦¡¡]¥¦­Ìªº¤uµ{®vµo²{¤F¤Ó¦hªºBug¡I¡^¡CLinuxªº3c503ÅX°Êµ{§Ç¤]¥i¥H¤u§@¦b3c503ªº¥i½sµ{I/O¼Ò¦¡¡A¦ý¤£¦p¦@¨É¤º¦s¼Ò¦¡¥i¾a¡A¦Ó¥B§óºC¡C¦P¼Ë¡A¦b§ó·sÅX°Êµ{§Ç®É¥i½sµ{I/O¼Ò¦¡¨S¦³«Ü¦n¦a´ú¸Õ¡C¤£­n¨Ï¥Î¥i½sµ{I/O¼Ò¦¡¡A°£«D­n»PMS-DOS­Ý®e¡C

3c503ªºIRQ¤¤Â_½u¥Î³n¥ó³]¸m¡A¦bEEPROM¤¤¨S¦³¨ä²ª¸ñ¡C»PMS-DOSÅX°Êµ{§Ç¤£¦P¡ALinuxªºÅX°Êµ{§Ç¦³autoIRQªº¯à¤O¡G¥¦¨Ï¥Î$\{$5,2/9,3,4$\}$¤¤²Ä¤@±ø¥i¥ÎIRQ¤¤Â_½u¡A¦b¨C¦¸¹B¦æifconfig®É¶i¦æ¿ï¾Ü¡C¡]¦Ñ¦¡ªºÅX°Êµ{§Çª©¥»¦b±Ò°Ê®É¿ï¾ÜIRQ¡C¡^¦pªG¨S¦³IRQ¤¤Â_½u¥i¥Î¡A¡§ifconfig¡¨¨½ªºioctl()½Õ¥Î±Nªð¦^EAGAIN¡C

¬Y¨Ç¨Ï¥Î503·|¹J¨ìªº±`¨£°ÝÃD¦b\ref{3com-probs} {(3Comºô¥dªº°ÝÃD)}¤¤¶i¦æ¤F°Q½×¡C

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C

ª`·N¡A¤@¨ÇÂÂªºµL½L386¤u§@¯¸¦³¤@­ÓªO¤Wªº3c503¡]3Com¨î³y¡A¦ý¥Î¨ä¥¦¦WºÙ¾P°â¡A¦p¡§Bull¡¨¡^¡A¦ý¾P°â°ÓID¤£¬O3ComªºID¡A©Ò¥HÀË´ú¤£¥X¨Ó¡C§ó¦hªº¸ê®Æ¥i¥H¦bEtherboot³n¥ó¥]¨½§ä¨ì¡A­n±Ò°Ê³o¨ÇµL½L¤u§@¯¸§A¤@©w±o¦³³o¨ÇªF¦è¡C




\subsubsection{Etherlink Plus 3c505\label{3c505}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c505

³o¨Çºô¥d¨Ï¥Îi82586ªä¤ù¡A¦ý¨S¦³¤Ó¦hªº¦³Ãö³o¨Çºô¥dªº¸ê®Æ¡C¼Ð­ã¤º®Ö¥]§t¸ÓÅX°Êµ{§Ç¡A¦ý¥¦³QÂk¬°alphaª©¥»ªºÅX°Êµ{§Ç¡C°Ñ¨£\ref{alfa} {(AlphaÅX°Êµ{§Ç)}¥H¤F¸Ñ¦bLinux¤U¨Ï¥Îalpha/´ú¸Õª©¥»¥H¤ÓºôÅX°Êµ{§Çªº­«­n«H®§¡C

¦pªG§A­n¨Ï¥Î³o¼Ëªººô¥d¡AÁÙÀ³¸ÓÅª¤@¤U{\ttfamily /usr/src/linux/drivers/net/README.3c505}¤å¥ó¡C¥¦¥]§t¤F§A¥i¥H¨Ï¥Î/¸T¤îªº¦UºØ¿ï¶µ¡C




\subsubsection{Etherlink-16 3c507\label{3c507}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c507

¸Óºô¥d¨Ï¥Î¤F¤@¶ôIntelªä¤ù¡A¨äÅX°Êµ{§Çªº¶}µo»PIntelªºEther ExpressÅX°Êµ{§Ç¶}µoÃö¨t«Ü±K¤Á¡C¦b¼Ð­ãªº¤º®Öµo¦æª©¥»¤¤¥]§t¤F¨äÅX°Êµ{§Ç¡A¦ý¬O¬O§@¬°¤@­Óalphaª©¥»ªºÅX°Êµ{§Ç¡C°Ñ¨£\ref{alfa} {(AlphaÅX°Êµ{§Ç)}¥H¤F¸Ñ¦bLinux¤U¨Ï¥Îalpha/´ú¸Õª©¥»¥H¤ÓºôÅX°Êµ{§Çªº­«­n«H®§¡C




\subsubsection{Etherlink III, 3c509 / 3c509B\label{3c509}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c509

³oºØºô¥d¬Û·í«K©y¡A¦Ó¥B¹ïISAªºµLÁ`½u±±¨îªº³]­p¦Ó¨¥©Ê¯à¬Û·í¦n¡C¨ä¯ÊÂI¦b¤_­ì©lªº3c509­n¨D«Ü§Cªº¤¤Â_©µ¿ð¡C3c509B¦³¤@­Ó¸û¤jªº½w¦s¡AÀ³¸Ó¨S¦³³o­Ó°ÝÃD¡C¡]¨£¤U¤å¡C¡^³o¨Çºô¥d¨Ï¥ÎPIO¶Ç¿é¡A»Pne2000ºô¥d¬Û¦ü¡A¬Û¹ï¦Ó¨¥¡Awd8013¤@Ãþ¨Ï¥Î¦@¨É¤º¦sªººô¥d®Ä²v§ó°ª¤@¨Ç¡C

­ì©lªº3c509¦³¤@­Ó¤pªº¥]½w¦s¡]Á`¦@4kB¡A2kB Rx¡A2kB Tx¡^¡A¦pªG¤¤Â_«Ì½ªªº®É¶¡¹Lªø¡AÅX°Êµ{§Ç´N·|¥á±ó¼Æ¾Ú¥]¡C­n´î»´³o­Ó°ÝÃD¡A¥i¥H¹Á¸Õ¦bIDEºÏ½L¶Ç¿é¹Lµ{¤¤¤£«Ì½ª¤¤Â_¡]°Ñ¨£{\ttfamily man hdparm}¡^¡A©ÎªÌ´£°ªISAÁ`½u³t«×¨ÏIDE¶Ç¿éµ²§ô±o¦­¤@¨Ç¡C

·s«¬¸¹ªº3c509BªO¤W½w¦s¬°8kB¡A¦}¥B¥i¥H§âRx/Tx¦E¤À¦¨4/4¡B5/3©Î6/2¡C³o¤@³]¸m­n¥ÎDOS°t¸m¤u¨ã¨Ó§ïÅÜ¡A¦}«O¦s¦bEEPROM¤W¡C³o·|´î»´¤W­±´£¨ì­ì©l3c509ªº°ÝÃD¡C

3c509Bªº¥Î¤á¥i¥H¨Ï¥Î´£¨ÑªºDOS¤u¨ã¨Ó¸T¤î{\itshape §Y´¡§Y¥Î\/}¤ä«ù¡A{\itshape ¦}\/}§â¿é¥X´C¤¶³]¸m¬°­n¨DªºªF¦è¡C¥Ø«eªºLinuxÅX°Êµ{§ÇÁÙ{\itshape ¤£\/}¤ä«ù¦Û°ÊÀË´ú´C¤¶³]¸m¡A©Ò¥H{\itshape ¥²¶·\/}¿ï¾Ü10Base-T¡B10Base-2©ÎAUI¡Cª`·N¡A­n§¹¥þ¸T¤îPnP¡A»Ý­n¨Ï¥Î{\ttfamily 3C5X9CFG /PNP:DISABLE}¦}­«·s§N±Ò°Ê¥H½T«O³]¸m¥Í®Ä¡C

¦³¨Ç¤H¸ß°ÝDOS°t¸m¤u¨ã¤¤¥X²{ªº¡§Server or Workstation¡¨©M¡§Highest Modem Speed¡¨³]¸m¡CDonald¼g¹D¡G¡§³o¨Ç¥u¤£¹L¬Oµ¹ÅX°Êµ{§Çªº´£¥Ü¡A¦ÓLinuxÅX°Êµ{§Ç¤£¨Ï¥Î³o¨Ç°Ñ¼Æ¡G¥¦Á`¬OÀu¤Æ¬°°ª§]¦R¶q¡A¦Ó«D§C©µ¿ð¡]¡¥Server¡¦¡^¡C§C©µ¿ð¹ï¤_¦Ñ¦¡ªºµLµ¡¤fIPX§]¦R¶q«D±`ÃöÁä¡C¬°¤F´î¤Ö©µ¿ð¡A3c509ªºMS-DOSÅX°Êµ{§Ç¹ï¬Y¨Ç¾Þ§@¸T¤î¤¤Â_¡Aªý¶ë¦ê¤f¤¤Â_¡C¦]¦¹»Ý­n¡¥modem speed¡¦³]¸m¡CLinuxÅX°Êµ{§Ç¥u¹ï¾ã­Ó¥]¶i¦æ¾Þ§@¡A¨Ò¦p¦b¼Æ¾Ú¥]§¹¥þ¶Ç¨ìºô¥d¦Z¤~¶}©lµo°e¸Ó¼Æ¾Ú¥]¡A±q¦ÓÁ×§K¤Fªø®É¶¡¸T¤î¤¤Â_ªº»Ý­n¡C¡¨

ª`·N¡AISAºô¥dÀË´ú¨Ï¥Îªº¤èªk»P¤j¦h¼Æºô¥d¤£¦P¡C°ò¥»¤W¬O³q¹Lµo°e¼Æ¾Ú¨ìID\_PORT¡]±qºÝ¤f{\ttfamily 0x100}¨ì{\ttfamily 0x1ff}¡A¶¡¹j¬°{\ttfamily 0x10}¡^­n¨Dºô¥dÅTÀ³¡C³o¤@ÀË´ú¤èªk·N¨ýµÛ¦b¦hISAªº3c509°t¸m¤¤¡A¬Y­Ó¯S©wºô¥d{\itshape Á`\/}¬O­º¥ý³QÀË´ú¡A¦Óµw¥ó¥H¤Óºô¦a§}³Ì§Cªººô¥d{\itshape Á`\/}¬O§@¬°{\ttfamily eth0}¡C³o¨ä¹ê¨S¤°¤\°ÝÃD¡A¦ý¦³¨Ç¤H·Q¬°¯S©wªº±µ¤f¤À°t¤@­Ó6¦r¸`ªºµw¥ó¦a§}¡C¦pªG¦³¦h¶ô3c509ºô¥d¡A³Ì¦n¤£«ü©wI/OºÝ¤f¡]§Y¨Ï¥ÎI/O=zero¡^¨Ï¥Î{\ttfamily ether=0,0,ethN}©R¥O¡AÅý¦Û°ÊÀË´ú¨Ó±Æ¦C­þ¤@¶ôºô¥d§@¬°²Ä¤@¶ôºô¥d¡C¨Ï¥Î«D¹sªºI/O­È·|¨Ï¸Ó©R¥OµLªkÀË´ú©Ò¦³ªººô¥d¡A©Ò¥H¤£­n³o¼Ë°µ¡C

¦pªG³o¨Ï§A·P¨ì§xÂZ¡A¬Ý¤@¤UDonaldªº³Ì·sÅX°Êµ{§Ç¡A§A¥i¥H¦b¥¼¨Ï¥Îªº¤º¦s¦a§}°ì¤¤¨Ï¥Î¤@­Ó{\ttfamily 0x3c509}­È¡A¨ÏÀË´úªº¶¶§Ç²Å¦X§Aªº­n¨D¡C




\subsubsection{3c515\label{cork}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c515

³o¬O3ComªºISA 100Mbps²£«~¡A½s½X¦W¬°¡§CorkScrew¡¨¡Cv2.2¤º®Ö¨½¥]§t¤F±qDonald¨º¨à±o¨ìªº³o¨Çºô¥dªº¬Û¹ï¸û·sªºÅX°Êµ{§Ç¡C­nÀò±o§ó·sªº¸ê®Æ¡A¥i¥H³X°ÝVortexªººô­¶¡G

\nameurl{http://www.scyld.com/linux/drivers/vortex.html}{Vortex}






\subsubsection{3c523\label{3c523}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c523

³o­ÓMCAÁ`½uªººô¥d¨Ï¥Îi82586¡AChris Beauregard­×§ï¤Fni52ÅX°Êµ{§Ç¥Î¤_³o¨Çºô¥d¡C¦bv2.2¤º®Ö·½½X¾ð¨½¥i¥H§ä¨ì¥¦ªºÅX°Êµ{§Ç¡C

§ó¦hªº²Ó¸`¥i¥H¦bMCA-Linuxªººô­¶¤W§ä¨ì
{\ttfamily http://glycerine.cetmm.uni.edu/mca/}




\subsubsection{3c527\label{3c527}}

ª¬ºA¡G¤£¤ä«ù¡C

¹ï¡A³o¬O¥t¤@­ÓMCAºô¥d¡A¹ï¥¦¨S¿³½ì¡C¦pªG§A°í«ù¥ÎMCA¡A³Ì¦n¥Î3c529¡C




\subsubsection{3c529\label{3c529}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c509

³o­Óºô¥d¹ê»Ú¤W¨Ï¥Î»P3c509¬Û¦Pªºªä¤ù²Õ¡C¹ê»Ú¤W¦­¦b¤º®Ö¨½¥[¶i¹ïMCAªº¤ä«ù¤§«e¡ADonald´N¤w¸g¦b3c509ªºÅX°Êµ{§Ç¨½©ñ¤F¨Ç¹_¤l¨ç¼Æ¡A¦b±´´ú§¹EISAºô¥d¦Z¡A¶}©l±´´úISAºô¥d¤§«e¡AÀË¬dMCAºô¥d¡C©Ò»ÝªºMCA±´´ú¥N½X³Q¥]§t¦b»Pv2.2¤º®Ö¤@°_´£¨ÑªºÅX°Êµ{§Ç¨½¡C§ó¦hªº²Ó¸`¥i¥H¦bMCA-Linuxºô­¶¤W§ä¨ì¡G

{\ttfamily http://glycerine.cetmm.uni.edu/mca/}




\subsubsection{3c562}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c589¡]¿W¥ßµo¦æ¡^

³o­ÓPCMCIAºô¥d¬O3c589Bºô¥d»Pmodemªº²Õ¦X¡C¹ï¤_²×ºÝ¥Î¤á¡Amodem»P¤@­Ó¼Ð­ãªºmodem¤@¼Ë¡C°ß¤@ªº³Â·Ð¬O­n¨Ï¨â­Ó¿W¥ßªºLinuxÅX°Êµ{§Ç¦@¥Î¤@­Ó¤¤Â_¡C¸Ó¥d¤W¦³¤@¨Ç·sªº±H¦s¾¹©M¤@¨Ç¤ä«ù¦@¨É¤¤Â_ªºµw¥ó¡C»Ý­n¨Ï¥Î¤ä«ù¦@¨É¤¤Â_ªºv2.0¥H¤Wªº¤º®Öª©¥»¡C



¦A¦¸·PÁÂCameron´£¨Ñµ¹David Hindsªº¼Ë«~©M¸ê®Æ¡C½Ð¦bDavidµo¦æªºPCMCIA³n¥ó¥]¨½´M§ä¤ä«ù¡C

°Ñ¨£\ref{pcmcia} {(PCMCIA¤ä«ù)}¥H¤F¸Ñ§ó¦hªº¦³ÃöPCMCIAªä¤ù²Õ¡Bsocket±Ò¥Î³n¥óµ¥«H®§¡C




\subsubsection{3c575}

ª¬ºA¡G¥¼ª¾¡C

³o­ÓPCMCIAºô¥dªºÅX°Êµ{§Ç¥¿¦b¶}µo¤¤¡A¦ýº@¥H¦Z·|¥]§t¦bDavidªºPCMCIA³n¥ó¥]¨½¡C³Ì¦nÀË¬d¤@¤UPCMCIA³n¥ó¥]¥H¤F¸Ñ¥Ø«eªºª¬ºA¡C




\subsubsection{3c579\label{3c579}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c509

EISAª©¥»ªº509¡C¥Ø«eªºEISAª©¥»ÁÙ¨Ï¥Î¦P¼Ëªº16¤ñ¯S¼eªºªä¤ù¡A¦Ó¤£¬O32¤ñ¯Sªº±µ¤f¡A©Ò¥H©Ê¯à¤Wªº§ïµ½¦}¤£¥O¤HÅå©_¡C½T©wºô¥d³Q°t¸m¬°EISA´M§}¼Ò¦¡¡C¾\Åª¤W­±ªº3c509¤@¸`¥H¤F¸ÑÅX°Êµ{§Çªº«H®§¡C




\subsubsection{3c589 / 3c589B\label{3c589}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c589

²{¦b³oºØPCMCIAºô¥d¤w¸g³Q«Ü¦h¤H¨Ï¥Î¤F¬Û·íªø®É¶¡¡Cª`·N¹ï¥¦ªº¤ä«ù¡]¥Ø«e¡^ÁÙ¤£¥]¬A¦b¯Ê¬Ùªº¤º®Ö·½½X¾ð¤º¡C¦WºÙ¤¤¡§B¡¨ªº§t¸q»P3c509ªº±¡ªp¬Û¦P¡C

¦bDonaldªºftp¯¸ÂI©MDavid HindsªºPCMCIA³n¥ó¥]¨½³£¦³¥i¥ÎªºÅX°Êµ{§Ç¡C§AÁÙ»Ý­n¤@®M¤ä«ùPCMCIA±±¨î¾¹ªºªä¤ù²Õ¡C°Ñ¨£\ref{pcmcia} {(PCMCIA¤ä«ù)}¥H¤F¸Ñ§ó¦hªº¦³ÃöPCMCIAªä¤ù²Õ¡Bsocket±Ò¥Î³n¥óµ¥«H®§¡C




\subsubsection{3c590 / 3c595\label{vortex}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c59x

³o¨Ç¡§Vortex¡¨ºô¥d¬O¥Î¦bPCIÁ`½u¾÷¾¹¤Wªº¡A'590¬O10Mbpsªº²£«~¡A'595¬O3Comªº100Mbs²£«~¡Cª`·N'595¤]¥i¥H¶H'590¤@¼Ë¹B¦æ¡]§Y¨Ï¥Î10Mbps¼Ò¦¡¡^¡CÅX°Êµ{§Ç¥]§t¦bv2.0¤º®Ö·½½X¤¤¡A¦ýÁÙ¦b¤£Â_¤É¯Å¡C¦pªG¦b¨Ï¥Îv2.0¤º®Ö¨½ªºÅX°Êµ{§Ç®É¹J¨ì°ÝÃD¡A¥i¥H±q¤U­±ªºURLÀò¨ú¤@­Ó§ó·sªºÅX°Êµ{§Ç¡G

\nameurl{http://www.scyld.com/linux/drivers/vortex.html}{Vortex}

ª`·N¡A²{¦b¦³¨âºØ¤£¦Pªº3c590ºô¥d¡A¸û¦­ªº«¬¸¹¦³32kBªºªO¤W¤º¦s¡A¦Z¨Óªº«¬¸¹¥u¦³8kBªºªO¤W¤º¦s¡C¥i¯à§A¶R¤@­Ó·sªº3c59xÁÙ¨S¦³¦h¤[¡A¥¦´N¥¿¦b³Q3c90x©Ò¨ú¥N¡C¦pªG§A¬O¶R§O¤Hªº¤G¤â³f¡A·Qªk§Ë¨ì¤@­Ó32kBªº«¬¸¹¡C3c595ºô¥d¦³64kBªO¤W¤º¦s¡A¦]¬°µLªk¥u¥Î8kBªºRAM´N¯à¹F¨ì100Mbps¡I

·PÁÂCameron Spitzer©M3ComªºTerry Murphyµ¹Donald´£¨Ñºô¥d©M¸ê®Æ¡A¨ÏDonald¯à¼g¥XÅX°Êµ{§Ç¨Ó¡C




\subsubsection{3c592 / 3c597}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c59x

³o¨Ç¬OEISAª©¥»ªº3c59x¨t¦Cºô¥d¡C3c592/3c597¡]¤S¦W¬°Demon¡^¥i¥H¨Ï¥Î¤W­±°Q½×ªºvortexÅX°Êµ{§Ç¡C




\subsubsection{3c900 / 3c905 / 3c905B / 3c905C}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c59x

³o¨Çºô¥d¡]¤S¦W¬°¡§Boomerang¡¨¡A©ÎEtherLink III XL¡^¬O¥Î¨Ó¨ú¥N3c590/3c595ºô¥dªº¡C

¹ïCycloneªº¡§B¡¨ª©¥»ªº¤ä«ù³Ìªñ¤~¥[¶i¨Ó¡C­n¦bv2.0¤§«eªº¤º®Ö¨Ï¥Î¸Óºô¥d¡A¥²¶·±q¦p¤UªºDonald¯¸ÂIÀò¨ú§ó·s¦Zªº{\ttfamily 3c59x.c}ÅX°Êµ{§Ç¡G

\nameurl{http://www.scyld.com/network}{Vortex-Page}






\subsubsection{3c985}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gacenic

Jes Sorensen´£¨ÑªºÅX°Êµ{§Ç¦bv2.2¤º®Ö¨½¯à§ä¨ì¡C°£¤F3Comªº«¬¸¹¡A¥¦ÁÙ¤ä«ù¤LºØ¨ä¥¦ªº¦N¤ñ¯Sºô¥d¡C




\subsection{Accton\label{accton}}






\subsubsection{Accton MPX}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

¤£­n³Q¥¦ªº¦W¦rÄF¤F¡C¥¦ÁÙ¬ONE2000­Ý®eºô¥d¡A¥i¥H¨Ï¥Îne2000ÅX°Êµ{§Ç¡C




\subsubsection{Accton EN1203, EN1207, EtherDuo-PCI}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip©Îrtl8139

ÅãµM¦³¤LºØ­×­qª©ªºEN1207¡]A¨ìD¡^¡A¨ä¤¤A¡BB©MC¬O°ò¤_tulipªº¡A¦ÓDª©¥»ªº¬O°ò¤_RealTek 8139¡]ÅX°Êµ{§Ç¤£¦P¡^¡C©Ò¥H¦bÁÊ¶R®É­n½T©w¦pªG¥X°ÝÃD¥i¥H°h¦^¡C




\subsubsection{Accton EN2209 Parallel Port Adaptor (EtherPocket)}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G?

²{¦b¦³³o¨Ç¦}¤f¾A°t¾¹ªºÅX°Êµ{§Ç¡A¦ýÁÙ¤£¥]¬A¦b2.0©Î2.1ª©¥»¤º®Ö·½½X¤¤¡C¥i¥H±q¦p¤U¥D­¶Àò¨úÅX°Êµ{§Ç¡G

{\ttfamily http://www.unix-ag.uni-siegen.de/\~{}nils/accton\_linux.html}






\subsubsection{Accton EN2212 PCMCIA Card}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G?

David Hinds¦b½s¼g¸Óºô¥dªºÅX°Êµ{§Ç¡A³Ì¦nÀË¬d¤@¤U¥LªºPCMCIA³n¥ó¥]¥H¤F¸Ñ¥Ø«eªºª¬ºA¡C






\subsection{Allied Telesyn/Telesis\label{allied-telesis}}






\subsubsection{AT1500\label{at-1500}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance

³o¨Ç¬O¨Ï¥Î79C960ª©¥»ªºAMD LANCEªº¨t¦C§C¦¨¥»¥H¤Óºô¥d¡C¥¦­Ì¬O¥i¥H±±¨îÁ`½uªººô¥d¡A¦]¦¹¬O¤@ºØ¥i¥Îªº¸û§ÖªºISAÁ`½u¥H¤Óºô¥d¡C

DMA¿ï¾Ü©Mªä¤ù¸¹½X«H®§¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C

§ó¦h¦³Ãö°ò¤_AMD LANCEªº¥H¤Óºô¥dªº§Þ³N«H®§¥i¥H¦b\ref{amd-notes} {(Notes on AMD...)}§ä¨ì¡C




\subsubsection{AT1700\label{at1700}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gat1700

ª`·N¡A­n¦b{\ttfamily make config}®É³X°Ý¸ÓÅX°Êµ{§Ç¨ÌµM»Ý­n¥ý¦b¦^µª¡§Prompt for development and/or incomplete code/drivers?¡¨®É¦^µª¡§Y¡¨¡C³o¥u¬O¦]¬°³oºØºô¥d«Ü¤Ö¨£¡A¾É­PÅX°Êµ{§ÇÃ­©w©Êªº¤ÏõX¤Ó¤Ö¡C¦pªG»P¤º®Ö¤@°_´£¨ÑªºÅX°Êµ{§Ç¥X²{°ÝÃD¡A¤]³\§A·|¹ï¥H¤Uªº´À¥NÅX°Êµ{§Ç·P¿³½ì¡G{\ttfamily http://www.cc.hit-u.ac.jp/nagoya/at1700/}

Allied TelesisªºAT1700¨t¦Cºô¥d¬O°ò¤_FujitsuªºMB86965ªä¤ùªº¡C¸Óªä¤ù¨Ï¥Î¥i½sµ{I/O±µ¤f©M¤@¹ï©T©w¤j¤pªº¶Ç¿é½w¦s¡C³o¼Ë¦bµo°e­I¾a­Iªº¤@¤p²Õ¼Æ¾Ú¥]®É¡A¤Á´«½w¦s±a¨Óªº°±¹y¸û¤p¡C

¸Óºô¥dªº¤@­Ó¿W¯S¤§³B¦b¤_°£¤F¯à°÷ÅX°Ê10baseTªº100¼Ú©iUTP¡]«D«Ì½ªÂùµ±½u¡^¤§¥~¡AÁÙ¯à°÷ÅX°Ê¤@¯ë¦w¸Ë¦b¥OµPÀô¤Wªº150¼Ú©iSTP¡]«Ì½ªÂùµ±½u¡^¡C¸Óºô¥dÁÙ¦³¤@­Ó¥úÅÖª©¥»(AT1700FT)¡C

¥Î¦bAT1700¤WªºFujitsuªä¤ù¦³¤@­Ó³]­p¤Wªº¯Ê³´¡G¥¦»Ý­n¾÷¾¹Â_¹q¨Ó§¹¥þ­«°_¡C¨Ï¥Îreset«ö¶sµLªk­«°_Á`½u±µ¤f¡C³o¤]¤£¬O¤ÓÃa¡A¥u¤£¹L¦b­«°_¦Z¤~¯à¥i¾a¦a³QÀË´ú¨ì¡C¸Ñ¨M¤èªk¬O¦b¤º®ÖÀË´úAT1700¦³°ÝÃD®ÉÃö¾÷¾¹­«°_¡C






\subsubsection{AT2400\label{at2400}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G ne, ne2k-pci (+8390) 

ÁÙ¬OPCI NE2000­Ý®eºô¥d¡A¥¦¬O°ò¤_RealTek 8029ªä¤ùªº¡C




\subsubsection{AT2450\label{at2450}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

³o¬OPCIª©¥»ªºAT1500¡A¦Ó¥B¨S¦³Bocaªº79c970 PCIºô¥d¨º¼Ëªº°ÝÃD¡CDMA¿ï¾Ü©Mªä¤ù¸¹½X«H®§¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C

§ó¦h¦³Ãö°ò¤_AMD LANCEªº¥H¤Óºô¥dªº§Þ³N«H®§¥i¥H¦b\ref{amd-notes} {(Notes on AMD...)}§ä¨ì¡C




\subsubsection{AT2500}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Grtl8139

¸Óºô¥d¨Ï¥ÎRealTekªº8139ªä¤ù¢w¢w°Ñ¨£\ref{rtl8139} {(RealTek 8139)}¤@¸`¡C




\subsubsection{AT2540FX\label{at2540}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geepro100

¸Óºô¥d¨Ï¥Îi82557ªä¤ù¡A¦]¦¹¥i¯à/À³¸Ó¯à°÷¨Ï¥Îeepro100ªºÅX°Êµ{§Ç¡C¦pªG§A¸Õ¥Î¹L¡A½Ðµoµ¹§Ú¤@¥÷³ø§i¥H§ó·s¥»«H®§¡C




\subsection{AMD / Advanced Micro Devices\label{amd}}



AMDªºCarl Ching¤Í¦n¦a´£¨Ñ¤F«D±`¸ÔºÉªº©Ò¦³¦³ÃöAMD¥H¤Óºô²£«~ªº¸ê®Æ¡A¹ï¼á²M¥»¸`¤º®e«Ü¦³À°§U¡C




\subsubsection{AMD LANCE (7990, 79C960/961/961A, PCnet-ISA)\label{lance}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance

³o¹ê»Ú¤W¤£¬OAMDªº¥H¤Óºô¥d¡C§A·|¾\Åª¥»¤p¸`ªº­ì¦]¬O¡A§A¦bºô¥d¤W¥u¯à§ä¨ìAMD¼Ð°O©M¤W­z¼Æ¦r¡C7990¬O­ì©lªº¡§LANCE¡¨ªä¤ù¡A¦ý¤j¦h¼Æ¸ê®Æ¡]¥]¬A¥»¤åÀÉ¡^³£«ö·Ó¡§LANCE¡¨ªä¤ù¹ï«Ý©Ò¦³³o¨ÇÃþ¦üªºªä¤ù¡C¡]......§Ú¥i¥H¥[¤@¥y¡G³o¼Ë¬O¤£¹ïªº¡C¡^

¤W­±³o¨Ç¼Æ¦r«ü©ú¤F§@¬°³\¦h¥H¤Óºô¥dªº®Ö¤ßªºAMDªä¤ù¡C¨Ò¦p¡AAllied TelesisªºAT1500¡]°Ñ¨£\ref{at-1500} {(AT1500)}¡^©MNE1500/2100¡]°Ñ¨£\ref{ne1500} {(NE1500)}¡^´N¨Ï¥Î¤F³o¨Çªä¤ù¡C

7990/79c90¦­¤w³Q·sª©¥»©Ò¨ú¥N¡C79C960¡]¤S¦WPCnet-ISA¡^¥D­n¥]§t79c90®Ö¤ß¥H¤Î©Ò¦³¨ä¥¦¥²¶·ªºµw¥ó¤ä«ù¡A¥i§@¬°³æ¤ù¥H¤Óºô¥dªº¸Ñ¨M¤è®×¡C79c961(PCnet-ISA+)¬O'960ªºµL¸õ½u§Y´¡§Y¥Îª©¥»¡CISA¨t¦Cªº³Ì¦Z¤@­Óªä¤ù¬O79c961A(PCnet-ISA II)¡A¼W¥[¤F¥þÂù¤uªº¥\¯à¡C°£¤F¨º¨Ç¨Ï¥Î¦@¨É¤º¦s°t¸mªº­ì©l7990ªº«D±`¥j¦Ñªººô¥d¡A©Ò¦³¨Ï¥Î³o¨Çªä¤ùªººô¥d³£¥i¥H¨Ï¥Îlance.cÅX°Êµ{§Ç¡C¥i¥H³q¹LDMA³q¹D¨S¦³¸õ½u¨Ó¿ë»{¥X³o¨Ç¦Ñºô¥d¡C

¤@­Ó±`¨£ªº°ÝÃD¬O¹J¨ì¡§busmaster arbitration failure¡¨®ø®§¡C¦b©T©wªº®É¶¡¤§¤º¡]50us¡^LANCEÅX°Êµ{§ÇµLªk³X°ÝÁ`½u®É´N·|¥X²{³o¤@®ø®§¡C³o³q±`¹w¥Ü¥DªO¤WªºÁ`½u±±¨îDMA³Q¯}Ãa¡A©ÎªÌ¬Y¨Ç¨ä¥¦³]³ÆÅQ¥e¤FÁ`½u¡A©ÎªÌDMA³q¹D¥X²{¨R¬ð¡C¦pªG§AªºBIOS³]¸m¤¤¦³¡§GAT option¡¨¡]«Oµý¦s¨ú®É¶¡¡^¡A¨º¤\¸ÕµÛ§ïÅÜ¤@¤U¨ä³]¸m¬Ý¬Ý¦³¨S¦³®Ä¡C

¦P¼Ë­nª`·N¡A¹ï¤@­Ó¦Xªkºô¥d¡AÅX°Êµ{§Ç¥u¬d¬Ý¥H¤U¦a§}¡G{\ttfamily 0x300, 0x320, 0x340, 0x360}¡A±Ò°Ê°Ñ¼Æ{\ttfamily ether=}©Ò´£¨Ñªº¦a§}³QÀR®¨®¨¦a²¤¹L¤F¡]¹ï¦¹±N¶i¦æ­×§ï¡^¡A©Ò¥H²{¦b­n½T©w§Aªººô¥d°t¸m¬°¤W­zªº¤@­ÓI/O¦a§}¡C

§Y¨Ï¦w¸Ë¤F¶W¹L16MBªº¤º¦s¡A¸ÓÅX°Êµ{§Ç¨ÌµM¤u§@±o«Ü¦n¡A¦]¬°¥²­n®É¥¦·|¨Ï¥Î§CºÝ¤º¦s¡§bounce-buffers¡¨¡]§Y¦bµo°e¼Æ¾Ú¨ìºô¥d¶i¦æ¶Ç¿é¤§«e¡A16MB¥H¤W¤º¦sªº¼Æ¾Ú·|¥ý«þ¨©¨ì16MB¥H¤Uªº¤@­Ó½w¦s¨½¡C¡^

DMA³q¹D¥i¥H¥Î°£¦¹¤§¥~¤£³Q¨Ï¥Îªºdev-{$>$}mem\_start­Èªº§C¦ì¶i¦æ³]¸m¡]¤S¦WPARAM\_1¡^¡C¡]°Ñ¨£\ref{ether} {(PARAM\_1)}¡^¦pªG¨S¦³³]¸m¡A¨º¤\«ö¦¸§Ç±Ò¥Î¨C­ÓªÅ¶~ªºDMA³q¹D¦}ÀË¬d¬O§_ªì©l¤Æ¦¨¥\¨Ó¶i¦æ±´´ú¡C

HP-J2405AªO¬O­Ó¨Ò¥~¡G¦b¸ÓªO¤W«Ü®e©öÅª¥XEEPROM³]¸mªºIRQ©MDMAªº­È¡C

°Ñ¨£\ref{amd-notes} {(Notes on AMD...)}¥H¤F¸Ñ§ó¦h¦³Ãö³o¨Çªä¤ùªº«H®§¡C




\subsubsection{AMD 79C965 (PCnet-32)\label{pcnet-32}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

³o¬OPCnet-32¢w¢w¥Î¤_VLÁ`½u©M§½³¡Á`½u¨t²Îªº­ì©lLANCEªä¤ùªº32¤ñ¯SÁ`½u±±¨îª©¥»¡C³o¨Çªä¤ù¥i¥H¥Î¼Ð­ãªº{\ttfamily lance.c}ÅX°Êµ{§Ç¾Þ§@¡A¦P®ÉÁÙ¦³¤@­Ó¤£¨ü¥ô¦óISAÁ`½u¦³Ãö16MB­­¨îªº32¤ñ¯Sª©¥»ªºÅX°Êµ{§Ç¡]{\ttfamily pcnet32.c}¡^¡C




\subsubsection{AMD 79C970/970A (PCnet-PCI)\label{pcnet-pci}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

³o¬OPCnet-PCI¢w¢w»PPCnet-32¬Û¦ü¡A¤£¹L¬O¬°°ò¤_PCIÁ`½u¨t²Î³]­pªº¡C½Ð°Ñ¾\¤W­±ªºPCnet-32«H®§¡C³o·N¨ýµÛ»Ý­nºc«Ø¤@­Ó±Ò¥ÎPCI BIOS¤ä«ùªº¤º®Ö¡C'970A¦b­ì©lªº'970³]­p¤W¼W¥[¤F¥þÂù¤u¤ä«ù¤Î¨ä¥¦¤@¨Ç¯S©Ê¡C

ª`·N¡ABoca¨î³yªº79C970µLªk¥Î¦b¸û§Öªº©bÄË¾÷¾¹¤W¡C³o¬O­Óµw¥ó¿ù»~¡A¥¦¤]·|¼vÅTDOS¥Î¤á¡C°Ñ¦ÒBoca¤@¸`¥H¤F¸Ñ§ó¦hªº²Ó¸`¡C




\subsubsection{AMD 79C971 (PCnet-FAST)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

³o¬O¥Î¤_PCI¨t²ÎªºAMDªº100Mbitªä¤ù¡A¤]¤ä«ù¥þÂù¤u¾Þ§@¡C1996¦~6¤ë¥X²£¡C




\subsubsection{AMD 79C972 (PCnet-FAST+)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

¤w¸gµý¹ê¸Óºô¥d¤u§@±¡ªp»P'971¤@¼Ë¡C




\subsubsection{AMD 79C974 (PCnet-SCSI)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

³o¬OPCnet-SCSI¢w¢w±q¥H¤ÓºôªºÆ[ÂI¨Ó¬Ý°ò¥»¤W«ö'970³B²z¡C°Ñ¬Ý¤W¤å¡C¤£­n°Ý¬O§_¤ä«ùªä¤ùªºSCSI³¡¤À¢w¢w¥»¤å¬O{\itshape ¥H¤Óºô-HowTo\/}¡A¤£¬OSCSI-HowTo¡C




\subsection{Ansel Communications\label{ansel}}






\subsubsection{AC3200 EISA}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gac3200

ª`·N¡A­n¦b{\ttfamily make config}®É³X°Ý¸ÓÅX°Êµ{§Ç¨ÌµM»Ý­n¥ý¦b¦^µª¡§Prompt for development and/or incomplete code/drivers?¡¨®É¦^µª¡§Y¡¨¡C³o¥u¬O¦]¬°³oºØºô¥d«Ü¤Ö¨£¡A¾É­PÅX°Êµ{§ÇÃ­©w©Êªº¤ÏõX¤Ó¤Ö¡C

¨äÅX°Êµ{§Ç§@¬°alpha´ú¸ÕÅX°Êµ{§Ç³Q¥]§t¦b¥Ø«eªº¤º®Ö¨½¡C¸Óºô¥d¬O°ò¤_ne2000©Mwd80x3ºô¥d¤W¨Ï¥Îªº´¶³qªºNS8390ªä¤ù¡C½Ð°Ñ¨£¥»¤åªº\ref{alfa} {(AlphaÅX°Êµ{§Ç)}¥H¤F¸Ñ¦bLinux¤U¨Ï¥Îalphaª©ÅX°Êµ{§Çªº­«­n«H®§¡C

¦pªG§A¦b¨Ï¥Î¸Óºô¥d¡A½ÐÅý§Ú­Ìª¾¹D¥¦ªº¤u§@±¡ªp¡AÁöµM¦bv1.1.25¤º®Ö¨½´N¥]§t¤F¨äÅX°Êµ{§Ç¡A¦ý¤ÏõX«H®§«Ü¤Ö¡C

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C




\subsection{Apricot}






\subsubsection{Apricot Xen-II On Board Ethernet}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gapricot

³o¬O¨Ï¥Îi82596Á`½u±±¨îªä¤ùªºªO¤W¥H¤Óºô¥d¡C¥¦ªºI/O¦a§}¥u¯à¬O{\ttfamily 0x300}¡C±qÅX°Êµ{§Çªº·½½X¤W±oª¾¡A¨äIRQ¤]³Qµw¥ó©T©w¬°10¡C

¦­´Áª©¥»ªºÅX°Êµ{§Ç¶É¦V¤_»{¬°{\ttfamily 0x300}³B¦s©ñªº¤@©w¬Oapricot NIC¡C¦Z¨Ó¤~¹ïµw¥ó¦a§}¶i¦æÀË¬d¥HÁ×§K¿ù»~ªºÀË´ú¡C




\subsection{Arcnet\label{arcnet}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Garcnet (arc-rimi, com90xx, com20020)

¥Ñ¤_¸Óºô¥dªº»ù®æ«D±`§C·G¦Ó¥B¥H¤Óºô©Ê¯à«Ü¦n¡A¥i¯à¤H­Ì·|¦³«Ü¦h¾÷·|®½Äm¥X¥L­ÌªºArcnetµw¥ó¡A¨Ï±o«Ü¦h®a¥Î¨t²Î³£¨Ï¥ÎArcnet¡C

Arcnetªº¤@­ÓÀuÂI¦b¤_©Ò¦³ªººô¥d±µ¤f³£¤@¼Ë¡A©Ò¥H¥u»Ý­n¤@­ÓÅX°Êµ{§Ç¡C¥¦ÁÙ¤º«Ø¤F¿ù»~³B²z¾÷¨î¡A¾Ú«H¤£·|¥á¥¢¼Æ¾Ú¥]¡C¡]¹ïUDP¨Ó»¡³o¥i¤Ó´Î¤F¡I¡^ª`·N¡AarcnetÅX°Êµ{§Ç¨Ï¥Î¡§arc0¡¨§@¬°¦Û¤vªº¦W¦r¡A¦Ó¤£¬O³q±`ªº¥H¤Óºô³]³Æ¦W¡§eth0¡¨¡C

¦b¼Ð­ã¤º®Ö¨½¥]§t¤F­Y¤z³]¸m¸õ½u¡B¤@¯ë´£¥Ü©M¶l±HBug³ø§i¦a§}ªº«H®§¤å¥ó¡C

¾Ú«H100MbsªºARCnetºô¥d¤]¥i¥H¦P¼Ë¨Ï¥Î¸ÓÅX°Êµ{§Ç¡I




\subsection{AT\&T}



ª`·N¡AAT\&TªºStarLAN¬O¤@ºØ©t®q§Þ³N¡A¸òSynOpticsªºLattisNet¤@¼Ë¡A¤£¯à¦b¼Ð­ãªº10Base-TÀô¹Ò¨½¨Ï¥Î¡A¨S¦³¯à¶i¦æ¡§¬Û¤¬¥æ¬y¡¨ªºHub¡C




\subsubsection{AT\&T T7231 (LanPACER+)}

ª¬ºA¡G¤£¤ä«ù¡C

³o¨ÇStarLANºô¥d¨Ï¥Îªº±µ¤fÃþ¦ü¤_i82586ªä¤ù¡CMatthijs Melchior¡]{\ttfamily matthijs.n.melchior@att.com}¡^´¿¸g¸ÕµÛ¥Î¹L3c507ªºÅX°Êµ{§Ç¡A¦n¶H®t¤£¦h¥i¥H¤u§@¤F¡C¦ý±q¨º¤§¦Z´N¦A¨SÅ¥¹L¦h¤Ö®ø®§¤F¡C




\subsection{Boca Research\label{boca}}



¤£¿ù¡A¥L­Ì¤£¥ú¬O¨î³y¦h¤f¦ê¦æ¥d¡C




\subsubsection{Boca BEN400}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

ÅãµM³o¬O¤@´ÚNE2000­Ý®eºô¥d¡A¨Ï¥ÎVIA VT86C916ªä¤ù¡C




\subsubsection{Boca BEN (ISA, VLB, PCI)\label{boca-ben}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance, pcnet32

³o¨Çºô¥d³£¬O°ò¤_AMDªºPCnetªä¤ù¡C»Ý­nÄµ§i¤@¤U¼ç¦bªº¶R®a¡A³\¦h¥Î¤á¦b¨Ï¥Î³o¨ÇVLB/PCIºô¥d®É¹J¨ì¤F¨S§¹¨S¤Fªº³Â·Ð¡C§Öªº©bÄË¨t²Î¥Î¤á¨ü¨ì¤F¯S§Oªº¥´À»¡Cª`·N³o¦}¤£¬OÅX°Êµ{§Çªº°ÝÃD¡A¦]¬°DOS/Win/NT¥Î¤á¤]¤@¼Ë¹J¨ì³Â·Ð¡CBocaªº§Þ³N¤ä«ù¹q¸Ü¸¹½X¬O(407) 241-8088¡A¤]¥i¥H³q¹L{\ttfamily 75300.2672@compuserve.com}§ä¨ì¥L­Ì¡C¦Ñ¦¡ªºISAºô¥d¬Ý¨Ó¨S¹J¨ì³oºØ°ÝÃD¡C

Boca¹ï¨ü¼vÅTªº¨Ï¥ÎªÌ´£¨Ñ¡§¥]­×¡¨ªA°È¡A»Ý­n¼W¥[¤@­Ó¯Ê¤Öªº¹q®e¡AÁöµM¥i¥H¸Ñ¨M¤@¨Ç°ÝÃD¡A¦ý¹ï¤j¦h¼Æ¤H¨Ó»¡¦}«D¦Ê¤À¤§¦Ê«µ®Ä¡C

¦pªG±z{\itshape ¤´µM\/}·Q¶R³oºØºô¥d¡A¦Ü¤Ö¸ÕµÛ±o¨ì¤@­Ó7¤ÑµL±ø¥ó°h³fªº±ø´Ú¡A³o¼Ë¤@¥¹¥X°ÝÃD§A´N¥i¥H°h³f¡C

¦³ÃöAMDªä¤ù§ó¤@¯ëªº«H®§¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C

°ò¤_AMD LANCEªº¥H¤Óºô¥dªº§ó¦h§Þ³N«H®§¥i¥H¦b\ref{amd-notes} {(Notes on AMD...)}§ä¨ì¡C




\subsection{Cabletron\label{ctron}}



Donald¼g¹D¡G¡§¬Oªº¡A¤S¤@­Ó¤£ªÖ´£¨Ñ½sµ{¸ê®Æªº¤½¥q¡C¥L­Ì­nµ¥«Ý¤L­Ó¤ë¨Ó³Ì²×½T©w
©Ò¦³¥L­Ìªº¸ê®Æ³£¬O¨p¦³ªº¡A»W·N®ö¶O§Úªº®É¶¡¡C¦pªG¥i¥Hªº¸Ü¡A¶H¸úÁ×½E¬Ì¤@¼ËÁ×§K¨Ï¥Î¥L­Ìªººô¥d¡CÁÙ­nª`·N¡A¦³¤H´¿¥´¹q¸Üµ¹Cabletron¡Aµ²ªGÅ¥¨ì¤°¤\¡¥¦³­ÓD. Becker¦b½s¼gLinux¤UªºÅX°Êµ{§Ç¡¦¤§Ãþªº¸Ü¢w¢w¦n¶H§Ú¬O¬°¥L­Ì¤u§@ªº¡C§¹¥þ¤£¬O³o¤\¦^¨Æ¡C¡¨



¬Ý¨Ó¦Û±q¤L¦~«eDonald¼g¤F¤W­zª`ÄÀ¦Z¡ACabletron§ïÅÜ¥L­Ì¹ï¤_½sµ{¸ê®Æªº¬Fµ¦¡]¶HXircom¤@¼Ë¡^¢w¢w¦pªG§A·Qµý¹ê³o¤@ÂI©Î¯Á¨ú½sµ{«H®§ªº¸Ü¡Aµo­Óe-mailµ¹{\ttfamily support@ctron.com}¡C¦ý¬O¡A²{¦b¤L¥G¨S¦³¤H¹ï¦Ñ¦¡ªºE20xx©ME21xxºô¥d´£¥X­×§ï/§ó·sÅX°Êµ{§Çªº­n¨D¤F¡C




\subsubsection{E10**, E10**-x, E20**, E20**-x\label{e10xx}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

³o¨Ç®t¤£¦hºâ¬ONEx000­Ý®eºô¥d¡A¾Ú³ø§i¥i¥H¨Ï¥Î¼Ð­ãªºNEx000ÅX°Êµ{§Ç¡A³o­n·PÁÂ±´´ú®Éªºctron¯S©ÊÀË¬d¡C¦pªG¦³°ÝÃD¡A¤L¥G¤£¥i¯à­×´_¡A¦]¬°¨S¦³½sµ{¸ê®Æ¡C




\subsubsection{E2100\label{e2100}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Ge2100 (+8390)

¤S¨Ó¤F¡A¦b½sµ{¸ê®Æ¨p¦³ªº±¡ªp¤U¤°¤\³£°µ¤£¤F¡CE2100ªº³]­p«Ü®t«l¡C¨C¦¸¶Ç°e¼Æ¾Ú¥]¬M®g¥¦ªº¦@¨É¤º¦s®É¡A¥¦³£­n¬M®g¨ì{\itshape ¾ã­Ó128Kªº°Ï°ì¡I\/}³o´N·N¨ýµÛ§A{\bfseries µLªk}¦b¦¹°Ï°ì¦w¥þ¦a¨Ï¥Î¥t¤@­Ó¤¤Â_ÅX°Êªº¦@¨É¤º¦s³]³Æ¡A¥]¬A¥t¤@­ÓE2100¡Cµ´¤j¦h¼Æ®É¶¡¥¦³£¥¿±`¤u§@¡A¦ý®É¤£®É¦a·|«r§A¤@¤f¡C¡]¹ï¡A³o­Ó°ÝÃD¥i¥H³q¹L¶Ç°e¼Æ¾Ú¥]®ÉÃö¤¤Â_¨ÓÁ×§K¡A¦ý¨º¼Ë¤L¥GªÖ©w·|¥á¥¢®ÉÄÁticks¡C¡^¦P¼Ë¡A¦pªG¿ù»~¦a¹ïªO¶i¦æ¤F½sµ{¡A©ÎªÌ¦b¿ù»~ªº®É¨è¼È°±¾÷¾¹¡A§Y¨Ïreset«ö¶s³£µLªk¥Í®Ä¡C§A{\itshape ¥²¶·\/}Ãö¾÷¦}{\itshape «O«ù\/}30¬í¤§¦Z¦A¶}¾÷¡C

´C¤¶¿ï¾Ü¬O¦Û°Ê¶i¦æªº¡A¦ý¥i¥H¥Îdev-$>$mem\_end°Ñ¼Æªº§C¤ñ¯S¦ì¨ÓÂÐ»\¡C°Ñ¨£\ref{ether} {(PARAM\_2)}¡C¼Ò¶ô¥Î¤á¥i¥H¦b{\ttfamily /etc/conf.modules}¤å¥ó¨½«ü©w{\ttfamily xcvr=N}­È§@¬°{\ttfamily option}¡C

¦P¼Ë¡A¤£­n§âE2100·í¦¨NE2100ªº­Ý®eºô¥d¡CE2100¬Oªö¥ÎNatSemiªºDP8390ªº¦@¨É¤º¦s³]­p¡A¤j­P»P¶Ë¸£µ¬ªºWD8013¬Û¦ü¡A¦ÓNE2100¡]©MNE1500¡^¬O¥ÎÁ`½u±±¨îªºAMDªºLANCE³]­pªº¡C

¦b¼Ð­ã¤º®Ö¨½¥]§t¤FE2100ªºÅX°Êµ{§Ç¡C¦ý¬O¡AµLªk¬Ý¨ì¨ä½sµ{¸ê®Æ¡A¤£­n«ü±æ¦³Bug­×´_¡C°£«D§A¤w¸g¶R¤F¸Óºô¥d¡A¤£­n¥Î¥¦¡C

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C




\subsubsection{E22**\label{e2200}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance

«ö·ÓCabletron§Þ³N¤½§iµP¤Wªº¸ê®Æ¡A³o¨Çºô¥d¨Ï¥Î¼Ð­ãAMDªºPC-Netªä¤ù²Õ¡]°Ñ¨£\ref{lance} {(AMD PC-Net)}¡^¦Ó¥B¥i¥H¨Ï¥Î´¶³qªºlanceÅX°Êµ{§Ç¡C




\subsection{Cogent}



¤U­±¬O¶i¦æÁp¨tªº¦a§}©M¤èªk¡G



\begin{verbatim}
        Cogent Data Technologies, Inc.
        175 West Street, P.O. Box 926
        Friday Harbour, WA 98250, USA.

        Cogent Sales
        15375 S.E. 30th Place, Suite 310
        Bellevue, WA 98007, USA.

        §Þ³N¤ä«ù¡G
        Phone (360) 378-2929 between 8am and 5pm PST
        Fax (360) 378-2882
        Compuserve GO COGENT
        Bulletin Board Service (360) 378-5405
        Internet: support@cogentdata.com
\end{verbatim}





\subsubsection{EM100-ISA/EISA}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gsmc9194

³o¨Çºô¥d¨Ï¥ÎSMCªº91c100ªä¤ù¡A¥i¥H¨Ï¥ÎSMCªº91c92ÅX°Êµ{§Ç¡A¦ýÁÙ¨S±o¨ìµý¹ê¡C




\subsubsection{Cogent eMASTER+, EM100-PCI, EM400, EM960, EM964}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

³o¨Ç¬O¥t¤@ºØDECªº21040ºô¥d¡A§Æ±æ¥i¥H¨Ï¥Î¼Ð­ã21040ÅX°Êµ{§Ç«Ü¦n¦a¤u§@¡C

EM400©MEM964¬O¨Ï¥ÎDECªº21050¾ô±µ¾¹©M4¤ù21040ªä¤ùªº4ºÝ¤fºô¥d¡C

°Ñ¨£\ref{dec-21040} {(DEC 21040)}¥H¤F¸Ñ³o¨Çºô¥dªº§ó¦h«H®§©M·í«eÅX°Êµ{§Çªºª¬ªp¡C




\subsection{Compaq}



Compaq¦}¤£¯u¥¿±q¨Æ¨î³y¥H¤Óºô¥d¡A¦ý¥L­Ìªº«Ü¦h¨t²Î³£¦b¥DªO¤W´O¤J¤F¥H¤Óºô±±¨î¾¹¡C




\subsubsection{Compaq Deskpro / Compaq XL (Embedded AMD Chip)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

½Ñ¦pXL¨t¦Cªº¾÷¾¹¦b¥DªO¤W¦³¤@¤ùAMDªº79c97x PCIªä¤ù¡A¥i¥H¨Ï¥Î¼Ð­ãªºLANCEÅX°Êµ{§Ç¡C¦ý¦b¨Ï¥Î«e¡A¥²¶·¨Ï¥Î¤@¨Ç§Þ¥©§âPCI BIOS©ñ¨ì¥i¥H³QLinuxµo²{ªº¦a¤è¡CFrank Maas¤Í¦n¦a´£¨Ñ¤F¨ä¤¤ªº²Ó¸`¡G

¡§Compaq¾÷¾¹ªº³o­Ó°ÝÃD¦b¤_¨äPCI¥Ø¿ý³Q¸ü¤J°ªºÝ¤º¦s¡ALinux¤º®ÖµLªk¹F¨ì¨º¤@ÂI¡Cµ²ªG¡Gºô¥dÀË´ú¤£¨ì¡A¤]µLªk¨Ï¥Î¡]¥t¥~¹«¼Ð¤]¤£¤u§@¡^¡C¨ä¸Ñ¨M¤èªk¡]¦bhttp://www-c724.uibk.ac.at/XL/¨½¦³¸ÔºÉªº´y­z¡^¬O¸ü¤JMS-DOS¡A¨Ï¥ÎCompaq½s¼gªº¤@­Ó¤pÅX°Êµ{§Ç¡AµM¦Z¥ÎLOADLIN¸ü¤JLinux¤º®Ö¡C¦n§a¡A§A¤]³\·Q»¡¡§©A¡B©A¡¨¡A¦ý¨ì¥Ø«e¬°¤î¡A³o¬O©Ò§Úª¾¹Dªº°ß¤@¿ìªk¡C¨º­Ó¤pÅX°Êµ{§Çªº§@¥Î¥u¤£¹L¬O§âPCI¥Ø¿ý©ñ¨ì¨ä¥¿±`ªº¦sÀx¦ì¸m¡]³o¼ËLinux´N¥i¥H§ä¨ì¥¦¤F¡^¡¨

§ó¦h¦³ÃöAMDªä¤ùªº¤@¯ë¸ê®Æ¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C




\subsubsection{Compaq Nettelligent/NetFlex¡]´O¤JThunderLANªä¤ù¡^}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gtlan

³o¨Ç¨t²Î¨Ï¥ÎTexas InstrumentsªºThunderLANªä¤ù¡C¦³ÃöThunderLANÅX°Êµ{§Çªº¸ê®Æ¥i¦b\ref{tlan} {(ThunderLAN)}§ä¨ì¡C




\subsubsection{Compaq PCI card}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geepro100

ÀË¬d§Aªººô¥d¢w¢w¦pªG¥¦ªº¹s¥óµn°O¸¹¬O323551-821©ÎªÌ¤W­±¦³¤@¤ùintel 82558ªä¤ù¡A¨º¥¦´N¬O¥t¤@ºØ°ò¤_Intel EEPro100ªººô¥d¡C






\subsection{Danpex}






\subsubsection{Danpex EN9400}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

¤S¤@­Ó°ò¤_DECªº21040ªä¤ùªººô¥d¡A¾Ú³ø§i©Ê¯à®¼¦n¡A»ù®æ¤ñ¸û«K©y¡C

°Ñ¨£\ref{dec-21040} {(DEC 21040)}¥H¤F¸Ñ³o¨Çºô¥dªº§ó¦h«H®§©M·í«eÅX°Êµ{§Çªºª¬ªp¡C




\subsection{D-Link\label{d-link}}






\subsubsection{DE-100, DE-200, DE-220-T, DE-250\label{de-100}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

¤@¨Ç¦­´ÁªºD-Linkºô¥d¨S¦³PROMªº¼ÐÃÑ{\ttfamily 0x57}¡A¦ýne2000ÅX°Êµ{§Ç¯àÃÑ§O¥¦­Ì¡C¹ï¤_³n¥ó°t¸mªººô¥d¡A¥i¥H±q{\ttfamily www.dlink.com}±o¨ì°t¸mµ{§Ç¡CDE2**ºô¥d´¿¸g¼s¬°³ø¹D¦b¦­´Áª©¥»ªºLinux¤U·|²£¥Í¶Ç¿é¦a§}¤£¤Ç°tªºµê°²¿ù»~¡Cª`·N¡A¦³¤@¨ÇDigital (DEC)ªººô¥d¤]¥s°µDE100©MDE200¡A¥u¬O¦WºÙ¬Û¦P¦Ó¤w¡C




\subsubsection{DE-520\label{de-520}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

³o¬O¨Ï¥ÎPCIª©¥»AMDªºLANCEªä¤ùªºPCIºô¥d¡CDMA¿ï¾Ü©Mªä¤ù¸¹½X«H®§¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C

§ó¦h¦³Ãö°ò¤_AMD LANCEªº¥H¤Óºô¥dªº§Þ³N«H®§¥i¥H¦b\ref{amd-notes} {(Notes on AMD...)}§ä¨ì¡C




\subsubsection{DE-528}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne, ne2k-pci (+8390)

«Ü©úÅãD-Link¤w¸g¶}©l¨î³yPCI NE2000­Ý®eºô¥d¤F¡C






\subsubsection{DE-530\label{de-530}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

³o¬O¤@´Ú¨Ï¥ÎDECªº21040 PCIªä¤ùªº³q¥Îºô¥d¡A¾Ú³ø§i¥i¥H¨Ï¥Î³q¥Îªº21040 tulipÅX°Êµ{§Ç¡Cª`·N¡A¥¦¤£¬ODFE-530¡C

°Ñ¨£\ref{dec-21040} {(DEC 21040)}¥H¤F¸Ñ³o¨Çºô¥dªº§ó¦h«H®§©M·í«eÅX°Êµ{§Çªºª¬ªp¡C




\subsubsection{DE-600\label{de-600}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde600

µ§°O¥»¹q¸£¥H¤Î·QÅý¹q¸£§Ö±¶¦aÁp¤W¥H¤Óºôªº¥Î¤á¥i¯à¥Î¸Óºô¥d¤ñ¸û¦n¡C¦b¯Ê¬Ùªº¤º®Ö·½½X¾ð¨½¦³¥¦ªºÅX°Êµ{§Ç¡A¬OBjorn Ekwall {\ttfamily bj0rn@blox.se}½s¼gªº¡C³q¹L¦}¤f¥i¥H±q¸Óºô¥dÀò±o180kb/sªº¶Ç°e³t«×¡C½Ð¾\Åª¤º®Ö·½½X¾ð¨½ªºREADME.DLINK¤å¥ó¡C

ª`·N¡A{\itshape ²{¦b\/}¶Ç»¼µ¹{\ttfamily ifconfig}ªº³]³Æ¦W¬°{\ttfamily eth0}¡A¦Ó¤£¬O¥H«e¥Îªº{\ttfamily dl0}¡C

¦pªG§Aªº¦}¤f{\itshape ¤£\/}¬O¦b¼Ð­ãªº{\ttfamily 0x378}¡A¨º¤\»Ý­n­«·s¶i¦æ½sÄ¶¡A¦]¬°¦a§}¬Oª½±µ½sÄ¶¨ìÅX°Êµ{§Ç¨½ªº¡C¦P¼ËÁÙ­nª`·N¡A¬Y¨Çµ§°O¥»¹q¸£¥DªO¤Wªº¦}¤f¦ì¤_{\ttfamily 0x3bc}¡A¬Y¨Ç¤@Åé¤ÆªO¥dªº¦}¤f¤]¬O³o¼Ë¡C




\subsubsection{DE-620\label{de-620}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde620

»PDE-600¤@¼Ë¡A¥u¬O¦³¨âºØ¿é¥X®æ¦¡¡CBjorn¬°1.1¥H¤Wª©¥»¤º®Ö¨½ªº³oºØ«¬¸¹ºô¥d½s¼g¤FÅX°Êµ{§Ç¡C°Ñ¨£¤W­±¦³ÃöDE-600ªº«H®§¡C




\subsubsection{DE-650\label{de-650}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde650 (?)

³oºØPCMCIAºô¥d¤w¸g³Q¦³¨Ç¤H¦b¥L­Ìªºµ§°O¥»¹q¸£¤W¨Ï¥Î¤@¬q®É¶¡¤F¡C¥¦¬O­Ó°ò¥»ªº8390³]­p¡A»PNE2000«Ü¬Û¶H¡CLinkSysªºPCMCIAºô¥d©MIC-CardªºEthernet³£³Q»{¬°¬ODE-650­Ý®eºô¥d¡Cª`·N¡A¥Ø«e¨äÅX°Êµ{§ÇÁÙ{\itshape ¤£\/}¬O¼Ð­ã¤º®Öªº¤@³¡¤À¡A©Ò¥H»Ý­n°µ¤@¨Ç¥´¸É¤Bªº¤u§@¡C°Ñ¨£¥»¤åÀÉªº\ref{pcmcia} {(PCMCIA¤ä«ù)}¡C




\subsubsection{DFE-530TX}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gvia-rhine

¤S¤@´Ú¨Ï¥ÎVIA Rhineªä¤ù²Õ¡C¡]°Ñ¨£\ref{rhine} {(VIA Rhine)}¡^¤£­n§â¥¦¦P°ò¤_tulipªººô¥dDE-530¬Û²V²c¡C




\subsubsection{DFE-538TX}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Grtl8139, 8139too

¸Óºô¥d¨Ï¥ÎRealTek 8139ªä¤ù¢w¢w°Ñ¨£\ref{rtl8139} {(RealTek 8139)}¤@¸`¡C




\subsection{DFI\label{dfi}}






\subsubsection{DFINET-300©MDFINET-400\label{dfi-300}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

¤S¤@´Ú©å¦H³]­pªºNE­Ý®eºô¥d¢w¢w³o¨Çºô¥d¦bPROMªº«e¤T­Ó¦r¸`¨Ï¥Î¡§DFI¡¨¡A¦Ó¤£¬O¶H©Ò¦³NE1000©MNE2000ºô¥d¨º¼Ë¦b²Ä14©M15¦r¸`¨Ï¥Î{\ttfamily 0x57}¡C¡]300¬O8¤ñ¯Sªº°°NE1000­Ý®e¥d¡A400¬O°°NE2000­Ý®e¥d¡C¡^






\subsection{Digital / DEC\label{dec}}






\subsubsection{DEPCA, DE100/1, DE200/1/2, DE210, DE422\label{dec-200}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gdepca

·½¤å¥ó¡§depca.c¡¨¨½ªº»¡©ú¥]§t¤F¦b¤@¥x¾÷¾¹¨½¦p¦ó¨Ï¥Î¦h¶ô¦¹Ãþºô¥d¡Cª`·N¡ADE422¬OEISAºô¥d¡C³o¨Çºô¥d³£¬O°ò¤_AMDªºLANCEªä¤ù¡C°Ñ¨£\ref{lance} {(AMD LANCE)}¥H¤F¸Ñ§ó¦h«H®§¡C¦P®É³Ì¦h¥u¯à¨Ï¥Î¨â¶ôISAºô¥d¡A¦]¬°¥¦­ÌªºI/O°ò§}¥u¯à³]¸m¦b{\ttfamily 0x300}©M{\ttfamily 0x200}¡C¦pªG·Q³o¤\°µªº¸Ü¡A½Ð¾\Åª¼Ð­ã¤º®Ö·½½X¾ð¤¤ªºÅX°Êµ{§Ç·½¤å¥ó{\ttfamily depca.c}¨½ªºª`ÄÀ¡C

¨äÅX°Êµ{§Ç¤]¥i¥H¥Î¦b°ò¤_Alpha CPUªº¾÷¾¹¤W¡A¥Î¤áÁÙ¥i¥H¨Ï¥Î¨ä¤¤ªº¦UºØioctl()¨ç¼Æ¡C




\subsubsection{Digital EtherWorks 3 (DE203, DE204, DE205)\label{dec-ewrk3}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gewrk3

³o¨Çºô¥d¨Ï¥ÎDECªº¨p¦³ªä¤ù¡A¦Ó¤£¬O¶H¦­´ÁªºDE200ºô¥d¨º¼Ë¨Ï¥ÎLANCEªä¤ù¡C¥¦­Ì¤ä«ù¦@¨É¤º¦s©M¥i½sµ{I/O¨âºØ¤u§@¤è¦¡¡A¦ý¦b¨Ï¥ÎPIO¼Ò¦¡®É¨ä©Ê¯à·|¤U­°50\%¡C¦@¨É¤º¦sªº¤j¤p¥i¥H³]¸m¬°2kB¡B32kB©Î64kB¡A¦ýÅX°Êµ{§Ç¥u¶i¦æ¤F2kB©M32kB¤Uªº´ú¸Õ¡C¦bÅX°Êµ{§Ç¤å¥ó{\ttfamily ewrk3.c}ªº¶}ÀY¦³§ó¦hªº«H®§¡]¥]¬A¦p¦ó§â¥¦§@¬°¥i¸ü¤J¼Ò¶ô¨Ï¥Î¡^¡A¦b{\ttfamily README.ewrk3}¨½¤]¦³¦¹Ãþ«H®§¡C¦bµo¦æªº¼Ð­ã¤º®Ö¨½¥]§t¤F³o¨â­Ó¤å¥ó¡C»Pdepca.c¤@¼Ë¡A¸ÓÅX°Êµ{§Ç¤]¤ä«ùAlpha CPU¡C

¼Ð­ãªºÅX°Êµ{§Ç¨½¦³¤@¨Ç¦³½ìªºioctl()½Õ¥Î¡A¥i¥H¥Î¨ÓÀò¨ú©Î²M°£¼Æ¾Ú¥]²Î­p«H®§¡BÅª/¼gEEPROM¡B§ïÅÜµw¥ó¦a§}µ¥¡C¶Â«È¥i¥H¾\Åª·½¥N½X¥H¤F¸Ñ§ó¦h¦¹Ãþ«H®§¡C

°£¤F¨ä¥¦¤u¨ã³n¥ó¡ADavidÁÙ¬°³o¨Çºô¥d½s¼g¤F¤@­Ó°t¸m¤u¨ã¡]¨Ì·ÓDOSµ{§Ç{\ttfamily NICSETUP.EXE}¡^¡C³o¨Ç³£¥i¥H¦b¤j¦h¼ÆLinuxªºFTP¯¸ÂIªº¥Ø¿ý{\ttfamily /pub/Linux/system/Network/management}¤U§ä¨ì¢w¢w¬d§ä¤å¥ó{\ttfamily ewrk3tools-X.XX.tar.gz}¡C






\subsubsection{DE425 EISA, DE434, DE435, DE500  \label{dec-eisa}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

³o¨Çºô¥d¬O°ò¤_¤U­±·|´£¨ìªº21040ªä¤ù¡CDE500¨Ï¥Î21140ªä¤ù´£¨Ñ10/100Mbs¥H¤Óºôªº³s±µ¡C¾\Åª¤U­±ªº21040¤@¸`¥H¤F¸Ñ¨ä¥¦«H®§¡C¦b«DDECºô¥d¨Ï¥Î¦¹ÅX°Êµ{§Ç®ÉÁÙ¦³¤@¨Ç½sÄ¶®Éªº¿ï¶µ¡C²Ó¸`¥i¨£{\ttfamily README.de4x5}¡C

©Ò¦³Digitalºô¥d³£¦Û°Ê±´´ú´C¤¶¡]°£¤FDE500¼È®É¦]¬°±M§Qªº­ì¦]ÁÙ¤£¤ä«ù³o¤@ÂI¡^¡C

ÅX°Êµ{§Ç¤]¤ä«ùAlpha CPU¡A¥i¥H³Q§@¬°¼Ò¶ô¸ü¤J¡C¥Î¤á¥i¥H³q¹Lioctl()½Õ¥Î³X°ÝÅX°Êµ{§Çªº¤º³¡¢w¢w°Ñ¦Ò¡§ewrk3¡¨¤u¨ã©Mde4x5.c·½½X¥H¤F¸Ñ¦p¦ó¨Ï¥Î¡C




\subsubsection{DEC 21040, 21041, 2114x, Tulip \label{dec-21040}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

DEC 21040¬ODigitalªºÁ`½u±±¨î³æ¤ù¥H¤Óºô¥d²£«~¡A»PAMDªºPCnetªä¤ùÃþ¦ü¡C21040¬O¬°PCIÁ`½uµ²ºc¯S§O³]­pªº¡CÅãµM¥Ø«e¤£¦A¥Í²£³o¨Çªä¤ù¤F¡A¦]¬°IntelÁÊ¶R¤FDECªº¥b¾ÉÅé³¡¤À¡A§ó¶É¦V¤_¨Ï¥Î¥L­Ì¦Û¤vªº¥H¤Óºô¥dªä¤ù¡C

¹ï°ò¤_¦¹ªä¤ùªººô¥d¥i¥H¦b{\itshape ¨â­Ó\/}ÅX°Êµ{§Ç¤§¶¡¶i¦æ¿ï¾Ü¡C¤W­±°Q½×¤FDE425ÅX°Êµ{§Ç¡AÁÙ¦³¤@­Ó³q¥Îªº21040¡§tulip¡¨ÅX°Êµ{§Ç¡C

{\bfseries Äµ§i¡G}§Y¨Ï§Aªººô¥d¬O°ò¤_¸Óªä¤ùªº¡A{\itshape ÅX°Êµ{§Ç¤]¥i¯à¥X°ÝÃD\/}¡CDavies¼g¹D¡G

¡§µLªk«Oµý¡¥tulip.c¡¦©Î¡¥de4x5.c¡¦¥i¥HÅX°Ê¥ô¤@°ò¤_DC2114xªººô¥d¡A°£«D»¡©ú¤ä«ù¸Óºô¥d¡C¬°¤°¤\¡H¡H¦]¬°¤@­Ó±H¦s¾¹¡A³q¥Î±H¦s¾¹¡]CSR12¡^¡A(1)DC21140A¤¤ªºCSR12¬O¥i½sµ{ªº¡A¦Ó¦U­Ó¾P°â°Óªº¹ê²{¦U¤£¬Û¦P¡Q(2)DC21142/3¤¤ªºCSR12²{¦b¬O­ÓSIA±±¨î±H¦s¾¹¡]«ö·ÓDC21041ªº¤è¦¡¡^¡C°ß¤@ªº§Æ±æ¬OSROM¥i¥H½s½X¨ÓÀ°§Uºc«ØÅX°Êµ{§Ç¡C¦ý³o¦}«D¥i¥H½T«Oªº¸Ñ¨M¤è®×¡A¦]¬°¦³¨Ç¾P°â°Ó¡]¦pSMCªº9332ºô¥d¡^¦}¥¼¿í±qDigital Semiconductor±À¯òªºSROM½sµ{®æ¦¡¡C¡¨

±q«D§Þ³Nªº¨¤«×¤W»¡¡A³o´N·N¨ýµÛ§AµLªk½T©w¤@­Ó¥¼ª¾ªºªö¥ÎDC2114xªä¤ùªººô¥d¥i¥H¨Ï¥ÎLinuxÅX°Êµ{§Ç¡A©Ò¥H¦bÁÊ¶Rºô¥d{\itshape ¤§«e\/}¡A³Ì¦n½T©w¤@¤U¥i¥H°h³f¡C

¦b«Ü¦hªñ´ÁªºSMC EtherPowerºô¥d¤¤¤]µo²{21041ªä¤ù³Q¥Î¨Ó¥N´À21040¡C21140¥i¥H¤ä«ù100Base-T¡A¦}¨Ï¥Î21040ªä¤ùªºLinuxÅX°Êµ{§Ç¡C¦pªG­n¹ï«DDECªººô¥d¨Ï¥ÎDavidªº{\ttfamily de4x5}ÅX°Êµ{§Ç¡A½Ð¥ý¬Ý¤@¤U{\ttfamily README.de4x5}¨½ªº²Ó¸`¡C

¦pªG¦³°ÝÃDªº¸Ü¡A½Ð¸ÕµÛ±qDonaldªºftp/WWW¯¸ÂIÀò¨ú³Ì·sªºÅX°Êµ{§Çª©¥»¡C

\nameurl{http://www.scyld.com/network}{Tulip Driver}

¨º¨½ÁÙ¦³¤@­Ó¦UºØ¨Ï¥Î21040ªä¤ùªººô¥d/¾P°â°Óªº¡]«D§¹¥þ¡^¦Cªí¡C




\subsection{Farallon}

Farallon¾P°âEtherWave¾A°t¾¹©M¦¬µo¾¹¡C¨ä³]³Æ¥i¥H§â¦h­Ó10baseT³]³Æºc¦¨µâªáÃì¡C




\subsubsection{Farallon Etherwave}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c509

¾Ú»¡³o¬O¤@­Ó¥]§tEtherWave¦¬µo¾¹ªº3c509­Ý®eºô¥d¡C¥i¥H¦¨¥\¦a¨Ï¥Î¥Ø«eªºLinuxªº3c509ÅX°Êµ{§Ç¡C¹ï¤_¤@¯ëªºÀ³¥Î¡A¸Óºô¥d¹L¤_©ù¶Q¤F¡A¦ý¦b¬Y¨Ç¯S®í±¡ªp¤U¥i¥H¨Ï¥Î¥¦¡C¤pHubªº»ù®æ¦b\$125¥H¤W¡AEtherwaveÁÙ­n¦bªO¥dªº»ù®æ¤§¤W¼W¥[\$75-\$100¢w¢w¦pªG©Ô¤@®Ú½u¤Ó¤Öªº¸Ü´Nª«¦³©Ò­È¡A¦pªG¬O¯Ê¤Ö¨â­Óºôµ¸´N¤£­È±o³o¤\°µ¤F¡C




\subsubsection{Farallon PCI 593}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

¾Ú»¡¸Óºô¥d¥i¥H³Q{\ttfamily de4x5}ÅX°Êµ{§ÇÀË´ú¨ì¡C




\subsection{Fujitsu}



»P³\¦hºôµ¸ªä¤ù¨î³y°Ó¤£¦P¡AFujitsuÁÙ¨î³y©M¾P°â¤@¨Ç°ò¤_¥L­Ì¦Û¤vªä¤ùªººô¥d¡C




\subsubsection{Fujitsu FMV-181/182/183/184}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gfmv18x

±qÅX°Êµ{§Ç¨Ó¬Ý¡A³o¨Çºô¥d´N¬OFujitsuªºMB86965ºô¥dªºÂ²³æ§ï¶i¡A³o¨Ï¥¦­Ì»PAllied TelesisªºAT1700ºô¥d«Ü¬Û¦ü¡C




\subsection{Hewlett Packard\label{hp}}



272**ºô¥d¨Ï¥Î¥i½sµ{I/O¡A»PNE*000ªO¥dÃþ¦ü¡A¦ý¬O¼Æ¾Ú¶Ç¿éºÝ¤f¥i¥H¦b¤£³X°Ýªº®É­Ô¡§Ãö³¬¡¨¡A¥HÁ×§K¦Û°Ê±´´úÅX°Êµ{§Ç®Éªº³Â·Ð¡C

·PÁÂGlenn TalbottÀ°§U¼á²M¤F¥»¸`¦³ÃöHPµw¥óª©¥»¸¹ªººÃ´b¡C




\subsubsection{HP Night Director+ 10/100}



ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

¬Ý¨Ó³o¨Çºô¥d¨Ï¥Îªº¬OAMD 79C972ªä¤ù¡C






\subsubsection{27245A\label{hp-27245a}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Ghp (+8390)

³o¬O°ò¤_8¤ñ¯S8390ªº10BaseTºô¥d¡A¥X¤_©Ò¦³8¤ñ¯Sªº½t¬G¤£±À¯ò¨Ï¥Î¡C¤L¦~«e¸Óºô¥d³Q­«·s³]­p¬°°ª«×¶°¦¨ªº¡A¤Þ°_¤F¤@¨Ç¥u¼vÅT´ú¸Õµ{§Çªºªì©l¤Æ®ÉªºÅÜ¤Æ¡A¹ïLANÅX°Êµ{§Ç¨S¦³¼vÅT¡C¡]·sªººô¥d¦b¤Á´«¶i¤J©M°h¥XÀô¦^¼Ò¦¡¦Z¦}¤£¥ß¨è³B¤_¡§­ã³Æ¦n¡¨ªºª¬ºA¡C¡^

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C




\subsubsection{HP EtherTwist, PC Lan+ (27247, 27252A)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Ghp+ (+8390)

HPªºPC Lan+»P¼Ð­ãªºHP PC Lanºô¥d¤£¦P¡C±qv1.1.x¶}µo®É¨äÅX°Êµ{§Ç´N³Q¥[¤J¨ì¼Ð­ã¤º®ÖªºÅX°Êµ{§Ç¦Cªí¤¤¡C¥¦¥i¥H¶Hne2000¤@¼Ë¤u§@¦bPIO¼Ò¦¡¡A¤]¥i¥H¶Hwd8013¤@¼Ë¤u§@¦b¦@¨É¤º¦s¼Ò¦¡¡C

47B¬O°ò¤_16¤ñ¯S8390ªº10BaseT w/AUI¡A¦Ó52A¬O°ò¤_16¤ñ¯S8390ªºThinLAN w/AUI¡C³o¨Çºô¥d¥Î¤_¦¬µo¼Æ¾Ú¥]½w¨RªºªO¤WRAM¬°32K¡A¦Ó¤£¬O¤@¯ëªº16KB¡A¦Ó¥B³£´£¨Ñ¦Û°ÊÃÑ§OLAN³s±µ¾¹ªº¥\¯à¡C

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C




\subsubsection{HP-J2405A}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance

³o¨Çºô¥d¤ñ27247/27252A«K©y¦Ó¥Bµy·L§Ö¤@ÂI¨à¡A¦ý¤Ö¤F¤@¨Ç¯S©Ê¡A¦pAUI¡BThinLAN³s±µ»P±Ò°ÊPROM´¡®y¡C³o¬O¤@­Ó¬Û·í³q¥ÎªºLANCE³]­p¡A¦ý³]­p®Éªº¤@­Ó¤£°_²´ªº¨M©w¨Ï¥¦»P³q¥Îªº¡§NE2100¡¨ÅX°Êµ{§Ç¤£­Ý®e¡C·PÁÂHPªºGlenn Talbott´£¨Ñªº¸ê®Æ¡A¨ÏÅX°Êµ{§Ç¯à°÷¥]§t¹ï¥¦ªº¯S§O¤ä«ù¡]¥]¬A±qªO¤WÅª¨úDMA³q¹D¡^¡C

§ó¦h¦³Ãö°ò¤_LANCEªººô¥d«H®§¥i¥H¦b\ref{amd-notes} {(Notes on AMD...)}¤¤§ä¨ì¡C




\subsubsection{HP-Vectra On Board Ethernet}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance

HP-Vectra¦b¥DªO¤W¦³¤@­ÓAMDªºPCnetªä¤ù¡C  DMA¿ï¾Ü©Mªä¤ù¸¹½X«H®§¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C

§ó¦h¦³Ãö°ò¤_AMD LANCEªº¥H¤Óºô¥dªº§Þ³N«H®§¥i¥H¦b\ref{amd-notes} {(Notes on AMD...)}§ä¨ì¡C




\subsubsection{HP 10/100 VG Any Lan Cards (27248B, J2573, J2577, J2585, J970, J973)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Ghp100

¸ÓÅX°Êµ{§ÇÁÙ¤ä«ù¬Y¨ÇCompex VG²£«~¡C¥Ñ¤_ÅX°Êµ{§Ç¤ä«ùISA¡BEISA©MPCIºô¥d¡A©Ò¥H¦b¹ï¤º®Ö·½½X¹B¦æ{\ttfamily make config}®É¥i¥H¦bISAºô¥d¤U§ä¨ì¥¦¡C




\subsubsection{HP NetServer 10/100TX PCI (D5013A)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geepro100

ÅãµM³o¥u¬O­«·s¼Ð°O¹LªºIntel EtherExpress Pro 10/100Bºô¥d¡C°Ñ¨£Intel¤@¸`¥H¤F¸Ñ§ó¦h«H®§¡C






\subsection{IBM / International Business Machines\label{ibm}}






\subsubsection{IBM Thinkpad 300\label{thinkpad-300}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gznet

¥¦»P°ò¤_IntelªºZenith Z-note­Ý®e¡C°Ñ¨£\ref{z-note} {(Z-note)}¥H¤F¸Ñ§ó¦h«H®§¡C

¾Ú«H¤U­±³o­Ó¯¸ÂI¦³¤@­Ó·sª©¥»Thinkpadªº¥þ­±ªº¦³¥Î¸ê®Æ¼Æ¾Ú®w¡C§ÚÁÙ¨S¦³¿Ë¦Û¥h¬d¬Ý¹L¡C

\nameurl{http://peipa.essex.ac.uk/html/linux-thinkpad.html}{Thinkpad-info}

¹ï¤£«K¤_¨Ï¥ÎWWWÂsÄý¾¹ªºÅªªÌ¡A¥i¥H¸Õ¸Õ{\ttfamily peipa.essex.ac.uk:/pub/tp750/}




\subsubsection{IBM Credit Card Adaptor for Ethernet}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G?¡]¿W¥ßµo¦æ¡^

¸ÓPCMCIAºô¥d¥i¥H¦bLinux¤U¥¿±`¨Ï¥Î¡C¦P¼Ë»Ý­n«ü¥Xªº¬O¡Aµ§°O¥»¹q¸£»Ý­n¦³¤ä«ùPCMCIAªºªä¤ù²Õ¡A¦Ó¥B­n§â¤ä«ùPCMCIAªº¸É¤B¥[¶i¼Ð­ã¤º®Ö¡C°Ñ¨£¥»¤åÀÉ¤¤ªº\ref{pcmcia} {(PCMCIA¤ä«ù)}¡C




\subsubsection{IBM 10/100 EtherJet PCI}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geepro100

¾Ú»¡¸Óºô¥d»PIntel EtherExpress Pro 100ÅX°Êµ{§Ç­Ý®e¡C




\subsubsection{IBM Token Ring}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gibmtr

­n¤ä«ù¥OµPÀô¤£¶È¶È»Ý­n¼g¤@­Ó³]³ÆÅX°Êµ{§Ç¡AÁÙ­n¬°¥OµPÀô½s¼g·½¸ô¥Ñ¨Òµ{¡C½s¼g®Éªá¶O®É¶¡³Ì¦hªº¦a¤è´N¬O·½¸ô¥Ñ¡C

¶}©lªºÅX°Êµ{§Ç¶}µo¬O°w¹ïIBMªºISA©MMCA¥OµPÀôºô¥d¡A¦}¦bMCA 16/4 Megabit¥OµPÀôªO¤W¶i¦æ¹L´ú¸Õ¡A¦ý¦b¨ä¥¦°ò¤_TropicªºªO¤W¤]¥i¥H¤u§@¡C




\subsection{ICL Ethernet Cards}






\subsubsection{ICL EtherTeam 16i/32}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geth16i

ÅX°Êµ{§Ç¤ä«ù¸Óºô¥dªºISA (16i)©MEISA (32)¨â­Óª©¥»¡C¥¦¨Ï¥ÎªºFujitsuªºMB86965ªä¤ù¤]³Q¥Î¦bat1700ºô¥d¤W¡C




\subsection{Intel Ethernet Cards\label{intel}}



ª`·N¡A¦UºØIntelºô¥dªº©R¦W¬O¶Ã¤C¤KÁVªº¡C¦pªG¦³°ÝÃD¡AÀË¬dºô¥d¤W¥D­nªä¤ùªº{\ttfamily i8xxxx}¸¹½X¡A¹ïPCIºô¥d¨Ï¥Î{\ttfamily /proc}¥Ø¿ý¤UªºPCI«H®§¡AµM¦Z¦A»P³o¨½¦C¥Xªº¼Æ¦r¶i¦æ¤ñ¸û¡C




\subsubsection{Ether Express}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geexpress

¸Óºô¥d¨Ï¥Îintelªºi82586ªä¤ù¡CÅX°Êµ{§Çªº¦­´Áª©¥»¡]¦bv1.2¤º®Ö¨½¡^¬Oalpha-´ú¸ÕÅX°Êµ{§Ç¡A¤j¦h¼Æ¤H¦b¨Ï¥Î®É·|¹J¨ì³Â·Ð¡Cv2.0¤º®Ö¨½ªºÅX°Êµ{§Ç­n¦n±o¦h¡AÁöµM¨ä·½½XÁÙ³Q¦C¬°¹êÅç©Êªº¡A¦Ó¥B¦b¸û§Öªº¾÷¾¹¤W°ÝÃD§ó¦h¡C

¦bÅX°Êµ{§Ç·½½X¶}ÀYªºª`ÄÀ¨½¦C¥X¤F¤@¨Ç»P³o¨Çºô¥d¦³Ãöªº°ÝÃD¡]¦}¶i¦æ¤F­×¥¿¡I¡^¡C¦Ü¤Ö¦³¤@­Ó¥Î¤á³ø§i»¡¦³¦ºÂê¡A¨Ï±o§âÅX°Êµ{§Ç¨½©Ò¦³ªº{\ttfamily outb}´À´«¬°{\ttfamily outb\_p}ªº¤u§@©ñºC¤U¨Ó¡C¦P®ÉÁÙ­nÀË¬d¤@¤UÅX°Êµ{§Ç³ø§iªºRAM½w¦s¤j¤p»PIntel°t¸m¤u¨ã³ø§iªº¬O§_¤@­P¡C




\subsubsection{Ether Express PRO/10 (PRO/10+)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geepro

Bao Chau Ha½s¼g¤F³o¨Çºô¥dªºÅX°Êµ{§Ç¡A¦­¦b1.3.x¤º®Ö¤¤´N¥]§t¤F¥¦¡C¸ÓÅX°Êµ{§Ç¤]¥i¥H¨Ï¥Î¦b¤@¨Ç°ò¤_i82595ªä¤ùªºCompaq¤º«Ø¥H¤Óºô¨t²Î¤W¡C¥i¯à»Ý­n¦b¾A·íªº¦a¤è¨Ï¥Îºô¥d¦Û±aªº°t¸m¤u¨ã¸T¥ÎPnP¤ä«ù¡C




\subsubsection{Ether Express PRO/10 PCI (EISA)}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G?¡]¿W¥ßµo¦æ¡^

¦³¤@­Ó¦b¯Ê¬Ù¤º®Ö¥~¿W¥ßµo¦æªºPCIª©¥»ªºÅX°Êµ{§Ç¡C³o¨Çºô¥d¨Ï¥ÎPLX9036 PCI±µ¤fªä¤ù©MIntelªºi82596 LAN±±¨î¾¹ªä¤ù¡C¦pªG§Aªººô¥d¤W¦³i82557ªä¤ù¡A¨º¤\§Aªººô¥d´N{\itshape ¤£\/}¬O¸ÓÃþ«¬ºô¥d¡A¦Ó¬O¤U­±­n°Q½×ªºª©¥»¡A»Ý­nEEPro100ÅX°Êµ{§Ç¡C

¥i¥H±q¦p¤U¯¸ÂIÀò±oPRO/10 PCIºô¥dªºalphaÅX°Êµ{§Ç¤Î¨Ï¥Î«ü¾É¡G

\nameurl{http://www.ultranet.com/~stalba/eep10pci.html}{EEPro10 Driver}

¦pªG¬OEISAºô¥d¡A¥i¯à­n§ï¤@¤UÅX°Êµ{§Ç¦b¤£¦P±¡ªp¤U¡]PCI»PEISA¡^¨Ï¥ÎªºÀË´ú¾÷¨î¡C






\subsubsection{Ether Express PRO 10/100B\label{eepro100}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Geepro100

ª`·N¡A¸ÓÅX°Êµ{§Ç{\itshape ¤£\/}¤ä«ù¦Ñ¦¡ªº100Aºô¥d¡CÅX°Êµ{§Ç¨½¦C¥Xªºªä¤ù¸¹½X¬Oi82557/i82558¡C§ó·sÅX°Êµ{§Ç©Î´M§ä¤ä«ù¡A½Ð³X°Ý¡G

\nameurl{http://www.scyld.com/network}{EEPro-100B Page}




\subsection{Kingston}

Kingston¨î³y¦UºØºô¥d¡A¥]¬ANE2000+¡B°ò¤_AMD PCnetªººô¥d©M°ò¤_DEC tulipªººô¥d¡C¤j¦h¼Æºô¥d³£¥i¥H¨Ï¥Î¬ÛÀ³ªºÅX°Êµ{§Ç¡C°Ñ¨£\nameurl{http://www.kingston.com}{Kingston Web Page}¡C






\subsection{LinkSys}

LinkSys¨î³y¤Ö¶q¤£¦PªºNE2000­Ý®eºô¥d¡B¤@¨Ç¥¿²ÎªºISAºô¥d¡B¤@¨Ç§Y´¡§Y¥ÎªºISAºô¥d¥H¤Î¤@¨Ç°ò¤_¤ä«ùne2000-PCIªä¤ù²Õªºne2000-PCI­Ý®eºô¥d¡C¥¦­Ìªº«¬¸¹¤Ó¦h¡A³o¨½´N¤£¤@¤@¦C¥X¤F¡C

LinkSys¹ïLinux¬O¤Í¦nªº¡A¾Ö¦³¤@­Ó±MªùªºLinux¤ä«ùWWW¥D­¶¡A¬Æ¦Ü¦b¬Y¨Ç²£«~ªº¥]¸Ë²°¤W¦L¦³Linux¦r¼Ë¡C½Ð³X°Ý¡G

{\ttfamily http://www.linksys.com/support/solution/nos/linux.htm}




\subsubsection{LinkSys Etherfast 10/100 Cards.}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gtulip

ª`·N¡A³o¨Çºô¥d¦³¤LºØ¡§­×­qª©¡¨¡]§Y¨Ï¥Î¤£¦Pªºªä¤ù²Õ¡^¡A³£¨Ï¥Î¤@¼Ëªººô¥d¦W¡C²Ä¤@ºØ¨Ï¥ÎDECªä¤ù²Õ¡C²Ä¤GºØ­×­qª©¨Ï¥ÎLite-On PNIC 82c168 PCIºôµ¸±µ¤f±±¨î¾¹¡A¸Óºô¥dªº²Ä¤TºØ­×­qª©¨Ï¥ÎLinkSys 82c169 NICªä¤ù¡C¹ï¦Z¨âºØª©¥»ºô¥dªº¤ä«ù¤w¸g³Q¦X¦}¨ì¼Ð­ãªºtulipÅX°Êµ{§Ç¨½¢w¢w«ö·Ó·í«e©Ò¥ÎÅX°Êµ{§Çªºª©¥»¡A¥i¯à»Ý­n¶i¦æª©¥»¤É¯Å¨Ó¤ä«ù¥¦­Ì¡C

§ó¦hªº¦³ÃöPNIC«H®§¥i¦b¤U­±§ä¨ì¡G

{\ttfamily http://www.scyld.com/linux/drivers/pnic.html}

¦³Ãö³o¨Çºô¥d¦UºØª©¥»ªº¶i¤@¨B¸ê®Æ¥i¥H¦b¤W­±´£¨ì¹LªºLinkSysªºWWW¯¸ÂI±o¨ì¡C






\subsubsection{LinkSys Pocket Ethernet Adapter Plus (PEAEPP)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde620

¾Ú»¡³o¬ODE-620­Ý®eºô¥d¡A¦Ó¥B¾Ú³ø¹D¥i¥H¥¿±`¨Ï¥ÎDE-620ªºÅX°Êµ{§Ç¡C°Ñ¨£\ref{de-620} {(DE-620)}¥H¤F¸Ñ§ó¦h«H®§¡C




\subsubsection{LinkSys PCMCIA Adaptor}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde650 (?)

¦³¤H²q·Q³o¬O­«·s¼Ð°O¹LªºDE-650¡C°Ñ¨£\ref{de-650} {(DE-650)}¥H¤F¸Ñ§ó¦h«H®§¡C




\subsection{Microdyne (Eagle)}

Eagle Technology¡]¤SºÙNovellºô¥d¡^³Q½æµ¹Microdyne¡C¦pªG¦b³o¨½ªº¦Cªí¤W§ä¤£¨ì§Aªººô¥d¡A½ÐÀË¬d¥»¤åÀÉªºNovell¤@¸`¡CÁöµMMicrodyne²{¦b¤£¦A¿n·¥¾P°âºô¥d¡A¦b¥L­Ìªººô¯¸{\ttfamily ftp.mcdy.com}¤WÁÙ¦³¤@¨Ç»P²£«~¬ÛÃöªº¸ê®Æ¡C




\subsubsection{Microdyne Exos 205T}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G?

³o¬O¥t¤@´Ú°ò¤_i82586ªººô¥d¡CDirk Niggemann {\ttfamily dirk-n@dircon.co.uk}½s¼g¤F¤@­Ó¦Û¤v»{¬°ÄÝ¤_¡§pre-alpha¡¨ªºÅX°Êµ{§Ç¡A§Æ±æ¦³¤H¶i¦æ´ú¸Õ¡C­n¤F¸Ñ²Ó¸`½Ð¼g«Hµ¹¥L¡C




\subsection{Mylex}



¦pªG·Q¸ß°Ý¦³ÃöMylexªº°ÝÃD¡A½Ð³q¹L¦p¤U¸¹½X»P¥L­ÌÁp¨t¡C

\begin{verbatim}
        MYLEX CORPORATION, Fremont
        Sales:  800-77-MYLEX, (510) 796-6100
        FAX:    (510) 745-8016.
\end{verbatim}


¥L­Ì¤]¦³¤@­ÓWEB¯¸ÂI¡G
\nameurl{http://www.mylex.com}{Mylex WWW Site}




\subsubsection{Mylex LNE390A, LNE390B}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glne390 (+8390)

³o¨Ç¬O¬Û·í¦Ñªº¨Ï¥Î»Pwd80x3¬Û¦üªº¦@¨É¤º¦s¤è¦¡ªºEISAºô¥d¡C¦b¥Ø«eªº2.1.x¨t¦C¤º®Ö¨½¦³¥¦­ÌªºÅX°Êµ{§Ç¡CÀ³¸Ó½T©w¦@¨É¤º¦s¦a§}³Q³]¸m¦b1MB¥H¤U¡A©ÎªÌ¦b¾÷¾¹©Ò¦w¸Ëª«²zRAMªº³Ì°ª¦a§}¤§¤W¡C




\subsubsection{Mylex LNP101}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

³o¬O°ò¤_DECªº21040ªä¤ùªºPCIºô¥d¡C¥i¥H¿ï¾Ü10BaseT¡B10Base2©M10Base5¿é¥X¡CLNP101ºô¥d³Qµý¹ê¥i¥H¨Ï¥Î³q¥Îªº21040ÅX°Êµ{§Ç¡C

°Ñ¨£¦³Ãö21040ªä¤ù¤@¸`¡]\ref{dec-21040} {(DEC 21040)}¡^¥H¤F¸Ñ§ó¦h«H®§¡C




\subsubsection{Mylex LNP104}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

LNP104¨Ï¥ÎDECªº21050ªä¤ù¨Ó³B²z{\itshape ¥|­Ó\/}¿W¥ßªº10BaseTºÝ¤f¡C¥¦À³¸Ó¥i¥H¨Ï¥Î³Ìªñªº¥i¥H¦@¨É¤¤Â_ªº21040ÅX°Êµ{§Ç¡A¦ý¡]§ÚÄ±¹î¨ì¡^³o¤@¹Á¸ÕÁÙ¨S¦³¤H³ø§i¨Ï¥Î¹L¡C




\subsection{Novell Ethernet, NExxxx¤Î¨ä¬ÛÃö­Ý®e¥d¡C\label{novell}}



«eºó¡§NE¡¨¨Ó¦ÛNovell Ethernet¡CNovell«ö·Ó³Ì«K©yªºNatSemi¼Æ¾Ú¤â¥U³]­p¦}§â¨î³yÅv½æ¡]¥µ¡H¡^µ¹¤FEagle¡A´N¬O¬°¤F¦V¥«³õ´£¨Ñ»ù®æ¦X²zªº¥H¤Óºô¥d¡C¡]¥Ø«e³Q¼sªx¨Ï¥ÎªºNE2000ºô¥d¡C¡^




\subsubsection{NE1000, NE2000\label{ne2k}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

ne2000²{¦b¬O«ö·ÓNatSemiªº8390ªä¤ù¶i¦æ°ò¥»³]­pªº³q¥Î¦WºÙ¡C¥¦­Ì¨Ï¥Î¥i½sµ{I/O¡A¦Ó¤£¬O¦@¨É¤º¦s¡A¨Ï±o¦w¸ËÂ²³æ¡A¦ý©Ê¯à¦³¤@ÂI­°§C¡A¦Ó¥B±a¨Ó¤L­Ó°ÝÃD¡C¦³ÃöNE2000ºô¥dªº¤@¨Ç´¶¹M©Ê°ÝÃD¦C¦b\ref{ne2k-probs} {(Problems with...)}¨½¡C

¦³¨ÇNE2000­Ý®e¥d¨Ï¥ÎNational Semiconductorªº¡§AT/LANTic¡¨83905ªä¤ù¡A´£¨Ñ»Pwd8013¬Û¦üªº¦@¨É¤º¦s¼Ò¦¡©MEEPROM³n¥ó°t¸m¡C¦@¨É¤º¦s¼Ò¦¡¤ñ¥i½sµ{I/O¼Ò¦¡¥e¥ÎªºCPU­n¤Ö¡]¤]´N¬O§ó¦³®Ä¡^¡C

¤@¯ë¨Ó»¡¡A§âNE2000­Ý®e¥dªºI/O¦a§}©ñ¦b{\ttfamily 0x300}¤£¬O­Ó¦n¥D·N¡A¦]¬°¤L¥G{\itshape ¨C¤@­Ó\/}³]³ÆÅX°Êµ{§Ç±Ò°Ê®É³£±´´ú³o­Ó¦a§}¡C¬Y¨Ç®t«lªºNE2000­Ý®e¥d¦b³Q±´´ú¨ì¿ù»~°Ï°ì®É³B²z¤£·í·|¾É­P¾÷¾¹¦ºÂê¡C¦P¼Ë¡A{\ttfamily 0x320}¤]¤£¦n¡A¦]¬°SCSIÅX°Êµ{§Ç·|±´´ú{\ttfamily 0x330}¡C

Donald¬°©Ò¦³ne2000ºô¥d½s¼g¤F¤@­ÓNE2000¶EÂ_µ{§Ç¡]ne2k.c¡^¡C°Ñ¨£\ref{diag} {(¶EÂ_µ{§Ç)}¥H¤F¸Ñ§ó¦h«H®§¡C

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C




\subsubsection{NE2000-PCI (RealTek/Winbond/Compex)\label{ne2k-pci}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne, ne2k-pci (+8390)

¬Oªº¡AµL½×¬Û«H»P§_¡A¤H­Ì¨î³yªºPCIºô¥d¬O°ò¤_¤Q¦h¦~«e³]­pªºne2000±µ¤f¡C¥Ø«e¤L¥G©Ò¦³³o¨Çºô¥d³£¬O°ò¤_RealTekªº8029ªä¤ù©ÎWinbondªº89c940ªä¤ù¡CÅãµMCompex¡BKTI¡BVIA©MNetvinªººô¥d¤]¨Ï¥Î³o¨Çªä¤ù¡A¥u¬OPCI ID¤£¦P¡C

³Ì·sªºv2.0¤º®Ö¤ä«ù¹ï©Ò¦³³o¨Çºô¥dªº¦Û°ÊÀË´ú»P¨Ï¥Î¡C¡]¦pªG§A¨Ï¥Îv2.0.34¤§«eªº¤º®Öª©¥»¡A§â¥¦¤É¯Å¥H½T«Oºô¥d³QÀË´ú¨ì¡C¡^¥Ø«e¦³¨â­Ó¥i¿ïªºÅX°Êµ{§Ç¡A¤@­Ó¬O­ì©lªºISA/PCIÅX°Êµ{§Ç{\ttfamily ne.c}¡A¥t¤@­Ó¬O¬Û¹ï¸û·sªº¥u¤ä«ùPCIªºÅX°Êµ{§Ç{\ttfamily ne2k-pci.c}¡C

­n¨Ï¥Î­ì©lªºISA/PCIÅX°Êµ{§Ç¡A¦b¹B¦æ{\ttfamily make config}®É¥²¶·¹ï¡§Other ISA cards¡¨¿ï¶µ¦^µª¡§Y¡¨¡A»PISAºô¥d¨Ï¥Î¦P¤@­ÓNE2000ÅX°Êµ{§Ç¡C¡]³o·|Åý§A·NÃÑ¨ì³o¨Çºô¥d¦}¤£¹³PCNet-PCI©ÎDEC 21040ºô¥d¤@¼Ë´¼¯à......¡^

¸û·sªº¥u¤ä«ùPCIªºÅX°Êµ{§Ç»PISA/PCIÅX°Êµ{§Çªº°Ï§O¦b¤_¥h±¼¤F¹ï©Ò¦³¦Ñ¦¡8¤ñ¯Sºô¥dªº¤ä«ù¡A¦Ó¥B¦b²¾°Êºô¥d¤Wªº¼Æ¾Ú®É¨Ï¥Î§ó¤jªº¼Æ¾Ú¶ô¡A¤£¦A¦³¦Ñ¦¡ISA-NE2000ºô¥d¥i¾a¾Þ§@©Ò¥²»Ýªº¤¤¶¡¼È°±¡C³o¼ËÅX°Êµ{§ÇÅÜ±o¤p¤F¤@¨Ç¡A®Ä²v¤]°ª¤F¤@¨Ç¡A¦ý¦b´¶³qÀ³¥Î¤¤³o¤@°Ï§O¦}¨S©úÅã¨ì¥O¤H¿E°Êªº¦a¨B¡C¡]¦pªG§Æ±æ±o¨ì³Ì°ª®Ä²v/³Ì§CªºCPU¥e¥Î²v¡A¨º¤\PCI-NE2000¤£¹L¬O­Ó®t«lªº¿ï¾Ü¡C¡^ÅX°Êµ{§Ç§ó·s¤Î§ó¦h«H®§¥i¥H¦b¤U­±§ä¨ì¡G

{\ttfamily http://www.scyld.com/linux/drivers/ne2k-pci.html}

¦pªG§AªºNE2000 PCIºô¥d{\itshape ¨S¦³\/}³Q³Ì·sª©¥»ªºÅX°Êµ{§ÇÀË´ú¨ì¡A½Ð»P{\ttfamily /usr/src/linux/MAINTAINERS}¨½¦C¥XªºNE2000ÅX°Êµ{§ÇºûÅ@ªÌÁp¨t¡A¦}ªþ¤W{\ttfamily cat /proc/pci}©M{\ttfamily dmesg}ªº¿é¥X¡A¥H«K§â¹ï¸Óºô¥dªº¤ä«ù¥[¨ìÅX°Êµ{§Ç¨½¡C

ÁÙ­nª`·N¡A¦³¨Çºô¥dªº¨î³y°Ó¦b©úª¾¹D¥L­Ìªººô¥d§¹¥þ¤£¦P®É¡]¦pPCNet-PCI©ÎRealTekªº8139¡^¡A¨ÌµM¦b²£«~¥]¸Ë¤W¼gµÛ¡§NE2000 Compatible¡¨¡C¦pªG¦³ºÃ°Ýªº¸Ü¡A«ö·Ó¥»¤åÀÉ¬d¬Ý¤@¤U¥D­nªä¤ùªº½s¸¹¡C




\subsubsection{NE-10/100}

ª¬ºA¡G¤£¤ä«ù¡C

³o¨Ç¬O°ò¤_National SemiconductorªºDP83800©MDP83840ªä¤ùªºISA 100Mbpsºô¥d¡C¥Ø«e¨S¦³ÅX°Êµ{§Ç¤ä«ù¥¦¡A¤]¨SÅ¥»¡¦³½Ö¦b½s¼g³o¼ËªºÅX°Êµ{§Ç¡C°£¤F¤@­ÓÂ²³æªºPDF¤å¥ó¡A¥Ø«eÁÙ¨S¦³¨¬¥H½s¼gÅX°Êµ{§Çªº¦³Ãö¸Óªä¤ùªº¸ê®Æ¡C




\subsubsection{NE1500, NE2100\label{ne1500}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance

³o¨Çºô¥d¨Ï¥ÎAMDªº­ì©l7990 LANCEªä¤ù¡A¥i¥H¨Ï¥ÎLinuxªºlanceÅX°Êµ{§Ç¡C¸û·sªºNE2100­Ý®e¥d¨Ï¥ÎAMD§ó·s¦ZªºPCnet/ISAªä¤ù¡C

¬Y¨Ç¦Ñª©¥»ªºlanceÅX°Êµ{§Ç¦b¨Ï¥ÎautoIRQ±q­ì©lNovell/Eagle 7990ºô¥dÀò¨ú¤¤Â_½u®É·|¹J¨ì³Â·Ð¡C§Æ±æ²{¦b¤w¸g³Q­×¥¿¤F¡C¦pªG°ÝÃD¨S¸Ñ¨M¡A´N¥ÎLILO¨Ó«ü©wIRQ¡AÁÙ¦³°ÝÃDªº¸Ü¡A½Ð§i¶D§Ú­Ì¡C

DMA¿ï¾Ü©Mªä¤ù¸¹½X«H®§¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C

§ó¦h¦³Ãö°ò¤_AMD LANCEªº¥H¤Óºô¥dªº§Þ³N«H®§¥i¥H¦b\ref{amd-notes} {(Notes on AMD...)}§ä¨ì¡C






\subsubsection{NE/2 MCA}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne2

­Y¤z¤½¥q¥Í²£¤F¤LºØNE2000·L³q¹Dºô¥d¡Cv2.2¤º®Ö¨½´£¨Ñªºne2ÅX°Êµ{§Ç¥i¥HÀË´ú¦p¤UMCAºô¥d¡GNovell Ethernet Adapter NE/2¡BCompex ENET-16 MC/P©MArco Ethernet Adapter AE/2¡C




\subsubsection{NE3200\label{ne3200}}

ª¬ºA¡G¤£¤ä«ù¡C

³oºØ¦Ñ¦¡ªºEISAºô¥d§â¤@¤ù8MHzªº80186»P¤@¤ùi82586²V¦X¨Ï¥Î¡C¨S¤H¬°¥¦½s¼gÅX°Êµ{§Ç¡A¦]¬°¨S¦³¸Óºô¥dªº¸ê®Æ¡A¦Ó¥B¤]¨S¦³¹ï¨äÅX°Êµ{§Çªº¯u¥¿»Ý¨D¡C




\subsubsection{NE3210\label{ne3210}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne3210 (+8390)

³o¤@EISAºô¥d»PNE3200§¹¥þ¤£¦P¡A¥¦¨Ï¥ÎNat Semiªº8390ªä¤ù¡C¨äÅX°Êµ{§Ç¥i¥H¦bv2.2¤º®Ö·½½X¾ð¤¤§ä¨ì¡C½T©w¦@¨É¤º¦s¦a§}³Q³]¸m¦b1MB¥H¤U¡A©ÎªÌ¦b¾÷¾¹©Ò¦w¸Ëª«²zRAMªº³Ì°ª¦a§}¤§¤W¡C




\subsubsection{NE5500}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gpcnet32

³o¨Ç¤£¹L¬OAMD PCnet-PCIºô¥d¡]'970A¡^ªä¤ù¡C§ó¦h¦³Ãö°ò¤_LANCE/PCnetªººô¥d«H®§¥i¥H¦b\ref{lance} {(AMD LANCE)}§ä¨ì¡C






\subsection{Proteon}






\subsubsection{Proteon P1370-EA}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

«Ü©úÅã³o¬O¤@´ÚNE2000­Ý®e¥d¡A¦bLinux¤U¤u§@±o®¼¦n¡C




\subsubsection{Proteon P1670-EA}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

³o¬O¥t¤@´Ú°ò¤_DECªºTulipªä¤ùªºPCIºô¥d¡C¾Ú»¡¦bLinux¤U¤u§@±o®¼¦n¡C

°Ñ¨£¦³Ãö21040ªä¤ù¤@¸`¡]\ref{dec-21040} {(DEC 21040)}¡^¥H¤F¸Ñ§ó¦h«H®§¡C






\subsection{Pure Data}






\subsubsection{PDUC8028, PDI8023}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gwd (+8390)

PureDataªºPDUC8028©MPDI8023¨t¦Cºô¥d®t¤£¦h´N¬Owd80x3ªº­Ý®eºô¥d¢w¢w¦b{\ttfamily wd.c}ÅX°Êµ{§Ç¨½¦³¯S§Oªº¥N½X¨Ó±´´ú³o¨Çºô¥d¡C




\subsection{Racal-Interlan}



¥i¥H³q¹LWWW¯¸ÂI{\ttfamily www.interlan.com}Áp¨tRacal Interlan¡C§Ú»{¬°¦b¹L¥h¥L­Ì´¿³QºÙ¬°MiCom-Interlan¡C




\subsubsection{ES3210}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Ges3210

³o¬O¤@´Ú°ò¤_EISA 8390ªº¦@¨É¤º¦sºô¥d¡C¦³¤@­Ó¹êÅç©ÊªºÅX°Êµ{§Ç»Pv2.2¤º®Ö¤@°_µo¦æ¡A¾Ú»¡¤u§@±o®¼¦n¡A¦ý¡]¦Ü¤Ö¡^¹ï¦­´Áª©¥»ºô¥dªºEISA IRQ©M¦@¨É¤º¦s¦a§}ªºÀË´ú¦³ÂI°ÝÃD¡C¡]³o­Ó°ÝÃD¦}¤£¶È­­¤_Linux......¡^³o¼Ë´N»Ý­nµ¹ÅX°Êµ{§Ç´£¨Ñ¤¤Â_©M¦a§}¡C¨Ò¦p¡Aºô¥d¬°IRQ 5¡A¦@¨É¤º¦s¦b{\ttfamily 0xd0000}¡A¨Ï¥Î¼Ò¶ô¤ÆÅX°Êµ{§Ç¡A«h¦b{\ttfamily /etc/conf.modules}¨½²K¤W{\ttfamily options es3210 irq=5 mem=0xd0000}¡C©ÎªÌ¨Ï¥Î½sÄ¶¶i¤º®ÖªºÅX°Êµ{§Ç¡A¦b±Ò°Ê®É´£¨Ñ{\ttfamily ether=5,0,0xd0000,eth0}¡CI/O°ò§}¬O¦Û°ÊÀË´úªº¡A©Ò¥H¦b¦¹¨Ï¥Î¤@­Ó¹s­È¡C




\subsubsection{NI5010}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gni5010

¥H«e»Ý­n¥t¥~´M§ä³o¨Ç¦Ñ¦¡8¤ñ¯SMiCom-Interlanºô¥dªºÅX°Êµ{§Ç¡A²{¦b¥¦³Q§@¬°¤@­Ó¹êÅç©ÊªºÅX°Êµ{§Ç»Pv2.2¤º®Ö¤@°_µo¦æ¤F¡C




\subsubsection{NI5210}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gni52

¸Óºô¥d¤]¬O¨Ï¥ÎIntelªºªä¤ù¡CMichael Hipp½s¼g¤F¤@­ÓÅX°Êµ{§Ç¡A§@¬°¡§alpha¡¨ÅX°Êµ{§Ç³Q¥]§t¦b¼Ð­ã¤º®Ö¨½¡CMichael§Æ±æ±o¨ì¸Óºô¥d¥Î¤áªº¤ÏõX¡C°Ñ¨£\ref{alfa} {(AlphaÅX°Êµ{§Ç)}¥H¤F¸Ñ¦bLinux¤U¨Ï¥Îalpha/´ú¸Õª©¥»¥H¤ÓºôÅX°Êµ{§Çªº­«­n«H®§¡C




\subsubsection{NI6510 ¡]¤£¬OEB¡^\label{ni65xx}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gni65

¤]¦³¤@­Ó°ò¤_LANCEªºNI6510ºô¥dªºÅX°Êµ{§Ç¡A¦Ó¥B¤]¬OMichael Hipp½s¼gªº¡C¥¦¦P¼Ë¤]¬O¡§alpha¡¨ÅX°Êµ{§Ç¡C¥X¤_¬Y¨Ç­ì¦]¡A¸Óºô¥d»P³q¥ÎªºLANCEÅX°Êµ{§Ç¤£­Ý®e¡C°Ñ¨£\ref{alfa} {(AlphaÅX°Êµ{§Ç)}¥H¤F¸Ñ¦bLinux¤U¨Ï¥Îalpha/´ú¸Õª©¥»¥H¤ÓºôÅX°Êµ{§Çªº­«­n«H®§¡C




\subsubsection{EtherBlaster¡]¤S¦WNI6510EB¡^}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Glance

±q1.3.23¤º®Ö¶}©l¡A³q¥ÎªºlanceÅX°Êµ{§Ç¨½¼W¥[¤F¹ïNI6510EB±M¦³¼ÐÃÑ{\ttfamily 0x52, 0x44}¶i¦æªºÀË¬d¡C¦ý¦³¤H³ø§i»¡¤£¬O©Ò¦³NI6510EBºô¥d¸Ó¼ÐÃÑ³£¤@¼Ë¡A³o·|¾É­PlanceÅX°Êµ{§ÇÀË´ú¤£¥X§Aªººô¥d¡C¦pªG¥X²{¤F³o¤@°ÝÃD¡A¥i¥H§â±´´ú¡]¤j¬ù¦blance.cªº²Ä322¦æ¡^§ï¬°printk()¡A§â§Aªººô¥d¤Wªº­È¥´¦L¥X¨Ó¡AµM¦Z¥Î¥¦­Ì¨Ó¥N´À¯Ê¬Ùªº{\ttfamily 0x52, 0x44}¡C

¦b¨Ï¥ÎlanceÅX°Êµ{§Ç®É¡Aºô¥d¥i¯à¹B¦æ¦b¡§°ª©Ê¯à¡¨¼Ò¦¡¤U¡A¦Ó¤£¬ONI6510­Ý®e¼Ò¦¡¡C






\subsection{RealTek}






\subsubsection{RealTek RTL8002/8012 (AT-Lan-Tec) Pocket adaptor\label{aep-100}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gatp

³o¬O¤@´ÚAT-Lan-Tec»P¡]¥i¯àªº¡^¨ä¥¦¤@¨Ç¨ÑÀ³°Ó¥X°âªº³q¥Î§C¦¨¥»ªºOEM³S¬Ã¾A°t¾¹¡C¦b¼Ð­ã¤º®Ö¨½¥]§t¨äÅX°Êµ{§Ç¡Cª`·N¡AÅX°Êµ{§Ç·½¤å¥ó¡§atp.c¡¨¨½¥]§t¤F¤@¨Ç¹ê½è©Êªº«H®§¡C

ª`·N¡A¹ï¤_¦­´Áª©¥»ªºÅX°Êµ{§Ç¡A¶Ç»¼µ¹{\ttfamily ifconfig}ªº³]³Æ¦W{\itshape ¤£\/}¬O{\ttfamily eth0}¡A¦Ó¬O{\ttfamily atp0}¡C




\subsubsection{RealTek 8009}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

³o¬O¤@´ÚISA NE2000­Ý®eºô¥d¡A¾Ú»¡¨Ï¥ÎLinuxªºNE2000ÅX°Êµ{§Ç¤u§@±o®¼¦n¡Cµ{§Ç{\ttfamily rset8009.exe}¥i¥H±qRealTekªºWWW¯¸ÂI{\ttfamily http://www.realtek.com.tw}Àò¨ú¢w¢w©ÎªÌ¥ÎFTP±q¸Ó¯¸ÂI¤U¸ü¡C




\subsubsection{RealTek 8019}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

³o¬O¤W­zºô¥dªº§Y´¡§Y¥Îª©¥»¡C¨Ï¥ÎDOS³n¥ó¸T¤îPnP¥\¯à¡A±Ò¥ÎµL¸õ½u°t¸m¡A§âºô¥dªºI/O¦a§}©M¤¤Â_³]¬°¥i¥Î­È¡AµM¦Z´N¦æ¤F¡C¡]¦pªG­n§âÅX°Êµ{§Ç¥Î§@¼Ò¶ôªº¸Ü¡A¤£­n§Ñ°O¦b{\ttfamily /etc/conf.modules}¨½²K¥[¤@­Ó{\ttfamily io=0xNNN}¿ï¶µ¡C¡^µ{§Ç{\ttfamily rset8019.exe}¥i¥H±qRealTekªºWWW¯¸ÂI{\ttfamily http://www.realtek.com.tw}Àò¨ú¢w¢w©ÎªÌ¥ÎFTP±q¸Ó¯¸ÂI¤U¸ü¡C




\subsubsection{RealTek 8029}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne, ne2k-pci (+8390)

³o¬O¤@´ÚNE2000­Ý®eªºPCI³æªä¤ù²£«~¡C²{¦b¦U­Ó¾P°â°Ó³£¦b¾P°â¨Ï¥Î¸Óªä¤ùªººô¥d¡C°Ñ¨£\ref{ne2k-pci} {(NE2000-PCI)}¥H¤F¸Ñ¨Ï¥Î¸Óºô¥dªº¦³Ãö«H®§¡Cª`·N¡A³o¨ÌµM¬Oªþ¦bPCIÁ`½u¤Wªº¤Q¦h¦~«eªº¦Ñ¦¡³]­p¡C¨ä©Ê¯à¦}¤£¤ñ¬ÛÀ³ªºISA«¬¸¹¦n¦h¤Ö¡C






\subsubsection{RealTek 8129/8139\label{rtl8139}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Grtl8139

¥t¤@´ÚRealTekªºPCI³æªä¤ù¥H¤Óºô²£«~¡C°ò¤_¸Óªä¤ùªººô¥dªºÅX°Êµ{§Ç³Q¥]¬A¦bLinuxªºv2.0.34µo¦æª©¥»¤¤¡C¥Ø«e¦b¦^µª¬O§_­n¨Ï¥Îv2.2¤º®Ö¨½ªº¹êÅç©ÊÅX°Êµ{§Ç®É¡A¨ÌµM­n¦^µª¡§Y¡¨¥HÀò±o¨Ï¥Î¸ÓÅX°Êµ{§ÇªºÅv§Q¡C

Donald»¡°ò¤_¸Óªä¤ùªººô¥dªº»ù®æ»PPCI NE2000­Ý®eºô¥d¤j­P¬Û¦P¡]¦b¦³¨Ç¦a¤è¬Æ¦Ü·|«K©y13¬ü¤¸¡I¡^¡AÁöµM8139ªº³]­p¦}«D³Ì¦nªº10/100ªO¤l¡AÁÙ¬O­n¤ñPCI NE2000­Ý®eºô¥d¦n¡C

2.4.x¤º®ÖÁÙ¦³¤@­Ó¥s°µ{\ttfamily 8139too}ªºÅX°Êµ{§Ç¡A¬O°ò¤_rtl8139ªº¡A¦ý¸Õ¹Ï³B²z¤@¨Ç¤H­Ì³ø§iªº§ó´¶¹Mªº°ÝÃD¡A©Ò¥H¦pªG¨Ï¥Îªº¬O2.4¤º®Ö¡A¥i¥H¸Õ¤@¤U¡C




\subsection{Sager}






\subsubsection{Sager NP943}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G3c501

³o¥u¤£¹L¬O¤@´ÚS.A. PROM«eºó¤£¦Pªº3c501­Ý®eºô¥d¡C§Ú»{¬°¥¦¸ò­ì©lªº3c501¤@¼Ë¶Ë¸£µ¬¡C¨äÅX°Êµ{§ÇÀË¬dNP943 I.D.¤§¦Z§â¥¦·í¦¨3c501¨Ó³B²z¡C°Ñ¨£\ref{3c501} {(3Com 3c501)}¥H¤F¸Ñ¬°¤°¤\¹ê»Ú¤W¤£»Ý­n¨Ï¥Î³o¨Çºô¥d¡C




\subsection{Schneider \& Koch}






\subsubsection{SK G16}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gsk\_g16

¨äÅX°Êµ{§Ç³Q¥]§t¦bv1.1¤º®Ö¤¤¡A¬OPJD Weichmann©MSWS Bern½s¼gªº¡C¦ü¥GSK G16»PNI6510¬Û¦ü¡A³£¬O°ò¤_LANCEªä¤ùªº²Ä¤@ª©¡]7990¡^¡C¦A­«´_¤@¦¸¡A¦ü¥G¸Óºô¥dµLªk¨Ï¥Î³q¥ÎªºLANCEÅX°Êµ{§Ç¡C




\subsection{SEEQ}






\subsubsection{SEEQ 8005}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gseeq8005

ÅX°Êµ{§Ç¨½¥u¥]§t¤F«Ü¤Öªººô¥d«H®§¡A©Ò¥H³o¨½¤]¨S¦³¦h¤Ö¬ÛÃö«H®§¡C¦pªG¦³°ÝÃDªº¸Ü¡A³Ì¦nµoe-mailµ¹·½½X¤¤¦C¥XªºÅX°Êµ{§Ç§@ªÌ¡C




\subsection{SMC (Standard Microsystems Corp.) \label{smc}}





¦b³\¦h¦~«ewd8003©Mwd8013ÁÙ¬O¥D¬y²£«~®É¡AWestern Digitalªº¥H¤Óºô³¡ªù´N³QSMC¦¬ÁÊ¤F¡C¦b¨º¤§¦Z¡ASMCÄ~Äò¨î³y°ò¤_8390ªºISAºô¥d¡]Elite16¡BUltra¡BEtherEZ¡^¡A¦}¼W¥[¤F¤LºØPCI²£«~¡C

»PSMCªºÁp¨t¤èªk¡G

SMC / Standard Microsystems Corp., 80 Arkay Drive, Hauppage, New York,
11788, USA.  Technical Support via phone: 800-992-4762 (USA) or
800-433-5345 (Canada) or 516-435-6250 (Other Countries).
Literature requests: 800-SMC-4-YOU (USA) or 800-833-4-SMC (Canada)
or 516-435-6255  (Other Countries).  Technical Support via E-mail:
{\ttfamily techsupt@ccmail.west.smc.com}. FTP Site: {\ttfamily ftp.smc.com}.
WWW Site: \nameurl{http://www.smc.com}{SMC}.




\subsubsection{WD8003, SMC Elite}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gwd (+8390)

³o¨Ç¬Oºô¥dªº8¤ñ¯Sª©¥»¡C8¤ñ¯Sªº8003¤ñ¸û«K©y¡A¦ý¥u¦b¬y¶q¤pªº¥Î³~¤W¬O¦Eºâªº¡Cª`·N¡A¬Y¨Ç¨S¦³EEPROMªººô¥d¡]¨Ï¥Î¸õ½uªº­Ý®e¥d¡A©Î«D±`{\itshape «D±`¥j¦Ñ\/}ªºwd8003ºô¥d¡^µLªk³ø§i¥¦­Ì¨Ï¥Îªº¤¤Â_½u¡C¦¹®É¡A¦pªG¨Ï¥Îauto-irq¥¢±Ñ¡AÅX°Êµ{§Ç´N·|ÀR®¨®¨¦a¤À°tIRQ 5¡C§A¥i¥H±qSMCªºFTP¯¸ÂIÀò¨ú³]¸m/ÅX°Êµ{§ÇºÏ½L¡Cª`·N¡A¬Y¨Ç¸û·sªºSMCªº¡§SuperDisk¡¨µ{§ÇÀË´ú¤£¨ì¨º¨Ç½T¹ê¥j¦ÑªºµLEEPROMªººô¥d¡C¤å¥ó{\ttfamily SMCDSK46.EXE}¬Ý¨Ó¬O­Ó¬Û·í¥þ­±ªº¤èªk¡C«e­±´£¨ìªºÀÉ®×¤¤ªº¤@­ÓASCII¤å¥»¤å¥ó¨½µ¹¥X¤F©Ò¦³³o¨Çºô¥dªº¸õ½u³]¸m¡C³Ì·s¡]³Ì¦n¡H¡^ªºª©¥»¥i¥H±q{\ttfamily ftp.smc.com}±o¨ì¡C

³o¨Ç°ò¥»¤W»P¥¦­Ìªº16¤ñ¯S¹ïÀ³ºô¥d¡]WD8013 / SMC Elite16¡^¬O¤@¼Ë¡A©Ò¥H¥i¥H±q¤U¤@¸`¤F¸Ñ§ó¦hªº«H®§¡C






\subsubsection{WD8013, SMC Elite16\label{8013}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gwd (+8390)

­Y¤z¦~¦Z¡ASMC¦b³]­p¤¤²K¥[¤F§ó¦hªº±H¦s¾¹©M¤@­ÓEEPROM¡C¡]²Ä¤@¶ôwd8003ºô¥d¤w¸g­±¥@¤Q¦~¤F¡I¡^­Ý®e¥d¤@¯ë¨Ï¥Îªº¦WºÙ¬°¡§8013¡¨¡A¦Ó¥B³q±`ªö¥ÎµLEEPROM¡]¥Î¸õ½u¡^ªº³]­p¡Cªñ´Á«¬¸¹ªºSMCºô¥d¨Ï¥ÎSMCªº83c690ªä¤ù¡A¥N´À¤F¦­´Áºô¥d¤Wªº­ì©lNat SemiªºDP8390¡C¦@¨É¤º¦s³]­p¨Ïºô¥dªº³t«×¤ñPIOºô¥d§Ö¤F¤@ÂI¡A¤×¨ä¬O¹ï¸û¤jªº¼Æ¾Ú¥]¡C§ó­«­nªº¬O¡A±qÅX°Êµ{§Çªº¨¤«×¨Ó¬Ý¡AÁ×§K¤F8390¥i½sµ{I/O¼Ò¦¡ªº¤L­ÓBug¡A¤¹³\¦h­Ó½uµ{¦w¥þ¦a³X°Ý¼Æ¾Ú¥]½w¦s¡A¦Ó¥B¦b¼ö±Ò°Ê±´´ú®É¤£·|¦]¬°¥i½sµ{I/O¼Æ¾Ú±H¦s¾¹¾É­P¦º¾÷¡C

µLEEPROMªººô¥d¦bµLªkÅª¨ú¿ï©wªº¤¤Â_®É·|¹Á¸Õauto-irq¡A¦pªG¥¢±Ñªº¸Ü¡A¥¦·|ÀR®¨®¨¦a¤À°tIRQ 10¡C¡]8¤ñ¯Sª©¥»¤À°tIRQ 5¡C¡^

ªO¤W¤º¦s¤j¤p¤£¼Ð­ãªººô¥d¥i¥H¦b±Ò°Ê®É«ü©w¤º¦s¤j¤p¡]¦pªG¨Ï¥Î¼Ò¶ôªº¸Ü¡A§â¥¦§@¬°{\ttfamily /etc/conf.modules}¤¤ªº¤@­Ó¿ï¶µ¡^¡C8¤ñ¯Sºô¥dªº¼Ð­ã¤º¦s¤j¤p¬°8kB¡A16¤ñ¯Sºô¥d¬°16kB¡C¨Ò¦p¡A¦Ñ¦¡ªºWD8003EBTºô¥d¥i¥H¥Î¸õ½u³]¸m¬°32kB¤º¦s¡C­n§¹¥þ¨Ï¥Î³o¨ÇRAM¡A»Ý­n¦p¤U¾Þ§@¡]¹ïI/O=0x280©MIRQ 9¡^¡G
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
        LILO: linux ether=9,0x280,0xd0000,0xd8000,eth0
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


°Ñ¨£\ref{8013-probs} {(8013°ÝÃD)}¥H¤F¸Ñ¬Y¨Ç±`¨£°ÝÃD¡C

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C




\subsubsection{SMC Elite Ultra\label{ultra}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gsmc-ultra (+8390)

¸Ó¥H¤Óºô¥d¬O°ò¤_SMCªº83c790ªä¤ù¡A¤ñ83c690¦h¤L­Ó·s¯S©Ê¡CÁöµM¦³¤@ºØ»P¦Ñ¦¡SMC¥H¤Óºô¥d¬Û¦üªº¼Ò¦¡¡A¥¦µLªk»P¦ÑªºWD80*3ÅX°Êµ{§Ç§¹¥þ­Ý®e¡C¦ý¦b³oºØ¼Ò¦¡¤U¡A¥¦¥i¥H»P¨ä¥¦8390ÅX°Êµ{§Ç¦@¨É¤j³¡¤À¥N½X¡A¦Ó¥B¾Þ§@¤ñWD8013­Ý®eºô¥dµy·L§Ö¤@ÂI¡C

¥Ñ¤_Ultra³¡¤À{\itshape ¬Ý°_¨Ó¶H\/}8013¡A©Ò¥HUltra±´´úÀ³·í¦bwd8013±´´ú¿ù»~¦aÃÑ§O¤@­ÓUltraºô¥d¤§«e§ä¨ì¥¦¡C

Donald´£¨ì¥i¥H¬°Ultraªº¡§Altego¡¨¼Ò¦¡½s¼g¤@­Ó¿W¥ßªºÅX°Êµ{§Ç¡A¸Ó¼Ò¦¡¤¹³\§âµo°eÃì±µ°_¨Ó¶i¦æ¡A¨ä¥N»ù¬O±µ¦¬½w¦sªº§Q¥Î®Ä²v·|¤U­°¡A¦ý¬O¤]¥i¯à¤£¤U­°¡C

Á`½u±±¨îSCSI¥D¾÷¾A°t¾¹ªº¥Î¤á»Ý­nª`·N¡G¦b»PInteractive UNIX¤@°_µo¦æªº¤â¥U¨½´£¨ì¡ASMC Ultra¨½ªº¤@­ÓBug·|¾É­Paha-154X¥D¾÷¾A°t¾¹¹B¦æªºSCSIºÏ½L¼Æ¾Ú·lÃa¡C³o¥i¯à¼vÅTaha-154X­Ý®e¥d¡A¦pBusLogicªO©MAMI-FastDisk SCSI¥D¾÷¾A°t¾¹¡C

SMC©Ó»{¦bInteractive©M¦Ñ¦¡Windows NTÅX°Êµ{§Ç¤W·|¥X²{³o­Ó°ÝÃD¡C¥¦¬O¦­´Áª©¥»ªººô¥d¦s¦bªºµw¥ó¨R¬ð¡A¥i¥H³q¹LÅX°Êµ{§Çªº³]­p¸Ñ¨M¡C¥Ø«eªºUltraÅX°Êµ{§Ç³q¹L¥u¦b»Pºô¥d¶Ç»¼¼Æ¾Ú®É¤~±Ò¥Î¦@¨É¤º¦sÁ×§K¤F³o­Ó°ÝÃD¡C½T©w§Aªº¤º®Öª©¥»¦Ü¤Ö¬O1.1.84¥H¤W¡A©ÎªÌ±Ò°Ê®É³ø§iªºÅX°Êµ{§Çª©¥»¦Ü¤Ö¬°{\ttfamily smc-ultra.c:v1.12}¡A§_«h´N·|¥X°ÝÃD¡C

¦pªG§A·Q§â¸ÓÅX°Êµ{§Ç§@¬°¤@­Ó¥i¸ü¤Jªº¼Ò¶ô¡AÀ³¸Ó¾\Åª\ref{modules} {(§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î)}¥H¤F¸Ñ¦³Ãö¼Ò¶ôªº«H®§¡C




\subsubsection{SMC Elite Ultra32 EISA\label{ultra32}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gsmc-ultra32 (+8390)

³o­ÓEISAºô¥d»P¨ä¬ÛÀ³ªºISAºô¥d¦³«Ü¦h¦@¦PÂI¡C¦bv2.0©Mv2.2¤º®Ö¨½³£¥]§t¤F¤@­Ó¥i¥H¨Ï¥Î¡]¦Ó¥BÃ­©w¡^ªºÅX°Êµ{§Ç¡C·PÁÂLeonard Zubkoff¶R¤F¤@¨Ç³o¼Ëªººô¥d¡A¨Ï±oLinux¨½¯à°÷¼W¥[¹ï¥¦­Ìªº¤ä«ù¡C




\subsubsection{SMC EtherEZ (8416)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gsmc-ultra (+8390)

¸Óºô¥d¨Ï¥ÎSMCªº83c795ªä¤ù¦}¤ä«ù§Y´¡§Y¥Î¯S©Ê¡C¥¦¤]¦³{\itshape SMC Ultra\/}­Ý®e¼Ò¦¡¡A¥i¥H¨Ï¥ÎLinuxªºUltraÅX°Êµ{§Ç¡C­n±o¨ì³Ì¨Î®ÄªG¡A½Ð¨Ï¥ÎSMC´£¨Ñªºµ{§Ç¡]³q¹L¥L­ÌªºFTP/WWW¯¸ÂI¡^¸T¥ÎPnP¡A¦}§â¥¦°t¸m¬°¦@¨É¤º¦s¼Ò¦¡¡C°Ñ¨£¤W­±¦³ÃöUltraÅX°Êµ{§Çªº»¡©ú¡C

¹ï¤_v1.2¤º®Ö¡A¸Óºô¥d¥²¶·³Q°t¸m¬°¦@¨É¤º¦s¼Ò¦¡¡C¦ýv2.0¤º®Ö¥i¥H¦b¦@¨É¤º¦s©Î¥i½sµ{I/O¼Ò¦¡¤U¨Ï¥Î¸Óºô¥d¡C¦@¨É¤º¦s¼Ò¦¡µy·L§Ö¤@ÂI¡A¦Ó¥B¹ïCPU¸ê·½ªº¥e¥Î¤Ö¤@¨Ç¡C




\subsubsection{SMC EtherPower PCI (8432)\label{smc-pci}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

¥ýÁn©ú¤@ÂI¡GEtherPower II¬O¤@´Ú§¹¥þ¤£¦Pªººô¥d¡C©¹¤U¬Ý¡I³o¨Çºô¥d¬O°ò¥»ªºDEC 21040²£«~¡A§Y¤@­Ó¤jªä¤ù©M­Y¤z¦¬µo¾¹¡CDonald¦b¶}µo³q¥Î21040ÅX°Êµ{§Ç¡]¤S¦W{\ttfamily tulip.c}¡^®É¨Ï¥Î¤F¤@¶ô³o¼Ëªººô¥d¡C¦A¤@¦¸·PÁÂDuke Kamstra´£¨Ñ¤F¶}µo®É©Ò¥Îªººô¥d¡C

¬Y¨Çªñ´Áª©¥»ªº³oºØºô¥d¨Ï¥Î¸û·sªºDEC 21041ªä¤ù¡A¦b¨Ï¥Î¦­´Áª©¥»ªºtulipÅX°Êµ{§Ç®É¥i¯à·|¦³°ÝÃD¡C¦pªG¹J¨ì³Â·Ð¡A½Ð½T©w¨Ï¥Îªº¬O³Ì·sµo¥¬ªºÅX°Êµ{§Ç¡A¥¦¥i¯àÁÙ¨S¦³³Q¥]§t¦b¥Ø«eªº¤º®Ö·½½X¾ð¤¤¡C

°Ñ¨£\ref{dec-21040} {(DEC 21040)}¥H¤F¸Ñ³o¨Çºô¥dªº§ó¦h«H®§©M·í«eÅX°Êµ{§Çªºª¬ªp¡C

«Ü©úÅã¡AEtherPower-IIºô¥dªº³Ì·sª©¥»¨Ï¥Î9432ªä¤ù¡C¥Ø«eÁÙ¤£²M·¡¥¦¬O§_¥i¥H¨Ï¥Î²{¦bªºÅX°Êµ{§Ç¡C¦P¼Ë¡A¦pªGµLªk½T«Hªº¸Ü¡A¦bÁÊ¶Rºô¥d{\itshape ¤§«e\/}¡A¥ý½T©w¦pªG¤£¯à¨Ï¥ÎLinuxÅX°Êµ{§Ç´N¥i¥H°h³f¡C




\subsubsection{SMC EtherPower II PCI (9432)\label{smc-pci-II}}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gepic100

³o¨Çºô¥d¬O°ò¤_SMC 83c170ªä¤ù¡A»P°ò¤_Tulipªººô¥d§¹¥þ¤£¦P¡C¦bv2.0©Mv2.2¤º®Ö¨½¥]§t¤ä«ù¥¦ªº·sÅX°Êµ{§Ç¡C§ó¦hªº²Ó¸`½Ð³X°Ý¡G

{\ttfamily http://www.scyld.com/linux/drivers/epic100.html}






\subsubsection{SMC 1211TX 10/100}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Grtl8139

ÅãµMSMC¤w¸g¤£¦A¬O¦pUltra©MEPIC¨º¼Ë´£¨Ñºô¥dªº¦P¤@®a¤½¥q¡Cªä¤ù³]­p³¡¤À²{¦b¥s°µSMSC¡A¦ÓSMCªº¦WºÙ¬O»P§CºÝOEMªOÁp¨t¦b¤@°_ªº¡A´N¹³³o¶ôªO¤@¼Ë¢w¢w±a¤@¶ô­×§ï¹LªºEEPROMªºRealTek 8139¡C




\subsubsection{SMC 3008}

ª¬ºA¡G¤£¤ä«ù¡C

³o¨Ç8¤ñ¯Sºô¥d¬O°ò¤_Fujitsu MB86950ªº¡A¥¦¬OLinux at1700ÅX°Êµ{§Ç©Ò¥ÎMB86965ªº¥j¦Ñª©¥»¡CRuss»¡¥i¥H³q¹L¾\Åªat1700.c¥N½X©M¥L¦Û¤vªºTiaraºô¥dDOSÅX°Êµ{§Ç¥]¡]tiara.asm¡^¨Ó½s¼g¥¦ªºÅX°Êµ{§Ç¡C³o¨Çºô¥d¤£¬O«Ü±`¨£¡C




\subsubsection{SMC 3016}

ª¬ºA¡G¤£¤ä«ù¡C

³o¨Ç¬O16¤ñ¯SªºI/O¬M®g8390ºô¥d¡A»P³q¥ÎNE2000ºô¥d«Ü¬Û¦ü¡C¦pªG§A¯à±qSMC±o¨ì»¡©ú¸ê®Æ¡A¨º¤\²¾´ÓNE2000ÅX°Êµ{§Ç±N¬Û·íÂ²³æ¡C³o¨Çºô¥d¤£¬O«Ü±`¨£¡C




\subsubsection{SMC-9000 / SMC 91c92/4}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gsmc9194

SMC9000¬O°ò¤_91c92ªä¤ùªºVLBºô¥d¡C91c92¤]¥X²{¦b­Y¤z¨ä¥¦«~µPºô¥d¤W¡A¦ý¬Û·í¤Ö¨£¡C




\subsubsection{SMC 91c100}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gsmc9194

¾Ú»¡SMC 91c92ÅX°Êµ{§Ç¤ä«ù¸Ó´Ú°ò¤_100Base-Tªä¤ùªººô¥d¡A¦ý¥Ø«eÁÙ¥¼±o¨ìµý¹ê¡C




\subsection{Texas Instruments}






\subsubsection{ThunderLAN\label{tlan}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gtlan

¸ÓÅX°Êµ{§ÇÂÐ»\¤F³\¦hCompaqªº¤º«Ø¥H¤Óºô³]³Æ¡A¥]¬ANetFlex©MNetelligent¨t¦C¡C¥¦ÁÙ¤ä«ùOlicomªº2183¡B2185¡B2325©M2326²£«~¡C




\subsection{Thomas Conrad}






\subsubsection{Thomas Conrad TC-5048}



³o¬O°ò¤_DECªº21040ªä¤ùªº¥t¤@´ÚPCIºô¥d¡C

°Ñ¨£¦³Ãö21040ªä¤ù¤@¸`¡]\ref{dec-21040} {(DEC 21040)}¡^¥H¤F¸Ñ§ó¦h«H®§¡C




\subsection{VIA}



§A¥i¯à¨S¨£¹LVIAºô¥d¡A¦ýVIA¨î³yªº¤LºØºôµ¸ªä¤ù³Q¥Î¦b¨ä¥¦¼t®aªº¥H¤Óºô¥d¤W¡C¥L­Ì¦³¤@­ÓWWW¯¸ÂI¡G

{\ttfamily http://www.via.com.tw/}




\subsubsection{VIA 86C926 Amazon}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne, ne2k-pci (+8390)

¸Ó±±¨î¾¹ªä¤ù¬OVIA´£¨ÑªºPCI-NE2000¡C§A¥i¥H¿ï¾ÜISA/PCIÅX°Êµ{§Ç{\ttfamily ne.c}©ÎªÌ¥u¤ä«ùPCIªºÅX°Êµ{§Ç
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
<tt/ne2k-pci.c/
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
¡C°Ñ¨£PCI-NE2000¤@¸`¥H¤F¸Ñ§ó¦h«H®§¡C




\subsubsection{VIA 86C100A Rhine II (and 3043 Rhine I)\label{rhine}}

Status ¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gvia-rhine

³o¤@¬Û·í·sªºÅX°Êµ{§Ç¥i¥H¦b¥Ø«eªº2.0©M2.1¤º®Ö¨½§ä¨ì¡C¥¦¬O¦b86C926 NE2000ªä¤ù¤Wªº§ï¶i¡A¤ä«ùÁ`½u±±¨îÅv¶Ç»¼¡A¦ýÄY®æªº½w¦s32¤ñ¯S¦r¸`¹ï»ôªº­n¨D­­¨î¤F±q¤¤±o¨ìªº¦n³B¡C­n¤F¸Ñ§ó¦h²Ó¸`©MÅX°Êµ{§Ç§ó·s¡A°Ñ¨£¡G

{\ttfamily http://www.scyld.com/linux/drivers/via-rhine.html}






\subsection{Western Digital}



½Ð°Ñ¨£\ref{smc} {(SMC)}¥H¤F¸Ñ¦³ÃöSMCºô¥dªº«H®§¡C¡]SMC¦b¦h¦~«e´N¦¬ÁÊ¤FWestern Digitalªººô¥d³¡ªù¡C¡^




\subsection{Winbond}

Winbond¹ê»Ú¤W¦}¤£¨î³y©M¦V¤j²³¾P°â§¹¾ãªººô¥d¢w¢w¥L­Ì¥Í²£³æ¤ù¥H¤Óºôªä¤ù¡A¨ä¥¦¤½¥qÁÊ¶R¦}¦bPCIªO¤W¦L¤W¦Û¤vªº¦W¦r¡AµM¦Z³q¹L¹s°â©±¾P°â¡C¥i¥H±q¤U­±±o¨ì¤@¨Ç³]¸mµ{§Ç©M§Þ³N¤ä«ù¡G

{\ttfamily http://www.winbond.com.tw}




\subsubsection{Winbond 89c840}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gwinbond-840

¸Óªä¤ù³Q´y­z¬°¡§NE2000ºô¥d©MTulip­Ý®eºô¥dÂø¥æ²£¥Íªº¬ðÅÜÅé¡¨¢w¢w°Ñ¨£ÅX°Êµ{§Çªºª`ÄÀ¥H¤F¸Ñ§ó¦h ²Ó¸`¡C¸ÓÅX°Êµ{§ÇÁÙ¨S¦³»P¤º®Ö¤@°_µo¦æ¡A¦]¬°¥¦ÁÙ³B¤_´ú¸Õ¶¥¬q¡]±q1998¦~9¤ë¶}©l¡^¡C¥i¥H±q¤U­±Àò¨úÅX°Êµ{§Ç¡G

{\ttfamily http://www.scyld.com/linux/drivers/test/winbond-840.c}




\subsubsection{Winbond 89c904, 89c905, 89c906}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne (+8390)

³o¨Ç¬OWinbondªºISA 10Mbps ne2000­Ý®e¥H¤Óºôªä¤ù¡C³]¸mµ{§Ç¥i¥H±qWinbond¯¸ÂIÀò±o¡C




\subsubsection{Winbond 89c940}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gne, ne2k-pci (+8390)

¸Óªä¤ù¬O«Ü¦h¨î³y°Ó¥X°âªº§C»ùPCI ne2000ºô¥d¤W³Ì±`¨£ªº¨â­Óªä¤ù¤§¤@¡Cª`·N¡A³o¨ÌµM¬Oªþ¦bPCIÁ`½u¤Wªº¤Q¦h¦~«eªº¦Ñ¦¡³]­p¡C¨ä©Ê¯à¦}¤£¤ñ¬ÛÀ³ªºISA«¬¸¹¦n¦h¤Ö¡C




\subsection{Xircom\label{xircom}}



¦b«Üªø¤@¬q®É¶¡¨½¡A°£«D§AÃ±¸p¤å¥ó©ñ±ó§Aªº¥Í©R¡AXircom¤£º@·Nµo¥¬½s¼gÅX°Êµ{§Ç©Ò»Ýªº½sµ{«H®§¡CÅãµM¦³¨¬°÷¦hªºLinux¥Î¤á¤£Â_ªÈÄñ¥L­Ì¡A­n±o¨ìÅX°Êµ{§Ç¤ä«ù¡]XircomÁnºÙ¤ä«ù©Ò¦³³q¥Îºôµ¸¾Þ§@¨t²Î......¡^¡A©Ò¥H¥L­Ì§ïÅÜ¤F¬Fµ¦¡AµL»Ý¦AÃ±¸p¤£¤½¶}¨óÄ³¡A¤¹³\¤½¶}¦³Ãö¸ê®Æ¡C¦³¨Ç¤H»¡¥L­Ì±N­n¤½¶}SCOÅX°Êµ{§Çªº·½½X¡A¥t¤@¨Ç³Q§iª¾¥L­Ì¤£¦A´£¨Ñ¶H¦­´ÁPE«¬¸¹¨º¼Ë¡§³Q¼o±ó¡¨ªº²£«~¸ê®Æ¡C¦pªG§A·P¿³½ì¦}·Q¦Û¤v¤F¸Ñ¤@¤U¡A¥i¥HÁp¨tXircom¡G1-800-874-7875, 1-800-438-4526 ©Î +1-818-878-7600¡C




\subsubsection{Xircom PE1, PE2, PE3-10B*}

ª¬ºA¡G¤£¤ä«ù¡C

¤£­n©ê¤Ó¤j§Æ±æ¡A¦ý¦pªG§A¦³¤@­Ó³o¼Ëªº¦}¤f¾A°t¾¹¡A¥i¥H¦bDOS¥é¯u¾¹¤U¨Ï¥ÎXircom´£¨ÑªºDOSÅX°Êµ{§Ç¨Ï¥Î¥¦¡C§A»Ý­n¤¹³\DOSEMU³X°Ý¦}¤f¡A¥i¯àÁÙ­n©MSIG¡]DOSEMUªº¶Ì¥Ê¤¤Â_¥Í¦¨¾¹¡^¤@°_¨Ï¥Î¡C




\subsubsection{Xircom PCMCIA Cards}

ª¬ºA¡G¥b¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡G????

¦bDavid HindsªºPCMCIA³n¥ó¥]¨½¦³¤@¨ÇXircomªºPCMCIAºô¥dÅX°Êµ{§Ç¡C¬d¬Ý¤@¤U¥H¤F¸Ñ³Ì·s«H®§¡C




\subsection{Zenith\label{zenith}}






\subsubsection{Z-Note\label{z-note}}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gznet

¤º«ØªºZ-Noteºôµ¸¾A°t¾¹¬O°ò¤_¨Ï¥Î{\itshape ¨â­Ó\/}DMA³q¹DªºIntel i82593¡C¦b¥Ø«eªº¤º®Öª©¥»¨½¦³¤@­Ó¡]alpha?¡^ÅX°Êµ{§Ç¡C»P©Ò¦³µ§°O¥»¹q¸£©M³S¬Ã¾A°t¾¹¤@¼Ë¡A¦b¹B¦æ{\ttfamily make config}®É¥¦³Q©ñ¦b¡§Pocket and portable adaptors¡¨³¡¤À¡C¦P®ÉÁÙ­nª`·N¡AIBM ThinkPad 300»PZ-Note­Ý®e¡C




\subsection{Znyx\label{zynx}}






\subsubsection{Znyx ZX342 (DEC 21040 based)}

ª¬ºA¡G¤ä«ù¡AÅX°Êµ{§Ç¦WºÙ¡Gde4x5, tulip

¦b¨Ï¥Î°ò¤_¸Óªä¤ùªººô¥d®É¥i¥H¦b{\itshape ¨â­Ó\/}ÅX°Êµ{§Ç¤¤¶i¦æ¿ï¾Ü¡CDavid½s¼g¤FDE425ÅX°Êµ{§Ç¡ADonald½s¼g¤F³q¥Îªº21040ÅX°Êµ{§Ç¡C

ª`·N¡A¦b1.1.91¡ADavid¼W¥[¤F¤@­Ó½sÄ¶¿ï¶µ¡A¤¹³\«DDECºô¥d¡]¦pZnyxºô¥d¡^¨Ï¥Î¸ÓÅX°Êµ{§Ç¡C½Ð¾\Åª{\ttfamily README.de4x5}¥H¤F¸Ñ¨ä¤¤²Ó¸`¡C

°Ñ¨£\ref{dec-21040} {(DEC 21040)}¥H¤F¸Ñ³o¨Çºô¥dªº§ó¦h«H®§©M·í«eÅX°Êµ{§Çªºª¬ªp¡C




\subsection{ÃÑ§O¥¼ª¾ºô¥d\label{mystery}}



¦n§a¡A°²³]§A¨û¨ûªºË»¤lªº¾F©~ªºªB¤Í¦³¤@­Ó¥S§Ì¡A¦b¥Lµ¹¨à¤lªºÃdª«¤j¦Ñ¹«°µºÛªºAT½c¤l¨½§ä¨ì¤F¤@¶ô¦Ñ¦¡ISA¥H¤Óºô¥d¡C¤£ª¾¤°¤\­ì¦]³o¶ôºô¥d³Ì¦Z¸¨¨ì§Aªº¤â¨½¡A·Q¦bLinux¤U¨Ï¥Î¡A¦ý¨S¤Hª¾¹D³o¶ôºô¥d¬O¤°¤\¡A¤]¨S¦³¥ô¦ó¸ê®Æ¡C

­º¥ý¡A´M§ä¥i¥H§@¬°½u¯Áªº¥ô¦ó©úÅãªº«¬¸¹½s½X¡C¦pªG«¬¸¹¨½¥]§t2000¡A¨º¤\«Ü¦³¥i¯à¬O¶ôNE2000­Ý®eºô¥d¡C¤W­±¦³8003©M8013ªººô¥d¥i¯à¬OWestern/DigitalªºWD80x3ºô¥d¡A©ÎªÌ¬OSMC Eliteºô¥d¡A©ÎªÌ¥¦­Ìªº­Ý®eºô¥d¡C




\subsubsection{ÃÑ§Oºôµ¸±µ¤f±±¨î¾¹}

´M§äºô¥d¤W³Ì¤jªºªä¤ù¡C¨º´N¬Oºôµ¸±±¨î¾¹¡]NIC¡^¡A¤j¦h¼Æ³£¥i¥H±q³¡¤À½s¸¹¤WÃÑ§O¥X¨Ó¡C¦pªG§Aª¾¹Dºô¥d¤W¬O­þ¤@ºØNIC¡A¤U¤å´N¯àÀ°§A§Ë²M¬O­þ¤@ºØºô¥d¡C

¥i¯à³Ì±`¨£ªºNICÁÙ¬ONational SemiconductorªºDP8390¡A¤S¦WNS32490¡A¤S¦WDP83901¡A¤S¦WDP83902¡A¤S¦WDP83905¡A¤S¦WDP83907¡C³o¨Ç¤£¹L¬ONational¥Í²£ªº¤@³¡¤Àªä¤ù¡I¨ä¥¦¤@¨Ç¤½¥q¡A¦pWinbond©MUMC¡A¥Í²£DP8390©MDP83905­Ý®e³¡¥ó¡A¦pWinbondªº89c904¡]»PDP83905­Ý®e¡^©MUMCªº9090¡C¦pªGºô¥d¥Ñ8390ºc¦¨¡A¨º¤\¥¦¥i¯à´N¬O¤@­Óne1000©Îne2000­Ý®eºô¥d¡C¨ä¦¸±`¥Îªº°ò¤_8390ªººô¥d¬Owd80x3ºô¥d¤Î¨ä­Ý®e¥d¡C¨Ï¥ÎDP83905ªººô¥d¥i¥H³Q»{¬°¬One2000{\itshape ©Î\/}wd8013¡C·sª©¥»ªº³q¥Îwd80x3©MSMC Eliteºô¥d¦b­ì¨ÓDP8390ªº¦ì¸m¤W¥Îªº¬O83c690¡CSMC Ultraºô¥dªö¥Î83c790¡A¨Ï¥Î»Pwd80x3ºô¥dµy¦³°Ï§OªºÅX°Êµ{§Ç¡CSMC EtherEZºô¥dªö¥Î83c795¡A¨Ï¥ÎªºÅX°Êµ{§Ç»PSMC Ultraºô¥d¤@¼Ë¡C©Ò¦³°ò¤_¬YºØ8390©Î8390­Ý®eªä¤ùªºBNCºô¥d³£¦³¤@¤ùºò¾aBNC³s±µ¾¹ªº16°wDIPªä¤ù8392¡]©Î83c692¡A¤S©Î???392¡^¡C

¥t¤@­Ó¦b¦Ñ¦¡ºô¥d¤W§ä¨ìªº±`¨£NIC¬OIntelªºi82586¡C¨Ï¥Î¸ÓNICªººô¥d¥]¬A3c505¡B3c507¡B3c523¡BIntelªºEtherExpress-ISA¡BMicrodyneªºExos-205T©MRacal-InterlanªºNI5210¡C

­ì©lAMD LANCE NICªº½s¸¹¬°AM7990¡A¸û·sªºª©¥»¥]¬A79c960¡B79c961¡B79c965¡B79c970©M79c974¡C¤W­±ªº¤j¦h¼Æºô¥d³£¥i¥H¨Ï¥ÎLinuxªºLANCEÅX°Êµ{§Ç¡A¦³­Ó¨Ò¥~¬O¨Ï¥Î¦Û¤vÅX°Êµ{§Çªº¦Ñ¦¡Racal-InterlanªºNI6510ºô¥d¡C

¨Ï¥ÎDECªº21040¡B21041¡B21140©ÎÃþ¦üªº½s¸¹NICªº¸û·sªºPCIºô¥d¥i¥H¨Ï¥ÎLinuxªºtulip©Îde4x5ÅX°Êµ{§Ç¡C

¨ä¥¦¦³¤@­Ó¦LµÛRTL8029¡B89C940©Î86C926ªº¤jªä¤ùªºPCIºô¥d¬One2000­Ý®eºô¥d¡Av2.0¥H¤Wª©¥»Linux¨½ªºneÅX°Êµ{§Ç¦b±Ò°Ê®É¥i¥H¦Û°ÊÀË´ú³o¨Çºô¥d¡C




\subsubsection{ÃÑ§O¥H¤Óºô¦a§}}



¨C¤@­Ó¥H¤Óºô¥d³£¦³¤@­Ó°ß¤@ªº6¦r¸`ºô¥d¦a§}¡C¦P¤@­Ó¨î³y°Ó¥Í²£ªº¨C¤@¶ôºô¥dªº¸Ó¦a§}ªº«e¤T­Ó¦r¸`³£¬O¤@¼Ëªº¡C¨Ò¦p¡A©Ò¦³ªºSMCºô¥d³£¥H{\ttfamily 00:00:c0}¶}©l¡C¨î³y°Ó¤À°tªº¦Z¤T­Ó¦r¸`¹ï¤_¦Û¤v¥Í²£ªº¨C¤@¶ôºô¥d³£¬O°ß¤@ªº¡C

¦pªG§Aªººô¥d¤W¦³­Ó¼ÐÃ±µ¹¥X¤Fºô¥d¦a§}ªº¥þ³¡¤»­Ó¦r¸`¡A´N¥i¥H³q¹L«e¤T­Ó¦r¸`¬d¨ì¥¦ªº¾P°â°Ó¡C¦ý¤@¯ëPROM´¡®y¤W¶Kªº¼ÐÃ±¤W¥u¥´¦L¤F¦Z¤T­Ó¦r¸`¡A¨S¤°¤\¥Î¡C

§A¥i¥H±qRFC-1340¤W§ä¨ì¤À°tµ¹¾P°â°Óªº¦a§}¡CÅãµM¦³«Ü¦h¦a¤è¥i¥H§ä¨ì³Ì·sªº¦a§}¦Cªí¡C³q¹LWWW©ÎFTP¬d§ä{\ttfamily EtherNet-codes}©Î{\ttfamily Ethernet-codes}´N¥i¥H§ä¨ì¤@¨Ç¸ê®Æ¡C




\subsubsection{³q¹LFCC ID¸¹½XÃÑ§Oºô¥d}



§@¬°ºô¥d³q±`¦b¾P°âµ¹¥Î¤á¤§«e¥²¶·³q¹LªºÅçµý¹Lµ{ªº¤@³¡¤À¡Aºô¥d­n³QFCC´ú¸Õ¡A¦}§â¥Ñ¦¹Àò±oªºFCC ID¦L¦bºô¥d¤W¡C¨Ò¦p¡A¬Y¶ôºô¥d¤W¦³{\ttfamily FCC ID: J158013EWC}¢w¢w¨º¤\¸Óºô¥d´N¬OSMC/WD8013-EWC¡C{\ttfamily www.driverguide.com}©M{\ttfamily drdriver.com}¤@Ãþªº¬Y¨ÇWEB¯¸ÂI¨Ï¥ÎFCC ID¦Cªí¨ÓÀ°§UID¸¹¤£©úÅãªº±¡ªp¡C




\subsubsection{¨Ï¥Î¥¼ª¾ºô¥dªº§Þ¥©}



¦pªGÁÙµLªk½T©w¬O­þ¤@ºØºô¥d¡A¦ý¦Ü¤ÖÁY¤p¤F¥i¯àªº­S³ò¡A¨º¤\§A¥i¥Hºc«Ø¤@­Ó¥]¬A¥þ³¡¥i¯àÅX°Êµ{§Çªº¤º®Ö¡AµM¦Z¬Ý¬Ý¨ä¤¤ªº­þ¤@­Ó¥i¥H¦b±Ò°Ê®É¦Û°ÊÀË´ú¨ìºô¥d¡C

¦pªG¤º®Ö¨S¦³ÀË´ú¨ìºô¥d¡A¨º¤\´N¬Oºô¥d¨S¦³³Q°t¸m¨ì¤@­ÓÅX°Êµ{§Ç´M§äºô¥d®É±´´úªº¦a§}¤W¡C¦¹®É¡A»Ý­n±q·í¦aªºLinuxªºFTP¯¸ÂI¤U¸ü{\ttfamily scanport.tar.gz}¡A¬Ý¬Ý¥¦¯à§_©w¦ì¥X§Aªººô¥d¸õ½u©Ò³]ªº¦a§}¡C¥¦±½´y±q{\ttfamily 0x100}¨ì{\ttfamily 0x3ff}ªºISA I/O¦a§}¥H´M§ä{\ttfamily /proc/ioports}¨½¨S¦³ª`¥Uªº³]³Æ¡C¦pªG¥¦¦b¬Y­Ó¯S©w¦a§}µo²{¤F¤@­Ó¥¼ª¾³]³Æ¡A¨º¤\´N¥i¥H¥Î¤@­Ó±Ò°Ê°Ñ¼Æ{\ttfamily ether=}§â¥¦©ú½T³]©w¬°¥H¤Óºô¥d±´´úªº¦a§}¡C

¦pªG§A³]ªkÀË´ú¨ì¤Fºô¥d¡A¨º¤\¤@¯ë¥i¥H¨Ì¦¸§ïÅÜ¥¼ª¾¸õ½u¨Ó¤F¸Ñ¸õ½uªº§@¥Î¡A¦}¬d¬Ý³QÀË´ú¨ìªººô¥d©Ò¥ÎI/O°ò§}©M¤¤Â_¡C¤¤Â_³]¸m¤@¯ë¥i¥H³q¹L¬d¬Ý¸õ½u¦bºô¥d­I­±©Ò²k±µªº¦ì¸m¨Ó±o¨ì¡C±qºô¥d¦³ª÷ÄÝ´¡®yªº¤@ºÝ¼Æ­I­±ªº¡§ª÷¤â«ü¡¨¡A¬ÛÀ³¤_ª÷¤â«ü4¡B21¡B22¡B23¡B24¡B25¡B34¡B35¡B36¡B37¡B38¤À§O¬O¤¤Â_9¡B7¡B6¡B5¡B4¡B3¡B10¡B11¡B12¡B15¡B14¡C8¤ñ¯Sºô¥d¥u¥Î¨ìª÷¤â«ü31¡C

¬Ý°_¨Ó¨S¤°¤\¥Îªº¸õ½u¤@¯ë¬O¥Î¨Ó¿ï¾Ü¥i¿ï±Ò°ÊROMªº¤º¦s¦a§}¡C¾aªñBNC©ÎRJ-45©ÎAUIªº¨ä¥¦¸õ½u¤@¯ë¬O¥Î¨Ó¿ï¾Ü¿é¥X´C¤¶ªº¡C¤@¯ë¥¦­Ì¤]¦b¦LµÛYCL¡BValor©ÎFil-Magªº¡§¶Â²°¤l¡¨ÅÜÀ£¾¹ªþªñ¡C

¦p¤UURL¦¬¶°¤F«Ü¦h¦UºØºô¥dªº¸õ½u³]¸m¡G

\nameurl{http://www.slug.org.au/NIC/}{Ethercard Settings}






\subsection{«D¥H¤Óºô³]³ÆªºÅX°Êµ{§Ç}



¦bLinux·½½X¨½¦³­Y¤z¦bºôµ¸µ{§Ç¬Ý¨Ó¬O{\itshape ¶H¥H¤Óºô\/}³]³Æªº¨ä¥¦ÅX°Êµ{§Ç¡A¦ý¹ê»Ú¤W¤£¬O¥H¤Óºô³]³Æ¡C¬°¤F¥»¤åÀÉªº§¹¾ã©Ê¡A§â¥¦­ÌÂ²­n¦a¦C¦b³o¨½¡C

{\ttfamily dummy.c}¢w¢w¸ÓÅX°Êµ{§Çªº¥Øªº¬O´£¨Ñ¤@­Ó³]³Æ¨Ó«ü¥X¸ô¥Ñ¡A¦ý¦}¤£¹ê»Ú¶Ç¿é¼Æ¾Ú¡C

{\ttfamily eql.c}¢w¢w­t²ü§¡¿Å¡A±±¨î¦h­Ó³]³Æ¡]¤@¯ë¬Omodem¡^¦}¦b¨ä¤¤¥­¿Åµo°e­t¸ü¡A¹ïºôµ¸µ{§Çªí²{¬°³æ­Ó³]³Æ¡C

{\ttfamily ibmtr.c}¢w¢wIBMªº¥OµPÀô¡A¦}«D¯u¥¿ªº¥H¤Óºô¡C¥OµPÀô­n¨D·½¸ô¥Ñ¥H¤Î¨ä¥¦¤@¨Ç³Â·Ð¨Æ¡C

{\ttfamily loopback.c} ¢w¢wÀô¦^³]³Æ¡A§Aªº¾÷¾¹µo¥Xªº©Ò¦³¼Æ¾Ú¥]ªº¥Øªº¦aÁÙ¬O§A¦Û¤vªº¾÷¾¹¡C±q¥»½è¤W»¡¥u¬O§â¼Æ¾Ú¥]±qµo°e¶¤¦C²¾¨ì±µ¦¬¶¤¦C¡C

{\ttfamily pi2.c}¢w¢wOttawa·~§EµL½u¹q·R¦nªÌ­Ñ¼Ö³¡PI©MPI2ªº±µ¤f¡C

{\ttfamily plip.c}¢w¢w¦}¦æ½uInternet¨óÄ³¡A¤¹³\¨â¥x­pºâ¾÷³q¹L¦}¤fªººÝ¨ìºÝ¤è¦¡³s±µ¤¬¬Ûµo°e¼Æ¾Ú¥]¡C

{\ttfamily ppp.c}¢w¢wºÝ¨ìºÝ¨óÄ³¡]PPP¡ARFC1331¡^¡A¦bºÝ¨ìºÝªº³s±µ¡]¤@¯ë¬°modem¡^¤W¶Ç¿é¦h¨óÄ³¼Æ¾Ú´V¡C

{\ttfamily slip.c}¢w¢w¦ê¦æ½uInternet¨óÄ³¡A¤¹³\¨â¥x­pºâ¾÷³q¹L¦ê¤f¡]¤@¯ë³q¹Lmodem¡^ªººÝ¨ìºÝ¤è¦¡³s±µ¤¬¬Ûµo°e¼Æ¾Ú¥]¡C

{\ttfamily tunnel.c}¢w¢w´£¨Ñ¤@­ÓIP³q¹D¡A¥i¥H¨Ïºôµ¸¼Æ¾Ú¬y³z©ú¦a¬ï¹L¤lºô¡C

{\ttfamily wavelan.c}¢w¢w¥ÑIntelªº82586¨ó³B²z¾¹±±¨îªºÃþ¥H¤ÓºôµL½u¹q¦¬µo¾¹¡C82586¤]³Q¥Î¦b½Ñ¦pIntel EtherExpressªº¨ä¥¦¥H¤Óºô¥d¤W¡C




\section{¹qÆl¡B¦P¶b¹qÆl¡BÂùµ±½u\label{cable}}

¦pªG§A¬O±qÀY¶}©l«Øºôµ¸¡A¨º¤\´N¥²¶·¨M©w¬O¨Ï¥Î¥H¤Óºô²ÓÆl¡]¨Ï¥ÎBNC³s±µ¾¹ªºRG58¦P¶b¹qÆl¡^©Î10baseT¡]¨Ï¥Î8½u¡§¹q¸Ü¡¨³s±µ¾¹RJ-45ªº¹q¸Ü½u¼Ë¦¡ªºÂùµ±½u¹qÆl¡^¡C¨Ï¥ÎN³s±µ¾¹ªºRG-5¹qÆlªº¦Ñ¦¡¥H¤Óºô²ÊÆl¤w¸g³Q¼o±ó¡A²{¦b«Ü¤Ö¨£¨ì¤F¡C

°Ñ¨£\ref{cable-intro} {(ºô¥dÀ³·í¤ä«ùªº½uÆlÃþ«¬)}¥H¤j­P¤F¸Ñ¤@¤U½uÆlÃþ«¬¡CÁÙ­nª`·N¡A{\itshape comp.dcom.lans.ethernet\/}¨½ªºFAQ¥]¬A¤F¤j¶q¦³Ãö¹qÆl¤è­±ªº¦³¥Î«H®§¡CFTP¨ìrtfm.mit.edu¤Uªº{\ttfamily /pub/usenet-by-hierarchy/}¥H¬d¬Ý¸Ó·s»D²ÕªºFAQ¡C




\subsection{¥H¤Óºô²ÓÆl(thinnet)\label{bnc}}



¥H¤Óºô²ÓÆl¬Û·í«K©y¡C¦pªG¦Û¤v¨î§@¹qÆl¡A¹ê¤ßªºRG58A¬O\$0.27/m¡A¤ÀªÑªºRG58AU¬O\$0.45/m¡CÅsÀYªºBNC³s±µ¾¹¨C­Ó$<$ \$2¡A¨ä¥¦¦UºØ¾¹¥ó¤]³£®¼«K©y¡C­«­nªº¬O¦b¨C¬q¹qÆlªº¥½ºÝ»Ý­n¸Ë¤@­Ó50¼Ú©iªº²×µ²¾¹¡A©Ò¥H¨C±ø¹qÆlªº¹wºâ¤j¬ù¬O\$2¡CÁÙ¦³¤@­ÓÃöÁä°ÝÃD¬O¹qÆl¤¤¤£¯à¦³¡§´Ý¼Î¡¨¢w¢w¡§T¡¨³s±µ¾¹¥²¶·ª½±µ³s¨ì¥H¤Óºô¥d¤W¡C

¨Ï¥Î¥H¤Óºô²ÓÆl¦³¨â­Ó¥D­n¯ÊÂI¡C­º¥ý¥¦­­¨î¬°10Mb/sec¢w¢w100Mb/sec­n¨D¨Ï¥ÎÂùµ±½u¡C¨ä¦¸¡A¦pªG§A¬O¥Î¤@­Ó¤jÀô¸ô§â¾÷¾¹³s±µ°_¨Ó¡A¦Ó¬Y¨Ç²Â³J§â¹qÆl±q¦Û¤vªºT§Î±µÀY¤W®³¶}¯}Ãa¤FÀô¸ô¡A¾ã­Óºôµ¸´NµLªk¨Ï¥Î¤F¡A¦]¬°¥X²{¤F¤@­ÓµL­­¤jªºªý§Ü¡]¹q¸ô¶}¸ô¡^¦Ó¤£¬O­n¨Dªº50¼Ú©i²×µ²¡Cª`·N¡A¥u­n¤£§â¹qÆl±qT§Î±µÀY¤W²¾¶}¡A¦Ó¬O§âT§Î±µÀY±qºô¥d¤W¨ú¤U¨Ó¡A¾ã­Ó¤lºô´N¤£·|³Q¯}Ãa¡C·íµM¡A±q¾÷¾¹¤W©Þ¥XT§Î±µÀY·|¤zÂZ¾÷¾¹ªº¤u§@¡C8-) ¦pªG¥u¬O¨â¥x¾÷¾¹ªº¤pºôµ¸¡A{\itshape ÁÙ¬O\/}»Ý­nT§Î±µÀY©M50¼Ú©i²×µ²¾¹¢w¢w{\itshape ¤£¯à\/}¥Îª½±µ¥Î¹qÆl§â¥¦­Ì³s°_¨Ó¡I



¦³¤@¨Ç¦³½ìªº¹qÆl¨t²Î{\itshape ¬Ý°_¨Ó¶H\/}¥Î¤@®Ú¾É½u³s¨ìºô¥d¤W¡A¦ý¹ê»Ú¤W¬O¦³¨â®Ú¦}±Æªº¾É½u¥]¦b¥~­±ªº®M¤l¨½¡A¨äºI­±¬°¾ò¶ê§Î¡C¦bÀô¸ôªºÂà§éÂI¡A¥Î«÷±µªºBNC³s±µ¾¹³s¨ìºô¥d¤W¡C©Ò¥H¥¦µ¥¦P¤_¥Î¨â®Ú¹qÆl©M¤@­ÓBNCªºT§Î±µÀY¡A¦ý¦b³oºØ±¡ªp¤U¡A¥Î¤á¤£¥i¯à±qT§Î±µÀYªº¤@Ãä²¾¨«¹qÆl¨Ó¤zÂZºôµ¸¡C






\subsection{Âùµ±½u\label{utp}}



Âùµ±½uºôµ¸»Ý­n¥D°Ê¦¡ªºHub¡A¨C­ÓHub°_½X­n\$50¡A¥¼¥[¤uªº¹qÆl¶O¥Î¹ê»Ú¤W¤ñ²ÓÆl­n°ª¡C§A¥i¥H¤£²z·|¨º¨ÇÁnºÙ¥i¥H¨Ï¥Î¤w¦³¹q¸Ü½uªº»¡ªk¡A¦]¬°³oºØ¦w¸Ë±¡ªp¬O«Ü¤Ö¨£ªº¡C

¥t¤@¤è­±¡A©Ò¦³100Mb/sec¥H¤Óºô´£Ä³³£¨Ï¥ÎÂùµ±½u¡A¦Ó¥Bµ´¤j¦h¼Æ·sªº°Ó·~¦w¸Ë¨Ï¥Îªº¤]¬OÂùµ±½u¡C¦¹¥~¡ARuss Nelson¶i¤@¨B´£¥X¡§·sªº¥¬½uÀ³¸Ó¨Ï¥Î5Ãþ½u¡C¨Ï¥Î¨ä¥¦ªº¹qÆl³£¬O¦b®ö¶O¦w¸ËªÌªº®É¶¡¡A¦]¬°¥ô¦ó¤@ºØ100Base³£±N­n¨D¨Ï¥Î5Ãþ½u¡C¡¨

¦pªG¥u¬O³s±µ¨â¥x¾÷¾¹¡A¥i¥H³q¹L¥æ´«±µ¦¬»Pµo°e½u¡]1-2©M3-6¡^¨ÓÁ×§K¨Ï¥ÎHub¡C

¦pªG§A®³µÛRJ-45³s±µÀY¨RµÛ¦Û¤v¡]´N¶H§A­n§â¥¦´¡¨ì¦Û¤v¼L¨½¡^¡AÂê¦©´Â¤W¡A¨º¤\±q¥ª¨ì¥k¦U´¡¸}ªº½s¸¹¨Ì¦¸¬O1¨ì8¡C¦U´¡¸}ªº¥Î³~¦p¤U¡G

\begin{verbatim}
        ´¡¸}½s¸¹            ¥Î³~
        ----------                           ----------
        1                       ¿é¥X¼Æ¾Ú (+)
        2                       ¿é¥X¼Æ¾Ú (-)
        3                       ¿é¤J¼Æ¾Ú (+)
        4                       «O¯d¬°¹q¸Ü¨Ï¥Î
        5                       «O¯d¬°¹q¸Ü¨Ï¥Î
        6                       ¿é¤J¼Æ¾Ú (-)
        7                       «O¯d¬°¹q¸Ü¨Ï¥Î
        8                       «O¯d¬°¹q¸Ü¨Ï¥Î
\end{verbatim}


¦pªG§A·Q¦Û¤v¨î§@¤@±ø¹qÆl¡A½Ð»{¯u¾\Åª¤U¤å¡C¤@¹ï®t¤À«H¸¹¥²¶·¨Ï¥Î¦P¤@±øÂùµ±½u¡A¥Hº¡¨¬UTP¹qÆl©Ò­n¨Dªº³Ì¤pªý§Ü/·l¯Ó¡C¦pªG¬Ý¤@¤U¤W­±ªºªí®æ¡A´Nª¾¹D1+2©M3+6¬O¨â¹ï®t¤À«H¸¹¡C¤£¬O1+3©M2+6¡I¡I¡I¡I¦b10MHz¡Aªø«×¸ûµuªº±¡ªp¤U¡A¥X³o¼Ëªº¿ùÁÙ¥i¥H¤u§@¡A¦ý¶È­­¤_½u¸ôªø«×¸ûµuªº±¡ªp¤U¡CµLªk·Q¶H¦b100MHz®É¥X¿ù·|«ç¤\¼Ë¡C

¹ï¤_¥½ºÝ¬°¡§A¡¨©M¡§B¡¨ªº´¶³q±µ´¡½u¡A§A­n°µ¤@­Ó´¡¸}¨ì´¡¸}ªº¬M®g¡A¿é¤J©M¿é¥X¤À§O¨Ï¥Î¤@¹ïÂùµ±½u¡]¥X¤_ªý§Üªº­ì¦]¡^¡C³o´N·N¨ýµÛ1A³s¨ì1B¡A2A³s¨ì2B¡A3A³s¨ì3B¡A6A³s¨ì6B¡C³s±µ1A-1B©M2A-2Bªº¥²¶·¬O¤@±øÂùµ±½u¡C¦P¼Ë¡A³s±µ3A-3B©M6A-6Bªº¥²¶·¬O¥t¤@±øÂùµ±½u¡C

¦pªG¥Ø«e¨S¦³Hub¡A·Q°µ¤@±ø¡§ªÅ¹qÆl¡¨¡A¨º¤\­n°µªº´N¬O§â¡§B¡¨ªº¿é¥X§@¬°¡§A¡¨ªº¿é¤J¡A§â¡§A¡¨ªº¿é¥X§@¬°¡§B¡¨ªº¿é¤J¡A¦P®É¤£§ïÅÜ¥¦­Ìªº·¥©Ê¡C¤]´N¬O»¡¡A§â1A³s¨ì3B¡]Aªº¿é¥X+¨ìBªº¿é¤J+¡^¡A§â2A³s¨ì6B¡]Aªº¿é¥X-¨ìBªº¿é¤J-¡^¡C³o¨â®Ú½u¥²¶·¬O¤@±øÂùµ±½u¡C¥¦­Ì§âºô¥d/´¡¸}¡§A¡¨§@¬°¿é¥X¶Ç°e¡A§âºô¥d/´¡¸}¡§B¡¨§@¬°¿é¤J¶Ç°e¡CµM¦Z§â3A³s¨ì1B¡]Aªº¿é¤J+¨ìBªº¿é¥X+¡^¡A§â6A³s¨ì2B¡]Aªº¿é¤J-¨ìBªº¿é¥X-¡^¡C³o¨â®Ú½u¤]¥²¶·¬O¤@±øÂùµ±½u¡C¥¦­Ì§âºô¥d/´¡¸}¡§A¡¨§@¬°¿é¤J¶Ç°e¡A§âºô¥d/´¡¸}¡§B¡¨§@¬°¿é¥X¶Ç°e¡C

¦]¦¹¡A¦pªG·Q¨Ï¥Î´¶³q±µ´¡½u¡A»Ý­n¬å±¼¥¦ªº¤@ºÝ¡A¥æ´«±µ¦¬©Mµo°eÂùµ±½uªº¦ì¸m¦Z´¡¤J·sªº´¡ÀY¡A§â¥¦À£ºò¡A´N±o¨ì¤@±ø¡§ªÅ¡¨¹qÆl¤F¡C¤@ÂI¤]¤£´_Âø¡C¥u¤£¹L¬O§â¤@¶ôºô¥dªºµo°e«H¸¹°e¨ì²Ä¤G¶ôºô¥dªº±µ¦¬ºÝ¡A¦pªk¬¶¨î´N¥i¥H¤F¡C

ª`·N¡A¦b10BaseT³Q§å­ã¬°¼Ð­ã¤§«e¡A´N¦s¦b¨ä¥¦¨Ï¥ÎRJ-45³s±µÀYªººôµ¸®æ¦¡©M¤W­zªº³s½u¦w±Æ¡C¨Ò¦pSynOpticsªºLattisNet©MAT\&TªºStarLAN¡C¦b¬Y¨Ç±¡ªp¤U¡A¡]¦p¨Ï¥Î¦­´Áªº3C503ºô¥d¡^¥i¥H³]¸mºô¥d¤Wªº¸õ½u¨Ïºô¥d¯à°÷»P¤£¦PÃþ«¬ªºHub³s±µ¡A¦ýµ´¤j¦h¼Æ±¡ªp¤U¡A¬°³o¨Ç¦Ñ¦¡Ãþ«¬ºôµ¸³]­pªººô¥dµLªk¤u§@¦b¼Ð­ã10BaseTºôµ¸/Hub¤U¡C¡]ª`·N¡A¦pªGºô¥dÁÙ¦³¤@­ÓAUIºÝ¤f¡A¨º¤\ªÖ©w¥i¥H§âAUI©M10BaseT¦¬µo¾¹²V¦X¦b¤@°_¨Ï¥Î¡C¡^






\subsection{¥H¤Óºô²ÊÆl}

¥H¤Óºô²ÊÆl¤L¥G§¹¥þ³Q¼o±ó¤F¡A¤@¯ë¥u¥Î¦b»P¤@­Ó¤w¦³ºôµ¸«O«ù­Ý®e¡C¥i¥H©ñªQ³W©w¦}¨Ï¥Î³Q°Êªº\$3ªºN-to-BNC³s±µ¾¹§â¤j¶q¥H¤Óºô²ÊÆl©M²ÓÆl³s±µ°_¨Ó¡A³o³q±`¬OÂX®i¤w¦³¥H¤Óºô²ÊÆlªº³Ì¨Î¸Ñ¨M¤è®×¡C¹ï³oºØ±¡ªp¤@­Ó¥¿½T¡]¦ý¥N»ù©ù¶Q¡^ªº¤è®×¬O¨Ï¥ÎÂàµo¾¹¡C


\section{³n¥ó³]¸m»Pºô¥d¶EÂ_\label{utils}}



¤j¦h¼Æ±¡ªp¤U¡A¦pªG¥Î³n¥ó¶i¦æ°t¸m¦}§â°t¸m«O¦s¦bEEPROM¨½¡A¤@¯ë»Ý­n­«·s±Ò°ÊDOS¡A¨Ï¥Î¾P°â°Ó´£¨ÑªºDOSµ{§Ç¨Ó³]¸mºô¥dªº¤¤Â_IRQ¡BI/O¡B¤º¦s¦a§}©M¨ä¥¦ªF¦è¡C¦¹¥~¡A§Æ±æ³o¬O¥u­n³]¸m¤@¦¸ªºªF¦è¡C¦pªG¨S¦³ºô¥dªºDOS³n¥ó¡A¸ÕµÛ¦bºô¥d¨î³y°ÓªºWWW¯¸ÂI¤W§ä§ä¡C¦pªG¤£ª¾¹D¯¸ÂI¦WºÙ¡A¥i¥H²q¤@¤U¡A¦p¡§www.my\_vendor.com¡¨¡A¨ä¤¤¡§my\_vendor¡¨¬Oºô¥d¨î³y°Óªº¦WºÙ¡C³oºØ¤èªk¹ïSMC¡B3Com©M³\¦h{\itshape ³\¦h\/}¨ä¥¦¨î³y°Ó³£¦³®Ä¡C

¦³¨Çºô¥d¦³Linuxª©¥»ªº°t¸m¤u¨ã¡A¦}¦b¥»¤å¤¤¦C¥X¡CDonald½s¼g¤F¤L­Ó¹B¦æ¦bLinux¤Uªº¤pªººô¥d¶EÂ_µ{§Ç¡A¨ä¤¤¤j³¡¤À³£¬O¥L¦b½s¼gÅX°Êµ{§Ç®É¨Ï¥Îªº¶E¿ù¤u¨ã¡C¤£­n«ü±æ¦³ªá­ïªºµæ³æÅX°Ê¬É­±¡C¦b¨Ï¥Îµ´¤j³¡¤À¤u¨ã®É¡A§A»Ý­n¾\Åª·½½X¡C§Y¨Ï§A©Ò¥Îªººô¥d¨S¦³¬ÛÀ³ªº¶EÂ_¤u¨ã¡A§AÁÙ¬O¥i¥H³q¹L{\ttfamily cat /proc/net/dev}Àò±o¤@¨Ç«H®§¢w¢w°²³]¦Ü¤Ö¦b±Ò°Ê®É§Aªººô¥d³QÀË´ú¨ì¤F¡C

ÀH«K­þºØ±¡ªp¤U¡A³£±o¦b±Ò°Ê®É¹B¦æ³o¨Çµ{§Ç¡]¤¹³\¹ïºÝ¤f¶i¦æI/O¾Þ§@¡^¡A¦Ó¥B¥i¯à¦b³o¤\°µ¤§«e­n¥ý¥Î{\ttfamily ifconfig eth0 down}Ãö³¬¥H¤Óºô¥d¡C




\subsection{¥H¤Óºô¥dªº°t¸mµ{§Ç\label{config}}






\subsubsection{WD80x3ºô¥d}



¹ï¤_¨Ï¥Îwd80x3ºô¥dªº¤H¡A¦bLinuxªºFTP¯¸ÂI¤W¥i¥H§ä¨ìªº{\ttfamily wdsetup-0.6a.tar.gz}¨½¦³¤@­Óµ{§Ç{\ttfamily wdsetup}¡C¥¦ªººûÅ@¤£¬O«Ü¦n¡A¦³¤@¬q®É¶¡¨S¦³§ó·s¤F¡C¦pªG¯à¥Î¡A¨º¤\«Ü¦n¡Q¦pªG¤£¦æ¡A¨º¤\¥u¦n¨Ï¥ÎÀ³·í©Mºô¥d¤@°_®³¨ìªºDOSª©¥»µ{§Ç¡C¦pªG¨S¦³³o¼ËªºDOSª©¥»µ{§Ç¡AÁÙ¬O¥i¥H«Ü°ª¿³¦a§i¶D§A¡A±qSMCªºFTP¯¸ÂI¤W¥i¥HÀò¨ú³]¸m/ÅX°Êµ{§ÇºÏ½L¡C·íµM¡A§A{\itshape ¥²¶·\/}¦³¤@­Ó±aEEPROMªººô¥d¤~¯à¨Ï¥Î¸Ó¤u¨ã¡C«Ü¦Ñ{\itshape «Ü¦Ñ\/}ªºwd8003ºô¥d©M¤@¨Çwd8013­Ý®eºô¥d¨Ï¥Î¸õ½u¨Ó³]¸mºô¥d¡C




\subsubsection{Digital/DECºô¥d}



DigitalªºEtherWorks 3ºô¥d¥i¥H¥ÎÃþ¦ü¤_DOSµ{§Ç{\ttfamily NICSETUP.EXE}ªº¤è¦¡¶i¦æ°t¸m¡CDavid C. Davies½s¼g¤F¸Ó¤u¨ã¥H¤Î©MÅX°Êµ{§Ç¦b¤@°_ªº¨ä¥¦EtherWorks 3¤u¨ã¡C¬d¬Ý¤@¤U§A¥»¦aªºLinux FTP¯¸ÂI¤Uªº¥Ø¿ý{\ttfamily /pub/linux/system/Network/management}¡A´M§ä¦W¬°{\ttfamily ewrk3tools-X.XX.tar.gz}ªº¤å¥ó¡C




\subsubsection{NE2000+©ÎAT/LANTICºô¥d}



¦³¨ÇNat SemiªºDP83905²£«~¡]¦pAT/LANTIC©MNE2000+¡^¬O¥i¥H¥Î³n¥ó°t¸mªº¡C¡]ª`·N¡A³o¨Çºô¥d¤]¥i¥H¥é¯uwd8013ºô¥d¡I¡^§A¥i¥H±qDonaldªºFTPªA°È¾¹{\ttfamily www.scyld.com}¤U¸ü¤å¥ó{\ttfamily /pub/linux/setup/atlantic.c}¨Ó°t¸m¦¹ºô¥d¡C¥t¥~¡AKingstonªºDP83905ºô¥d°t¸mµ{§Ç¬Ý°_¨Ó¥i¥H¥Î¦b©Ò¦³ºô¥d¤W¡A¦]¬°¦b¤¹³\¨Ï¥Îºô¥d«e¡A¥¦­Ì¦}¤£ÀË¬d¾P°â°Ó«ü©wªº¦a§}¡C«ö·Ó¦p¤UURL¡G
\nameurl{http://www.kingston.com/download/etherx/etherx.htm}{Kingston Software}
¤U¸ü{\ttfamily 20XX12.EXE}©M{\ttfamily INFOSET.EXE}¡C

¦b°t¸mNE2000+ºô¥d®É­n®æ¥~¤p¤ß¡A¦]¬°³]©wªº­È¦³¿ù»~·|±a¨Ó³Â·Ð¡C¤@­Ó¨å«¬ªº¿ù»~¬O±Ò¥ÎEEPROM¨½ªº±Ò°ÊROM¡]§Y¨Ï¨S¦³¦w¸ËROM¡^·|©MVGA¥dµo¥Í¨R¬ð¡C¨äµ²ªG´N¬O¶}¾÷¦Z«Ì¹õ¨S¦³Åã¥Ü¡A­pºâ¾÷¥u¬Oµo¥X¤@¨Ç¥sÁn¡C

³q±`¦p¤U¾Þ§@´N¥i¥H¸Ñ¨M°ÝÃD¡G©Þ¥X¾÷¾¹¨½ªº¥d¡AµM¦Z±Ò°Ê¶i¤JCMOS³]¸m¡C§â¡§Display Adapter¡¨§ï¬°¡§Not Installed¡¨¦}§â¯Ê¬Ùªº±Ò°ÊÅX°Ê¾¹§ï¬°¡§A:¡¨¡]³n½LÅX°Ê¾¹¡^¡C¦P®É§â¡§Wait for F1 if any Error¡¨§ï¬°¡§Disabled¡¨¡C³o¼Ë¡A­pºâ¾÷´NµL»Ý¥Î¤á¤z¹w¥i¥H±Ò°Ê¤F¡C²{¦b³Ð«Ø¤@­Ó¥i±Ò°ÊªºDOS³n½L¡]¡§format a: /s /u¡¨¡^¡A§â¤W­zÀÉ®×¤å¥ó{\ttfamily 20XX12.EXE}¨½ªºµ{§Ç{\ttfamily default.exe}«þ¨©¨ì³n½L¤W¡C¦AÁä¤J{\ttfamily echo default {$>$} a:autoexec.bat}¡A³o¼Ë¦b¥Î³o±i³n½L±Ò°Ê®É¡A¸Óµ{§Ç·|¦Û°Ê¹B¦æ¡A§âºô¥d³]¸m¬°¥¿±`ªº¯Ê¬Ù­È¡CÃö³¬¾÷¾¹¡A­«·s¦w¸Ëne2000+ºô¥d¡A´¡¤J·sªº±Ò°Ê³n½L¡A¦A¶}¾÷¡C¥i¯à¾÷¾¹ÁÙ·|µo¥X¥sÁn¡A¦ý³Ì¦Z§A·|¬Ý¨ì¾÷¾¹±q³n½L±Ò°Ê®É³nÅXªº¿O«G¤F¡Cµ¥¤@¨â¤ÀÄÁ¡A³nÅX·|°±¤U¨Ó¡Aªí¥Ü{\ttfamily default.exe}µ{§Ç¹B¦æµ²§ô¡A¦AÃö³¬¾÷¾¹¹q·½¡C¦A¦¸±Ò°Ê®É¡A¥i¯à§AªºÅã¦¡¾¹´N¤S¤u§@¥¿±`¤F¡A³o®É´N¥i¥H§âCMOS³]¸m§ï¦^¥h¡A¦}§âºô¥dEEPROM³]¸m§ï¦^¨ì§Æ±æªº­È¡C

ª`·N¡A¦pªG¤âÀY¨S¦³DOS¡A§A¥i¥H¥Î¤@±i¦Û°Ê¹B¦æDonaldªº{\ttfamily atlantic}µ{§Ç¡]¨Ï¥Î¥¿½Tªº©R¥O¦æ¶}Ãö¡^ªºLinux±Ò°Ê³n½L¨Ó§¹¦¨¤W­±ªº¤u§@¡A¥N´À¦Û°Ê¹B¦æ{\ttfamily default.exe}µ{§ÇªºDOS±Ò°Ê³n½L¡C




\subsubsection{3Comºô¥d}



3ComªºEtherlink III¨t¦Cºô¥d¡]¦p3c5x9¡^¥i¥H¥ÎDonaldªº¥t¤@­Ó°t¸m¤u¨ã¶i¦æ°t¸m¡C§A¥i¥H±qDonaldªºFTPªA°È¾¹{\ttfamily www.scyld.com}¤WÀò¨ú¤å¥ó{\ttfamily /pub/linux/setup/3c5x9setup.c}¨Ó°t¸m³o¨Çºô¥d¡C¡]ª`·N¡ADOS¤Uªº3c5x9B°t¸m¤u¨ã¥i¯à¦³¤@¨ÇÄÝ¤_Etherlink IIIªº·s¡§B¡¨¨t¦CªºÃB¥~¿ï¶µ¡C¡^






\subsection{¥H¤Óºô¥dªº¶EÂ_µ{§Ç\label{diag}}



Donald½s¼gªº¶EÂ_µ{§Ç³£¥i¥H±q¥H¤UURLÀò¨ú¡C

\nameurl{http://www.scyld.com/network}{Ethercard Diagnostics}

Allied Telesis AT1700¢w¢w{\ttfamily at1700.c} 

Cabletron E21XX¢w¢w{\ttfamily e21.c} 

HP PCLAN+¢w¢w{\ttfamily hp+.c} 

Intel EtherExpress¢w¢w{\ttfamily eexpress.c}

PCI NE2000ºô¥d¢w¢w{\ttfamily ne2k-pci-diag.c}

ISA NE2000ºô¥d¢w¢w{\ttfamily ne2k.c}

RealTek (ATP)³S¬Ã¾A°t¾¹¢w¢w{\ttfamily atp-diag.c}

©Ò¦³¨ä¥¦ºô¥d¢w¢w¸ÕµÛ¥Î{\ttfamily cat /proc/net/dev}©M{\ttfamily dmesg}¨Ó¬Ý¬Ý¤º®Ö¨½¦³Ãö©Ò»¡ºô¥dªº¦³¥Î«H®§¡C




\section{§Þ³N«H®§\label{tech-intro}}



¹ï¤_¨º¨Ç·Q¤F¸Ñ§ó¦h¦³Ãöºô¥d¦p¦ó¤u§@¡B©Î¦p¦ó¨Ï¥Î²{¦³ÅX°Êµ{§Ç¡A¥H¤Î¸Õ¹Ï¬°¥Ø«e¤£¤ä«ùªººô¥d½s¼g¦Û¤vªºÅX°Êµ{§Çªº¤H¨Ó»¡¡A³o¨Ç«H®§À³¸Ó·|¦³¥Î¡C¦pªG§A¨S¦³³oºØ·Qªk¡A¨º¤\³Ì¦n¸õ¹L³o¤@¸`¡C




\subsection{¥i½sµ{I/O¡B¦@¨É¤º¦s»PDMA\label{data-xfer}}



¦pªG¤w¸g¥i¥Hµo°e±µ¦¬­I¾a­I¼Æ¾Ú¥]¡A´NµLªk§â§ó¦hªº¼Æ¾Ú©ñ¨ìºôµ¸¤W¡C¨C¤@­Ó²{¥N¥H¤Óºô¥d³£¥i¥H±µ¦¬­I¾a­I¼Æ¾Ú¥]¡CLinuxªºDP8390ÅX°Êµ{§Ç¡]wd80x3¡BSMC-Ultra¡B3c503¡Bne2000¡Aµ¥µ¥¡^«D±`±µªñ¤_µo°e­I¾a­I¼Æ¾Ú¥]¡]¨Ì¿à¤_·í«eªº¤¤Â_©µ¿ð¡^¡A3c509©MAT1500ªºµw¥ó¦b¦Û°Êµo°e­I¾a­I¼Æ¾Ú¥]¤W¨S¦³¤@ÂI°ÝÃD¡C






\subsubsection{¥i½sµ{I/O¡]¦pNE2000¡B3c509¡^}



ÀuÂI¡G¨S¦³¨Ï¥Î¥ô¦ó¨ü­­¨îªº¨t²Î¸ê·½¡A¥u¥Î¤F­Y¤zI/O±H¦s¾¹¡A¦Ó¥B¨S¦³16Mªº­­¨î¡C

¯ÊÂI¡G¤@¯ë¶Ç¿é³t²v¸ûºC¡ACPU»Ý­nµ¥«Ý¡A¤L¥G¤£¥i¯à³X°Ý¥æ¤eªº¼Æ¾Ú¥]¡C




\subsubsection{¦@¨É¤º¦s¡]¦pWD80x3¡BSMC-Ultra¡B3c503¡^}



ÀuÂI¡GÂ²³æ¡A¤ñ¥i½sµ{I/O³t«×§Ö¡A¤¹³\ÀH¾÷³X°Ý¼Æ¾Ú¥]¡C¦b¥i¯àªº±¡ªp¤U¡ALinuxÅX°Êµ{§Ç¦b±qºô¥d´_¨î¥X±µ¦¬ªºIP¼Æ¾Ú¥]®É­pºâ¨ä®ÕÅç©M¡A±q¦Ó¤ñ¬ÛÀ³ªºPIOºô¥d¶i¤@¨B´î¤Ö¤F¹ïCPUªº¥e¥Î¡C

¯ÊÂI¡G¥e¥Î¤º¦sªÅ¶¡¡]¹ïDOS¥Î¤á¨Ó»¡¬O­Ó¤j°ÝÃD¡A¦bLinux¤U¨S¦³°ÝÃD¡^¡A¨ÌµM­n¥e¥ÎCPU¡C




\subsubsection{±qÄÝ¡]´¶³q¡^ªºª½±µ¤º¦s¦s¨ú¡]Linux¤U¨S¦³³oºØ±¡ªp¡I¡^}



ÀuÂI¡G¦b¹ê»Ú¼Æ¾Ú¶Ç»¼¹Lµ{¤¤¤£¥e¥ÎCPU¡C

¯ÊÂI¡GÀË¬dÃä¬É±ø¥ó¡B¤À°t¬Û¾Fªº½w¦s©MDMA±H¦s¾¹½sµ{¨Ï¸Ó¤èªk¦¨¬°³ÌºCªº§Þ³N¡C¥¦ÁÙ¥e¥Î¤F¤@­Ó¬Ã¶QªºDMA³q¹D¡A¦}­n¨D¹ï»ôªº§CºÝ¤º¦s½w¦s¡C




\subsubsection{Á`½u±±¨îªºª½±µ¤º¦s¦s¨ú¡]¦pLANCE¡BDEC 21040¡^\label{master}}



ÀuÂI¡G¦b¼Æ¾Ú¶Ç¿é¹Lµ{¤¤¤£¥e¥ÎCPU¡A¥i¥H§â½w¦s¦ê°_¨Ó¡ACPU®É¶¡«Ü¤Ö©Î¨S¦³ªá¶O¦bISAÁ`½u¤W¡C¤j¦h¼ÆÁ`½u±±¨îªºLinuxÅX°Êµ{§Ç²{¦b¨Ï¥Î¤@ºØ¡§copybreak¡¨¤è®×¡A¸û¤jªº¼Æ¾Ú¥]ª½±µ±qºô¥d©ñ¶i¤º®Öªººôµ¸½w¦s¡A¤pªº¼Æ¾Ú¥]³QCPU´_¨î¨ìcache¨½¶i¦æ¤U¤@¨Bªº³B²z¡C

¯ÊÂI¡G¡]¥u¾A¥Î¤_ISAÁ`½uªººô¥d¡^ºô¥d­n¨D§CºÝ¤º¦s½w¦s©M¤@­ÓDMA³q¹D¡C¥ô¦óÁ`½u±±¨î¾¹¦b»P¨ä¥¦±j¥eÁ`½uªºÁ`½u±±¨î¾¹¡A¦p¬Y¨Ç¥j¦ÑªºSCSI¾A°t¾¹¡A¤@°_¤u§@®É³£·|¥X°ÝÃD¡C¦³¤L­Ó³]­p§C¦Hªº¥DªOªä¤ù²Õ¦b»PÁ`½u±±¨î¾¹¤@°_¨Ï¥Î®É¤]¦³³Â·Ð¡C¤£¨Ï¥Î{\itshape ¥ô¦ó\/}Ãþ«¬ªºDMA³]³Æªº¤@­Ó­ì¦]¬O¨Ï¥Î¤F¬°¥N´À386³]­pªº486³B²z¾¹´¡¥ó¡G³o¨Ç³B²z¾¹¦b¨C­ÓDMA©P´Á³£¥²¶·¨ê·scache¡C¡]³o¨ä¤¤¥]¬ACx486DLC¡BTi486DLC¡BCx486SLC¡BTi486SLC¡Aµ¥µ¥¡C¡^






\subsection{¯A¤ÎÁ`½u±a¼eªº©Ê¯à}



ISAÁ`½u¯à¹F¨ì5.3MB/sec (42Mb/sec)¡AÅ¥°_¨Ó¹ï10Mbps¥H¤Óºô¬O¨¬°÷¤F¡C¹ï¤_100Mbpsºô¥d¡AÅãµM»Ý­n§ó§ÖªºÁ`½u¥H§Q¥Îºôµ¸±a¼e¡C




\subsubsection{8¤ñ¯SISAºô¥d»P16¤ñ¯SISAºô¥d\label{8-vs-16}}



§A¥i¯à¤£·|¦A¶R¤@­Ó·sªº8¤ñ¯SISA¥H¤Óºô¥d¤F¡A¦ý¦bÀH¦Z¤L¦~¶¡§A·|¦b­pºâ¾÷ª«ª«¥æ´«¥«³õ¤@Ãþªº¦a¤èµo²{«Ü¦h«Ü«K©yªº³oºØ¥d¡C³o¨Ï±o¥¦­Ì¦b¡§®a¥Î¥H¤Óºô¡¨¨t²Î¤¤«Ü±`¨£¡C¹ï¤_16¤ñ¯SªºISAºô¥d¨Ó»¡¤]¬O¤@¼Ëªº¡A¦]¬°²{¦bPCI¥d¤w¸g«Ü´¶¹M¤F¡C

¹ï¤_¸û§C©Î¥­§¡ªºÀ³¥Î¡A¤@¨Ç¥i¥H´£¨Ñ¨¬°÷©Ê¯àªº8¤ñ¯Sºô¥d¬Owd8003¡B3c503©Mne1000¡C3c501ªº©Ê¯à¸û®t¡A¦Ó¥B­nÁ×§K¨Ï¥Î¨º¨Ç12¦~«eXT®É¥Nªº§C©Ê¯à¬ö©À«~¡C¡]¥i¥H§â¥¦­Ì°eµ¹Alan¡A¥L¦b¦¬¶°³oºØºô¥d......¡^

8¤ñ¯Sªº¼Æ¾Ú³q¹D¤£·|¹ï©Ê¯à³y¦¨¤Ó¤j·l®`¡A§A¨ÌµM¥i¥H±q¤@­Ó¸û§Ö¥D¾÷¤Wªº8¤ñ¯Swd8003ºô¥d¡]¨Ï¥Î§ÖªºISAÁ`½u¡^¤WÀò±o¤j¬ù500¨ì800kB/sªºftp¤U¸ü³t«×¡C¦pªG§Aªº©Ò¦³ºôµ¸¬y¶q¤L¥G³£¬O¨Ó¦Û»·ºÝ¯¸ÂI¡A¨º¤\¼Æ¾Ú³q¹D¤Wªº²~ÀV±Nµo¥Í¦b¨ä¥¦¦a¤è¡A¥u¦³¦b¶i¦æ¥»¦a¤lºô¾Þ§@®É§A¤~·|ª`·N¨ì¤£¦Pºô¥d¶¡ªº³t«×®t§O¡C




\subsection{32¤ñ¯S(VLB/EISA/PCI)¥H¤Óºô¥d}



ª`·N¡A10Mbsºôµ¸³q±`¦}¤£¤@©w­n¨D32¤ñ¯Sªº±µ¤f¡C°Ñ¨£\ref{data-xfer} {(¥i½sµ{I/O¡B¦@¨É¤º¦s»PDMA)}¥H¤F¸Ñ¬°¤°¤\8MHzªºISAÁ`½u¤Wªº10Mbps¥H¤Óºô¥d¦}«D¯u¥¿ªº²~ÀV¡CºÉºÞ¨Ï¥Î§ÖªºÁ`½uªº¥H¤Óºô¥d¦}¤£¤@©w±a¨Ó§ó§Öªº¼Æ¾Ú¶Ç¿é¡A¦ý·|´î¤ÖCPU­t¸ü¡A³o¹ï¦h¥Î¤á¨t²Î¨Ó»¡¬O¥ó¦n¨Æ¡C·íµM¡A¹ï¤_²{¦b´¶³qªº100Mbpsºôµ¸¡A32¤ñ¯S±µ¤f¬O¥R¤À¨Ï¥Î¥þ³¡±a¼eªº¥²­n±ø¥ó¡C




\subsection{½s¼gÅX°Êµ{§Ç\label{skel}}



¦bLinux¤U¨Ï¥Î¥H¤Óºô¥d©Ò¥²»Ýªº¥u¤£¹L¬O¬ÛÀ³ªºÅX°Êµ{§Ç¡C¦]¦¹¡AÃöÁä¬O¨î³y°Ó­n¦V¤½²³¤½¶}½sµ{ªº§Þ³N¸ê®Æ¡A¦ÓµL»Ý§A¡]©Î¨ä¥L¤°¤\¤H¡^Ã±¸p¤°¤\¨óÄ³¡CÃö¤_Àò¨ú¸ê®Æªº¥i¯à©Ê¡]¤]³\§A¤£½s¼g¥N½X¡A¨º¤\´N¬O¨ä¥L¤H½s¼g§A½T¹ê»Ý­nªºÅX°Êµ{§Çªº¥i¯à©Ê¡^¡A¤@­Ó¸û¦nªº«ü«n¬OCrynwr (ÎîºÙClarkson)ªº¥]ÅX°Êµ{§Çªº¥i¥Î©Ê¡CRuss Nelson¦b¤z³o¨Ç¨Æ¡A¹ï¶}µoLinuxÅX°Êµ{§Ç«Ü¦³À°§U¡C{\itshape ºô¤W¨R®öªÌ\/}¥i¥H¸ÕµÛ¥Î¤U­±ªºURL¬Ý¤@¤URussªº³n¥ó¡C

\nameurl{http://www.crynwr.com}{Russ Nelson's Packet Drivers}

¦³¤F¸ê®Æ¡A´N¥i¥H¬°ºô¥d½s¼gÅX°Êµ{§Ç¦}¦bLinux¤U¨Ï¥Î¡]¦Ü¤Ö±q²z½×¤W¨Ó»¡¬O³o¼Ë¡^¡C°O¦í¡A¦³¨Ç¬°XT¤@Ãþ¾÷¾¹³]­pªº¦Ñ¦¡µw¥ó¦bLinux³o¼Ëªº¦h¥ô°ÈÀô¹Ò¤U¤u§@±o¤£¬O«Ü¦n¡C¦pªGºôµ¸¬y¶q¸û¤j¡A¨Ï¥Î³o¨Çºô¥d·|±a¨Ó¤j³Â·Ð¡C

¤j¦h¼Æºô¥d³£±a¦³¦pNDIS©MODI¤@ÃþªºMS-DOS±µ¤fªºÅX°Êµ{§Ç¡A¦ý¹ïLinux¨S¦³¥Î¡C³\¦h¤H«ØÄ³ª½±µÃì±µ¥¦­Ì©Î¦Û°ÊÂ½Ä¶¤@¤U¡A¦ý³o¤L¥G¬O¤£¥i¯àªº¡CMS-DOSÅX°Êµ{§Ç»Ý­n¤u§@¦b16¤ñ¯S¼Ò¦¡¡A¦}¨Ì¿à¤_¡§³n¥ó¤¤Â_¡¨¡A³o¤GªÌ»PLinux¤º®Ö¤£­Ý®e¡C³oºØ¤£­Ý®e¹ê»Ú¤W¬OLinuxªº¤@­Ó¯S©Ê¡A¦³¨ÇLinuxÅX°Êµ{§Ç¤ñ¨ä¬ÛÀ³ªºMS-DOSÅX°Êµ{§Ç­n¦n±o¦h¡C¤ñ¦p¡§8390¡¨¨t¦CÅX°Êµ{§Ç¨Ï¥Î¥â¥ã¶Ç°e½w¦s¡A¸Ó¤èªk­è­è³Q¤Þ¶iMS-DOS¡C

¡]¥â¥ã¶Ç°e½w¦s·N¨ýµÛ¬°¶Ç°e¼Æ¾Ú¥]¨Ï¥Î¦Ü¤Ö¨â­Ó³Ì¤j¤j¤pªº¥]½w¦s¡C¦bºô¥dµo°e¨ä¤¤ªº¤@­Ó®É¡A¸ü¤J¥t¤@­Ó¡C¦b²Ä¤@­Ó¥]³Qµo¥X¥h¦Z¡A¥ß¨èµo°e²Ä¤G­Ó¥]¡A¨Ì¦¸Ãþ±À¡C³o¼Ë¡A¤j¦h¼Æºô¥d´N¥i¥H³sÄò¦V½u¸ô¤Wµo°e­I¾a­I¼Æ¾Ú¥]¡C¡^

¦n°Õ¡C§A¥i¥H¨M©w¬°Foobar Ethernetºô¥d½s¼gÅX°Êµ{§Ç¤F¡A¦]¬°§A¦³½sµ{¸ê®Æ¡A¦Ó¥BÁÙ¨S¤H¼g³o­ÓÅX°Êµ{§Ç¡C¡]......³o¬O¨â­Ó¥D­nªº»Ý¨D ;-) §A¥i¥H±qLinux¤º®Ö·½½X¾ð¤¤´£¨Ñªººôµ¸ÅX°Êµ{§Ç®Ø¬[¶}©l¡C¦b©Ò¦³ªñ´Áªº¤º®Ö¨½³£¯à§ä¨ì³o­Ó¤å¥ó/usr/src/linux/drivers/net/skeleton.c¡C¦b2.4.x¡]©Î§ó·sªº¡^¤º®Ö¨½¤w¸g§â¥¦­«·s©R¦W¬°{\ttfamily isa-skeleton.c}¡C¤]¥i¥H¬Ý¬Ý¦p¤UURLªºKernel Hackers Guide¡G
\nameurl{http://www.redhat.com:8080/HyperNews/get/khg.html}{KHG}






\subsection{¤º®ÖªºÅX°Êµ{§Ç±µ¤f}



¤U­±¹ï½s¼g¤@­Ó·sÅX°Êµ{§Ç©Ò¥²»Ýªº¨ç¼Æ¶i¦æ¤F­Y¤z»¡©ú¡C©M¤W­±´£¨ìªºÅX°Êµ{§Ç®Ø¬[¤@°_¾\Åª¥i¥H§ó²M·¡¤@¨Ç¡C






\subsubsection{Probe}



¦b±Ò°Ê®É½Õ¥Î¥HÀË¬dºô¥d¦s¦b»P§_¡C¦pªG¥i¥H³q¹LÅª¨ú¤º¦sµ¥«D±j¨î¤â¬q¶i¦æÀË¬d³Ì¦n¡C¤]¥i¥H±qI/OºÝ¤fÅª¨ú¡C¦b±´´ú¶}©l¦VI/OºÝ¤f¼g{\itshape ¤£¦n\/}¡A¦]¬°³o¼Ë¥i¯à·|·l®`¥t¤@­Ó³]³Æ¡C³q±`¦b³o¨½ÁÙ¶i¦æ¤@¨Ç³]³Æªì©l¤Æ¡]¤À°tI/OªÅ¶¡¡BIRQ¡B¶ñ¥Rdev-$>$???°ìµ¥µ¥¡^¡C¥²¶·¤F¸Ñºô¥d¥i¥H°t¸m¨ì­þ¨ÇI/OºÝ¤f/¤º¦s¡B¦p¦ó±Ò¥Î¦@¨É¤º¦s¡]¦pªG¥Î¤Fªº¸Ü¡^¥H¤Î¦p¦ó¿ï¾Ü/±Ò¥Î¤¤Â_²£¥Í¡Aµ¥µ¥¡C




\subsubsection{Interrupt handler}



¦bºô¥dµo¥X¤@­Ó¤¤Â_®É¤º®Ö½Õ¥Îªºµ{§Ç¡C¥¦»Ý­n½T©wºô¥dµo¥X¤¤Â_ªº­ì¦]¦}¶i¦æ¬ÛÀ³ªº¾Þ§@¡C¤@¯ëªº¤¤Â_±ø¥ó¬O±µ¦¬¨ì¼Æ¾Ú¡Bµo°e§¹¦¨¡B³ø§i¥X¿ùª¬ªp¡C»Ý­n¤F¸Ñ¬ÛÃöªº¤¤Â_ª¬ºA¦ì¥H¶i¦æ¬ÛÀ³ªº¾Þ§@¡C




\subsubsection{Transmit function}



»Pdev-$>$hard\_start\_xmit()Ãì±µ¡A¦b¤º®Ö·Q³q¹L³]³Æ¶Ç°e¼Æ¾Ú®É½Õ¥Î¥¦¡C¸Ó¨ç¼Æ§â¼Æ¾Ú©ñ¤Jºô¥d¦}Ä²µo¶Ç°e¡C»Ý­n¤F¸Ñ¦p¦ó§â¼Æ¾Ú¥´¥]¦}¶Çµ¹ºô¥d¡]¦@¨É¤º¦s«þ¨©¡BPIO¶Ç°e¡BDMA¡H¡^¡A¥H¤Î©ñ¤Jºô¥d¥¿½Tªº¦ì¸m¡CµM¦Z»Ý­n¤F¸Ñ¦p¦ó³qª¾ºô¥d§â¼Æ¾Úµo°e¨ì½u¸ô¤W¡A¡]¥i¯à¡^¦bµo°e§¹¦¨¦Zµo¥X¤@­Ó¤¤Â_¡C¦bµw¥óµLªk±µ¦¬§ó¦h¼Æ¾Ú¥]®É»Ý­n³]¸mdev-$>$tbusy¼Ð§Ó¡C¦bºô¥d¦³ªÅ¶¡¥i¥Î®É¡A¤@¯ë³oµo¥Í¦b¶Ç°e§¹¦¨¤¤Â_¹Lµ{¤¤¡A²M°£dev-$>$tbusy¼Ð§Ó¦}¥Î{\ttfamily mark\_bh(INET\_BH)}³qª¾¤W¤@¼h¡C




\subsubsection{Receive function}



¦bºô¥d³ø§i¦³¼Æ¾Ú®É¥Ñ¤º®Ö¤¤Â_³B²zµ{§Ç½Õ¥Î¡C¥¦§â¼Æ¾Ú±qºô¥d¤W²¾¥X¡A©ñ¤J¤@­Ósk\_buff¦}³q¹L°õ¦ænetif\_rx(sk\_buff)§i¶D¤º®Ö¼Æ¾Ú©Ò¦b¦ì¸m¡C»Ý­n¤F¸Ñ¦p¦ó¦b±µ¦¬¼Æ¾Ú®É±Ò¥Î¤¤Â_¥Í¦¨¡A¦p¦óÀË¬d¬ÛÃöªº±µ¦¬ª¬ºA¦ì¡A¥H¤Î¦p¦ó±qºô¥dÀò¨ú¼Æ¾Ú¡]³q¹L¦@¨É¤º¦s«þ¨©¡BPIO¡BDMA¡Aµ¥µ¥¡^¡C




\subsubsection{Open function}



»Pdev-$>$openÃì±µ¡A¦b¦³¤H¨Ï¥Î{\ttfamily ifconfig eth0 up}®Éºôµ¸¼h½Õ¥Î¥¦¢w¢w§â³]³Æ³s¨ì½u¸ô¤W¦}±Ò¥Î¨Ó±µ¦¬/µo°e¼Æ¾Ú¡C¥ô¦ó¦b±´´ú¹Lµ{¤¤¡]±Ò¥ÎIRQ¥Í¦¨¨ç¼Æµ¥¡^¨S¦³§¹¦¨ªº¯S§Oªºªì©l¤Æ¾Þ§@³£¦b³o¨½¶i¦æ¡C




\subsubsection{Close function ¡]¥i¿ï¡^}



¦b¦³¤H¨Ï¥Î{\ttfamily ifconfig eth0 down}®É¨Ïºô¥d¶i¤J¤@­Ó²M¿ôªºª¬ºA¡C¦pªGµw¥ó³\¥iªº¸Ü¥¦·|ÄÀ©ñ¤¤Â_©MDMA³q¹D¡A¦}§¹¥þÃö³¬¥H¸`¬ù¯à·½¡]¶H¦¬µo¾¹¤@¼Ë¡^¡C




\subsubsection{Miscellaneous functions}



¦p¦P¤@­Ó­«·s³]¸m¨ç¼Æ¡A¦pªG¨Æ±¡ÅÜ±o«ÜÁV¡AÅX°Êµ{§Ç¥i¥H¸Õ¹Ï­«·s³]¸mºô¥d§@¬°³Ì¦Z¨¾½u¡C¤@¯ë¦bµo°e¶W®É©ÎÃþ¦ü±¡ªp¤U¦p¦¹¶i¦æ¡C¤]¬O¤@­ÓÅª¨úºô¥d²Î­p±H¦s¾¹ªº¨ç¼Æ¡A¦pªG¬O³o¼Ë°t³Æªº¸Ü¡C




\subsection{3Comªº§Þ³N«H®§\label{3com-tech}}



¦pªG¹ï3Comºô¥dÅX°Êµ{§Çªº¤u§@·P¿³½ì¡A¥i¥H±q3Com¤½¥qÀò¨ú§Þ³N¸ê®Æ¡CCameron¦b¤U­±¤Í¦n¦a§i¶D¤F§Ú­Ì¸Ó¦p¦ó¥h°µ¡G

¦b§Ú­Ìªº¡§§Þ³N°Ñ¦Ò¤åÄm¡¨¡]TRs¡^¨½µ¹¥X¤F3Comªº¥H¤Óºô¾A°t¾¹ÅX°Êµ{§Çµ{§Ç­û»Ý­n¤F¸Ñªº¸ê®Æ¡C³o¨Ç¤â¥U´y­z¤FªO¤Wªºµ{§Ç­û±µ¤f¡A¦ý¨S¦³´£¤Î¶EÂ_¡B¦w¸Ëµ{§Çµ¥²×ºÝ¥Î¤á©Ò¬Ý¨ìªºªF¦è¡C

ºôµ¸¾A°t¾¹¤À³¡ªº¥«³õ³¡¦³§Þ³N°Ñ¦Ò¸ê®Æ¤Àµo¡C¬°¤F¨Ï³o­Ó­p¦E§ó¦³®Ä¡A§Ú­Ì§â¥¦¶°¤¤¨ì¤@­ÓºÙ§@¡§CardFacts¡¨ªº¦Û°Ê¹q¸Ü¨t²Î¨½¡C§A¥i¥H¥´¹q¸Ü¨Ó¡AµM¦Z¥¦§â¸ê®Æ¶Ç¯uµ¹§A¡C­n¯Á¨ú§Þ³N°Ñ¦Ò¸ê®Æ¡A¥´¹q¸Ü¨ì408-727-7021¡C¯Á¨ú¶}µo¤H­ûªº­q³æ¡A¸ê®Æ¸¹¬O9070¡C¦b¥´¹q¸Ü«e­ã³Æ¦n§Aªº¶Ç¯u¸¹½X¡C¶ñ§¹­q³æ¦Z§â¥¦¶Ç¯u¨ì408-764-5004¡C¤â¥U·|¥ÑÁp¨¹³t»¼ªº¦¸¤éªA°È°e¨ì¡C

¦³¤H»{¬°§Ú­Ìªº¤â¥U¤£¸Ó§K¶O¡A¥L­Ì¤]¦b´M§ä¦¹¨t²Î¹L¤_©ù¶Q©Î¥e¥Îªº®É¶¡©M§V¤O¤Ó¦hªºµý¾Ú¡C¨ì¥Ø«e¬°¤î¡A3ComªºÅU«È½T¹ê¤£¿ù¡A¦V§Ú­Ì´£¥Xªº­n¨D¤]«Ü¦X²z¡C§Ú­Ì»Ý­n§A­ÌªºÄ~Äò¦X§@¦}§â³o¼ËªºªA°Èºû«ù¤U¥h¡C




\subsection{°ò¤_AMD PCnet/LANCEªººô¥dªºª`·N¨Æ¶µ\label{amd-notes}}



AMDªºLANCE¡]¥H¤Óºôªº§½°ìºô±±¨î¾¹¡^¬O³Ì¦­´£¨Ñªº¡A¤w¸g³Q¡§PCnet-ISA¡¨ªä¤ù©Ò¨ú¥N¡A§_«h¤S¦W79C960¡Cª`·N¡A¡§LANCE¡¨¦WºÙ¦³¤ò¯f¡A¦³¨Ç¤H·|¥Î¦Ñ¦WºÙºÙ©I·sªä¤ù¡CAMDªººôµ¸²£«~¤À³¡ªºDave Roberts¤Í¦n¦a´£¨Ñ¤F¤U­±¦³Ãö¸Óªä¤ùªº«H®§¡G

¡§±q¥\¯à¤W¨Ó¬Ý¡A¥¦µ¥¦P»PNE1500¡C¥¦ªº±H¦s¾¹²Õ»P¨Ï¥Îªþ¥[1500/2100µ²ºcªº¦Ñ¦¡LANCE¤@¼Ë¡CPCnet-ISA¥i¥H¨Ï¥Î¸û¦­ªº1500/2100ÅX°Êµ{§Ç¡CNE1500©MNE2100ªºµ²ºc°ò¥»¤W¬O¬Û¦Pªº¡C¶}©lNovell§â¥¦ºÙ¬°2100¡A¦ý¦Z¨Ó·Q°Ï¤À¦P¶b¹qÆl»P10BASE-Tºô¥d¡CÄÝ¤_10BASE-Tªº´N¥uªö¥Î1500­S³òªº½s¸¹¡C³o¬O¶È¦³ªº°Ï§O¡C

³\¦h¤½¥q´£¨Ñ°ò¤_PCnet-ISAªº²£«~¡A¥]¬AHP¡BRacal-Datacom¡BAllied Telesis¡BBoca Research¡BKingston Technologyµ¥µ¥¡C°£¤F¦³¨Ç¨î³y°Ó¼W¥[¤F¡§µL¸õ½u¡¨¯S©Ê¤¹³\³n¥ó°t¸mºô¥d¥~¡A³o¨Çºô¥d°ò¥»¤W³£¬O¤@¼Ëªº¡C¤j¦h¼Æ¨î³y°Ó¨S¦³¼W¥[³o¤@¯S©Ê¡CAMD´£¨Ñ¤F¤@­Ó¨Ï¥ÎPCnet-ISAªººô¥dªº¼Ð­ã³]­p³n¥ó¥]¡A³\¦h¨î³y°Ó¤£¥[§ïÅÜ¦aª½±µ¨Ï¥Î§Ú­Ìªº³]­p¡C³o¤]´N¬O»¡¡A¦pªG·Q½s¼g¤j¦h¼Æ°ò¤_PCnet-ISAªººô¥dªºÅX°Êµ{§Ç¡A¥u»Ý­n±qAMDÀò¨ú¼Æ¾Ú¸ê®Æ¡C¥´¹q¸Üµ¹§Ú­Ìªº¸ê®Æ¤Àµo¤¤¤ß(800)222-9323¡A¯Á¨úPCnet-ISAªº¼Æ¾Ú¸ê®ÆAm79C960¡C³o¬O§K¶Oªº¡C

­n¨³³t¤F¸Ñ¤@¶ôºô¥d¬O§_¡§¼Ð­ã¡¨ºô¥d¥u»Ý­n¬Ý¤@¤U¡C¦pªG¬O¼Ð­ãªº¡Aºô¥d¤W¥u¦³¤@¶ô¤jªºªä¤ù¡B¤@¶ô´¹®¶¡B¤@¶ô¤pªºIEEE¦a§}PROM¡B¥i¯àÁÙ¦³¤@­Ó±Ò°ÊROMªº´¡®y©M¤@­Ó³s±µ¾¹¡]¨Ì·Ó´£¨Ñªº´C¤¶¿ï¶µ¥i¯à¬O1¡B2©Î3¡^¡Cª`·N¡A¦pªG¬O¦P¶b¹qÆlºô¥d¡A¥d¤W´NÀ³¸Ó¦³¤@¨Ç¦¬µo¾¹½w¦s¡A¥¦­Ì¾aªñ³s±µ¾¹¡A»·Â÷PCnet-ISA¡C¡¨

¤@­Ó¥i¯àªººô¥d¶Â«È»Ý­nª`·N¡A¤£¦PªºLANCE²£«~ªö¥Î¤£¦Pªº¡§­«°_¡¨¤èªk¡C¦³¨Ç«ì´_¨ì¤W¦¸Â÷¶}ºôµ¸Àô¸ôªº¦a¤è¡A¥t¤@¨Ç«h±qÀô¸ôªº¶}ÀY¶}©l¡A´N¶H­è³Qªì©l¤Æ¤@¼Ë¡C




\subsection{¼s¼½»P²VÂø¼Ò¦¡\label{promisc}}



Donald©Ò°µªº¥t¤@­Ó¤u§@¬O¹ê²{¼s¼½»P²VÂø¼Ò¦¡ªº¹_¤l¨ç¼Æ¡C©Ò¦³{\itshape µo¥¬ªº\/}¡]§Y{\bfseries ¤£¬O}ALPHAª©¥»ªº¡^ISAÅX°Êµ{§Ç²{¦b³£¤ä«ù²VÂø¼Ò¦¡¡C

Donald¼g¹D¡G¡§§Ú­ã³Æ±q°Q½×²VÂø¼Ò¦¡¶}©l¡A¥¦±q·§©À¤W¨Ó»¡«Ü®e©ö¹ê²{¡C¹ï¤j¦h¼Æµw¥ó¡A§A¥u»Ý­n³]¸m¤@­Ó±H¦s¾¹¦ì¡AµM¦Z´N¥i¥H±µ¦¬¨ì½u¸ô¤Wªº¨C¤@­Ó¼Æ¾Ú¥]¡C¹ï¡A®t¤£¦h´N³o¤\Â²³æ¡Q¹ï¦³¨Çµw¥ó¡A§A¥²¶·¥ýÃö³¬ªO¥d¡]¥i¯à·|¥á¥¢­Y¤z¼Æ¾Ú¥]¡^¡A­«·s°t¸m¥¦¡AµM¦Z­«·s±Ò¥Î¥H¤Óºô¥d¡C¹ï§a¡A´N³o¤\Â²³æ¡A¤U­±­n°Q½×ªº´N¤£¬O³o¤\©úÅã¤F¡G¼s¼½¼Ò¦¡¡C¥¦¥i¥H¥Î¨âºØ¤è¦¡¹ê²{¡G

\begin{enumerate}
\item   ¨Ï¥Î²VÂø¼Ò¦¡©M¤@­Ó¦pBerkeley¥]¹LÂo¾¹¡]BPF¡^ªº¼Æ¾Ú¥]¹LÂo¾¹¡CBPF¬O¤@­Ó¼Ò¦¡¤Ç°t«ü¥O»y¨¥¡A¥i¥H½s¼g¤@­Óµ{§Ç¬D¥X·P¿³½ìªº¦a§}¡C¥¦ªºÀuÂI¦b¤_¥¦«Ü´¶¹M©M¥i½sµ{¡C¨ä¯ÊÂI¬O¨S¦³¤@­Ó¤@¯ë©Êªº¤èªk¥i¥HÅý¤º®ÖÁ×§K¥´¶}²VÂø¼Ò¦¡©M³q¹L¨C¤@­Óª`¥Uªº¥]¹LÂo¾¹¹B¦æ¨C¤@­Ó½u¸ô¤Wªº¼Æ¾Ú¥]¡C°Ñ¨£\ref{bpf} {(Berkeley¥]¹LÂo¾¹)}¥H¤F¸Ñ§ó¦h«H®§¡C
        
\item   ¨Ï¥Îµ´¤j¦h¼Æ¥H¤Óºôªä¤ù¤º«Øªº¼s¼½¥]¹LÂo¾¹¡C
\end{enumerate}


§Ú·QÀ³¸Ó¦C¥X¤L­Ó¥H¤Óºô¥d/ªä¤ù´£¨Ñªº¼s¼½¥]¹LÂo¾¹¡G

\begin{verbatim}
        
        ªä¤ù/ºô¥d           ²VÂø¼Ò¦¡    ¼s¼½¥]¹LÂo¾¹
        -------------   ------------    ---------------
        Seeq8001/3c501  Yes                     Binary filter (1)
        3Com/3c509                Yes                   Binary filter (1)
        8390                      Yes                   Autodin II six bit hash (2) (3)
        LANCE                     Yes                   Autodin II six bit hash (2) (3)
        i82586                    Yes                   Hidden Autodin II six bit hash (2) (4)
        
\end{verbatim}


\begin{enumerate}
\item   ³o¨Çºô¥dÁnºÙ¦³¤@­Ó¹LÂo¾¹¡A¦ý¥u¬OÂ²³æ¦a¹ï¡§accept all multicast packets¡¨©Î¡§accept no multicast packets¡¨¦^µªyes/no¡C
\item   AUTODIN II¬O¼Ð­ãªº¥H¤ÓºôCRC®ÕÅç¦h¶µ¦¡¡C¦b³oºØ¤è¦¡¤U¡A¼s¼½¦a§}³Q«¢§Æ¹Bºâ¦Z¦b«¢§Æªí¨½¶i¦æ¬d§ä¡C¦pªG±Ò¥Î¤F¬ÛÀ³ªº¤ñ¯S¦ì¡A«h¼Æ¾Ú¥]³Q±µ¦¬¡C¥H¤Óºô¼Æ¾Ú¥]ªº³]­p¨Ï±oµw¥ó¦b¦p¦¹³B²z®Éªº¶}¾P«Ü¤p¢w¢w¡]³q±`¡^¥u­n¦b«e6­Ó¤K¶i¨î¼Æ¡]¥Ø¼Ð¦a§}¡^¤§¦ZÂê©wCRC¹q¸ô¡]¥Î¨Ó¶i¦æ¿ù»~ÀË¬d¡^ªº6­Ó¤ñ¯S¦ì¡A§â¥¦­Ì§@¬°«¢§Æªíªº¯Á¤Þ¡]6¤ñ¯S¢w¢w¤@­Ó64¤ñ¯Sªºªí¡^¡C
        
\item   ³o¨Çªä¤ù¨Ï¥Î6¤ñ¯S«¢§Æ¡A¥²¶·¥Ñ¥D¾÷­pºâ¦}¸ü¤J«¢§Æªí¡C³o¤]´N¬O»¡¤º®Ö¥²¶·¥]§tCRC¥N½X¡C
        
\item   82586¤º³¡¨Ï¥Î6¤ñ¯S«¢§Æ¡A¦ý¬O¥Ñ¦Û¤v±q±µ¨üªº¼s¼½¦a§}¦Cªí­pºâ¥X«¢§Æªí¡C
\end{enumerate}


ª`·N¡A³o¨Çªä¤ùªº¹LÂo®ÄªG³£¤£¦n¡AÁÙ»Ý­n¤@­Ó¤¤¶¡¼h¦¸ªº¼Ò¶ô§¹¦¨³Ì¦Zªº¹LÂo¡C¦P®ÉÁÙ­nª`·N¡A¦b¨CºØ±¡ªp¤U³£¥²¶·«O«ù¤@­Ó§¹¾ãªº±µ¨ü¼s¼½¦a§}¦Cªí¡A¦b¥X²{ÅÜ¤Æ®É¥H­«·s­pºâ«¢§Æªí¡C




\subsection{Berkeley¥]¹LÂo¾¹¡]BPF¡^\label{bpf}}



¶}µoªÌ´¶¹M»{¬°BPFªº¥\¯à¤£¸Ó¥Ñ¤º®Ö´£¨Ñ¡A¦Ó¬O©ñ¦b¤@­Ó¡]§Æ±æ«Ü¤Ö¥Î¨ìªº¡^­Ý®e®w¨½¡C

¹ï¤£¤F¸Ñªº¤H¨Ó»¡¡GBPF¡]Berkeley¥]¹LÂo¾¹¡^¬O¤@ºØ¦V¤º®Öºôµ¸¼h»¡©ú¹ï­þ¨Ç¼Æ¾Ú¥]·P¿³½ìªº¾÷¨î¡C¥¦¬O¥Î¤@ºØ«Ø¥ß¦b©³¼hºôµ¸¥N½X¤¤ªº¯S®í«ü¥O»y¨¥¸ÑÄÀ¾¹¹ê²{ªº¡CÀ³¥Îµ{§Ç§â¤@­Ó¥Î³oºØ»y¨¥½s¼gªºµ{§Ç¶Ç»¼µ¹¤º®Ö¡AµM¦Z¤º®Ö¹ï¨C¤@­Ó±µ¦¬¨ìªº¼Æ¾Ú¥]°õ¦æ¸Óµ{§Ç¡C¦pªG¤º®Ö¦³¦h­ÓBPFÀ³¥Îµ{§Ç¡A¹ï¨C­Ó¼Æ¾Ú¥]³£­n¹B¦æ³o­Óµ{§Ç¡C

°ÝÃD¦b¤_«ÜÃø±q¼Æ¾Ú¥]¹LÂo¾¹µ{§Ç±ÀÂ_¥XÀ³¥Îµ{§Ç¹ê»Ú¤W¹ï­þ¤@ºØ¼Æ¾Ú¥]·P¿³½ì¡A©Ò¥H¤@¯ëªº¸Ñ¨M¤èªk´N¬O©l²×¹B¦æ¹LÂo¾¹¡C°²³]¤@­ÓÀ³¥Îµ{§Çª`¥UªºBPFµ{§Ç¬OÀò¨úµo©¹¬Y­Ó¼s¼½¦a§}ªº§C³t¼Æ¾Ú¬y¡Cµ´¤j¦h¼Æ¥H¤Óºô¥d¦³¤@­Ó64­Ó¤J¤fªº«¢§Æªíªºµw¥ó¹ê²{ªº¼s¼½¦a§}¹LÂo¾¹¡A¥Î¨Ó©¿²¤¤j¦h¼Æ¤£·Q­nªº¼s¼½¼Æ¾Ú¥]¡A©Ò¥H¦³¥i¯à¥H·¥§Cªº¶}¾P§¹¦¨³o¤@¾Þ§@¡C¦ý¬O¥Ñ¤_¦³¤FBPF¡A¤º®Ö¥²¶·§â±µ¤f³]¸m¬°²VÂø¼Ò¦¡¡A±µ¦¬©Ò¦³¼Æ¾Ú¥]¡A¦}¹ï¥¦­Ì¹B¦æ¹LÂo¾¹¡C¤£ºÞ«ç¼Ë¡A³o¼Ë½T¹ê¥i¥H¤u§@¡A¦ý¦Ò¼{¨ì¹ï©Ò­n¨Dªº¼Æ¾Ú¥]¶i¦æªº³B²z¡A´N¤w¸gÅÜ±o¹L¤_³Â·Ð¤F¡C




\section{«KÄâ¦¡/µ§°O¥»¹q¸£Ápºô\label{notebook}}



¦³¤LºØ¤èªk§âµ§°O¥»¹q¸£Áp¤Wºô¡C¥i¥H¨Ï¥ÎSLIP¥N½X¡]¦}¥H¦ê¦æ½u³t²v¹B¦æ¡^¡Q¥i¥H¨Ï¥Î¤@­Ó¦³¤º«Ø¤ä«ùPCMCIA´¡¼Ñªºµ§°O¥»¹q¸£¡Q¥i¥H¨Ï¥Î¤@­Ó¦³´¡®y¦}´¡¤J¤F¤@¶ôISAºô¥dªºµ§°O¥»¹q¸£¡Q©ÎªÌ¨Ï¥Î¦}¤f¥H¤Óºô¾A°t¾¹¡C




\subsection{¨Ï¥ÎSLIP}



³o¬O³Ì«K©yªº¸Ñ¨M¤è®×¡A¦ý³Ì³Â·Ð¡C¥t¥~¡AµLªkÀò±o«Ü°ªªº¶Ç¿é³t²v¡C¦]¬°SLIP¹ê»Ú¤W»P¥H¤Óºô¥dµLÃö¡A³o¨½´N¤£¦h»¡¤F¡C°Ñ¨£NET-2 Howto¡C






\subsection{PCMCIA¤ä«ù\label{pcmcia}}



³]ªk§¹¥þ½T©wµw¥óªº±¡ªp¡]§Yºô¥d¨î³y°Ó¡BPCMCIAªä¤ù±±¨î¾¹ªº¨î³y°Ó¡^¡AµM¦Z¦bµ§°O¥»¹q¸£°Q½×²Õ¨½¸ß°Ý¡C¤£ºÞ«ç¼Ë¡A¤£­n§â¨Æ±¡·Q±o³o¤\Â²³æ¡C¹w®Æ·|ªá¶O¤@¨Ç®É¶¡¡Bµ¹¤º®Ö¥´¸É¤Bµ¥¡C¥i¯à¦³¤@¤Ñ¥u»Ý­nÁä¤J¡§make config¡¨¡C8-)

¥Ø«e©Ò¤ä«ùªº¨â­ÓPCMCIAªä¤ù²Õ¬ODatabookªºTCIC/2©MIntelªºi82365¡C

¦btsx-11.mit.eduªº/pub/linux/packages/laptops/¤U¦³¤@¨Çµ{§Ç¥i¯à·|¦³¥Î¡C¥¦­Ì¥]¬A±qPCMCIA¥H¤Óºô¥dÅX°Êµ{§Ç¨ì»PPCMCIA±±¨î¾¹ªä¤ù¶i¦æ³q«Hªºµ{§Ç¡Cª`·N¡A³o¨Çµ{§Ç¤@¯ë»P¬Y­Ó¯S©wªºPCMCIAªä¤ù¡]§Yintel 82365©ÎTCIC/2¡^¬ÛÃö¡C

¹ï¤_NE2000­Ý®e¥d¡A¦³¤H³q¹L¦bDOS¤U°t¸mºô¥d¡AµM¦Z¦bDOS©R¥O´£¥Ü²Å¤U°õ¦æ{\ttfamily loadlin}±Ò°ÊLinux¡A¦¨¥\¦a¹ê²{¤F¹ïPCMCIAªº¤ä«ù¡C

¥Ø«e¤@ª½¦bÀò±o¹ê½è©Êªº¶i®i¡A¹ï¤_§Æ±æPCMCIA¤ä«ùªºLinux¥Î¤á¡A±¡ªp¥¿¦b¦nÂà¡C³o¤@§V¤Oªº¥ýÅX¬ODavid Hinds¡C¥Lªº³Ì·sPCMCIA¤ä«ù³n¥ó¥]¥i¥H±q¤U­±±o¨ì¡G

\nameurl{ftp://cb-iris.stanford.edu/pub/pcmcia}{PCMCIA Package}

´M§ä¤@­ÓÃþ¦ü{\ttfamily pcmcia-cs-X.Y.Z.tgz}ªº¤å¥ó¡A¨ä¤¤X.Y.Z¬O³Ìªñªºª©¥»¸¹¡C«Ü¦³¥i¯à¥¦¤]³Q¤W¸ü¨ì¤FFTP¯¸ÂI{\ttfamily tsx-11.mit.edu}¡C

ª`·N¡ADonaldªºPCMCIA±Ò¥Îµ{§Ç¬O¤@­Ó¥Î¤á¯Åªºµ{§Ç¡A¦ÓDavid Hindsªºµ{§Ç¬O¹B¦æ¦b¤º®Ö¯Å¡C³Ì¦n¨Ï¥ÎDavidªº³n¥ó¥]¡A¦]¬°¥¦ªº¨Ï¥Î«Ü¼sªx¡A¦}¦b«ùÄò¶}µo¹Lµ{¤¤¡C




\subsection{¹ï±µ®y¤ºªºISA¥H¤Óºô¥d¡C}



µ§°O¥»¹q¸£ªº¹ï±µ®y¤@¯ë­nªá\$250¡A´£¨Ñ¨â­Ó¥þ¤Ø¤oªºISA´¡¼Ñ¡B¨â­Ó¦ê¤f©M¤@­Ó¦}¤f¡C¤j¦h¼Æ¹ï±µ®y¨Ï¥Îµ§°O¥»¹q¸£ªº¹q¦À¨Ñ¹q¡A¦pªG¨Ï¥ÎµuªºISA¥d¡A¦³­Y¤z¹ï±µ®y¥i¥H¨Ï¥Î¹ï±µ®y¨½ªþ¥[ªºÃB¥~¹q¦À¨Ñ¹q¡C§A¥i¥H¥[¤@­Ó«K©yªº¥H¤Óºô¥d¡A¦}¨É¨ü¥þ³tªº¥H¤Óºô©Ê¯à¡C




\subsection{³S¬Ã/¦}¤f¾A°t¾¹¡C}



¡§³S¬Ã¡¨¥H¤Óºô¾A°t¾¹¤]¥i¥Hº¡¨¬»Ý­n¡Cª`·N¡A¥Ñ¤_¦}¤fªº±µ¤f­­¨î¡A¶Ç¿é³t²v¤£°÷¦n¡]¥i¯à³Ì°ª¬O200kB/s¡H¡^¡C

ÁÙ¦³¤@­Ó¬ù§ô¬OÀð¿j¤@¼Ëªº¹q·½¡C§A¥i¥HÁÊ¶R/¨î§@¤@­Ó±qµ§°O¥»¹q¸£ªºÁä½LºÝ¤f¤Þ¥X¹q·½ªº¹qÆl¡AÂ\²æ»P¾A°t¾¹³s¦b¤@°_ªºÀð¿j¡C¡]°Ñ¨£\ref{aep-100} {(Áä½L¹q·½)}¡^

°Ñ¨£\ref{de-600} {(DE-600 / DE-620)}©M\ref{aep-100} {(RealTek)}¥H¤F¸Ñ¤ä«ùªº¨â´Ú³S¬Ã¾A°t¾¹¡C






\section{Âø¶µ\label{misc}}



©Ò¦³¤£¾A¦X©ñ¦b§O³Bªº¬ÛÃö«H®§³£°ï¦b³o¨½¡C¥i¯à¤£¬Û¤z¡A¤]¥i¯à¤j®a¤£·P¿³½ì¡A¦ýÁÙ¬O©ñ¦b³o¨à¤F¡C




\subsection{¦V¤º®Ö¶Ç»¼¥H¤Óºô°Ñ¼Æ\label{lilo}}



¦³¨â­Ó³q¥Îªº¤º®Ö©R¥O¥i¥H¦b±Ò°Ê®É¦V¤º®Ö¶Ç»¼¥H¤Óºô°Ñ¼Æ¡]{\ttfamily ether}  ©M{\ttfamily reserve}¡^¡C¥i¥H¥ÎLILO¡Bloadlin©Î¨ä¥¦±µ¨ü¥i¿ï°Ñ¼Æªº±Ò°Ê¤u¨ã§¹¦¨¸Ó¾Þ§@¡C

¨Ò¦p¡A¦pªG©R¥O¬°¡§blah¡¨¡A§Æ±æ±µ¦¬3­Ó°Ñ¼Æ¡]°²©w¬°123¡B456©M789¡^¡A¨º¤\¦b¨Ï¥ÎLILO®É´NÀ³¸Ó¦p¤U¡G

{\ttfamily LILO: linux blah=123,456,789}

­n¤F¸Ñ±Ò°Ê®É°Ñ¼Æªº§ó¦h«H®§¡]©M§¹¥þªº¦Cªí¡^¡A½Ð°Ñ¨£
\nameurl{http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html}{BootPrompt-HOWTO}




\subsubsection{{\ttfamily ether}©R¥O\label{ether}}



{\ttfamily ether=}°Ñ¼Æ»Pª½±µºc«Ø¦b¤º®ÖªºÅX°Êµ{§Ç¤@°_¨Ï¥Î¡C{\ttfamily ether=}°Ñ¼Æ¹ï¤@­Ó¼Ò¶ô¤ÆªºÅX°Êµ{§Ç{\itshape §¹¥þ¤£°_§@¥Î\/}¡C¥¦ªº³Ì³q¥Î§Î¦¡¦p¤U¡G

\begin{tscreen}
ether=IRQ,BASE\_ADDR,PARAM\_1,PARAM\_2,NAME
\end{tscreen}


©Ò¦³ªº°Ñ¼Æ³£¬O¥i¿ïªº¡C²Ä¤@­Ó«D¼Æ¦rªº°Ñ¼Æ³Q¥Î°µNAME¡C

{\bfseries IRQ:}
«Ü©úÅã¡C¬°¡§0¡¨ªºIRQ­È¡]¤@¯ë¬°¯Ê¬Ù­È¡^·N¨ýµÛautoIRQ¡C­º¥ý³]¸mIRQ¦Ó¤£¬Obase\_addr¬O¤@­Ó¾ú¥v©Êªº¥©¦X¢w¢wµL½×¦b§ïÅÜ§Oªº¤°¤\®É³£¥i¥H¶¶«K§ï¥¿³o¤@ÂI¡C

{\bfseries BASE\_ADDR:}
¤]«Ü©úÅã¡C­È¬°¡§0¡¨¡]¤@¯ë¬°¯Ê¬Ù­È¡^·N¨ýµÛ±´´ú¥H¤Óºô¥dªººô¥dÃþ«¬¯S©wªº¦a§}¦Cªí¡C

{\bfseries PARAM\_1:}
³o¶}©l¬O¥Î¨ÓÂÐ»\WD80*3³o¼Ëªº¦@¨É¤º¦sºô¥dªº°_©l¤º¦sªº­È¡C¦³¨ÇÅX°Êµ{§Ç¨Ï¥Î¸Ó­Èªº§C4¦ì¨Ó³]¸m¶EÂ_«H®§¯Å§O¡C0¢w¢w¯Ê¬Ù­È¡A1-7¢w¢w¯Å§O1..7¡A¡]7¬O³Ì§¹¥þªº«H®§¡^8¢w¢w¯Å§O0¡]¨S¦³«H®§¡^¡C¥t¥~¡ALANCEÅX°Êµ{§Ç¨Ï¥Î¸Ó­Èªº§C4¦ì¨Ó¿ï¾ÜDMA³q¹D¡C§_«h´N¨Ï¥Îauto-DMA¡C

{\bfseries PARAM\_2:}
3c503ÅX°Êµ{§Ç¨Ï¥Î¥¦¨Ó¿ï¾Ü¤º³¡ÁÙ¬O¥~³¡¦¬µo¾¹¡C0¢w¢w¯Ê¬Ù/¤º³¡¡A1¢w¢w¥~³¡AUI¡CCabletronªºE21XXºô¥dÁÙ¨Ï¥ÎPARAM\_2ªº§C4¦ì¨Ó¿ï¾Ü¿é¥X´C¤¶¡C§_«h´N¦Û°ÊÀË´ú¡C

{\bfseries NAME:}
¿ï¾Ü¸Ó­È©Ò«üªººôµ¸³]³Æ¡C¼Ð­ã¤º®Ö¹ïªþÄÝ¤_Á`½uªº¥H¤Óºô¥d¨Ï¥Î¦WºÙ¡§eth0¡¨¡B¡§eth1¡¨¡B¡§eth2¡¨©M¡§eth3¡¨¡A¹ï¦}¤f¡§³S¬Ã¡¨¥H¤Óºô¾A°t¾¹¨Ï¥Î¡§atp0¡¨¡CarcnetÅX°Êµ{§Ç¨Ï¥Î¦WºÙ¡§arc0¡¨¡C¥i¥H¨Ï¥Î³o¨ÇLILO°Ñ¼Æ©ú½T³]¸m°ò§}¨Ó±Ò¥Î¦h¶ôºô¥d¡C1.0¤º®Ö§â°ò¤_LANCEªº¥H¤Óºô¥d§@¬°¯S®í±¡ªp¶i¦æ³B²z¡GLILO°Ñ¼Æ³Q©¿²¤¡ALANCEºô¥dÁ`¬O³Q¤À°t¬°±q¡§eth0¡¨¶}©lªº¦WºÙ¡§eth$<$n$>$¡¨¡Cªþ¥[ªº«DLANCEºô¥d¥²¶·³Q©ú½T«ü©w¬°¡§eth$<$n+1$>$¡¨¡A¦}¥Î½Ñ¦p¡§ether=0,-1,eth0¡¨ªº¤è¦¡¸T¤î³q±`ªº¡§eth0¡¨±´´ú¡C¡]¹ï¡A³o¬O­ÓBug¡C¡^




\subsubsection{{\ttfamily reserve}©R¥O\label{reserve}}



³o­Óºò±µµÛªºLILO©R¥O¥Îªk»P¤W­±ªº¡§ether=¡¨¤@¼Ë¡A§Yªþ¥[¦blilo.conf¨½«ü©wªº±Ò°Ê¿ï¾Ü¦WºÙ¦Z­±¡C

\begin{tscreen}
reserve=IO-base,extent$\{$,IO-base,extent...$\}$
\end{tscreen}


¦b¬Y¨Ç¾÷¾¹¤W¡A¥i¯à»Ý­n¨¾¤î³]³ÆÅX°Êµ{§Ç¦b¬Y­Ó¯S©w°Ï°ì¨½ÀË¬d³]³Æ¡]¦Û°Ê±´´ú¡^¡C¨ä­ì¦]¥i¯à¬O¥Ñ¤_³]­p§C¦Hªºµw¥ó¨Ï±Ò°Ê{\itshape ­áµ²\/}¡]¦p¬Y¨Ç¥H¤Óºô¥d¡^¡B³Q¿ù»~ÃÑ§Oªºµw¥ó¡B¦b¸û¦­ªº±´´ú¤¤ª¬ºA³Q§ïÅÜªºµw¥ó¡B©ÎªÌ¶È¶È¬O¤£·QÅý¤º®Öªì©l¤Æµw¥ó¡C

±Ò°Ê®Éªº°Ñ¼Æ{\ttfamily reserve}³q¹L«ü©wµL»Ý±´´úªºI/OºÝ¤f°Ï°ì¨Ó¸Ñ¨M³o­Ó°ÝÃD¡C¸Ó°Ï°ì«O¯d¦b¤º®ÖªººÝ¤fª`¥Uªí¨½¡A´N¶H¸Ó°Ï°ì¨½¤w¸gµo²{¤F¤@­Ó³]³Æ¤@¼Ë¡Cª`·N¡A³o¤@¾÷¨î¦b¤j¦h¼Æ¾÷¾¹¤W¬O¤£¥²­nªº¡C¥u¦³¦b¦³°ÝÃD©Î¯S©wªº±¡ªp¤U¤~¦³¥²­n¨Ï¥Î¥¦¡C

«ü©w°Ï°ì¨½ªºI/OºÝ¤f¨ü¨ì«OÅ@¡A¤£³Q³]³Æ±´´ú¼vÅT¡C¦b¬Y¨ÇÅX°Êµ{§Ç³QNE2000¬E°_¡A©Î¨ä¥¦³]³Æ³Q¿ù»~¦aÃÑ§O¬°NE2000®É¨Ï¥Î³o¤@¤èªk¡C¥¿½Tªº³]³ÆÅX°Êµ{§Ç¤£¸Ó±´´ú¤@­Ó«O¯d°Ï°ì¡A°£«D¥t¤@­Ó±Ò°Ê°Ñ¼Æ©ú½T«ü©w¥¦³o¤\°µ¡C³oÁô§t¤F{\ttfamily reserve}¸g±`»P¨ä¥¦±Ò°Ê°Ñ¼Æ¤@°_¨Ï¥Î¡C¦]¦¹¡A¦pªG«ü©w¤F¤@­Ó{\ttfamily reserve}°Ï°ì¨Ó«OÅ@¬Y­Ó¯S©w³]³Æ¡A³q±`´N¥²¶·©ú½T«ü©w¹ï¸Ó³]³Æªº±´´ú¡C¤j¦h¼ÆÅX°Êµ{§Ç¦bµ¹©w¤F©ú½T¦a§}¦Z´N©¿²¤¤FºÝ¤fª`¥Uªí¡C

¨Ò¦p¡A±Ò°Ê¦æ

\begin{tscreen}
LILO: linux  reserve=0x300,32  ether=0,0x300,eth0
\end{tscreen}


¨Ï¥H¤Óºô¥dÅX°Êµ{§Ç¥H¥~ªº©Ò¦³³]³ÆÅX°Êµ{§Ç³£¤£±´´ú0x300-0x31f¡C

¤@¯ë±Ò°Ê®Éªº°Ñ¼Æ­­¨î¬O11­Ó¡A¦]¦¹¨C­Ó{\ttfamily reserve}ÃöÁäµü¥u¯à«ü©w5­Ó«O¯d°Ï°ì¡C¦pªG½Ð¨D«Ü´_Âø¡A¥i¥H¨Ï¥Î¦h­Ó{\ttfamily reserve}«ü¥O¡C




\subsection{§â¥H¤ÓºôÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î\label{modules}}



²{¦b¤j¦h¼ÆLinuxµo¦æª©¨½ªº¤º®Ö³£¥u¥]§t«Ü¤Ö¤L­Ó¤º«ØªºÅX°Êµ{§Ç¡CÅX°Êµ{§Ç³£ªö¥Î¿W¥ßªº°ÊºA¥i¥[¸ü¼Ò¶ôªº§Î¦¡´£¨Ñ¡C³o¨Ç¼Ò¶ô¤ÆÅX°Êµ{§Ç³q±`¥ÑºÞ²z­û¨Ï¥Î{\ttfamily modprobe(8)}©R¥O¸ü¤J¡A©ÎªÌ¦b¬Y¨Ç±¡ªp¤U¥Ñ¤º®Ö³q¹L¡§kerneld¡¨¡]¦b2.0ª©¡^©Î¡§kmod¡¨¡]¦b2.1ª©¡^¦Û°Ê¸ü¤J¡AµM¦Z½Õ¥Î{\ttfamily modprobe}¡C

§A©Ò¥Îªºµo¦æª©¥i¯à·|´£¨Ñ¨}¦nªº¹Ï§Î°t¸m¤u¨ã¨Ó³]¸m¥H¤Óºô¼Ò¶ô¡C¦pªG¥i¯à´N¥ý¨Ï¥Î¥¦­Ì¡C¤U­±´y­z¤F¦b³o¨Çªá«Nªº°t¸mµ{§Ç¤Uªº«H®§¡A¥H¤Î³o¨Çµ{§Ç§ïÅÜ¤F­þ¨ÇªF¦è¡C

±±¨î¨Ï¥Î­þ¨Ç¼Ò¶ô©M¨C­Ó¼Ò¶ô´£¨Ñ­þ¨Ç¿ï¶µªº«H®§¤@¯ë«O¦s¦b¤å¥ó{\ttfamily /etc/conf.modules}¨½¡C¦b³o­Ó¤å¥ó¨½¨Ï¥Îªº¨â­Ó·P¿³½ìªº¥D­n¿ï¶µ¡]¹ï¥H¤Óºô¥d¦Ó¨¥¡^¬O{\ttfamily alias}©M{\ttfamily options}¡C{\ttfamily modprobe}©R¥O¬d¾\¸Ó¤å¥ó¥H¤F¸Ñ¼Ò¶ô«H®§¡C

¹ê»Úªº¼Ò¶ô¥»¨­¤@¯ë«O¦s¦b¦W¬°{\ttfamily /lib/modules/`uname -r`/net}ªº¥Ø¿ý¤U¡A¨ä¤¤{\ttfamily uname -r}©R¥Oµ¹¥X¤º®Öªºª©¥»¡]¦p2.0.34¡^¡C§A¥i¥H¦b³o¨½¬Ý¬Ý­þ¤@­Ó¼Ò¶ô»P§Aªººô¥d¤Ç°t¡C

¦b§Aªº{\ttfamily conf.modules}¤å¥ó¨½­º¥ý»Ý­nªº¬O§i¶D{\ttfamily modprobe}¹ï¤_{\ttfamily eth0}¡]©M{\ttfamily eth1}¥H¤Î......¡^ºôµ¸±µ¤f¨Ï¥Î¤°¤\ÅX°Êµ{§Ç¡C¬°¦¹­n¨Ï¥Î
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
alias
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
©R¥O¡C¨Ò¦p¡A¦³¤@¶ô¨Ï¥Î{\ttfamily smc-ultra.o}ÅX°Êµ{§Ç¼Ò¶ôªºISA SMC EtherEZºô¥d¡A»Ý­n¼W¥[¦p¤U¤@¦æ§â¸ÓÅX°Êµ{§Ç{\ttfamily alias}¨ì{\ttfamily eth0}¤W¡G

\begin{verbatim}
        alias eth0 smc-ultra
\end{verbatim}


¨ä¦¸¡A¥i¯à»Ý­n¤@­Ó{\ttfamily options}¦æ¨Ó«ü¥X»P¬Y­Ó¯S©w¼Ò¶ô¡]©Î¼Ò¶ô§O¦W¡^¤@°_¨Ï¥Î­þ¨Ç¿ï¶µ¡CÁÙªö¥Î¤W­±¨º­Ó¨Ò¤l¡A¦pªG¥u¦³¤@¦æ{\ttfamily alias}¦Ó¨S¦³{\ttfamily options}¦æ¡A¤º®Ö·|Äµ§i¡]°Ñ¨£{\ttfamily dmesg}¡^»¡¦Û°Ê±´´úISAºô¥d¤£¦n¡C­n®ø°£³o­ÓÄµ§i¡A»Ý­n¼W¥[¥t¤@¦æ¨Ó§i¶D¼Ò¶ôºô¥d³Q°t¸m¦b­þ­ÓI/O°ò§}¤W¡A¤ñ¤è»¡¬O16¶i¨î¦a§}{\ttfamily 0x280}¡C

\begin{verbatim}
        options smc-ultra io=0x280
\end{verbatim}


¤j¦h¼ÆISA¼Ò¶ô¦b{\ttfamily insmod}©R¥O¦æ±µ¨ü{\ttfamily io=0x340}©M{\ttfamily irq=12}³o¼Ëªº°Ñ¼Æ¡C´£¨Ñ³o¨Ç°Ñ¼Æ¥HÁ×§K±´´ú¸Óºô¥d¬O{\itshape ¥²¶·ªº\/}©Î¦Ü¤Ö¬O{\itshape ±j¯P«ØÄ³ªº\/}¡C»PPCI©MEISA³]³Æ¤£¦P¡A¹ï¤j¦h¼ÆISA³]³Æ¦Ó¨¥¨S¦³¯u¥¿¦w¥þªº¦Û°Ê±´´ú¤èªk¡A©Ò¥H¦b§âÅX°Êµ{§Ç§@¬°¼Ò¶ô¨Ï¥Î®ÉÀ³·íÁ×§K¦Û°Ê±´´ú¡C

¨C­Ó¼Ò¶ô©Ò±µ¨üªº©Ò¦³¿ï¶µ¦Cªí¥i¥H¦b¥H¤U¤å¥ó¤¤§ä¨ì¡G

{\ttfamily /usr/src/linux/Documentation/networking/net-modules.txt}

±À¯ò¾\Åª¸Ó¤å¥ó¥H¤F¸Ñ¹ï§Aªº¯S©wºô¥d¥i¥H¨Ï¥Î­þ¨Ç¿ï¶µ¡Cª`·N¡A¹ï¤_³æ­Ó¼Ò¶ô¯à°÷³B²z¦h­Ó³]³Æªº¼Ò¶ô¡A¦³¨Ç¤ä«ù¥Î³r¸¹¤À¶}ªº­È¦Cªí¡A¦p©Ò¦³°ò¤_8390ªºÅX°Êµ{§Ç©MPLIPÅX°Êµ{§Ç¡C¨Ò¦p¡G

\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
        options 3c503 io=0x280,0x300,0x330,0x350 xcvr=0,1,0,1
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}


¤W­±´N¬O¤@­Ó¼Ò¶ô±±¨î¥|¶ô3c503ºô¥d¡A¨ä¤¤ºô¥d2©M4¨Ï¥Î¥~³¡¦¬µo¾¹¡C¤£­n¦b¡§=¡¨©Î³r¸¹©P³ò¨Ï¥ÎªÅ®æ¡C

ÁÙ­nª`·N¡A¤@­Ó{\itshape ¦£ªº\/}¼Ò¶ô¤£¯à³Q§R°£¡C³o¤]´N¬O»¡¦b§R°£¼Ò¶ô«e»Ý­n¨Ï¥Î{\ttfamily ifconfig eth0 down}¡]Ãö³¬¥H¤Óºô¥d¡^¡C

©R¥O{\ttfamily lsmod}¥i¥HÅã¥Ü­þ¨Ç¼Ò¶ô³Q¸ü¤J¡B¥¦­Ì¬O§_¥¿¦b³Q¨Ï¥Î¡A¦Ó{\ttfamily rmmod}¥i¥H§R°£³o¨Ç¼Ò¶ô¡C




\subsection{¬ÛÃö¤åÀÉ}



¥»¤åÀÉªº«Ü¦h«H®§¨Ó¦Ûcomp.os.linux·s»D²Õ«O¦sªº©«¤l¡A³oªí©ú¸Ó·s»D²Õ¬O¤@­Ó¦³»ù­Èªº«H®§·½¡C¨ä¥¦ªº¦³¥Î«H®§¨Ó¦ÛDonald¦Û¤vªº¤@¤j°ï¤p¤å¥ó¡C·íµM¡A¦pªG§A¥¿¦b³]¸m¤@¶ô¥H¤Óºô¥d¡A§AÁÙ­nÅª¤@¤UNET-2 Howto¤~¯à¯u¥¿°t¸m¦n§A­n¥Îªº³n¥ó¡C¥t¥~¡A¦pªG§A·Q°µ­Ó¶Â«È¡A§AÁ`¯à±qÅX°Êµ{§Çªº·½½X¨½§ä¨ì¨Ç¦³¥Îªº«H®§¡C¦b¶}©l¹ê»Ú¥N½X¤§«e¡AÁ`¦³¤@¨ì¨â¬q´y­zÃöÁäÂIªº¤å¦r¡C

¹ï¤_¨º¨Ç´M§ä¤£¬OLinux¯S¦³«H®§¡]¦p¤°¤\¬O10BaseT¡B¤°¤\¬OAUI¡BHub¬O¤z¤°¤\ªºµ¥µ¥¡^ªº¤H¡A§Ú±j¯P±À¯ò¨Ï¥Î·s»D²Õ{\itshape comp.dcom.lans.ethernet\/}©Î{\itshape comp.sys.ibm.pc.hardware.networking\/}¡C¨º¨Ç¦b{\ttfamily dejanews.com}¤Wªº·s»D²ÕÀÉ®×¤]¬O«Ü¦³»ù­Èªº«H®§·½¡C§A¥i¥H±q¥H¤UURLªºRTFM¡]«O¦s©Ò¦³·s»D²ÕªºFAQ¡^Àò¨ú·s»D²ÕªºFAQ¡G

\nameurl{ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/}{Usenet FAQs}

§AÁÙ¥i¥H¦b¥H¤UURL¬Ý¤@¤U¥i¥H»¡¬O¡§Ethernet-HomePage¡¨ªº¥D­¶¡G

\nameurl{http://wwwhost.ots.utexas.edu/ethernet/ethernet-home.html}{Ethernet-HomePage}






\subsection{Án©ú»Pª©Åv\label{copyright}}

¥»¤åÀÉ{\itshape ¤£\/}¬OºÖ­µ®Ñ¡C¥¦¥i¯à¬O§A©Ò§ä¨ìªº³Ì·sªº¸ê®Æ¡C°£¤F§A¦Û¤v¡A¨S¤H·|¹ï§Aªºµw¥ó¥X²{ªº°ÝÃD­t³d¡C¦pªG§Aªº¥H¤Óºô¥d©Î¨ä¥¦ªºµw¥ó«_·Ïªº¸Ü¡]¤L¥G¤£¥i¯à¡I¡^¡A§Ú­Ì¤]¤£©Ó¾á¥ô¦ó³d¥ô¡C¤]´N¬O»¡¡A¥»¤å§@ªÌ¤£¹ï¥ô¦ó¨Ï¥Î¥»¤å«H®§ªö¨ú¦æ°Ê³y¦¨ªº·l¥¢­t³d¡C

Copyright (c) 1993-1999 ¥»¤åªºª©Åv©Ò¦³¤H¬°Paul Gortmaker¡C¦b«O¯dª©Åv«H®§©M¥»³\¥i¤º®eªº±ø¥ó¤U¡A¥»¤åÀÉ¤¹³\¥ô·N´_¨î©M¶Ç¼½¡C

¦b«O¯d­ì©lª©Åv«H®§ªº±ø¥ó¤U¡A¤¹³\´_¨î©M¶Ç¼½¥»¤åÀÉ­×§ï¦Zªºª©¥»¡Q¦b¥»³\¥i¤º®e¤£ÅÜªº±ø¥ó¤U¡A¤¹³\¶Ç¼½©Ò¦³¨Ì¾Ú¥»¤åÀÉ±À¾É¥Xªºµ²ªG¡C

¦b¤W­z°w¹ï­×§ïª©¥»ªº±ø¥ó¤U¡A¤¹³\´_¨î©M¶Ç¼½¥»¤åÀÉªº¨ä¥¦»y¨¥Â½Ä¶ª©¥»¡C

¹ïÂ½Ä¶ªÌªº´£¥Ü¡C­º¥ý¡AÂ½Ä¶SGML·½¤å¥ó¡]¥i¥H¥ÎFTP±qHowTo¥D¯¸ÂIÀò±o¡^¡A³o¼Ë¥i¥H¥Í¦¨¨ä¥¦ªº¿é¥X®æ¦¡¡C½Ðª`·N«O¯d¤@¥÷Â½Ä¶ªº­ì©l­^¤åSGML·½¤å¥ó¡I¦bµo¥¬§ó·s¦ZªºHowTo®É¡AÀò¨ú¸Óª©¥»ªº·sSGML·½¤å¥ó¡AÂ²³æ¦a¨Ï¥Î{\ttfamily diff -u old.sgml new.sgml}´N¥i¥Hª¾¹D¦ó³B¦³ÅÜ°Ê¡A¦}§â³o¨ÇÅÜ°Ê©ñ¤J§AªºÂ½Ä¶ª©¥»¡AµL»Ý­«·s¾\Åª©Î­«·sÂ½Ä¶¥þ³¡¤º®e¡C

¦pªG§A·Q¦b¤½¶}¥Xª©ª«¤¤¨Ï¥Î¥»¤åÀÉ¡A½ÐÁp¨t¥»¤å§@ªÌ¡]³q¹Le-mail¡^¡A³o¼Ë¥i¥HÀò±o³Ì·sªº¸ê®Æ¡C¥H«e¦³¨ÇLinux HowToªº¹L®Éª©¥»³Q¤½¶}¥Xª©¡A¨Ï±o¶}µoªÌ¬°¤@¨Ç¦b§ó·sª©¥»¤¤¤w¸g¦^µª¹Lªº°ÝÃD¹¡¨ü§é¿i¡C

This document is {\itshape not\/} gospel. However, it is probably the most
up to date info that you will be able to find. Nobody is responsible
for what happens to your hardware but yourself. If your ethercard
or any other hardware goes up in smoke (...nearly impossible!)
we take no responsibility. ie. THE AUTHORS ARE NOT RESPONSIBLE
FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE
INFORMATION INCLUDED IN THIS DOCUMENT.

This document is Copyright (c) 1993-1999 by Paul Gortmaker.
Permission is granted to make and distribute verbatim copies
of this manual provided the copyright notice and this permission
notice are preserved on all copies.

Permission is granted to copy and distribute modified versions
of this document under the conditions for verbatim copying,
provided that this copyright notice is included exactly as in
the original, and that the entire resulting derived work is
distributed under the terms of a permission notice identical
to this one.

Permission is granted to copy and distribute translations
of this document into another language, under the above
conditions for modified versions.

A hint to people considering doing a translation.  First,
translate the SGML source (available via FTP from the HowTo
main site) so that you can then generate other output formats.
Be sure to keep a copy of the original English SGML source that
you translated from! When an updated HowTo is released,
get the new SGML source for that version, and then a simple
{\ttfamily diff -u old.sgml new.sgml} will show you exactly what has
changed so that you can easily incorporate those changes into
your translated SMGL source without having to re-read or
re-translate everything.

If you are intending to incorporate this document into a
published work, please make contact (via e-mail) so that
you can be supplied with the most up to date information
available. In the past, out of date versions of the Linux
HowTo documents have been published, which caused the developers
undue grief from being plagued with questions that were already
answered in the up to date versions.




\subsection{µ²§ô»y}



¦pªG§A¦b¥»¤åÀÉ¤¤µo²{¦³¿ù§O¦r©Î¹L®É«H®§¡A½Ðµ¹§Úµoe-mail¡C¥»¤åÀÉ¤ñ¸û¤j¡A©Ò¥H«Ü®e©ö¥X²{²¨º|¡C¦pªG§A´¿µoe-mail­n¨D§ï¥¿¡A¦Ó¦b·sª©¥»¤¤¨ÌµM¨S§ï¹L¨Ó¡A½Ð§â§ï¥¿­n¨D¦Aµo¤@¹M¡A¥i¯à§Aªº¤W¤@«Êe-mail³Q§Ú¥­®É¦¬¨ìªº¤j¶q©U§£«H¥ó±»»\¤F¡C

ÁÂÁÂ¡I

Paul Gortmaker, {\ttfamily p\_gortmaker@yahoo.com}
¡]¤à²Ð¨k¡A{\ttfamily isaac\_ge@yahoo.com}¡^

\end{document}
