· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Winmodems-and-Linux-HOWTO

Winmodem and Linux HOWTO

Winmodem and Linux HOWTO

리눅스에서 윈모뎀을 사용하자.

Alexandre J. alexandre12@mageos.com

v1.0, April 2000 정진하. hamdori@kldp.org v1.0 2000년 6월 15일.
이 문서는 윈모뎀을 가지고 있고 이 윈모뎀을 리눅스에서 사용하고자 하는 사람들을 돕기 위해서 작성되었다.

1. 윈모뎀이란 무엇인가?

1.1 윈모뎀도 모뎀이다...

윈모뎀도 다른 모뎀들과 마찬가지로 전화,BBS,인터넷,음성전화,Fax등과 같은 써비스를 위해서 사용된다. 윈모뎀은 전화선에 연결되고 그 속도에 의해서 특징지어진다. 만약 모뎀에 대해서 더 많이 공부하고 싶다면, Modem HOWTO를 읽어보기를 추천한다.

1.2 윈모뎀은 진짜 모뎀이 아니다.

하지만 윈모뎀이 동작하기 위해서는 MS-WINDOWS가 필요하다. 왜냐고..? 간단하게 말하자면 윈모뎀이 멍청하기 때문이다. 윈모뎀이 제대로 동작하기 위해서는 드라이버라는 특별한 소프트웨어가 필요하다. 그러나 안타깝게도 제품을 살 때 담겨 이쓴 드라이버의 99%는 MS-WINDOWS를 위한 드라이버다. 하지만 리눅스의 발전이 이루어지면서 몇몇 생산 없체가 - 예를 들면 LT 또는 Motorola 와 같은 - 자신들이 생산하는 모뎀에 리눅스 드라이버를 제공하기로 결정했다. 하지만 그 업체들도 리눅스의 철학을 제대로 이해하지는 못했다. 그들이 제공하는 드라이버는 물론 잘 동작하지만 GPL을 따르고 있지 않기 때문에 그들의 쏘스 코드는 공개 되지 않는 것이 문제였다.

따라서 소위 해커라는 사람들이 소스를 공개할 수 있는 드라이버를 제작하기로 결정했다. 하지만 해커들은 모뎀 생산업체가 그들 모뎀의 상세규격을 말해주지 않았기 때문에 그 회사의 모뎀에 대한 많은 것을 알 수가 없었다. 따라서 오픈소스 드라이버들의 대부분이 알파나 베타단계에 머무르게 되는 것이다.

1.3 그렇다면 내가 윈모뎀을 가지고 있는가를 어떻게 알 것인가?

여러분의 모뎀이 몇번 직렬 포트에 연결되어 있는가를 알아내야 한다.

(예를 들면 윈도우나 도스에서 COM1,COM2와 같은....) 리눅스사에서의 모뎀의 이름은 /dev/ttySx와 같이 붙여진다. 여기에서 마지막 x는 윈도우나 도스상에서의 씨리얼 포트번호보다 1작은 값이 들어간다. (예를 들면, 윈도우나 도스상에서 COM1은 리눅스상에서 /dev/ttyS0가 되며, 윈도우나 도스상에서 COM3은 리눅스상에서 /dev/ttyS2가 되는 것이다.)

다음과 같이 타이핑 함으로써 /dev/ttySx를 /dev/modem으로 심볼릭 링크 시킨다.


rm -rf /dev/modem
ln -s /dev/ttySx /dev/modem

Minicom패키지를 다운 받아서 설치한 다음 'minicom -s'를 실행시킨다.

'Serial Port Setup'을 선택하고, 'A'키를 눌러서 'Serial Device'세팅에 들어간다. 그런다음 모든 라인을 지우고 '/dev/modem'이라고 입력한다. 이제 [ENTER]키를 눌러서 확인한 다음 [ESC]키를 누른다음, 'save setup as dfl'을 선택하고 'Exit'를 선택한다.

조금 기다린 후에, Minicom 화면에서 'AT'라고 입력한다. 만약 모뎀이 'OK'라고 응답하면 이 모뎀은 윈모뎀이 아닌 표준모뎀인것이다. 만약에 초기화하는 시간이 너무 오래 걸린다면 이 모뎀은 윈모뎀인 것이다.

자 이제 이 문서를 잘 읽고서 윈모뎀을 리눅스에서 동작하게 해보자. root로 login한다.

CTRL+A 그리고 X키를 눌러서 미니콤에서 빠져 나온다.

