| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (아가남편) 날 짜 (Date): 1996년08월02일(금) 01시33분05초 KDT 제 목(Title): re: linux 와 모뎀과 ppp 우선 리눅스에서 모뎀을 다는데는 아무 소프트웨어도 필요없지요 cable 과 어느 시리얼포트를 사용할것인지 일단 그것은 configure 가 제대로 되었다고 가정하고. serial port driver 내지는 FIFO UART 드라이버 (16550 용과 16450 용) 두가지다 kernel 에 builtin 되어있습니다. 그리고 나서는 이제 모뎀용 소프트웨어가 있으면 일반 피씨에서 사용하듯이 사용하실수 있지요. 제가 애용 하는 것은 일단 kermit 입니다. 우선은 이것을 사용하는 것이 모뎀을 configure 할때 편하게 할수 있기 때문에 설명을 드리는 겁니다. kermit 을 사용할때는 /dev/modem 이 모뎀 포트를 point 하고 있다고 할때 set line /dev/modem set speed <max-dte-speed> (예를 들면 set speed 115200) 등. 그리고 나머지는 머 set flow rts/cts 나 set term byte 8 set com byte 8 set send packet 1024 set rec packet 1024 set win 7 set block 3 set file type bin set file name literal 등 셋업 해주시고 이건 ~/.kermrc 에 넣어 놓으면 매번 자동으로 실행 되지요. 일단은 모뎀을 꼭 RTS/CTS 하드웨어 플로콘트롤을 사용하게 해야 합니다. 특히 ppp 를 사용하기 위해서는 그렇게 콘피켜를 해줘야 합니다. 이 kermit 등은 그냥 일반 피씨에서 쓰는 iyagi 내지는 procomm 과 같은 터미날 에뮬레이터정도 생각하시면 됩니다. 그럼 일단은 모뎀은 RTS/CTS 플로 콘트롤을 쓰는 것으로 configuration 이 잘 되었다고 가정합니다. 가장 흔히 건드려야 하는 파라미터는 Hayes AT 명령으로 할때 &C1 &D2 그리고 모뎀종류에 따라 약간씩 다른데 &H1 &R2 &I0 가 USR 모뎀등에서는 RTS/CTS 플로콘트롤 셋업하는 거지요. 모토롤라 코덱스 시리즈는 AT 명령보다는 AT* codex 명령이 따로 있어서 그건 조금 더 자세히 매뉴얼을 보셔야 합니다. 모뎀 콘피겨 끝난담에 거의 모듬 ppp 소프트웨어에 modem dial connect 해주는 드라이버가 포함되어 있습니다. 즉 일종의 UUCP chat script 형식으로 <expected string> <then enter this string> 의 포맷이지요. pppd 를 시작할때 다음과 같은 스크립트를 만들어 사용하시면 됩니다. #!/bin/tcsh set options="defaultroute modem crtscts debug" set device=/dev/cua1 set speed=115200 set path=(/usr/lib/ppp $path) /usr/lib/ppp/pppd $options $device $speed $options connect 'chat -v -f \ /etc/ppp/chatscrdyn' netmask 255.255.255.0 그리고 /etc/ppp 디렉토리 안에 options 라는 file 을 꼭 만들어 주세요. file 내용은 modem crtscts debug 이정도로 3 단어가 각각 한줄에 한개씩 넣어 주면 됩니다. 그리고 위의 chat script file 인 /etc/ppp/chatscrdyn 은 "" "ATDT<전화번호>" "CONNECT" "" name:--name: <유저아이디> word: <패스워드> "" "ppp" 를 한줄에 써주시면 됩니다. 위에서 name:--name: 은 들어가시는 시스템에 따라 ogin:--ogin: 으로 바꾸시던지요. 그리고 만약 로긴과 동시에 ppp server 가 자동으로 시작하게 되었을 경우에는 끝에 "ppp" 는 빼도 됩니다, 제경우는 터미날서버에 로긴을 해서 ppp를 명령으로 쳐주어야 ppp 가 시작되게 해놔서 그렇게 한거지요. 그리고 위에 스크립는 dynamic ppp 용으로 피피피서버 쪽에서 local IP 그리고 remote IP 를 자동으로 dynamically assign 해줄경우이고 만약 static IP 를 지정해줄경우에는 set options="defaultroute modem crtscts debug <local-IP>:<remote-IP>" 를 해주면 됩니다. 그리고 주의 하실 것은 일단 연결하신 다음에 /etc/resolv.conf 에다 domain 과 nameserver 를 넣어주시지 않을 경우 /etc/hosts 만 뒤진다는 점. 아 그리고 반드시 /etc/host.conf 에 order hosts, nis, bind multi on 요렇게 넣어주셔서 /etc/hosts file 을 꼭 먼저 resolver 가 뒤지게끔 해주세요. 안그러면 ppp 연결 안되면 아예 로칼시스템 에서 IP 주소와 hostname 이 한개도 바인드가 안되는 불상사가 생길수도 있습니다. 아니 아예 hang 되어버릴지도 모르지요. 참 위의 nis 는 삭제하셔도 상관없습니다 안쓰실 경우에는. 참 위의 옵션에서 defaultroute 를 넣어줌으로 해서 routing 이 host 나 network route 를 못찾을 경우에는 모조리 ppp interface 로 가게끔 해주게 됩니다 만약 이써넷카드가 더 있다던지 해서 라우터의 역활도 하게 될때는 디폴트라우트를 쓰지 말고 차라리 gated 를 사용해서 라우팅을 알아서 하게끔 해주는게 편하지요. (물론 이럴경우 피피피쪽에서는 RIP 등 브로드캐스팅하는건 꺼버리게 해줘야 편하지요.) 일단은 리눅스 사이드를 정리했어요. 참 리눅스에서는 dip 이라는 유틸리티를 사용해서 위의 pppd 와 함께 쪼차오는 chat 을 사용하지않고 dip 을 사용해서 연결 하고 나서 pppd 를 시작하게 해주게끔 하는 사람도 많이 있지요. 저는 처음에 디버깅 할때는 아예 kermit 으로 dial 해서 연결을 한담에 리모트에서 manually ppp daemon 을 시작해주고 로칼에서 kermit 에서 escape 해서 다시 수동으로 pppd 을 시작해서 디버깅을 하고 했지요. 근데 대부분의 경우 그럴 필요까지는 없읍니다. --- hellcat@korea.slip.umd.edu if (t_snddis(KIDS[i].fd, (struct t_call *)NULL) == -1) { t_error("날 죽여라!!"); longjmp ((jmp_buf) HELL, -1); } --- dkim@surecom.com |