MATCD(4)

명칭
matcd - Matsushita (Panasonic) CD-ROM 드라이버

서식

controller matcd[0-4] at isa? port [? | addr]
/dev/[r]matcd[0-15][a|c]
/dev/[r]matcdl[0-15][a|c]

해설
matcd 드라이버는, 마츠시타 히사시 전자공업제의, 또는 단축해 마츠시타제의, CR-562-x 및 CR-563-x CD-ROM 드라이브를 제어합니다. 이것들 CD-ROM 드라이브는 Panasonic (마츠시타의 상표), Creative Labs (omniCD), Reveal 등의 브랜드로 판매되어 Tandy, AST, Packard Bell 등 많은 컴퓨터에 채용되어 있습니다. 이러한 드라이브는, 전용의 호스트 인터페이스를 통해서 PC ISA 버스에 접속합니다. 이 인터페이스는 스탠드얼론의 ISA 카드로 해서 존재 일도 있고, 사운드 카드상에 포함되어 있는 일도 있습니다.

드라이버의 설정
matcd 드라이버는, 각각이 4 대까지의 드라이브를 가지는 호스트 인터페이스를 상한 4 개(살)까지 서포트합니다. 오디오 기능은 모든 드라이브로 동시에 실행으로 올지도 모릅니다만, 데이터 독해 조작의 대상은, 어느 순간에 있어도 1 살의 호스트 인터페이스에 대해서 1 개의 드라이브에만 됩니다. 멀티 호스트 인터페이스를 서포트하기 위해서는, 커널 컨피규레이션 파일의 엔트리를 수정할 필요가 있습니다. 통상, 이 파일은 시스템상의 /usr/src/sys/i386/conf/GENERIC 에 존재합니다. 이것을 카피해 시스템의 이름을 붙이면 좋을 것입니다. 이 새로운 파일 에 시스템으로 서포트하고 싶은 디바이스를 포함해 반대로 불필요한 디바이스의 엔트리 (은)는 삭제합니다. 이 파일에는 이하와 같은 엔트리가 발견되겠지요: controller matcd0 at isa? port ? bio 2 살의 호스트 인터페이스를 서포트하기 위해서는, 이하와 같이 변경합니다: controller matcd0 at isa? port ? bio
controller matcd1 at isa? port ? bio
(3 개(살), 혹은 4 개(살)까지 호스트 인터페이스를 서포트시키고 싶은 경우, 같이 에 엔트리를 추가해 주세요. )
호스트 인터페이스가 1 개만으로 4 대까지의 드라이브를 서포트하는 경우, 커널 컨피규레이션의 수정은 불필요한 것으로 주의해 주세요. 2 번째의 인터페이스를 추가할 때까지, 1 개째의 인터페이스상에서 반드시 4 대의 드라이브를 가지지 않아 괜찮습니다. 디폴트에서는, matcd (은)는 Creative 호스트 어댑터 (options.h 참조)의 기존의 I/O 포트 테이블을 이용해 CD-ROM 호스트 어댑터를 탐색합니다. 이것은 매우 유연해 가, matcd 하지만 체크한 CD-ROM 호스트 인터페이스의 I/O 포트에, 시스템의 다른 디바이스가 존재할 경우에 문제를 일으킵니다. 게다가 복수의 위치를 검색 할 필요가 있기 (위해)때문에, 부트 프로세스에 시간이 걸리는 원인이 됩니다.

