· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Soundblaster-16

리눅스 사운드블래스터 16 PnP 미니 하우투

리눅스 사운드블래스터 16 PnP 미니 하우투

쓴 사람 : Eric Z. Ayers Eric.Ayers@compgen.com

버젼정보 : v1.0, 14 January 1997 번역한 사람 : Lee, Ho-sun ahmlhs@cair.kaist.ac.kr 번역정보 : v1.0, 1997년 8월 24일
나를 기쁘게 하기위해 내(원저자) 아내는 내 생일날 새 사운드카드를 선물하였다. 그러나, 이 사운드블래스터 16 PnP는 리눅스상에서 동작하지 않았다. 사실 내 3com 3c509또한 리눅스상에서 동작하지 않고 있었다. 결국 나는 커널에 따라오는 리눅스 사운드 드라이버와 isapnp 패키지를 (URL은 ftp.redhat.com/pub/utils/isapnptools-1.8.tgz 이다.) 이용하여 내 하드웨어들이 동작하게 만들었다.

1. 사운드블래스터 16 PnP

내가 사운드카드를 동작하게 하기 위해 직면했던 주요한 문제는 두가지였다. 하나는 내가 사운드카드와 통신하기 위한 IRQ와 IO 포트를 모른다는 사실이었다. 이문제는 isapnptools패키지를 이용함으로 해결되었다. 두번째는 3c509 이더넷 카드와 연관된 것이었다. 내가 카드의 세팅을 어떻게 바꾸던 리눅스커널은 이더넷 카드를 인식하지 못하였다. 이문제는 3c509의 probing code와 사운드카드의 디바이스 간에 충돌이 원인이었다.

  1. isapnp 패키지를 인스톨한다. /etc/isapnp.conf파일을 수정하여 사운드카드의 IRQ와 IO 포트가 다른 디바이스들과 충돌하지 않게 한다.
  2. 리눅스 커널을 만든다. isapnp.conf에 설정한 IRQ, IO, DMA 주소를 넣고 사운드 지원을 모듈로 한다. 또한 3c509 드라이버도 모듈로 한다. (커널을 컴파일하고 인스톨한 후에 make modules와 make modules_install하는 것을 잊지 말 것)
  3. 시스템의 부팅스크립트를 고친다.
나는 슬랙웨어에 커널 2.0.23을 사용하고 있다. 네트웍을 설정하기 전에 먼저 isapnp 프로그램을 돌린다. /etc/rc.d/rc.M 에서 hostname을 설정한 다음 부분에
# EZA
# Setup plug and play devices
/sbin/isapnp /etc/isapnp.conf
를 추가한다. 그런 다음에 /etc/rc.d/rc.inet1 안의 첫번째 사항으로 네트웍 드라이버를 로드한다.
# EZA
# Load networking card module
/sbin/insmod 3c509

나는 부팅시에 이더넷카드를 찾으면서 동작하지 않는다는 경고는 무시하였다. 그리고, /etc/rc.d/rc.local 에서 사운드 드라이버 모듈을 로드하게 하였다.

/sbin/insmod sound

리눅스에서의 플러그앤 플레이(PNP)에 관해서는 www.redhat.com/linux-info/pnp/ 를 살펴보길 바란다. 나는 지금 CDROM 드라이버의 CD를 듣고, 리얼오디오 플레이어를 사용하여 넷을 즐겁게 항해하고 있다.

Eric Ayers eric.ayers@compgen.com

역자주) 역자는 SB32PNP를 가지고 있다. HOWTO를 찾다가 이 Mini HOWTO를 찾아서 보고 실행해보았으나 실패하였다. 왜 실패했는지는 이해가 되지를 않는데, 중요한 것은 안되었다는 것이다. 이글의 저자는 3c509랑 sb16pnp이랑 문제가 되었나본데, 3c595tx랑 sb32pnp를 가진 역자는 kernel compile하면서 3c595tx랑 sb를 그냥 kernel에 포함시켜서 컴파일했더니 잘 되었다. 차근차근 컴파일을 다시 해보면 되는 날도 있나보다. 하고 넘어갔다. =)


이것은 대부분의 주석을 제거한 나의 isapnp.conf파일이다.

# Trying port address 0203
# Board 1 has serial identifier 67 00 00 40 17 2b 00 8c 0e

# (DEBUG)
(READPORT 0x0203)
(ISOLATE)
(IDENTIFY *)

# Card 1: (serial identifier 67 00 00 40 17 2b 00 8c 0e)
# CTL002b Serial No 16407 [checksum 67]
# Version 1.0, Vendor version 2.0
# ANSI string -->Creative SB16 PnP<--
#
# Logical device id CTL0031
#
# 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 required
# Don't forget to uncomment the activate (ACT Y) when happy

(CONFIGURE CTL002b/16407 (LD 0
#     ANSI string -->Audio<--

# Multiple choice time, choose one only !

#     Start dependent functions: priority preferred
#       IRQ 5.
#             High true, edge sensitive interrupt (by default)
(INT 0 (IRQ 5 (MODE +E)))
(DMA 0 (CHANNEL 1))
(DMA 1 (CHANNEL 5))
(IO 0 (BASE 0x0220))
(IO 1 (BASE 0x0330))
(IO 2 (BASE 0x0388))
(ACT Y)
))

(CONFIGURE CTL002b/16407 (LD 1
(INT 0 (IRQ 11 (MODE +E)))
(IO 0 (BASE 0x01e8))
(IO 1 (BASE 0x03ee))
 (ACT Y)
))


(CONFIGURE CTL002b/16407 (LD 2
#     ANSI string -->StereoEnhance<--
#     Logical device decodes 16 bit IO address lines
#         Minimum IO base address 0x0100
#         Maximum IO base address 0x0138
#         IO base alignment 8 bytes
#         Number of IO addresses required: 1
#(IO 0 (BASE 0x0100))
#(ACT Y)
))


(CONFIGURE CTL002b/16407 (LD 3
(IO 0 (BASE 0x0200))
(ACT Y)))




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0166 sec