2. PIC냐 ISA냐?

2.1 PCI냐?

자 여기까지 왔다면 우리는 윈모뎀을 가지고 있는 셈이다. 윈모뎀에는 두가지 종류가 있다. 하나는 ISA방식의 윈모뎀이고 다른 하나는 PCI방식의 윈모뎀이다. 리눅스에서 윈모뎀을 잡는 문제가 더 어려워지는 것은 이 두가지 인터페이스가 완전히 다르기 때문이다. 따라서 우리는 이제 우리가 가지고 있는 윈모뎀이 ISA인지 PCI인지 테스트해 보아야 할 것이다. 우선 첫번째로, 여러분은 커널 컴파일을 다시 해야한다. make *config를 하는동안, 다음과 같은 부분에 'y'라고 체크해 주어야 한다.

Loadable module support 부분

Enable loadable module support(CONFIG_MODULES), Set version information on all modules for symbols(CONFIG_MODVERSIONS). modutils 패키지가 설치되어 있어야 한다는 점을 주지하길 바란다. Kernel HOWTO를 참고하길 바란다.

General setup 부분

PCI access mode - 'ANY'로 체크해 준다.

Filesystems 부분

만약에 여러분이 커널 컴파일을 한번도 하지 않았다면, 여러분이 설치한 배포판에 기본적으로 깔리는 커널에 이 부분들이 기본적으로 포함되어 있을것이다. 만약에 여러분이 커널을 다시 컴파일하기를 원하지만 아직 한번도 커널 컴파일을 해보지 않았다면 Kernel HOWTO를 읽어 보기를 권한다.

자 이제 우리는 새로운 커널이 설치 되어 있다고 가정하고 다음 단계로 넘어간다.

이제 다음과 같은 명령어를 실행해 보자.


cat /proc/pci

만약 출력결과중에서 여러분의 모뎀 이름이 나온다면 여러분은 PCI윈모뎀을 가지고 있는 것이다. 모뎀 이름이 출력된 경우 '드라이버 설치하기'코너로 바로 넘어가자.

2.2 ISA냐?

만약 위에서 여러분의 모뎀을 찾을수가 없었다면 아마도 여러분은 ISA윈모뎀을 가지고 있을 확률이 높다. 어떻게 확신할 수 있을까?

ISA의 지원은 커널에서 이루어지지 않는다.(2.4.x버젼대의 커널에서는 가능할 것이다. 그러나 아직 안정화된 단계는 아니다.) 대신에 isapnp라고 불리는 소프트웨어가 ISA를 지원한다. 먼저 여러분은 isapnp라는 패키지가 설치되어 있는지를 확인해야 한다. 마냑에 설치되어 있지 않다면 다운로드 받은후 설치해야 한다.