이러한 문제는, CD-ROM 호스트 인터페이스의 위치를 명시하는 것에 따라서 해결할 수가 있습니다. 예를 들면, 디폴트의 대부분의 Sound Blaster 카드는 I/O 포트 0x230 의 위치에 마츠시타 CD-ROM 호스트 인터페이스를 가지고 있습니다. (이것은 카드상의 오디오 기능에 0x10 를 더한 I/O 포트의 값입니다. ) 시스템이 이러한 경우, 커널 부트 prompt에 대해, -c 옵션을 이용하는 것으로 커널이 하드웨어를 검출하는 위치를 변경할 수 있습니다. 이렇게 해 커널을 로드하면(자), 거기에 포함된다 모든 디바이스의 설정을 변경할 기회를 얻을 수 있습니다. 예를 들면, matcd 어댑터 0 에 대한 I/O 포트를 변경하려면 이하와 같이 기술하면 좋다 그렇지. config> port matcd0c 0x340 커널을 recompile 한다면, 커널 컨피규레이션 파일 의 엔트리를 이하와 같이 변경해 특정의 주소를 지정할 수가 있습니다: controller matcd0 at isa? port 0x230 bio 이와 같이 변경하면(자) matcd 드라이버는 최초의 CD-ROM 호스트 인터페이스를 위해서(때문에) I/O 포트 0x230 만을 탐색해, 다른 I/O 포트는 방해하지 않습니다. 커널 컨피규레이션 파일의 조정이 완료하면(자), 커널을 설정, recompile, 및 인스톨 합니다. 그리고 변경한 곳을 유효하게 하기 위해서 재기동할 필요가 있습니다.

서포트되고 있는 하드웨어
현재, matcd 드라이버로 동작하는 드라이브는, 2 개(살)이 알려져 있을 뿐입니다:
마츠시타 CR-562-x
마츠시타 CR-563-x
대부분의 재판 업자는 이것들에도라고도와 붙어 있던 마킹을 그대로 되어 있어, label는 FCC, VDE, CSA, RU 등의 인정증이 붙어 있습니다. 이러한 드라이브는 양쪽 모두 구동 드레이가 붙어 있습니다. 오리지날을 커스터마이즈 된 제품도 나돌고 있어, 음량 조절이나 헤드폰 잭이 붙어 있지 않은 걸 (Tandy 컴퓨터에 보여질지도 모릅니다)(이)가 있다 일지도 알려지지 않습니다만, 이것도 matcd 드라이버로 동작합니다. 마츠시타 CR-522-x 및 CR-523-x CD-ROM 드라이브는 matcd (을)를 이용할 수 없습니다. CR-522 및 CR-523 는 CD 캬 디를 필요로 하므로 정면에서 식별하는 것 도 할 수 있습니다. IDE 인터페이스를 가지는 드라이브는, IDE 드라이버를 사함정 선. TEAC CD-55 4X CD-ROM 드라이브는 Creative/Panasonic 인터페이스도 사 (이)라고 있습니다만, TEAC 의 드라이브는 마츠시타 CR-56x 드라이브와 호환이어키 응. TEAC 의 드라이브는 matcd 드라이버에서는 이용할 수 없습니다.
Panasonic 드라이브용의 호스트 인터페이스 어댑터의 출처(소)에서 가장 일반적이어 (은)는, SoundBlaster 사운드 카드를 포함한 Creative Labs 제품으로 보여집니다. SoundBlaster 사운드 카드에는 다수의 모델이 존재해, 대부분의 최신의 카드는 적당한 인터페이스를 제공합니다만,"Creative/Panasonic" 인터페이스와 label 지을 수 있고 있는 일도 있습니다. 이하의 호스트 인터페이스 어댑터는 matcd 드라이버로 동작하는 것이 알려져 있습니다:
Creative
    Sound Blaster Pro (SBPRO) (CT1330A)
Creative
    Sound Blaster 16 (CT1730)
Creative
    Sound Blaster 16 - 염가판 (CT1740)
Creative
    OmniCD 업그레이드 킷 어댑터 카드 - 스탠드얼론 CD (CT1810)
Creative
    Sound Blaster 16 - 2 층, 염가판 (CT2230)
Creative
    Sound Blaster 16 (Vibra16) - 2 층, 단일 칩 (CT2260)
Creative
    Sound Blaster 16 Value (SB16) - 2 층, 염가판 (CT2770)
Creative
    PhoneBlaster SB16 + Sierra 14.4K Voice/FAX/Data/Speakerphone 모뎀(CT3100)
Reveal
    (SC400)
