§ì¨ì¿ù»~ªº°O¾ÐÅé®e¶q¬O¦]¬°ª«²z¦ì§}¸òµêÀÀ¦ì§}¨âªÌ¬O¤£¦Pªº¡C
The convention for most PC hardware is to use the memory area between 3.5G and 4G for a special purpose (usually for PCI). This address space is used to access PCI hardware. As a result real, physical memory can not appear in that address space.
What happens to the memory that should appear in that location is dependent on your hardware. Unfortunately, some hardware does nothing and the ability to use that last 500M of RAM is entirely lost.
Luckily, most hardware remaps the memory to a higher location so that it can still be used. However, this can cause some confusion if you watch the boot messages.
On a 32 bit version of FreeBSD, the memory appears lost, since it will be remapped above 4G, which a 32 bit kernel is unable to access. In this case, the solution is to build a PAE enabled kernel. See this FAQ entry for more information.
On a 64 bit version of FreeBSD, or when running a PAE-enabled kernel, FreeBSD will correctly detect and remap the memory so it is usable. During boot, however, it may seem as if FreeBSD is detecting more memory than the system really has. This is normal and the available memory will be corrected as the boot process completes.
Y¬O SCSI µwºÐªº¸Ü¡A¨º»òºÏºÐ¾÷À³¸Ó¦³¯à¤O¦Û°Ê§@ re-mapping ªº°Ê§@¡CµM¦Ó¡A¦]¬°¤@¨Ç¥¼ª¾ªº¦]¯À¡A¦b¥X¼t®É¡A«Ü¦hµwºÐªº³o¶µ ¥\¯à¬OÃö³¬ªº...
n±N¨ä«·s¶}±Ò¡A±z»Ýn½s¿è¸Ë¸mªº²Ä¤@Ó page ¼Ò¦¡ ¡]first device page mode¡^¡A¦b FreeBSD ¤W¥i¥H¥Î¤U±ªº«ü¥O¿ì¨ì ¡]¥H root¨¤À°õ¦æ¡^
# scsi -f /dev/rsd0c -m 1 -e -P 3
µM«á±N AWRE ©M ARRE ªº¼ÆÈ±q 0 Åܦ¨ 1:-
AWRE¡]Auto Write Reallocation Enbld¡^¡G 1 ARRE¡]Auto Read Reallocation Enbld¡^¡G 1
¥H¤U³o¬q¬O¥Ñ Ted Mittelstaedt <tedm@toybox.placo.com>
©Ò´£¨Ñ¡G
Y¬° IDE µwºÐ¡A¥ô¦óªºÃay³q±`³£¬O³Â·Ðªº¹w¥ü¡C¥Ø«e©Ò¦³¸û·sªº IDE µwºÐ¡A¤º³¡³£¦³¦Û°Ê remapping Ãayªº¯à¤O¡C¥Ø«e©Ò¦³ IDE µwºÐ »s³y°Ó¡A³£´£¨Ñ¤F§ó¤[ªº«OÃÒ¡A¦Ó¥B·|À°±z§ó´«¥X²{ÃayªºµwºÐ¡C
¦pªG±z¤´·Qn×´_²£¥ÍÃayªº IDE µwºÐ¡A±z¤´¥i¥H¸ÕµÛ¥h¤U¸ü IDE µwºÐ»s³y°Ó©Ò´£¨ÑªºÀË´úµ{¦¡¡A¨Ã¥Î¥¦¨ÓÀˬd±zªºµwºÐ¡C¦³®É³o¨Ç³nÅé¥i ¥H±j¢«·sÀˬdµwºÐªºÃay¡A¨Ã±N¥¦Ì¼Ð¥Ü¥X¨Ó¡C
¹ï ESDI¡ARLL ¤Î MFM ªºµwºÐ¨Ó»¡¡A³q±`Ãay¬O¥¿±`²{¶H¡A¤]¤£¬O¤° »ò³Â·Ðªº«e¥ü¡C¦b PC ¤W¡AºÏºÐ±±¨î¥d©M BIOS t³d¼Ð¥ÜÃayªº¥ô°È¡C³o ¹ï¤@¨Ç¨Ï¥Î BIOS¨Ó¦s¨úºÏºÐªº§@·~Àô¹Ò¡]¦p DOS¡^¬O¨S¦³°ÝÃDªº¡CµM¦Ó¡A FreeBSD ªººÏºÐÅX°Êµ{¦¡¨Ã¤£¸g¹L BIOS ¨Ó¦s¨úºÏºÐ¡A©Ò¥H¡A¦³Ó bad144 ªº¾÷¨î¥Î¨Ó¨ú¥N³o¶µ¥\¯à¡Cbad144 ¥u¯à¥Î¦b wd ³oӺϺÐÅX°Êµ{¦¡¤W¡]³o Ó¥Nªí¤F FreeBSD 4.0 ¨Ã¤£¤ä´©¥¦¡^¡A¥¦¤]µLªk¥Î¦b SCSI µwºÐ¤W¡C bad144ªº¤u§@¤èªk¬O±N©Ò¦³§ä¨ìªºÃay¸ê®Æ¦s¨ì¤@Ó¯S§OªºÀÉ®×ý¡C
¨Ï¥Î bad144 ªºÄµ§i - ¦sµÛÃay¸ê®Æªº¯S§OÀɮ׬O©ñ¦bµwºÐªº³Ì«á ¤@y¤W¡C¦]¬°³oÓÀÉ®×Àx¦sªºÃay¸ê®Æ¤¤¡A¦³¥i¯à¦³¨Ç¸ê®Æ¬O«ü¦VµwºÐ³Ì «eºÝ©Òµo¥ÍªºÃay±¡§Î¡A´N¬O¥i¯àÀx¦s /kernel ³oÓÀɪº¦a¤è¡A©Ò¥H¥¦ ¤@©wn¯à³Q¶}¾÷µ{¦¡©ÒŪ¨ú¡A¦Ó¶}¾÷µ{¦¡¬O³z¹L BIOS ¨ÓŪ¨ú kernel ÀÉ¡C³oªí¥Ü¤F¨Ï¥Î bad144 ªºµwºÐµ´¤£¯à¾Ö¦³¶W¹L 1024 Ó cylinder¡A 16 Ó head ¤Î 63 Ó sector¡C¦Ó³o¨Ï±o±ý¨Ï¥Î bad144 ªºµwºÐªº¤j¤p¤£ ¯à¤j©ó 500 MB¡C
n¨Ï¥Î bad144 «Ü²³æ¡A¥un¦b¶}©l¦w¸Ë®É¡A¦b FreeBSD fdisk µe± §â¡§Bad Block¡¨ ±½ºË³]¬° ON §Y¥i¡C¦b FreeBSD 2.2.7 ¥H «á³£¥i¥H¨Ï¥Î¦¹¤èªk¡C¦ý³oÓµwºÐªº cylinder ¤@©wn¦b 1024 ¥H¤U¡C¨Ï ¥Î«e¡A§ÚÌ«ØÄ³³oÓµwºÐn¦Ü¤Ö¥ý¨Ï¥Î¥|Ó¤p®É¡A¥H«K¼ö¿±µÈ»PºÏy°¾²¾ ¹F¤@¯ëª¬ºA¡C
¦pªG³oÓµwºÐ¾Ö¦³¶W¹L 1024 Ó cylinder¡]¹³¤j®e¶qªº ESDI µwºÐ¡^ ¡AESDI ±±¨î¥d§Q¥Î¤@Ó¯S§OªºÂà´«¼Ò¦¡¨Ï¥¦¯à¦b DOS ¤U¤u§@¡C¦Ó¦pªG±z ¦b fdisk ýªº ¡§set geometry¡¨ ¤¤¿é¤J ¡§Âà´«¹L¡¨ ªº geometry¡Awd ³oÓÅX°Êµ{¦¡¯à¤F¸Ñ³o¨ÇÂà´« ¼Ò¦¡¡C±z¤]µ´¹ï¤£¯à¨Ï¥Î dangerously dedicated ¼Ò¦¡¨Ó«Ø¥ß FreeBSD ªº¤À³Î°Ï¡A¦]¬°¥¦·|©¿²¤ geometry ³oӰѼơC¦¹¥~¡A´Nºâ fdisk ¨Ï¥Î ±z©Ò¿é¤Jªº geometry °Ñ¼Æ¡A¥¦¨ÌµM·|¥hŪ¨ú³oµwºÐªº¯u¥¿¸ê®Æ¡A¦Ó·|¹Á ¸Õ¥h«Ø¥ß¤@Ó¹L¤jªº FreeBSD ¤À³Î°Ï¡C¦pªGºÏºÐªº geometry ¤w¸g³Q ¡§Âà´«¡¨ ¹L¤F¡A¨º»ò ³oÓ¤À³Î°Ï ¡§¥²¶·¡¨ ¥H¤â°Ê¿é¤J block ¼Æ¥Øªº¤èªk¨Ó«Ø¥ß¡C
¤@Ó§Ö³tªº¤p§Þ¥©¬O§Q¥Î ESDI ±±¨î¥d¨Ó³]©w¤j®e¶qªº ESDI µwºÐ¡A ¥Î DOS ¶}¾÷¤ù¶}¾÷¡A¦A±N¥¦ format ¬° DOS ªº¤À³Î°Ï¡CµM«á«¶}¾÷¶i¤J FreeBSD ¦w¸Ëµ{§Ç¡A¦b fdisk µe±¡A§âDOS ¤À³Î°Ïªº blocksize ©M block number §Û¤U¨Ó¡CµM«á«·s³]©w geometry ¨Ï¨ä¸ò DOS ¨Ï¥Îªº¤@¼Ë¡C §R°£ DOS ¤À³Î°Ï¡AµM«á¨Ï¥Î±zèè§Û¤Uªº blocksize ¨Ó«Ø¥ß¤@Ó ¡§cooperative¡¨ FreeBSD ¤À³Î°Ï¡CµM«á³]©w³oÓ¤À³Î°Ï¬°¥i ¶}¾÷¡A¦A¥´¶}Ãay±½ºË¡C¦b¯u¥¿ªº¦w¸Ë¹Lµ{¤¤¡Abad144 ·|¦b¥ô¦óÀɮרt²Î ³Q«Ø¥ß«e¥ý³Q°õ¦æ¡C¡]±z¥i¥H«ö Alt-F2 ¨ÓºÊ¬Ý³o¤@¤Á¡^¦pªG¦b«Ø¥ßÃay¸ê ®ÆÀɮɵo¥Í¤F°ÝÃD¡A±z·|»Ýn³]©w¤@Ó¸û¤jªººÏºÐ geometry - ³oªí¥Ü±z »Ýn«¶}¾÷¡AµM«á¥þ³¡¦A«·s¶}©l¡]¥]¬A«·s¤À³Î¥H¤Î¦b DOS ¤U«·s format¡^¡C
¦pªG remapping ªº¥\¯à¤w¸g±Ò°Ê¤F¡A¦Ó±z¨ÌµM¤@ª½¬Ý¨ìÃay²£¥Í¡A ¨º»ò¦Ò¼{´«¤@¥xµwºÐ§a¡CÃayªº±¡§Î¥u·|ÀH®É¶¡¼W¥[¦Ó§ó¬°ÄY«¡C
°ò¥»¤W³oÓ¬O¤@Ó¤wª¾ªº°ÝÃD¡C¦b HP Netserver ¾÷¾¹¤Wªº on-board EISA ¤¶± SCSI ±±¨î¥d¥e¾Ú¤F©w§}¬°²Ä 11 ªº EISA ¼Ñ¡A¦]¦¹©Ò¦³ªº ¡§¯u¹ê¡¨ EISA ¼Ñ³£¦b¥¦¤§«e¡C¥i¬O¡A¦b EISA ©w§}ªÅ¶¡ >= 10 ®É¡A·|»P«ü©wµ¹ PCI ¥Îªº©w§}ªÅ¶¡¬Û½Ä¬ð¡A¥B FreeBSD ªº auto-configuration µLªk¥¿½Tªº³B²z³oÓ±¡§Î¡C
¦]¦¹¡A²{¦b§A¯à°µªº³Ì¦n¨Æ±¡´N¬O¦b kernel ý³]©w EISA_SLOTS ³oÓ¿ï¶µ¬° 12 ¡AµM«á·í§@¨S¦³³oÓ °ÝÃD :)¡C½Ð¨Ì·Ó Handbook ¤¤¦³Ãö kernel ªº³]©w ý©Ò»¡ªº¤èªk¨Ó³]©w»P½sĶ ±zªº kernel¡C
·íµM¡A¦b¦w¸Ë FreeBSD ¨ì³oºØ¾÷¾¹¤W®É¡A³o¬O¤@ÓÂû¥Í³J³J¥ÍÂûªº °ÝÃD¡C¬°¤F¸Ñ¨M³oÓ°ÝÃD¡A¦b UserConfig ¤¤¦³ ¤@Ó¯S§Oªº¤èªk¡A¦w¸Ë®É¤£n¶i¤J ¡§visual¡¨ ¤¶±¡A¬Û¤Ï ªº¡A¦b©R¥O¦C¼Ò¦¡¤¤¡AÁä¤J
eisa 12 quit
µM«á´N¦p¥H©¹¤@¼Ë¦w¸Ë±zªº¨t²Î¡C¤£¹L§ÚÌ«ØÄ³±z½sĶ»P¦w¸Ë¤@Ó ÄÝ©ó¦Û¤vªº kernel¡A¦ý
§Æ±æ¦b¥¼¨Óªºª©¥»¤¤¯à¹ï³oÓ°ÝÃD¦³¤@Ó¦nªº¸Ñ¨M¤èªk¡C
Note: ±zµLªk¦b HP Netserver ¤W¨Ï¥Î dangerously dedicated ºÏºÐ¼Ò¦¡¡C±z¥i¥H°Ñ¦Ò ³o¥÷µù¸Ñ ¥HÀò±o§ó¦h¸ê°T¡C
³oÓ³q±`¬O¥Ñ©ó¤¤Â_½Ä¬ð(interrupt conflict)©Ò³y¦¨ªº (¨Ò¦p¡G¨â¶ô¥d¨Ï¥Î¨ì¤F¬Û¦Pªº IRQ)¡C FreeBSD ¦b 2.0.5 ª©¥H«e³£®e³\³oÓ±¡§Î¡A ´Nºâ¦³ IRQ ½Ä¬ð±¡§Î¡Aºô¸ô¥d¤]À³¸Ó¤´¥i¥¿±`¹B§@¡CµM¦Ó¡A¦b 2.0.5 ª©¤Î¨ä¥H«á¡A ¤w¤£¦A®e³\¦³ IRQ ½Ä¬ðªº±¡§Î¤F¡C½Ð©ó¶}¾÷®É¨Ï¥Î -c ³oÓ¿ï¶µ¡A µM«á§ó§ï ed0/de0/..µ¥ªº³]©w¡A¨Ï¨ä©M±zºô¸ô¥d¥»¨ªº³]©w¤@P¡C
¦pªG±z¬O¨Ï¥Î±zºô¸ô¥d¤Wªº BNC ±µÀY¡A±z©Î³\¤]·|¦]¤£¨}ªº²×ºÝ¹qªý³]©w¡A ¦Óµo¥Í¸Ë¸m(device) timeout ªº±¡§Î¡CnÀˬd¬O§_¦³³oºØ±¡§Î¡A ±z¥i¥H¦bºô¸ô¥d¤Wª½±µ±µ¤W²×ºÝ¹qªý(¤£n±µºô¸ô½u)¡A µM«á¡A¬Ý¬Ý³oÓ¿ù»~°T®§¬O¤£¬O´N®ø¥¢¤F¡C
¦³¨Ç NE2000 ªº¬Û®e¥d¡A¦pªG¥¦ªº UTP °ð¨S¦³±µºô¸ô½u¡A ©Î¬O¸Óºô¸ô½u¨Ã¨S³Q¨Ï¥Îªº¸Ü¡A¤]·|¥X²{³oÓ¿ù»~°T®§¡C
³o¶ô¥d¦³Ó¤£¦nªº¦a¤è¦b©ó¥¦±`±`·|¿ò¥¢¥»¨ªº³]©w¸ê®Æ¡C½Ð¨Ï¥Î¸Ó ¥dªº DOS ¤u¨ã 3c5x9.exe ¨Ó§ó·s¥d¤W³]©w¡C
¦pªG°ß¤@ªº°ÝÃD´N¬O³t«×«ÜºCªº¸Ü¡A¸ÕµÛ§ïÅܱzªº ¦Lªí¾÷³s±µ°ð³]©w ³oÓ¦b¤â¥U¤¤ªº ¦Lªí¾÷³]©w ³oÓ³¹¸`¦³¥[¥H°Q½×¡C
Signal 11 ³oÓ¿ù»~¬O¦]¬°§Aªº process ¹Á¸Õn¦s¨ú¤@¶ô°O¾ÐÅé¡A ¦Ó§Aªº§@·~¨t²Î¨Ã¤£¤¹³\¥¦°µ³oӰʧ@¦Óµo¥Íªº¡C¦pªG³oºØ±¡§Î±`±`¤£ ©w®Éµo¥Í¡A¨º»ò§AÀ³¸Ón¶}©l¬Ý¬Ý¬O¤£¬Oþ¸Ì¥X°ÝÃD¤F¡C
³o¨Ç°ÝÃD¥i¯à¬O»P¤U¦C±¡§Î¦³Ãö¡G
¦pªG³oÓ°ÝÃD¥u¦b¬Y¤@Ó±z¦Û¤v¼gªº¬YÓ¯S©wµ{¦¡µo¥Í¡A¨º »ò«Ü¦³¥i¯à¬O±zªºµ{¦¡½X¦³°ÝÃD¡C
¦pªG³oÓ°ÝÃD¬O¦b FreeBSD ªº¬Y¨Ç¨t²ÎÀÉ®×µo¥Í¡A¦³¥i¯à¬O ¦]¬°µ{¦¡¦³°ÝÃD¡A¦ý³q±`¦b§Ú̳o¸sŪ FAQ ªº¨Ï¥ÎªÌ¥h¶]³o¨Ç¦³ °ÝÃDªºµ{¦¡½X«e¡A¥¦Ì¦´N´N¤w¸g³Q¸Ñ¨M¤F¡]³o¬O -current ¦b°µ ªº¨Æ¡^¡C
¤×¨ä¦pªG§A¦b½sͤ@Óµ{¦¡¡A¦ý¬O¨C¦¸½s;¹¶]¥X¨Óªºµ²ªG³£¤£¤@¼Ë ªº¸Ü¡A³o¬O¤@ÓµL¸Ñªº°ÝÃD¡A¦Ó¤£¬O FreeBSD ¯äÂΡC
Á|¨Ò¨Ó»¡¡A°²³]±z¥¿¦b¶] ¡§make buildworld¡¨¡A ¦Ó compiler ¦b±N ls.c ½sͦ¨ ls.o ®Éµo¥Í¿ù»~¡A³o®É½Ð¦A¶]¤@¦¸ ¡§make buildworld¡¨¡A¦pªG compiler ¨ÌµM¦b¦P¼Ëªº¦a¤èµo ¥Í°ÝÃD¡A¨º»ò´N¬Oµ{¦¡½X¦³°ÝÃD¡Ð¡Ð½Ð§ó·sì©l½XµM«á¦A¸Õ¸Õ¬Ý¡C¦Ó¦pªG compiler ¬O¦b¨ä¥Lªº¦a¤èµo¥Í¿ù»~¡A¨º»ò´X¥G¥i¥H½T©w¬OµwÅ骺°ÝÃD¤F¡C
±z³o®ÉÀ³¸Ó°µ¤°»ò¡G
¦pªG¬O²Ä¤@ºØ±¡§Î¡A¥i¥H¨Ï¥Î¤@¨Ç debugger¡A¦p¡Ggdb¡A¨Ó§ä¥Xµ{¦¡ ¬O¦b¨º¨à·|¥h¹Á¸Õ¦s¨ú¿ù»~ªº°O¾ÐÅé¦ì§}¡AµM«á¦A×¥¿¥¦¡C
¦pªG¬O²Ä¤GºØ±¡§Î¡A´N»ÝnÀˬd¬Ý¬Ý¬O¤£¬OµwÅ骺°ÝÃD¤F¡C
¤@¨Ç³y¦¨µwÅ餣êºì¦]¥]¬A¡G
¥i¯à¬OµwºÐ¹L¼ö¡G½ÐÀˬd¾÷´ß¤ºªº·®°¬O§_¹B§@¥¿±`¡A¦]¬°±z ªºµwºÐ¡]©ÎªÌÁÙ¦³¨ä¥LªºµwÅé¸Ë¸m¡^¹L¼ö¤F¡C
³B²z¾¹¹L¼ö¡G³oÓ¦³¥i¯à¬O¦]¬°¶WÀW¡A©ÎªÌ¬O³B²z¾¹ªº·®°±¾¤F¡C ¤£½×¬OþºØì¦]¡A±z³£»Ýn±N©Ò¦³ªº¤¸¥ó¦^´_¨ì¥¦Ìì¥ý³]©wªº¤u§@ª¬ ºA¡A³o¼Ë¤~¯à¸Ñ¨M³oÓ°ÝÃD¡CÁ|Ó¨Ò¤l¨Ó»¡¡G±N³B²z¾¹½Õ¦^ì¥ýªº¤u§@ ÀW²v¡C
¦pªG±zÁÙ¬O°í«ùn¶WÀWªº¸Ü¡A½ÐÂÔ°O¡A»P¨ä¿NÃa¦Ó»Ýn´«·sªº¤@¥x ¥D¾÷¡A¤£¦p±N³t«×½ÕºC¤@ÂI¡I°£¦¹¤§¥~¡A¤£ºÞ§Aı±o¥¦¦w¤£¦w¥þ¡A¤@¯ë ¤H¹ï©ó±z¦]¬°¶WÀW¦Óµo¥Íªº°ÝÃD¡A¬O¤£·|¦³¤°»ò¦P±¡¤ßªº¡C
¤£Ã©wªº°O¾ÐÅé¡G¦pªG¥D¾÷¤W¦³¦w¸Ë¼Æ®Ú SIMM/DIMM °O¾ÐÅé¡A ¸ÕµÛ§â¥¦Ì¥þ©î¤U¨Ó¡AµM«á¤@®Ú¤@®Ú´¡¤W¥h°µ´ú¸Õ¡AÂǦ¹ÁY¤p½d³ò¡A ¥H«K§ä¥X¦³°ÝÃDªº¬Y®Ú°O¾ÐÅé©Î¬O¬YºØ°O¾ÐÅé²Õ¦X¡C
³Ì¨Î¤Æ¹LÀYªº¥D¾÷ªO³]©w¡G¦b BIOS ý©Î¬O¦³¨Ç¥D¾÷ªOªº jumper ¤W¡A¦³®É¥i¥H§ó§ï¤@¨Ç timing¡A¦ý¦b¤j¦h¼Æªº±¡§Îý¡A¨Ï¥Î¹w³]È´N ¤w¸g¨¬°÷¤F¡Cªp¥B¦³®ÉÔ§â RAM ªº wait states ³]¤Ó¤p¡A©Î¬O¦b BIOS ý¡A§â ¡§RAM Speed: Turbo¡¨ ³oөάO¨ä¥LÃþ¦ü ªº¿ï¶µ¥´¶}³£¦³¥i¯à·|³y¦¨¤@¨Ç¤£¥¿±`ªº²{¶H¡C¤@ӸѨMªº¤èªk¬O§â BIOS ³]¦^¹w³]È¡A¤£¹L¦b³o¤§«e°O±o¥ý°O¤U¥Ø«eªº³]©w¡I
¨Ñµ¹¥D¾÷ªOªº¹q¤O¤£°®²b©Î¬O¤£¨¬¡C¸ÕµÛ§â¨t²Î¤º¨S¦³¥Î¨ìªº I/O ¥d¡DµwºÐ©Î¬O CDROM ¼È®É©î±¼©Î¬O©Þ±¼¹q·½½u¡A¬Ý¬Ý§Aªº¹q·½ ¨ÑÀ³¾¹¬O¤£¬O¯à°÷¦b¤p¤@ÂIªºt²ü¤U¥¿±`¤u§@¡C¤£µM´N¬O´«¤W¥t¤@ Ó·sªº¹q·½¨ÑÀ³¾¹¡A³Ì¦n¬O¥Ë¼Æ°ª¤@ÂIªº¡]¥´Ó¤ñ¤è¨Ó»¡¡A¦pªGì ¥ýªº¹q·½¨ÑÀ³¾¹¬O 250 ¥Ëªº¡A¨º»ò´N´«¤W 300 ¥Ëªº¸Õ¸Õ¡^¡C
½Ð¶¶«K°Ñ¾\ SIG11 FAQ¡]³sµ²¦b¤U±¡^¡AÁöµM¥¦¬O¯¸¦b Linux ªº¨¤ «×¼gªº¡A¥i¬O¸Ì±¹ï³o¨Ç°ÝÃD¦³³\¦h«Ü´Îªº¸Ñ»¡¡C¥¦¸Ì±¤]¦³°Q½×¬°¤°»ò ¦³°ÝÃDªº°O¾ÐÅé¯à³q¹L³nÅé©ÎµwÅ骺´ú¸Õªºì¦]¡C
³Ì«á¡A¦pªG¤W±³o¨Çì¦]³£±Æ°£¤F¡A¨º»ò¦³¥i¯à¬O¹J¨ì¤F FreeBSD ýªº¤@°¦¯äÂΡA½Ð°Ñ¾\«ü¥Ü°µ¤@Ó°ÝÃD¦^³ø¡C
³o¨à¦³¤@Ó§ó¸Ô²Óªº FAQ ¡Ð the SIG11 problem FAQ
5.8. ·í¾÷®É¥X²{¡G¡§Fatal trap 12: page fault in kernel mode¡¨ ¡A©Î¬O ¡§panic:¡¨ ¥H¤Î¤@°ï¿ù»~°T®§¡A¸Ó«ç»ò¿ì¡H
FreeBSD ªº¶}µoªÌ¹ï©ó³o¨Ç¿ù»~°T®§¬Û·íªº¦³¿³½ì¡A¦ý¬O¥LÌ»Ýn §ó¸Ô²Óªº¤@¨Ç²Ó¸`¡C½Ð§â±zªº·í¾÷ªº°T®§¥þ³¡½Æ»s¤U¨Ó¡A±µµÛ¬d¾\ FAQ ý kernel panics ³o¸`¡A¨Ì»¡©ú½sͤ@Ó§t°£¿ù½Xªº kernel¡A¥H¨ú±o¨ç¦¡ ©I¥s¶¶§Ç¡]backtrace¡^¡C³oÓÅ¥°_¨Ó«ÜÃø¡A¦ý¹ê»Ú¤W¨Ã¤£»Ýn¥ô¦óµ{¦¡ ³]pªº¯à¤O¡A±z¥u»Ýn¨Ì·Ó«ü¥Ü°µ§Y¥i¡C
³oÓ°ÝÃD¡A¤wª¾¬O¥Ñ ATI Mach 64 Åã¥Ü¥d©Ò¤Þ°_ªº¡C¦]¬°³o¶ô¥d ¨Ï¥Î¨ì 2e8 ³oÓ¦ì§}¡A¦Ó³o»P²Ä¥|ӧǦC°ð ¡]serial port¡^©Ò¨Ï¥Îªº¦ì§}¬Û¦P¡C¦Ó¦b sio(4) ³oÓÅX°Ê µ{¦¡ý¡A¤£ª¾¹D¬O bug ©Î¬O¥\¯à¡]feature¡^¡A´Nºâ±z¨S¦³²Ä¥|Ó§Ç ¦C°ð¡A©Î¬O¤w¸g±N sio3¡]²Ä¥|ӧǦC°ð¡^¨ú®ø¤F¡A¥¦ ¨ÌµM·|¥h¹Á¸ÕÅX°Ê¥¦¡C
ª½¨ì³oÓ°ÝÃD³Q¸Ñ¨M¥H«e¡A±z¥i¥H¨Ï¥Î³oÓ¤èªk¡G
¦b¬Ý¨ì¶}¾÷´£¥Ü®É¿é¤J -c
¡]³o·|Åý kernel
¶i¤J³]©w¼Ò¦¡¡^¡C
¨ú®ø sio0 ¡A sio1 ¡A sio2 ©M sio3¡]¥þ³¡¡^¡C ³o¥i¥HÅý sio ÅX°Êµ{¦¡¤£°Ê§@ -> ©ó¬O°ÝÃD¸Ñ¨M¡C
¿é¤J exit ¥HÄ~Äò±Ò°Êµ{§Ç¡C
¦pªG±z·Qn¨Ï¥Î±zªº§Ç¦C°ð¡A±z»Ýn×§ï /usr/src/sys/i386/isa/sio.c¡A¦b¸ÓÀɤ¤§ä¥X 0x2e8 ³oÓ¦r¦ê¡A²¾°£³oÓ¦r¦ê¤Î¥¦«e±ªº³r¸¹ ¡]«O¯d«á±ªº¡^¡AµM«á«·s½sͤ@Ó·sªº kernel¡C
´Nºâ¨Ï¥Î¤F¤W±³o¨Ç¤èªk¡AX Window ¤´µM¦³¥i¯àµLªk¶¶§Q°õ¦æ¡C ¦pªGµo¥Í¤F³oºØ±¡§Î¡A½Ð½T©w§A¥Îªº XFree86 ªºª©¥»¬O³Ì·sªº XFree86 3.3.3 ©Î¬O¨ä«áªºª©¥»¡C¥¦Ì¦³¤º«Ø¤ä´© Mach 64 ³o±i¥d¡A¬Æ¦Ü¬°¤F³o ¨Ç¥dÁÙªþ¦³¤@Ó¯S§Oªº X Server
¦]¬° FreeBSD ¬O¨Ï¥Î©I¥s BIOS ¨Ó¨ú±o°O¾ÐÅé¤j¤pªº¤èªk¡A¦]¦¹¥¦ ¥u¯à°»´ú¨ì 16 bits ¦ì¤¸ªø«×ªº KByte ¤j¤p¡]65535 KBytes = 64MB¡^ ¡]©ÎªÌ§ó¤Ö..¡C¦³¨Ç BIOS ±N³Ì°ª°O¾ÐÅé¤j¤p¬°¥u¦³ 16MB¡^ ¦pªG±z¾Ö¦³ 64MB ¥H¤Wªº RAM¡AFreeBSD ·|¹Á¸Õ¥h°»´ú¥X¥¦¡A¦ý¬O¦³¥i¯à ·|¥¢±Ñ¡C
n¸Ñ¨M³oÓ°ÝÃD¡A±z»Ýn¨Ï¥Î¤U±©Ò´£ªº kernel ³]©w¿ï¶µ¡CÁöµM¦³ ¤èªk¥i¥H±q BIOS ¤¤¨ú±o°O¾ÐÅ骺§¹¾ã¸ê°T¡A¦ý¬O¥Ø«e§Ú̦b¶}¾÷°Ï¤¤¨Ã ¨S¦³¦h¾lªºªÅ¶¡¨Ó°µ³o¥ó¨Æ¡C·í¬Y¤Ñ¶}¾÷°ÏªÅ¶¡¤£¨¬ªº±¡§ÎÀò±o¸Ñ¨M®É¡A §Ú̱N·|¨Ï¥Î BIOS ªº©µ¦ù¥\¯à¨Ó¨ú±o°O¾ÐÅ骺§¹¾ã¸ê°T...¦ý²{¦b§ÚÌ ±N¥¦©ñ¦b kernel ³]©w¿ï¶µ¤¤¡C
options "MAXMEM=n"
n ¬O«ü±zªº°O¾ÐÅé¤j¤p¡A¥H KB ¬°³æ¦ì¡C¥H¤@¥x¦³ 128MB RAM ªº¾÷¾¹¨Ó»¡¡A±z¥i¨Ï¥Î 131072³oӼƦr¡C
³q±` FreeBSD ·|¨Ì¾Ú¾÷¾¹ª¬ªp¨Ó¦Û°Ê½Õ¾ã kernel ¬ÛÃö°Ñ¼Æ³]©w¡A¤ñ¦p¡G ®Ú¾Ú¾÷¾¹©Ò¸Ëªº RAM ¤j¤p¨Ó¨M©w¦P®É¥i¶}±ÒªºÀɮ׼ƶq¦h¹è¡C µM¦Ó¡A¦b 1GB RAM(§t¥H¤W) ªº¾÷¾¹¤W¡A³oÓ¡y¦Û°Ê½Õ¾ã¡zªº¾÷¨î¥i¯à¦³®É·|°ª¦ô¡G ¤ñ¤è»¡..¶}¾÷®É¡Akernel ·|¥ý°t¸m¦UºØ¤£¦P¥Î³~ªºªí®æ¤Î¨ä¥L¬[ºc©ñ¨ì°O¾ÐÅé¤W¡A µM«á¡A·í¾ãÓ§@·~¨t²Î³£¶}©l¹B§@¤§«á¡Akernel ´N·|¶}©l¤£°÷ªÅ¶¡¨Ó°µ°O¾ÐÅé°t¸mªº°ÊºA½Õ¾ã¡A ©ó¬O´N panic ±¾¤F¡C
¸Ñªk¬O¡G§â VM_KMEM_SIZE_MAX
¥[¨ì kernel ³]©wÀɤº¡A
¨Ã«·s½sĶ kernel¡A¤ñ¦p¡G
options
VM_KMEM_SIZE_MAX=419430400
³o¼Ë·|³]©w 400 MB ¨Óµ¹ kernel ¨Ï¥Î¡A¦Ó¥B±Ä¥Î 400 MB ªº¸Ü¡A ¥Ø«e¦b 6GB RAM ªº¾÷¾¹¤W³£¥i³Q¦³®Ä¹B¥Î¡C
¤§©Ò¥H panic ªºì¦]¦b©ó¨t²Î¥Î¥ú¤Fµ¹ network buffer ¥Î³~ªº virtual memory (¤×¨ä¬O mbuf clusters)¡C¸Ñªk¬O¼W¥[µ¹ mbuf clusters ¥Îªº virtual memory ¼Æ¶q¡A³o¨BÆJ½Ð°Ñ¾\ FreeBSD ¨Ï¥Î¤â¥Uªº ºô¸ô¨î½g ¡C
FreeBSD kernel ¥u¤¹³\¤@©w¼Æ¶qªº process ¦b¦P¤@®É¶¡¸Ì¦P ®É¹B§@¡C¦Ó³oӼƥجO®Ú¾Ú kernel ³]©wÀɸ̱ªº MAXUSERS ȨӨM©wªº¡CMAXUSERS ³oÓȤ]·|¼vÅT¨ä¥Lªº kernel ¤º©wÈ¡A¤ñ¦p»¡ network buffer (½Ð°Ñ¾\³oÓ¤§«e°Q ½×¹Lªº°ÝÃD)¡C¦pªG¾÷¾¹t²ü(load)«Ü«¡A±z¥i¯à»Ýn¼W¥[ MAXUSERS ³oÓÈ¡C³o»ò§@·|¤@¨Ö´£°ª¨t²Îªº¨ä¥L¤º ©wÈ¡A¥]¬A³Ì¤j¥i¾Ö¦³ªº process ¼Æµ¥¡C
Yn½Õ¾ã MAXUSERS¡A½Ð°Ñ¾\ FreeBSD ¨Ï¥Î¤â¥U¤¤ªº ÀÉ®×/Processªº¨î ³¹¸`¡C (ÁöµM¸Ó³B«üªº¬O¡yÀɮתº¶}±Ò¼Æ¶q¨î¡z¡A¦ý¤]¾A¥Î©ó process³¡¤À¡C)
¦b FreeBSD 4.4 ¤§«á¡AMAXUSERS ¤w¸gÅܦ¨¥i ¥H¾aµÛ§ó§ï
/boot/loader.conf ýªº kern.maxusers
³oÓȦӽվ㪺ÅܼƤF¡C¦Ó¦b¤§«e ªº FreeBSD
ª©¥»¤¤¡A³oÓÈ¥u¯à¦b kernel ³]©wÀÉý½Õ¾ã¡C
¦pªG¾÷¾¹t²ü¨Ã¤£«¡A¦Ó±z¥u¬O»Ýn¦P®É¶]«Ü¦h«Ü¦h process¡A ¨º»ò¤]¥i¥Hª½±µ¥Î sysctl ½Õ¾ã
kern.maxproc
È¡C °²¦p³o¨Ç process
³£¬OÄÝ©ó¬YӨϥΪ̪º¡A¨º»ò±zÁÙ»Ýn¥t ¥~½Õ¾ã kern.maxprocperuid
³oÓÈ¡A¨Ï¥¦¤ñ·s ªº kern.maxproc
³oÓÈ¤Ö 1 (¤@©wn¤Ö 1 ¡A ¦]¬° init(8)
³oÓ¨t²Îµ{¦¡µ´¹ïn«O«ù¦b¹B§@ª¬ºA)¡C
¦pªG·Q¦b¨C¦¸¶}¾÷³£n§ó§ï sysctl ªºÈ¡A¦Ó¥B±zªº FreeBSD ¬O ³Ìªñªºª©¥»ªº¸Ü¡A½Ð¦b /etc/sysctl.conf ³o ÓÀɤ¤³]©w¡A¦Ó¦pªG¬Oªºª©¥»¡A¥i¥H¦b /etc/rc.local ¤¤§@³]©w¡C
¥Î¨Ó°»´ú /var/db/kvm_*.db ¹L®ÉÀɮתº¾÷¨î°¸º¸·|µo¥Í°ÝÃD¡A¦Ó¨Ï¥Î¨ì¤F¤@Ó¤£¨ó½Õ (mismatch)ªºÀɮצ³®É´N·|¾ÉP panic¡C
¦pªGµo¥Í¤F³oÓ°ÝÃD¡A½Ð«·s¶}¾÷¡A¶i¤J single ¨Ï¥ÎªÌ¼Ò¦¡¡AµM«á°õ¦æ¡G
# rm /var/db/kvm_*.db
³o¬O¤@Ó©M Ultrastor SCSI ±±¨î¥d¦³Ãöªº½Ä¬ð¡]conflict¡^¡C
¦b¶}¾÷®É¡A¶i¤J kernel ³]©w¿ï³æ¨ú®ø uha0¡A¥¦¬O³y¦¨³oÓ°ÝÃDªºì¦]¡C
5.16. ¶}¾÷®É¡A¬Ý¨ì³oÓ¿ù»~°T®§ ¡§ahc0: illegal cable configuration¡¨¡C §Úªº±Æ½u½T©w¦³±µ¹ï¡C ¬O¥X¤F¤°»ò°ÝÃD©O¡H
±zªº¥D¾÷ªO¥i¯à¤£¤ä´©¦Û°Ê²×ºÝ¹qªý³]©w¡C½Ð¶i¨ì SCSI ªº BIOS ¸Ì±¤â°Ê«ü©w¥¿½Tªº²×ºÝ¹qªý¶¶§Ç¡A¦Ó¤£n¨Ï¥Î¦Û°Ê³]©w¡C AIC7XXX ªºÅX°Êµ{¦¡¨ÃµLªkª¾¹D¦³¨S¦³³o¨Ç±Æ½u°»´ú(¥H¤Î¦Û°Ê²×ºÝ¹qªý³]©w)ªº¹q¸ô(external logic) ¦s¦b¡C¦pªG EEPROM ¸Ì±ªº³]©w¬O "automatic termination" ®É¡A¥¦¥u·|³æ¯Â°²©w³o¨Ç¹q¸ô·íµM¬O¦s¦bªº¡C Y¯Ê¤Ö¤F³oÓ¹q¸ô¡AÅX°Êµ{¦¡¦b³]©w²×ºÝ¹qªý®É´N±`±`¥X°ÝÃD¡C ¦Ó³oºØ°ÝÃD±N¾ÉP SCSI ¶×¬y±Æªº¥i¾a©Ê°§C¡C
³oÓ°ÝÃD¦b sendmail ªº FAQ ¤¤¬O³o¼Ë¦^µªªº:-
* §Ú¤@ª½¦¬¨ì¦³Ãö "Local configuration error" ªº«H¥ó¡A¨Ò¦p¡G
553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error
§Ún¦p¦ó¸Ñ¨M³oÓ°ÝÃD¡H
±z§Q¥Î MX ³]©w¡AÅýn±H¨ì¬Y domain¡]¦p: domain.net¡^ªº«H¥ó¡A
±H¨ì±z©Ò«ü©wªº¾÷¾¹¡]¦b³oÓ¨Ò¤l¤¤¬° relay.domain.net¡^¡A¦ý¬O³o
³¡¾÷¾¹¨Ã¥¼³Q³]©w±µ¨ü domain.net ªº«H¥ó¡C½Ð§â domain.net ¥[¨ì
/etc/sendmail.cw ¤¤¡]¦pªG±z¦³¨Ï¥Î FEATURE(use_cw_file)) ©Î¬O
¦b sendmail.cf ¤¤¥[¤J "Cw domain.net"
³Ì·sª©¥»ªº sendmail FAQ ²{¦b¤w¤£¦AÀHµÛ sendmail ¡§¥X³f¡¨¡C ¥¦¥Ø«e¬O³Q©w´Áªºµoªí¦b
comp.mail.sendmail¡A comp.mail.misc¡Acomp.mail.smail¡Acomp.answers¡A©M news.answers.
±z¤]¥i¥H±H¤@«Ê Email ¨ì <mail-server@rtfm.mit.edu>
¡AµM«á¦b«H¥ó¤º¤å
¤¤¼g¤W send usenet/news.answers/mail/sendmail-faq ¥H¨ú±o³o¥÷ FAQ
¤å¥ó¡C
©Î³\»·ºÝ¾÷¾¹¨Ã«D±N±zªº²×ºÝ¾÷¼Ò¦¡³]¬° FreeBSD console ©Ò¥Îªº cons25¡A¦Ó¬O³]¬°¨ä¥¦¼Ò¦¡¡C
³o¨à¦³´XӸѨM³oÓ°ÝÃDªº¤èªk¡G
¦b logging ¶i»·ºÝ¾÷¾¹«á¡A§ó§ï±zªº shell ÅÜ¼Æ TERM ¬° ansi ©Î¬O sco ¡}¦pªG»·ºÝ¾÷¾¹¤ä´©³o¨Ç¼Ò¦¡ªº¸Ü¡^¡C
¨Ï¥Î¤ä´© VT100 ªº¼ÒÀÀ³nÅé¡A¦p FreeBSD console ¤Uªº screen ³nÅé¡C screen ´£¨Ñ±z¦b¤@Ó terminal ý¦P®É¶]¦n´XÓ session ªº¯à¤O¡A¦Ó¥B¥¦¥»¨¤]¬O¤@Ó¬Û·í¦n ªº³nÅé¡C¨CÓ screen ³£¹³¬O¤@Ó VT100 ªº²×ºÝ¾÷¡A©Ò¥H»·ºÝ¾÷¾¹ªº TERM ÅܼÆÀ³¸Ó³]¬° vt100¡C
¦b»·ºÝ¾÷¾¹ªº²×ºÝ¾÷¸ê®Æ®w¡]terminal database¡^¤¤¥[¤J cons25 ªº¸ê®Æ¡C¥[¤Jªº¤èªkµø»·ºÝ¾÷¾¹ªº §@·~¨t²Î¤£¦P¦Ó¦³©Ò®t²§¡C½Ð°Ñ¾\»·ºÝ¾÷¾¹µ¹¨t²ÎºÞ²zûªº»¡©ú ®Ñ¡AÀ³¸Ó·|¦³©ÒÀ°§U¡C
±Ò°Ê FreeBSD ªº X ¦øªA¾¹¡AµM«á¨Ï¥Î¤@¨Ç X Window ¤Uªº ²×ºÝ¾÷¼ÒÀÀ¾¹¨Óµn¤J»·ºÝ¾÷¾¹¡A¨Ò¦p xterm ©Î rxvt¡C¦Ó»·ºÝ¾÷¾¹ªº TERM ÅܼÆÀ³¸Ón ³]¬° xterm ©Î vt100¡C
¸ò¤¤Â_¡]interrupt¡^¦³Ãöªº¤£¦PµwÅé »P/©Î ³nÅ骺·f°t³£¦³¥i¯à³y¦¨ ³oÓ°ÝÃD¡C³o¦³¥i¯à¬O bug ©Î¬O¬YӸ˸m¥»¨ªº°ÝÃD¡C¦b¥¦æ°ð¤W¨Ï¥Î ¤jªº MTU ¨Ó§@ TCP/IP ¶Ç¿é¥i¥H«²{³oÓ°ÝÃD¡CY¬O¹Ï§Î¥[³t¥d³y¦¨³oÓ °ÝÃDªº¸Ü¡A±zÀ³¸Ó¥ýÀˬd¥dªº¤¤Â_³]©w¡C
³oÓ°ÝÃDªºÃä»Ú®ÄÀ³¬O·|³y¦¨¦³¨Ç process ¥X²{ ¡§SIGXCPU exceeded cpu time limit¡¨ ªº°T®§¡A¦Ó¤£¥¿±` °±¤î¡C
Y¬O FreeBSD 3.0 ©Î¬O 1998 ¦~ 11 ¤ë 29 ¤é¥H«á¨ä¥Lª©¥»¡A¸U¤@ ³oÓ°ÝÃD¤@ª½µLªk¥H¨ä¥L¤èªk¸Ñ¨M¡A´N¥u¯à³]©w sysctl ÅܼơG
# sysctl -w kern.timecounter.method=1
³o¼Ë·|¹ï®Ä¯à¦³¨Ç¼vÅT¡A¦ý¬OY¦Ò¼{¨ì³oÓ°ÝÃD±a¨Óªº«áªG¡A³o¼Ë°µ ¬Oȱoªº¡C¦pªG³oÓ°ÝÃDÁÙ¬O¦s¦bªº¸Ü¡AÅý sysctl ¨ºÓȨ̵M³]¬° 1¡A µM«á¼W¥[ kernel ³]©wÀɤ¤ NTIMECOUNTER ³oÓ¿ï ¶µªº¼ÆÈ¡C¦pªG±z±N NTIMECOUNTER ¼W¥[¨ì 20 ¨Ì µMµLªk¸Ñ¨M³oÓ°ÝÃD¡A¨º»ò±z¾÷¾¹¤Wªº¤¤Â_¤w¸g¦h¨ìµLªkÅýp¼Æ¾¹ºû«ù¦b ¥i¾aªºª¬ºA¤F¡C
5.20. ¥X²{ ¡§pcm0 not found¡¨ ³oÓ°T®§¡A©ÎªÌ¬O §Úªºµ®Ä¥dÅܦ¨¤F pcm1¡A¦ý¦b kernel ³]©w ÀÉý§Ú¬O³] device pcm0 °Ú¡C³o¬O«ç»ò¦^¨Æ©O¡H
¦pªG±z¦b FreeBSD 3.x ¤W¨Ï¥Î PCI µ®Ä¥d´N·|µo¥Í³oºØ°ÝÃD¡C ¦]¬°pcm0 ³oÓ device ¬O¤º©w«O¯dµ¹ ISA ªºµ®Ä¥dªº¡A©Ò¥H¦pªG±z¦³¤@±i PCI ªºµ®Ä¥d¡A±z´N·|¹J¨ì³oÓ°ÝÃD¡A ¦Ó±zªº¥d·|Åܦ¨ pcm1¡C
Note: ¦pªG±z¥u§â kernel ³]©wÀɤ¤ªº³]©w§ï¦¨ device pcm1 ¬OµLªk°£¥h³oÓĵ§i°T®§ªº¡A ³o¼Ë·|³y¦¨ pcm1 ³Q«O¯dµ¹ ISA µ®Ä¥d¡A ¦Ó PCI µ®Ä¥d«h·|Åܦ¨ pcm2 ¡]¥~¥[ ¡§pcm1 not found¡¨ ªºÄµ§i°T®§¡^¡C
¦pªG±z¦³¤@±i PCI ªºµ®Ä¥d¡A±z»Ýn make snd1 ³oÓ device¡A¦Ó¤£¬O snd0¡G
# cd /dev # ./MAKEDEV snd1
³oÓ°ÝÃD¦b FreeBSD 4.x ¤W¨Ã¤£·|µo¥Í¡A¦]¬°«Ü¦h¤H§ë¤U¤F³\¦h¤ß ¤OÅý¥¦§óPnP ¾É¦V¡A¦Ó¥B pcm0 ³oÓ device ¤]¤£¦A¬O¥u«O¯dµ¹ ISA ªºµ®Ä¥d¤F¡C
FreeBSD 4.X ²{¦b¤w¸g§ó PnP ¾É¦V¤F¡A ¦ÓÃä»Ú®ÄÀ³´N¬O·|µo¥Í¦³¨Ç¦b FreeBSD 3.X ¥i¥H¥Îªº PnP ¸Ë¸m ¡]¦pµ®Ä¥d©Î¬O¤º´¡¦¡¼Æ¾Ú¾÷¡^Åܦ¨µLªk¨Ï¥Î¡C
³oÓì¦]¥i¥H¥Î¤@«Ê¥Ñ Peter Wemm µo¨ì freebsd-questions ³oÓ mailing list ¤Wªº«H¨Ó¸ÑÄÀ¡A¥¦ì¥»¬O¸ÑÄÀ¬°¤°»ò¦³¤@Ó¤º ´¡¦¡¼Æ¾Ú¾÷¡A¦b¨t²Î¤É¯Å¨ì FreeBSD 4.x «á¡A´N¨Sªk³Q§ì¨ì¤F ¡]¦b [] ýªº¬O¥t¥~¥[ªºµù¸Ñ¡AÅý¤º®e§ó©öÀ´¡^¡C
The PNP bios preconfigured it [the modem] and left it laying around in port space¡Aso [in 3.x] the old-style ISA probes ¡§found¡¨ it there.
Under 4.0¡Athe ISA code is much more PnP-centric. It was possible [in 3.x] for an ISA probe to find a ¡§stray¡¨ device and then for the PNP device id to match and then fail due to resource conflicts. So¡Ait disables the programmable cards first so this double probing cannot happen. It also means that it needs to know the PnP id's for supported PnP hardware. Making this more user tweakable is on the TODO list.
¦pªGnÅý¸Ë¸m¯à¦A«×¹B§@¡A§ÚÌ»Ýn§ä¥X¥¦ªº PnP id¡AµM«á¦A±N¥¦ ¥[¤J¤@¥÷¦b°»´ú ISA ¸Ë¸m®É·|¨Ï¥Îªºªí¤¤¡C¥i¥H°õ¦æ pnpinfo(8) ¨Ó°»´ú³oӸ˸m¡AÁ|¨Ò¨Ó»¡¡A¤U±¬O pnpinfo(8) §ì¨ìªº¤@Ó¤º´¡ ¦¡¼Æ¾Ú¾÷ªº¸ê®Æ¡G
# pnpinfo Checking for Plug-n-Play devices... Card assigned CSN #1 Vendor ID PMC2430 (0x3024a341)¡ASerial Number 0xffffffff PnP Version 1.0¡AVendor Version 0 Device Description: Pace 56 Voice Internal Plug & Play Modem Logical Device ID: PMC2430 0x3024a341 #0 Device supports I/O Range Check TAG Start DF I/O Range 0x3f8 .. 0x3f8¡Aalignment 0x8¡Alen 0x8 [16-bit addr] IRQ: 4 - only one type (true/edge)
[more TAG lines elided]
TAG End DF End Tag Successfully got 31 resources¡A1 logical fdevs -- card select # 0x0001 CSN PMC2430 (0x3024a341)¡ASerial Number 0xffffffff Logical device #0 IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 IRQ 5 0 DMA 4 0 IO range check 0x00 activate 0x01
±z©Ò»Ýnªº¸ê°T¬O¤@¶}©l¬Ý¨ìªº ¡§Vendor ID¡¨ ³o¤@¦æ¡C¬A¸¹¤¤ªº¤Q¤»¦ì¤¸½X¡]³oÓ¨Ò¤l¤¤¬O 0x3024a341¡^´N¬O PnP id¡A¦Ó¦b³o¤§«eªº¦r¦ê¡]PMC2430¡^«h¬O¤@Ó¿W¤@µL¤Gªº ASCII id¡C ¦Ó³o¨Ç¸ê®Æ»Ýn³Q¥[¨ì /usr/src/sys/isa/sio.c ³oÓÀÉ®×ý¡C
¬°¤F¨¾¤î¥ô¦óªF¦è¥X¿ù¡A±zÀ³¸Ón¥ý³Æ¥÷¥Ø«eªº sio.c¡C¦Ó¥B±zn submit PR ®É¤]»Ýn³oÓ ì©lÀɮרӰµ¥X patch¡]±zÀ³¸Ó·|±N¥¦ submit PR §a..¡G¡^..¡^¡C ±µµÛ´N½s¿è sio.c §ä´M¤U±³o¦æ
static struct isa_pnp_id sio_ids[] = {
±µµÛ©¹¤U±²°Ê¡A§äÓ¥¿½Tªº¦ì¸m¨Ó´¡¤J±zªº¸Ë¸m¸ê°T¡C±z¬Ý¨ìªº´N ¤U±³oӼˤl¡A¥¦Ì¬O·Ó¥kÃäµù¸Ñ¸Ì±ªº ASCII ³oÓ Vender ID °µ±Æ §Çªº¡A©Î¬O pnpinfo(8) ©Ò§ä¨ìªº¤@³¡¤À ¸Ë¸m´yz¡G
{0x0f804f3f¡ANULL}¡A /* OZO800f - Zoom 2812 (56k Modem) */ {0x39804f3f¡ANULL}¡A /* OZO8039 - Zoom 56k flex */ {0x3024a341¡ANULL}¡A /* PMC2430 - Pace 56 Voice Internal Modem */ {0x1000eb49¡ANULL}¡A /* ROK0010 - Rockwell ? */ {0x5002734a¡ANULL}¡A /* RSS0250 - 5614Jx3(G) Internal Modem */
§â±z³oӸ˸mªº¤Q¤»¶i¦ìªº Vender ID ¥[¨ì¥¿½Tªº¦a¤è¡A¦sÀÉ¡A µM«á«·s½s¤@Ó kernel¡A¦A«¶}¾÷¡C¤§«á³oӸ˸mÀ³¸Ó´N·|¹³¦b FreeBSD 3.X ¤U¡A³Q°»´ú¬° sio ¸Ë¸m¤F¡C
³oÓ°ÝÃD¬O¦]¬°±z¶]ªºµ{¦¡»Ýn¤@Ó¯S§Oªº kernel symbol¡A¥i¬O ¤£ª¾¹D¤°»òì¦]¦Ó§ä¤£¨ì¡Q¦Ó·|µo¥Í³oÓ°ÝÃD¥i¯à¬O¦]¬°¤U±¨âÓì¦]¡G
±zªº kernel ©M userland ªºÀɮת©¥»¨Ã¤£¤@P¡]¨Ò¦p»¡¡A±z ½s¤F¤@Ó·sªº kernel¡A¦ý¬O¨Ã¨S¦³°õ¦æ¹ïÀ³ªº installworld¡A©Î¬O¨ä¥LÃþ¦ü±¡§Î¡^¡A ¦]¦¹ symbol table ªº¤º®e´N©MÀ³¥Îµ{¦¡½sĶ®Éªº¤£¤Ó¤@¼Ë¤F¡C¦p ªG¬O³oºØ±¡§Î¡A½Ð°õ¦æ§¹¾ãªº¤É¯Å¨BÆJ¡]½Ð°Ñ¾\ /usr/src/UPDATING ¥H±oª¾¥¿½Tªº¬y µ{¡^¡C
±z¨S¦³¥Î /boot/loader ¨Ó¸ü¤J±zªº kernel¡A¦Ó¬Oª½±µ¥Ñ boot2 ¶}¾÷¡]½Ð°Ñ¾\ boot(8)¡^¡C ÁöµM»¡¸õ¹L /boot/loader ¨Ã¨S¦³¤°»ò¿ù¡A ¦ý¬O¥¦¦b kernel symbols ¸òÀ³¥Îµ{¦¡ªº·¾³q¤è±¦û¤F«Ü«ªº¥÷¶q¡C
¯gª¬¡GTCP ³s½u«Ø¥ß¤§«á©M¸ß°Ý±K½X¤§«e¡]¦pªG¬O¦b»¡ telnet(1) ªº¸Ü¡A«h¬O login ´£¥Ü²Å¸¹¸õ¥X¨Ó¤§«e¡^¡Anµ¥«Ý«Üªøªº¤@¬q®É ¶¡¡C
°ÝÃD©Ò¦b¡G³oºØ©µ¿ð±¡§Î±`±`¬O¦]¬°¦øªA³nÅé¡]server software¡^ ¹Á¸Õn±N«È¤áºÝ¡]client¡^ªº IP ¦ì§}Âà´«¦¨¥D¾÷¦WºÙ¡C¦]¬°«Ü¦h¦øªA ³nÅé¡A¥]¬A FreeBSD ¤º«Øªº Telnet ©M SSH¡A¬°¤F±N¥D¾÷¦WºÙ¼g¤J¬ö ¿ýÀɤ¤¥H¨ÑºÞ²zªÌ§@°Ñ¦Ò¡A¦Ó·|°µ³o¶µ°Ê§@¡C
¸Ñ¨M¤èªk¡G¦pªG³oÓ°ÝÃD¦b±z³s±µ¤£¦Pªº¦øªA¾¹®É³£·|µo¥Í¡A¨º»ò °ÝÃD¬O¦b±z«È¤áºÝ³o¤@¤è¡Q¦P¼Ëªº¡A¦pªG§O¤H¥u¦³¦b³s¨ì±zªº¦øªA¾¹¤W ¤~·|µo¥Í³oÓ±¡§Î¡A¨º»ò°ÝÃD´N¬O¦b¦øªA¾¹³oÃä¤F¡C
¦pªG¬O«È¤áºÝ³o¤è¦³°ÝÃD¡A°ß¤@ªº¤èªk´N¬O±N DNS ¦øªA¾¹×¦n¡A ³o¼Ë¹ï¤è¦øªA¾¹¤~¯à¥¿½TªºÂà´«¦WºÙ¡C¦pªG°ÝÃD¬O¦b¤º³¡°Ï°ìºô¸ôµo ¥Íªº¡A³oÀ³¸Ó¬O¦øªA¾¹¦³°ÝÃD¡A½Ð¸Ô²ÓÀˬd¤@¤U¡Q¬Û¤Ïªº¡A¦pªG¬O±z ¦b¤W Internet ®Éµo¥Íªº¡A¨º»ò±z»Ýn¸ò±zªº ISP Ápµ¸¡A½Ð¥L̸ѨM ³oÓ°ÝÃD¡C
¦pªG¬O¦øªA¾¹³oÃ䪺°ÝÃD¡A¦Ó¥B¬Oµo¥Í¦b¤º³¡°Ï°ìºô¸ô¡A¨º»ò±z»Ý n³]©w³oÓ¦øªA¾¹¡A¨Ï¥¦¯à¥¿½T±N¤º³¡ºô¸ôªº IP ¦ì§}Âà´«¬°¥D¾÷¦WºÙ¡C ½Ð°Ñ¾\ hosts(5) ©M named(8) ªº»¡©ú¥HÀò±o§ó¦h¸ê°T¡C¦p ªG¬O¦b Internet ¤Wªº¦øªA¾¹µo¥Í³oÓ°ÝÃD¡A¨º»ò¦³¥i¯à¬O±z¦øªA¾¹ªº Âà´«¥\¯à¥X°ÝÃD¡C±z¥i¥H¸Õ¸Õ¬d¸ß¥t¤@Ó¥D¾÷¦WºÙ¡A¤ñ¦p¡G www.yahoo.com¡C¦pªG¬d¤£¨ì¡A¨º»ò¥i¥H½T©w¬O±z³o Ãä¥X°ÝÃD¤F¡C
Stray IRQs ¬OµwÅé IRQ ¦³ÂI¤p°ÝÃDªº²{¶H¡A¤j¦h¬O¦]¬°µwÅ饻¨ ¦bµo¥X¤¤Â_»Ý¨D«á¡A¤S¨ú®ø¤F¥¦¦Û¤vªº¤¤Â_n¨D¡C
¦³¤TÓ¤èªk¥i¥HÀ³¥I³oÓ°ÝÃD¡G
¤£²z·|³oÓĵ§i¡C¤Ï¥¿¤@Ó irq ¥X²{¤¦¸Äµ§i«á¨t²Î´N¤£·| ¦AÅã¥Ü¤F¡C
§â isa_strayintr()
ýªºÈ¡A¥Ñ 5 §ï¦¨
0¡A³o¼Ë©Ò¦³ªºÄµ§i°T®§³£¤£·|¥X²{¡C
¦w¸Ë¨Ï¥Î irq 7 ªº¥¦æ°ðµwÅé³]³Æ¡A¥H¤Î¥¦ªº PPP ÅX°Êµ{¦¡ ¡]³oÓ¤j³¡¤À¨t²Î³£¦³°µ¡^¡A±µµÛ¦w¸Ë ide µwºÐ©Î¬O¨ä¥L·|¨Ï¥Î irq 15 ªºµwÅé³]³Æ¥H¤Î¥¦ªºÅX°Êµ{¦¡¡C
³oÓ¿ù»~°T®§¥Nªí¤F±z¨t²Îªº file descriptors ¤w¸g¨Ï¥Î¥ú¤F¡C ½Ð°Ñ¾\¤â¥U¤º Tuning Kernel Limits ¸Ì±ªº kern.maxfiles ³oÓ³¹¸`¡A¸Ì±¦³¤@¨Ç°Q½×¤Î¸Ñ¨M¤èªk¡C
±zªºµ§°O«¬¹q¸£¸Ì¦³¨âÓ¥H¤Wªº®ÉÄÁ¡A¦Ó FreeBSD ¿ï¨ì¤F¿ùªº ¨ºÓ¡C
°õ¦æ dmesg(8)¡AÀˬd¤@¤U¦³ Timecounter ¦r¦êªº¨º´X¦æ¡C³Ì«á¤@¦æ¬O FreeBSD ¿ï¥Îªº¡A³q±`¬O TSC¡C
# dmesg | grep Timecounter Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 595573479 Hz
±z¥i¥H°õ¦æ sysctl(3) ¬Ý¤@¤U
kern.timecounter.hardware
³oÓȰµ½T»{¡C
# sysctl kern.timecounter.hardware kern.timecounter.hardware: TSC
BIOS ¥i¯à¦b¤@¨Ç±¡§Î¤U·|§ó§ï TSC ªº®É¯ß¡X¡X¦³®ÉÔ¬O¦]¬° ¦b¨Ï¥Î¹q¦À¤u§@®É·|§ó§ï³B²z¾¹ªº³t«×¡A¥t¥~¤]¦³¥i¯à¬O¶i¤J¤F¬Ù¹q¼Ò ¦¡¡A¥i¬O FreeBSD ¨Ã¤£·|¹îı¨ì³o¨Ç½Õ¾ã¡A¦Ó·|µo¥Í®É¶¡¼W¥[©Î¬O´î ¤Öªº±¡§Î¡C
¦b¤W±ªº¨Ò¤l·í¤¤¡A§Ú̬ݨìÁÙ¦³ i8254 ³oÓ®ÉÄÁ¥i¥H¿ï¾Ü¡A°õ¦æ
sysctl(3)
¥Î¤â°Êªº¤è¦¡±N³oÓȼg¤J kern.timecounter.hardware
¤¤¡C
# sysctl -w kern.timecounter.hardware=i8254 kern.timecounter.hardware: TSC -> i8254
³o¼Ë±zªºµ§°O«¬¹q¸£À³¸Ó´N¥i¥H«O«ù¥¿½Tªº®É¶¡¤F¡C
¦pªGnÅý³oÓ§ó§ïªº°Ê§@¦A¨C¦¸¶}¾÷®É¦Û°Ê°õ¦æ¡A¦b /etc/sysctl.conf ý¥[¤J¤U±³o¦æ¡C
kern.timecounter.hardware=i8254
³oÓ°ÝÃD±`±`µo¥Í¦bÄé¤F¦hÓ§@·~¨t²Îªºµ§°O«¬¹q¸£¤W¡C¦³¨Ç«D BSD ªº§@·~¨t²Î·|Åý PC card ªºµwÅé¸Ë¸m³B¦b¤@Ó¤£¤@Pªºª¬ºA¤U ¡]inconsistent state¡^¡C¨Ï±o pccardd ¦b°» ´ú³o¤ù¥d®É¡AµLªk§ì¨ì¥¿½Tªº«¬¸¹¡A¦Ó¬O ¡§"(null)""(null)"¡¨¡C
±z»Ýn²¾°£ PC card ´¡¼Ñªº¹q·½¥H«¸m³oÓµwÅé¸Ë¸m¡C¤@Ó¤èªk¬O ±N±zªºµ§°O«¬¹q¸£Ãö¾÷¡]¤£¬O¥ð¯v¼Ò¦¡¡A¤]¤£¬O«Ý©R¼Ò¦¡¡Qn§¹¥þªºÃö ¾÷¡^¡Cµ¥Ó´X¬íÄÁ¦A«¶}¾÷¡C³o¼Ë±zªº PC card À³¸Ó´N¥¿±`¤F¡C
¦³®É¦³¨Çµ§°O«¬¹q¸£ÁöµM¬Ý°_¨Ó¤w¸gÃö¾÷¤F¡A¦ý¹ê»Ú¤W¨Ã¨S¦³¡C ¦pªG±zµo²{¤W±¨ºÓ¤èªk¨S¦³¥Î¡A½ÐÃö¾÷¡A²¾°£¹q¦À¡Aµ¥Ó´X¬íÄÁ¡A §â¹q¦À¸Ë¤W¥hµM«á«¶}¾÷¡C
³o¬O¦]¬°FreeBSD ªº boot loader µLªk¥¿½Tªº§ä¥XµwºÐªº geometry¡C³o¼Ëªº¸Ü¡A´N»Ýn¦b¥Î fdisk ¤À³Î©Î¬O×§ï FreeBSD ªº slice ®É¡A¤â°Ê±N¥¿½TªºÈ¿é¤J¶i¥h¤F¡C
¥¿½TªºµwºÐ geometry Ȧb BIOS ¸Ì±¥i¥H¬dªº¨ì¡Cª`·N¸ÓµwºÐªº cylinders¡Aheads ¥H¤Î sectors ³o¨Ç¼ÆÈ¡C
¦b°õ¦æ sysinstall(8)ªº fdisk ®É¡A«ö¤U G ¥H«K¤â°Ê³]©wµwºÐªº geometry¡C
³o®É·|¦³¤@Ó¹ï¸Ü®Ø¸õ¥X¨Ó¡A¸ß°Ý±z¦³Ãö cylinders¡Aheads ¥H¤Î sectors ³o¨ÇªF¦èªºÈ¡C½Ð±Nèè¦b BIOS ¬d¨ìªº¼Æ¦r¡A¥H / §@¤À¹j¿é ¤J¶i¥h¡C
Á|¨Ò¨Ó»¡¡A¦pªG¬O 5000 cylinders¡A250 sectors ©M 60 sectors ´N¿é¤J 5000/250/60
¿é¤J§¹«á½Ð«ö enter Áä½T»{¡A³Ì«á«ö¤U W Áä§â ·sªº¤À³Î°Ïªí¼g¤JµwºÐ·í¤¤¡C
°õ¦æ sysinstall(8) ±µµÛ¿ï Configure¡AµM«á¿ï Fdisk¡C ¦A¨Ó¥ÎªÅ¥ÕÁä¿ï¾Üì¥ý Boot Manager ©Ò¦bªºµwºÐ¡C «ö¤U W Áä¨Ó§@¼g¤Jªº°Ê§@¡C³o®É·|¸õ¥X¤@Ó´£¥Ü °T®§¡A¸ß°Ý±zn¦w¸Ëþ¤@Ó boot loader¡C½Ð¿ï¾Ü Boot Manager¡A ³o¼Ë´N¥i¥H±N¥¦ÁÙì¤F¡C
³oÓ°T®§¬O»¡¦³¤@Ó°õ¦æµ{§Ç¥¿¦b¹Á¸Õ±N¤À¶°O¾ÐÅé¡]page memory¡^ ¼g¤JµwºÐ¤¤¡A¦Ó³oӰʧ@¹Á¸Õ¤F 20 ¬íÄÁ¤´µMµLªk¦¨¥\¡C³oÓ¦³¥i¯à¬O¦]¬° µwºÐ¦³Ãay¡B¹q¸ô©Î±Æ½u¦³°ÝÃD¡B¥H¤Î¨ä¥L¸òµwºÐŪ¥X¼g¤J¦³ÃöªºµwÅé³]³Æ¡C ¦pªG¯uªº¬OµwºÐÃayªº°ÝÃD¡A±zÀ³¸Ó·|¦b /var/log/messages³oÓÀɮפ¤¡A©Î¬O¦b°õ¦æ dmesg³oÓ«ü¥O«á¡A¬Ý¨ì¦³ÃöºÏºÐ¿ù»~ªº°T®§¡C ¦pªG¨S¦³¡A¨º»ò½ÐÀˬd±zªº±Æ½uÁÙ¦³±µÀY³s±µ¬O§_¨}¦n¡C
³o¿ù»~°T®§¨Ã¤£¬O«ü touch(1) µ{¦¡¤£¨£¤F¡A¨Æ¹ê¤W¥i¯à¬O¸ÓÀÉÀɮ׮ɶ¡³Q³]¬°¥¼¨Óªº®É¶¡¡C Y¾÷¾¹¤Wªº CMOS-clock ®ÉÄÁ³]©w¬°·í¦a®É¶¡ («D®æªL«Âªv®É¶¡¡A¤ñ¦p¥xÆW®É¶¡¬° GMT +08:00 ¡A¤]´N¬O CST ¤¤ì¼Ð·Ç®É¶¡)¡A ¨º»ò½Ð¦b¶}¾÷®É¡A¥ý¿ï single user ¼Ò¦¡¶i¤J¡AµM«á¥´ adjkerntz -i ¨Ó½Õ¾ã kernel clock »P¾÷¾¹¤Wªº CMOS-clock ¨Ó¦P¨B¡C
¥»¤å¤Î¨ä¥L¤å¥ó¡A¥i¥Ñ¦¹¤U¸ü¡Gftp://ftp.FreeBSD.org/pub/FreeBSD/doc/¡C
Y¦³ FreeBSD ¤è±ºÃ°Ý¡A½Ð¥ý¾\Ū FreeBSD ¬ÛÃö¤å¥ó¡A¦p¤£¯à¸Ñ¨Mªº¸Ü¡A¦A¬¢¸ß
<questions@FreeBSD.org>¡C
Ãö©ó¥»¤å¥óªº°ÝÃD¡A½Ð¬¢¸ß <doc@FreeBSD.org>¡C