¼ö¸¹Àº ÈǸ¢ÇÑ ±â´É¿¡µµ ºÒ±¸ÇÏ°í ¸®´ª½º´Â ¾ÆÁ÷µµ Ç÷¯±× ¾Ø Ç÷¹ÀÌ(PnP) Çϵå¿þ¾î¸¦ Á¦´ë·Î Áö¿øÇÏÁö ¸øÇÏ°í ÀÖ´Ù. ¿©·¯ºÐµµ ¾Ë´Ù½ÃÇÇ Ç÷¯±× ¾Ø Ç÷¹ÀÌ´Â IBM ¾ÆÅ°ÅØóÀÇ Çϵå¿þ¾î¿¡¼ ÁÖº¯±â±â¸¦ ¼³Ä¡ÇÒ ¶§ÀÇ ¾ÆÁÖ °íÁúÀûÀÎ I/O ÁÖ¼Ò, IRQ, DMA ¼³Á¤ ¹®Á¦¿¡¼ÀÇ ºÒÆíÇÔÀ» ÇؼÒÇϱâ À§Çؼ ³ª¿Â °³³äÀ̸ç ÀÌ¹Ì »ó´çÈ÷ ¿À·¡ ÀüºÎÅÍ ÇÊ¿äÇÑ Çʼö ±â´ÉÀ̾ú´Ù.
½ÇÁ¦ PnP Çϵå¿þ¾î ÀνÄ/¼³Á¤ ±â´ÉÀÌ ¾ó¸¶³ª È¿À²ÀûÀΰ¡ÀÇ ¹®Á¦´Â Á¦Ãĵΰí¶óµµ ÄÄÇ»ÅÍ »ê¾÷ÀÇ Å« Èûµé¿¡ ÀÇÇÏ¿© ÀÌ¹Ì Ç¥ÁØÀûÀÎ ±â´ÉÀÌ µÇ¾î¹ö¸° »óÅÂÀ̹ǷΠ¹Ý·ÐÀÇ ¿©Áö¾øÀÌ PnP ±â´ÉÀº ¸®´ª½º Ä¿³ÎÀÇ ÁÖ¿ä ±â´ÉÀ¸·Î ÀÚ¸®Àâ¾Æ¾ß ÇÑ´Ù°í º»´Ù.
¹°·Ð ´ëºÎºÐÀÇ ÀåÄ¡¿¡ ´ëÇÏ¿© Çϵå¿þ¾î ÀνĽÿ¡ Àß Ã£¾Æ³»¾î »ç¿ëÇÏÁö¸¸ Ç¥ÁØÀûÀÎ I/O ÁÖ¼Ò ¶Ç´Â IRQ¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì¿¡´Â Á¦´ë·Î ÀνÄÇÏÁö ¸øÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ÁÖº¯ÀåÄ¡¸¦ ¾ó¸¶ °®°í ÀÖÁö ¾ÊÀº »ç¶÷µé¿¡°Ô´Â º° ¹®Á¦µÇÁö ¾ÊÁö¸¸ À̼³×Æ® Ä«µå¸¦ µÎ °³ ÀνĽÃÄÑ¾ß ÇÑ´ÙµçÁö ÇÒ ¶§´Â °ñÄ¡ ¾ÆÇ ÀÏÀÌ ¾Æ´Ò ¼ö ¾ø´Ù.
´ëºÎºÐÀº ÁÖº¯ÀåÄ¡¿Í °°ÀÌ Æ÷ÀåµÇ¾î ÀÖ´Â PnP ±â´ÉÀ» ²ô´Â µµ½º¿ë ¼ÒÇÁÆ®¿þ¾î¸¦ °¡Áö°í ƯÁ¤ ÁÖ¼Ò¿Í IRQ¸¦ ¸ÂÃç¼ »ç¿ëÇϱ⵵ ÇÏÁö¸¸ ÇÊÀÚÀÇ °æÇèÀ¸·Î´Â Á¦´ë·Î µÇÁö ¾Ê´Â °æ¿ì°¡ Çã´ÙÇß´Ù. ÀÌ¿¡ ´ëÇÑ ´äÀÌ ÀÖ´Ù. ¾ÆÁ÷ ¸®´ª½º Ä¿³Î¿¡¼ PnP°¡ Áö¿øµÇÁö´Â ¾ÊÁö¸¸ ISA PnP ÅøÀ̶ó´Â °ÍÀ» »ç¿ëÇÏ¸é °ÅÀÇ ´ëºÎºÐÀÇ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
±×¸®°í ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥¼¼°è 1¿ùÈ£ ºÎ·ÏÀÎ ¾ËÂ¥ ·¹µåÇÞ 4.0 CD¸¦ °¡Áö°í ÀÖ´Ù¸é ´Ù¸é CD·ÒÀ» ¸¶¿îÆ®ÇÑ ÈÄ ¸¶¿îÆ® µð·ºÅ͸®·ÎºÎÅÍ misc/pnp/utils À§Ä¡¿¡¼ isapnptools-1.8.tgz ÆÄÀÏÀ» ã¾Æº¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÊÀÚ°¡ º» ÃֽŠ¼Ò½º´Â 1.9 ¹öÀüÀ̾ú°í ¾ËÂù ¸Ç ÆäÀÌÁöµµ µé¾îÀÖ¾ú´Ù.
/etc/isapnp.conf
/usr/man/man5/isapnp.conf.5
/usr/man/man8/isapnp.8
/usr/sbin/isapnp
/usr/sbin/pnpdump
¸î °¡Áö °£´ÜÇÑ ±ÔÄ¢¸¸ ÀÍÈ÷¸é µÈ´Ù. ISA PnP µµ±¸ÀÇ »ç¿ë¹ýÀº ´ÙÀ½°ú °°Àº ÀýÂ÷¸¦ °ÅÄ£´Ù.
¿©±â¼ ÇÑ °¡Áö Áß¿äÇÏ°Ô Â¤°í ³Ñ¾î°¡¾ß ÇÒ Á¡ÀÌ ÀÖ´Ù. ISA PnP µµ±¸¸¦ »ç¿ëÇÏ¿© ¼³Á¤ÇÒ ¼ö ÀÖ´Â Çϵå¿þ¾î´Â ¸®´ª½º¿¡¼ ±× ±â´ÉÀ» ¸ðµâ·Î Á¦°øÇÏ´Â °Í¿¡¸¸ À¯È¿ÇÏ´Ù. ÀÌ¹Ì Ä¿³Î ¾ÈÀ¸·Î µé¾î°¡ ¹ö¸° ±â´É¿¡ ´ëÇؼ´Â ISA PnP µµ±¸¸¦ ¾µ ±âȸ°¡ ÁÖ¾îÁöÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ÇÏÁö¸¸ ¸®´ª½º Ä¿³Î ±â´ÉÀÇ ´ëºÎºÐÀÌ ¸ðµâ·Î µ¶¸³ÇÏ¿© »ç¿ëÇÒ ¼ö Àֱ⿡ ¹®Á¦µÇ´Â °æ¿ì´Â °ÅÀÇ ¾øÀ» °ÍÀÌ´Ù.
ÇÊÀÚ°¡ ÄÄÆÄÀÏÇÑ È¯°æÀº Ä¿³Î ¹öÀü 2.0.30, C ¶óÀ̺귯¸® 5.4.23, ÄÄÆÄÀÏ·¯´Â gcc 2.7.2.1 ÀÌ´Ù. °£´ÜÈ÷ ¼Ò½º¸¦ Ç®°í make ¸í·ÉÀ» ³»¸®¸é ´ÙÀ½°ú °°Àº ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª¿Â´Ù.
[yong@freeyong isapnptools-1.8]$ make
cc -O2 -Wall -DREALTIME -DNEEDSETSCHEDULER
-DNEEDNANOSLEEP -c pnpdump.c -o pnpdump.o
pnpdump.c:36: conflicting types for `nanosleep'
/usr/include/time.h:124: previous declaration
of `nanosleep'
make: *** [pnpdump.o] Error 1
°³¹ßÀÚÀÇ °³¹ßȯ°æÀÌ ¾î¶²Áö´Â ¸ð¸£°ÚÀ¸³ª Makefile¿¡¼ PNPFLAGS ºÎºÐ¿¡¼ -DNEEDNANOSLEEPÀ» »èÁ¦ÇÑ´Ù. ÀÌ ¹æ¹ýÀº README¿¡ ÀûÇôÀÖ´Â ´ë·ÎÀÌ´Ù.
[yong@freeyong isapnptools-1.8]$ make
cc -O2 -Wall -DREALTIME -DNEEDSETSCHEDULER
-c pnpdump.c -o pnpdump.o
cc pnpdump.o -o pnpdump
flex -i -t isapnp.y > isapnp.c
cc -O2 -Wall -c isapnp.c -o isapnp.o
isapnp.y:934: warning: prototype for `yywrap' follows
isapnp.y:76: warning: non-prototype definition here
isapnp.y:1360: warning: `yyunput' defined but not used
cc isapnp.o -o isapnp
make install °úÁ¤Àº ¾øÀ¸¹Ç·Î pnpdump¿Í isapnp ¹ÙÀ̳ʸ®¸¦ /sbin µð·ºÅ͸®¿¡ Á÷Á¢ º¹»çÇÑ´Ù.
# pnpdump > /etc/isapnp.conf
pnpdump ¸í·ÉÀ» ³»¸®¸é ¿©·¯ºÐÀÇ PnP BIOS¸¦ Á¡°ËÇÏ°í PnP Çϵå¿þ¾î¸¦ ¹ß°ßÇÏ°Ô µÇ¸é ¸®´ÙÀÌ·º¼ÇÀ¸·Î ÁÖ¾îÁø /etc/isapnp.conf ÆÄÀÏ¿¡ °á°ú¸¦ Ãâ·ÂÇÑ´Ù.
¸®´ª½º/À¯´Ð½º¿¡¼ÀÇ ÀÛ¾÷ÀÌ ´Ù ±×·¯ÇÏ´Ù´Â °ÍÀ» ¾Ë °ÍÀÌ´Ù. ÆíÁý±â¸¦ °¡Áö°í ³ÇØÇϱâ ¦ÀÌ ¾ø´Â ¼³Á¤ ÆÄÀÏÀ» ¿©·¯ºÐÀÇ »óȲ¿¡ ¾Ë¸Â°Ô ÆíÁýÇÑ´Ù. ÆÄÀÏ Çü½Ä ÀÌ ¾î¶°ÇÑÁö ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.
# $Id: pnpdump.c,v 1.8 1997/01/14 21:05:35 fox Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
# For details of this file format, see isapnp.conf(5)
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER -DNEED
# NANOSLEEP
#
# Trying port address 0203
# Trying port address 0207
# Trying port address 020b
# Board 1 has serial identifier 5e 00 19 1c 0b 19 80
# 8c 4a
# (DEBUG)
(READPORT 0x020b)
(ISOLATE)
(IDENTIFY *)
# Card 1: (serial identifier 5e 00 19 1c 0b 19 80 8c 4a)
# RTL8019 Serial No 1645579 [checksum 5e]
# Version 1.0, Vendor version 1.0
# ANSI string -->Plug & Play Ethernet Cardb --
#
# Logical device id RTL8019
# Device support I/O range check register
#
# Edit the entries below to uncomment out the
# configuration required.
# Note that only the first value of any range is given,
# this may be changed if r
# Don't forget to uncomment the activate (ACT Y)
# when happy
(CONFIGURE RTL8019/1645579 (LD 0
# Compatible device id PNP80d6
# Logical device decodes 10 bit IO address lines
# Minimum IO base address 0x0220
# Maximum IO base address 0x0380
# IO base alignment 32 bytes
# Number of IO addresses required: 32
(IO 0 (BASE 0x0340))
# IRQ 3, 4, 5, 9, 10, 11, 12 or 15.
# High true, edge sensitive interrupt
(INT 0 (IRQ 10 (MODE +E)))
(ACT Y)
))
# End tag... Checksum 0x00 (OK)
¼³Á¤ ÆÄÀÏÀÌ »ó´çÈ÷ º¹ÀâÇØ º¸À̱â´Â ÇÏÁö¸¸ ±× ¸ðµç °ÍÀ» ´Ù ÀÌÇØÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÇÊÀÚµµ º¹ÀâÇϱâ ¦ÀÌ ¾ø´Â isapnp.conf ¸Ç ÆäÀÌÁö¸¦ ¸ðµÎ ´Ù ÀоÁö´Â ¾Ê¾Ò´Ù. ¼³Á¤ ÆÄÀÏ¿¡¼ ¼¥(#) ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ÁÙÀº ¿©·¯ºÐµµ ¿¹»óÇÏ´Ù½ÃÇÇ ÁÖ¼®¹®ÀÌ´Ù. µû¶ó¼ À§ÀÇ ¼³Á¤ ÆÄÀÏ¿¡¼ ½ÇÁ¦·Î »ç¿ëµÇ´Â ºÎºÐÀº ´ÙÀ½°ú °°´Ù.
(READPORT 0x020b)
(ISOLATE)
(IDENTIFY *)
(CONFIGURE RTL8019/1645579 (LD 0
(IO 0 (BASE 0x0340))
(INT 0 (IRQ 10 (MODE +E)))
(ACT Y)
))
óÀ½¿¡´Â (ACT Y)ºÎÅÍ ½ÃÀÛÇؼ °ÅÀÇ ¸ðµç °ÍÀÌ ÁÖ¼®¹® 󸮵Ǿî ÀÖÀ» °ÍÀÌ´Ù. ¿©·¯ºÐÀÇ ÀÛ¾÷Àº ÁÖ¼®¹® 󸮵Ǿî ÀÖ´Â °Í Áß¿¡ ¾Ë¸ÂÀº °ÍÀ» ¼±ÅÃÇÏ¿© # ¹®ÀÚ¸¦ Áö¿ö È°¼ºÈ½ÃÅ°´Â ÀÏ, ÁÖ¼®¹®¿¡ ÀÚ¼¼È÷ ÀûÈù I/O ÁÖ¼Ò, IRQ ¹üÀ§¿¡¼ ´Ù¸¥ ÁÖº¯±â±â¿Í Ãæµ¹ÇÏÁö ¾Ê´Â ÁÖ¼Ò¿Í IRQ¸¦ ¼±ÅÃÇÏ´Â ÀÏÀÌ´Ù. ÁÖ¼®¹®ÀÌ ¿µ¾î·Î µÇ¾î ÀÖ±â´Â Çϳª ÇÊÀÚ°¡ »ý°¢Çϱ⿡´Â ¸Ç ÆäÀÌÁöº¸´Ùµµ ´õ Áß¿äÇÏ°í ½ÇÀüÀûÀÎ Áö½ÄÀ» ¾Ë·ÁÁØ´Ù.
# Compatible device id PNP80d6
# Logical device decodes 10 bit IO address lines
# Minimum IO base address 0x0220
# Maximum IO base address 0x0380
# IO base alignment 32 bytes
# Number of IO addresses required: 32
À§¿Í °°Àº ¹®ÀåÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÁöÁ¤ÇÒ ¼ö ÀÖ´Â I/O ÃÖ¼Ò ¹øÁö´Â 0x0220 ÀÌ°í ÃÖ´ë ¹øÁö´Â 0x0380À̶ó°í °¡¸£ÃÄ ÁÖ°í ÀÖ´Ù. ¼³Á¤Çϱâ Àü¿¡ ÀÌ¹Ì ¸®´ª½º°¡ ºÎÆÃµÇ°í ³ª¼ »ç¿ë ÁßÀÎ I/O ÁÖ¼Ò¸¦ ÇÇÇØ¾ß ÇϹǷΠÇöÀç »ç¿ëÁßÀÎ I/O ÁÖ¼Ò¿¡ ´ëÇÏ¿© ¾Ë¾Æ¾ß ÇÒ °ÍÀÌ´Ù. ÀÌ·² ¶§´Â ¸®´ª½ºÀÇ Àç¹ÌÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀÎ /proc ½Ã½ºÅÛÀ» ÀÌ¿ëÇÏÀÚ.
# cd /proc
# cat ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-009f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : npu
0170-0177 : ide1
01f0-01f7 : ide0
0220-022f : sound blaster
0230-0233 : sbpcd
02f8-02ff : serial(auto)
0376-0376 : ide1
0378-037f : lp
0388-038b : OPL3/OPL2
Áߺ¹µÇ´Â ÁÖ¼Ò¸¸ ÇÇÇؼ ¼³Á¤ÇÏ¸é µÈ´Ù.
# IRQ 3, 4, 5, 9, 10, 11, 12 or 15.
# High true, edge sensitive interrupt
(INT 0 (IRQ 10 (MODE +E)))
À̹ø¿¡´Â IRQ¸¦ ¼³Á¤ÇÏ´Â ºÎºÐÀÌ´Ù. Ä£ÀýÇÏ°Ô ¼³Á¤ÇÒ ¼ö ÀÖ´Â IRQ·Î´Â 3, 4, 5, 9 µîÀÌ ÀÖ´Ù°í ¾Ë·ÁÁÖ°í ÀÖ´Ù. ¿ª½Ã ÀÌ¹Ì »ç¿ëÁßÀÎ IRQ¸¦ ÁöÁ¤ÇÒ ¼ö´Â ¾øÀ¸¹Ç·Î ÇöÀç »ç¿ëÁßÀÎ IRQ¸¦ Á¡°ËÇغ¸ÀÚ.
# cd /proc
# cat interrupts
0: 23254768 timer
1: 312846 keyboard
2: 0 cascade
3: 6309207 + serial
4: 1 + serial
5: 1 sound blaster
8: 0 + rtc
11: 60 + aic7xxx
12: 779889 PS/2 Mouse
13: 1 math error
14: 1616870 + ide0
15: 208796 + ide1
ºó IRQ ¹øÈ£¸¦ Á¤Ç϶ó.
°¡Àå ¾î·Á¿î °íºñÀÎ /etc/isapnp.conf ÆÄÀÏ ¼³Á¤À» ¸¶ÃÆ´Ù.
# isapnp /etc/isapnp.conf
ÀÌ·¸°Ô ÇÏ¸é ½Ã½ºÅÛÀÌ Àá±ñ ¸ØÃß´Â ±â»öÀ» º¸ÀÌ°í ³ª¼ ¼º°øÀûÀ¸·Î PnP ¼³Á¤À» ¸¶Ä¥ °ÍÀÌ´Ù. ¸¸¾à ¿©·¯ºÐÀÌ Á¦°øÇÑ Á¤º¸°¡ ¿Ã¹Ù¸£Áö ¾Ê¾Æ PnP BIOS¿¡ ÀÇÇØ ¼³Á¤ÀÌ °ÅºÎµÇ¸é ¿¡·¯ ¸Þ½ÃÁö°¡ ¶ã °ÍÀÌ´Ù.
ÇÊÀÚ´Â ´ë¸¸Á¦ PnP NE2000 ȣȯ À̼³×Æ® Ä«µå¸¦ ÀνĽÃÅ°·Á°í isapnp µµ±¸¸¦ »ç¿ëÇÏ¿´´Ù.
# modprobe ne io=0x340,irq=10
¶Ç´Â Ä¿³Î µ¥¸ó(kerneld)À» »ç¿ëÇÏ´Â °æ¿ì /etc/conf.modules ÆÄÀÏ¿¡ ´ÙÀ½ ÁÙÀ» ÇÑ ÁÙ Ãß°¡ÇÏ¸é µÈ´Ù. ´ÙÀ½Àº ÇÊÀÚÀÇ ¿¹ÀÌ´Ù.
alias scsi_hostadapter aic7xxx
alias eth1 ne
options sbpcd sbpcd=0x230,1
options ne io=0x340,irq=10
options wdt irq=6
ÇÑ ¶§ »ç¿îµåºí·¡½ºÅÍ 32 ±âÁ¾°ú 3Com509bÀÇ ÀÎ½Ä ¹®Á¦°¡ Å©°Ô ´ëµÎµÈ Àû ÀÖ´Ù. »ç¿îµåºí·¡½ºÅÍ ÃֽŠ±âÁ¾µéÀÌ IDE ÀÎÅÍÆäÀ̽º¸¦ ´Þ°í ³ª¿À¸ç ±× IDE ÀÎÅÍÆäÀ̽º°¡ ¿ì¸®µµ ¸ð¸£°Ô IRQ 10 ¶Ç´Â 11¹øÀ» Àå¾ÇÇÏ´Â »ç½ÇÀ» ¸ô¶ú±â ¶§¹®ÀÌ´Ù. ¾È´Ù ÇÒÁö¶óµµ »ç¿îµåºí·¡½ºÅÍÀÇ PnP ±â´É, IDE ÀÎÅÍÆäÀ̽º ±â´ÉÀ» ¸¶ºñ½ÃÅ°´Â °ÍÀÌ Á¦´ë·Î ¸ÔÇôµéÁö ¾Ê´Â °Í °°¾Ò´Ù. ÇÊÀÚµµ ¾ËÂ¥ ·¹µåÇÞ 4.1 Á¦ÀÛ ´ç½Ã ÇÑ ´ëÀÇ Å×½ºÆ® ¸Ó½Å¿¡¼ »ç¿îµåºí·¡½ºÅÍ 32¸¦ »ç¿ëÇÏ´Â ¹Ù¶÷¿¡ 3Com509b¸¦ Æ÷±âÇÑ ÀûÀÌ ÀÖ¾ú´Ù.
³¡À¸·Î Á¤¸»·Î Èûµç ÀÏÀ» ÇØÁØ Peter Fox¾¾¿¡°Ô °¨»çÇÏ´Â ¸¶À½ °®´Â´Ù. ±×´Â ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® »çÀÇ PnP ½ºÆåÀ» º¸°í Èû°ã°Ô ¸®´ª½º¿ë ÇÁ·Î±×·¥À» ¸¸µé¾ú´Ù°í ÇÑ´Ù. ÇÑ »ç¶÷ÀÇ ³ë·ÂÀ¸·Î Àü¼¼°èÀÇ »ç¶÷µéÀÌ ÇýÅÃÀ» ´©¸± ¼ö ÀÖ´Ù´Â °Í, ±×°Í¸¸Å °ªÁø °ÍÀÌ ¾îµð ÀÖÀ»±î? ¿©·¯ºÐµµ ÇÁ·Î±×·¡¸Ó¶ó¸é ±ÝÀüÀû ÀÌÀÍ ÀÌ¿Ü¿¡ ÀÌ·¯ÇÑ ¸í¿¹¸¦ ´©·Áº¸´Â °ÍÀÌ ¾î¶²°¡? ¸®´ª½º¿¡ ±â¿©ÇÒ ¼ö ÀÖ´Â ºÐ¾ß´Â Á¤¸» ¸¹´Ù.