경고: 이것들 사운드 카드에는, 감히 Panasonic/Creative 인터페이스 (을)를 포함하지 않게 만들어지고 있는 것이 있으므로, 모델 넘에 근거해 단독 책임에서 사기 전에, 보드를 체크합시다. 이것은 완전한 리스트로 결코는 없습니다. Creative Labs 및 다른 vender는, Creative/Panasonic 드라이브인타페스의 신해 버젼의 사운드 카드를 언제나 릴리스 하기 때문입니다. Creative Labs 어댑터에 가세해, Media Vision, IBM, Lasermate 어댑터로, 호환성이 있는 어댑터도 또 서포트됩니다. 그러나, 이러한 어댑터는 광범위하게 걸치는 I/O포트 주소를 사용하기 때문에, 이러한 어댑터의 위치 결정을 하기 위해서 드라이버의 재구성이 필요합니다. 다른 호스트 인터페이스의 실장을 실시하고 있는 메이커가 존재하는 것을 이해하는 것이 중요합니다. MS-DOS로 Creative Labs 순정의 드라이버를 이용해도, 아무래도 통신할 수 없는 보드가 있다면, matcd (은)는 그 호스트 어댑터에서는 동작하지 않을지도 모릅니다.

서포트된 조작
matcd 드라이버는, 블록 액세스 및 캐릭터 액세스를 서포트합니다. 파티션 "a" 는, 데이터 CD 로부터 2048 바이트의 유저 데이터 블록을 돌려주어 (으)로부터 전부 2352 바이트의 프레임을 돌려줍니다. (파티션 "c" 는 cd9660 파일 시스템이나 다른 파일 시스템 에뮬레이터를 이용해 "mount" 할 수 없습니다. ) 그 밖에 서포트되고 있는 파티션은 없습니다. 드라이브상의 디바이스가 모두 클로우즈 될 때까지, 드라이브 트레이가 락이야 가 된다고 하는 것을 제외해, matcdl 디바이스는 통상의 matcd 디바이스와 같게 동작합니다.
matcd (은)는 CD-ROM 오디오에 관련한 기능이나 트레이 제어의 기능을 포함한 많은 ioctl() 명령을 수리합니다. 커멘드는 이하와 같습니다:

DIOCGDINFO
    디스크 label를 취득합니다.
DIOCGDPART
    파티션을 취득합니다.
DIOCWDINFO
    업데이트 디스크를 세트 합니다.
DIOCSDINFO
    디스크 label를 세트 합니다.
CDIOCREADSUBCHANNEL
    재생중의 디스크 상태에 있어서의 서브 채널 정보를 취득합니다.
CDIOCREADTOCHEADER
    컨텐츠 요약의 테이블을 읽어냅니다.
CDIOCREADTOCENTRYS
    길이와 다른 트럭 정보를 읽어냅니다.
CDIOCPLAYTRACKS
    어느 트럭/인덱스로부터 개시되어 있는 트럭/인덱스로 종료한다 오디오를 연주합니다.
CDIOCPLAYMSF
    특정의 시각 오프셋(offset)로부터 개시하는 오디오를 연주합니다.
CDIOCPAUSE
    재생중의 디스크를 일시정지합니다.
CDIOCRESUME
    일시정지한 디스크의 재생을 resume 합니다. 드라이브가 이미 재생하고 있고 경우에는 무시됩니다.
CDIOCSTOP
    재생중의 디스크를 정지합니다.
CDIOCEJECT
    디스크 트레이를 오픈합니다.
CDIOCCLOSE
    디스크 트레이를 클로우즈 합니다.
CDIOCPREVENT
    모든 디바이스가 클로우즈 될까 CDIOCALLOW ioctl 가 발행될 때까지, 드라이브 도어를 오픈하려고 하는 조작을 저지합니다.
CDIOCALLOW
    드라이브 도어가 락 되고 있으면 해제합니다. 이 ioctl 는 어떠한 락 된 디바이스가 오픈하고 있으면 거부됩니다.
CDIOCGETVOL
    드라이브에 세트 된 볼륨을 돌려줍니다.