isapnp가 인스톨된 다음에는 ISA 디바이스를 여러분의 컴퓨터로부터 찾아서 검색해 주는 pnpdump라는 특별한 프로그램을 실행시킨다. pnpdump라는 프로그램을 실행시키면 이 프로그램은 디바이스에 의해서 쓰여지는 자원을 추측해서 /etc/isapnp.conf라는 파일로 저장시켜준다. 이젠 /etc/isapnp.conf라는 파일을 편집하고 isapnp라는 프로그램을 실행시킨다. isapnp는 /etc/isapnp.conf파일을 읽어 들여서 자동으로 장치를 설정해 준다.


  # Snip details ...
  ## (DEBUG)
  (READPORT 0x0203)
  (ISOLATE PRESERVE)
  (IDENTIFY *)
  (VERBOSITY 2)
  (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING

  # Identification of my modem card

  ## Card 1: (serial identifier e2 00 00 01 00 05 50 c3 1e)
  ## Vendor Id GVC5005, Serial Number 256, checksum 0xE2.
  ## Version 1.0, Vendor version 0.1
  ## ANSI string -->LT Win Modem<--
  ##
  ## Logical device id HSM0140
  ##     Device support I/O range check register
  #

  # We want to configure the GVC5005/256 card

  (CONFIGURE GVC5005/256 (LD 0

  # I/O Base address 0x03f8, with a range of 8
  (IO 0 (SIZE 8) (BASE 0x03f8) )
  # IRQ 4
  (INT 0 (IRQ 4 (MODE +E)))
  # DMA 5
  (DMA 0 (CHANNEL 5))
  # DMA 7
  (DMA 1 (CHANNEL 7))
  # I/O Base Address 2  0x0100, range 8
  (IO 1 (SIZE 8) (BASE 0x0100) )
  # Name of the card
   (NAME "GVC5005/256[0]{LT Win Modem        }")
  # Activitate it
  (ACT Y)
  # End configuration
  ))

  ######## The parameters for my other ISA devices ##############

  ## Returns all cards to the "Wait for Key" state
  (WAITFORKEY)

3. 모뎀드라이버 설치하기

이 섹션을 전부다 읽을 필요는 없다. 그냥 가지고 있는 모뎀이 있는 부분만 읽으면 된다. 예를 들면, 이 섹션은 단지 LT 모뎀을 Lucent와 오픈소스 드라이버를 가지고 어떻게 설치할 것인가를 설명하고 있다. 따라서 다른 윈모뎀을 가지고 있는 사람에게는 필요 없을 것이다. 만약에 새로운 드라이버를 작성했거나, 사용했다면, 그것이 오픈소스이건 아니건간에 나에게 이메일을 보내달라. 이메일을 보내주면 이 하우투 문서에 포함시켜 주겠다.

3.1 LT 윈모뎀(From Lucent)

URL : http://www.linmodems.org
저자 : Lucent Technologies
저작권 : GPL을 따르지 않음
지원되는 하드웨어 : Lucent 칩셋을 가지고 있는 ISA/PCI 모뎀(Mars family)
특징 : Kernel Module; Serial 포트 시뮬레이션, PPP,Fax,Voice 지원
현재 버전 : 5.68
문서 : README
요구사항 : 커널 2.2.12 또는 그 이상 버전의 커널. Loadable module support
사용법 : 압축을 풀고 ltinst를 실행하면 된다.

문제점

LT모뎀이 없다거나 설치되어 있지 않다는 에러메세지가 나올때...

만약 가지고 있는 모뎀이 ISA모뎀이라면, isapnp로 설정되어 있는지 체크해 본다. 만약에 가지고 있는 모뎀이 PCI라면, 커널에서 PCI support가 설정되어 있는지 체크해 본다.

3.2 LT 윈모뎀(오픈소스 드라이버)

URL : http://www.close.u-net.com
저자 : Richard Close and Pavel Machek
저작권 : GPL
지원되는 하드웨어 : Lucent 칩세슬 가지고 있는 ISA/PCI 모뎀(Mars Family)
특징 : User-space 드라이버; Voice Call; PPP는 지원되지 않음
현재 버전 : 0.9.2
문서 : README
요구사항 : GNU C compiler, automake
사용법

PCI의 경우 make; make install; ltmodem 프로그램을 실행시켜서 모뎀과 통신한다. ISA의 겨우 mv Makefile Makefile.PCI; mv Makefile.ISA Makefile; config.h파일을 열어서 여러분의 모뎀과 맞게 편집한다.(I/O Address,DMA,IRQ); make; make install; ltmodem 프로그램을 실행시켜서 모뎀과 통신한다.

문제점

"Sorry, I can't find any modem..."과 같은 에러메세지가 나오는 경우, 다음과 같은 경우를 생각해 볼 수 있다.

  • 가지고 있는 모뎀이 LT모뎀이 아닌 경우.
  • isapnp를 가지고 설정되지 않은 ISA모뎀을 가진 경우
  • isapnp를 가지고 설정된 ISA모뎀을 가지고 있으나, ltmotem을 ISA로 컴파일 하지 않은 경우
  • 커널에 PCI support가 지원되지 않고, 여러분이 PCI모뎀을 가지고 있는 경우
  • PCI모뎀을 가지고 있고, 커널도 PCI를 지원하지만 ltmodem이 PCI로 컴파일 되지 않은 경우

4. 마치면서

4.1 Licence, Copyright

Copyright (c) 2000 Alexandre J.

이 프로그램은 Free 소프트웨어다. 여러분은 FSF가 했던 것처럼 GPL아래에서 이 소스를 재배포할 수도 있고 수정할 수도 있다. 이 프로그램이 여러분들에게 유용하기를 바라면서 배포한다. 하지만 여기에는 어떤 보증도 포함되어 있지 않다. 심지어는 상업적인 또는 특별한 목적을 위한 수정에 대한 어떠한 담보도 포함되어 있지 않다. 좀더 자세한 사항을 원한다면 GPL을 참고하라.

4.2 연락처

만약 이 문서에 대한 좋은 의견이 있다면 나에게 이메일을 보내달라. alexandre12@mageos.com

4.3 참고문헌




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.0040 sec