2010-02-03 3 views
4

현재 시리얼 라인을 통해 시스코 장비와 통신 할 수있는 프로그램을 개발할 필요가 있습니다. 내 개발 리눅스 머신에서 테스트 환경을 만들고 싶다. 그래서, 나는 dynamips cisco 에뮬레이터를 발견했습니다. 이 에뮬레이터는 '-U/dev/ttyS0'옵션을 사용하여 직렬 회선을 통해 인터페이스를 제공 할 수 있습니다. 글쎄, 이로 인해 다이나믹 칩이 하드웨어 직렬 포트를 열고이를 통해 통신합니다. minicom과 같은 시리얼 클라이언트가있는 다른 리눅스 머신에서이 하드웨어 시리얼 포트에 연결할 수 있습니다.리눅스에서의 소프트웨어 시리얼 포트 루프백

그러나 저는 리눅스 머신 둘 모두에 virtualbox를 사용하고 있기 때문에 가상 포트 기능을 통해 직렬 포트를 연결하여 직렬 포트를 명명 된 파이프로 전달합니다. 이 제도는 효과가있는 것으로 보이지만 매우 보복 적입니다. 나는 하나의 리눅스 머신에서 dynamips와 minicom을 실행할 방법을 찾고있다.

나는 의사 터미널이 내 경우에 유용 할 수 있음을 알았다. 하지만 '-U/dev/ptmx'로 다이나믹을 실행하려고 시도한 다음 minicom으로 연결하여/dev/pts/... 포트를 만들고 그 반대의 경우도 마찬가지입니다. 두 경우 모두 입/출력 오류가 발생했습니다.

+0

도움을 요청하는 특정 질문이나 오류 메시지가 있습니까? –

+0

이 루프백 작업을 위해 openpty를 마지막으로 사용 했습니까? – lpapp

답변

6

불행히도, 현대 의사 단말기는 그렇게 쉽지 않습니다. posix_openpt() 또는 open("/dev/ptmx")으로 마스터를 연 후 마스터 FD에서 grantpt()unlockpt()을 호출해야 해당 슬레이브 장치를 사용할 수 있습니다. (openpty() 등 유틸리티 기능이 이것을 단순화합니다.)

해결 방법으로는 이 유용 할 수 있습니다.

 
# terminal 1 
socat pty:link=$PWD/pts unix-l:$PWD/ptm-pipe & 
dynamips -U $PWD/pts 

# terminal 2 
socat unix:$PWD/ptm-pipe - 
+0

또는'socat '을 사용하여 두 개의 pty를 열고 마스터가 함께 연결되도록 할 수 있습니다 ('dynamips '에서 하나의 pty에 연결하고'minicom '에서 다른 하나에 연결). – caf

+0

'minicom '이 설치되어 있지 않아서 할 수 있는지 알지 못했습니다. 나는 지금 man 페이지를 읽고 있는데, 유닉스 소켓에서도 작동한다고 주장한다. 그것은 두 번째'socat'을 모두 제거 할 것입니다. – ephemient

+0

@caf "마스트 엔드에 함께 참여하십시오." 너는 무엇을 의미하니, 어떻게하면 좋을까? 하나의 터미널이 마스터이고 다른 하나가 종속되어서는 안됩니까? – nass