CDIOCSETVOL
    드라이브에 세트 된 볼륨을 세트 합니다.
CDIOCSETSTEREO
    이 명령에 의해 왼쪽 채널의 오디오를 왼쪽 채널의 출력에 보내, 오른쪽 채널의 오디오를 오른쪽 채널의 출력에 보냅니다. 이것은 디폴트 상태입니다.
CDIOCSETMUTE
    이 명령에 의해 오디오 출력은 정지합니다. 드라이브는 디스크상의 오디오를 계속 읽습니다만, 오디오 출력이 재회될 때까지 그 데이터는 파기됩니다.
CDIOCSETLEFT
    이 명령에 의해 왼쪽의 채널의 오디오는 좌우의 채널의 출력에 송등
CDIOCSETRIGHT
    이 명령에 의해 오른쪽의 채널의 오디오는 좌우의 채널의 출력에 송등
CDIOCSETPATCH
    지정되는 비트 맵에 따라, 오디오를 루팅 합니다.
CDIOCSETPITCH
    이 명령은 오디오의 재생 속도를 증감합니다 (가라오케 때 등).
CDIOCCAPABILITY
    드라이브와 드라이버의 성능을 리포트합니다.

matcd 드라이버는 위에서 설명한 바와 같이 정의되었다 ioctl() 명령만을 서포트합니다.

관련 파일
/dev/[r]matcd0a /dev/[r]matcdl0a
    CD-ROM 디스크상의 2048 바이트 블록 데이터에 액세스 할 경우에 사용합니다. 이것은 모드 1 폼 1 포맷으로 기록된 것입니다.
/dev/[r]matcd0c /dev/[r]matcdl0c
    CD-ROM 디스크상의 2352 바이트 프레임에 임의의 포맷으로 기록되었다 데이터에 액세스 할 경우에 사용합니다.
/usr/src/sys/i386/isa/matcd/*
    matcd 용무의 원시 코드와 컴파일러 옵션입니다.
options.h 파일에는 모든 컴파일 옵션이 쓰여져 있습니다. 디폴트에서는 드라이버는 FreeBSD 의 current 버젼으로 동작하는 듯 (으)로 설정되어 있습니다.

주

드라이브가 세치기 혹은 DMA 를 이용할 수가 있어도, Creative/Panasonic 인터페이스상에서 이것들을 이용할 수 없습니다. 1 개(살) 이상의 파티션이 오픈하고 있는 것에도 불구하고, 디스크 트레이가 오픈하고 있다면, 드라이브상의 모든 파티션에 대 더 이상의 I/O 는 모든 파티션이 클로우즈 할 때까지 거부됩니다. 물리 드라이브 0 으로서 할당할 수 있는 각각의 호스트 인터페이스상에는 드라이브가 존재하고 있지 않으면 안됩니다. 만약 그렇지 않은 경우, 드라이버는 호스트 인터페이스 혹은 접속된 드라이브를 1 개나 찾아낼 수가 없을 것입니다. 제 2 의 호스트 인터페이스 개시의 드라이브는, 논리 드라이브 4-7 ( 제 3 의 인터페이스의 것 8-11 과 제 4 의 것 12-15)(으)로 간주해집니다. 최초의 호스트 인터페이스에 몇 개의 드라이브가 존재하고 있을까에 관련되어 없고, 2 번째의 호스트 인터페이스상의 최초의 드라이브는 논리 드라이브 4 가 되어 호스트 인터페이스는 커널 컨피규레이션 파일에 선언되고 차례인가, 커널 컨피규레이션 파일로 포트 주소에 "? " (을)를 이용했다면 그것이 발견된 차례로 번호를 할당해집니다. 호스트 인터페이스의 번호는 항상 절목 없게 연속하고 있습니다.

관련 항목
/usr/include/sys/cdio.h

저자
드라이버와 문서는 Frank Durda IV 하지만 썼습니다.
Program and Documentation are Copyright 1994, 1995, All rights reserved.

역사
matcd 드라이버는 FreeBSD 2.0.5 에 두어 등장했습니다.