2010년 1월 5일 화요일

VMWare의 Serial 포트 연결하기

 VMWare Workstation 또는 VMWare Player에 설치된 게스트 운영체제와 호스트 운영체제에 설치되어 있는 응용프로그램간 시리얼 통신이 필요한 경우가 있다. 예를 들면 X86용 임베디드 리눅스를 이용한 네트웍장비의 개발을 VMWare를 이용해 진행하는 경우 일반적으로 키보드 또는 마우스와 같은 입력 장치 대신에 시리얼 콘솔을 통해 프로그램의 실행 및 디버깅을 진행할 필요가 있게 된다. 또한 WinCE나 Embedded WindowsXP와 같은 운영체제의 디버깅을 VMWare상에서 수행할때도 시리얼포트를 통해 WinDbg와 같은 디버깅 프로그램과 연결하여 진행한다.

 VMWare를 비롯한 VirtualPC, VirtualBox등과 같은 가상컴퓨터 제품들은 Guest OS와 Host OS사이를 연결해 줄 수 있는 시리얼 포트를 제공해 주고 있으며, 모두 3가지 방식의 시리얼 포트 연결 방식을 제공한다.

  1. 물리적인 시리얼 포트에 직접 연결 - Host PC에 있는 물리적인 시리얼 포트를 Guest OS에 직접 연결해 준다.

  2.  파일 출력 - Guest OS의 시리얼 포트를 Host OS의 파일에 연결해 준다. 큰사이즈의 디버깅용 데이터 덤프나 긴 동작 시간동안의 로그 데이터 기록에 유용하다.

  3.  파이프 이용 - Unix계열 운영체제나 Windows 운영체제는 프로세서간 통신을 위한 IPC를 지원하며, 이때 PIPE를 이용한다. VMWare와 같은 가상화 프로그램에서 내부에 설치된 Guest OS와 Host OS에서 동작하는 응용프로그램간 통신 수행시 이 Pipe를 이용하는 방식이다. 정확하게는 VMWare와 Host OS상의 응용프로그램 사이에 Pipe통신을 수행하고, VMWare는 Guest OS에게 시리얼 포트로 보이도록 변환하는 기능을 수행해 준다.

 본 포스트에서는 Pipe를 이용한 시리얼 포트를 연결하는 방법에 대해 살펴본다.

VMWare Player를 실행하면 기본으로는 시리얼 포트가 설정되어 있지 않으므로 추가해 줘야 한다. 다음 그림처럼 Virtual Machine Setting에서 Add... 버튼을 클릭하여 시리얼 포트를 추가한다.


다음 그림과 같이 Named Pipe를 사용함으로 설정한다. VMWare는 서버로 설정하고, 반대편은 응용프로그램으로 설정한다.

 이제 VMWare의 설정은 끝났으며, Host  OS용 응용프로그램를 설정한다.
Named Pipe를 지원하는 터미널 프로그램으로는 현재 그리 많지 않으며, 대표적으로 Putty가 지원하고 있다. 따라서 Putty를 이용하여 접속하기로 한다.
참고로 Putty는 영문판 Putty와 한글화 작업을 한 한글판 Putty가 있다
프로그램을 다운받아 실행한 후 설정 화면에서 다음과 같은 입력해 준다.

이제 열기 버튼을 클릭하여 VMWare에 접속하면 Guest OS로 시리얼 데이터를 보내거나 데이터를 받는 작업을 수행할 수 있다.

 여기서 하나 알아 두어야 할점은, Pipe를 이용한 통신은 프로세서간 통신(IPC)이며, 일종의 소켓통신이므로 서버 프로그램이 실행되어 있지 않거나 이미 다른 프로그램이 Pipe를 점유하고 있으면 접속 할 수 없다. 따라서 VMWare를 기동한 후에 Putty를 실행하여 접속하여야 한다.

 이와 같은 Named Pipe를 이용한 시리얼 포트 접속 방식은 VirtualBoxVirtualPC에서도 모두 적용 가능하다.

댓글 없음:

댓글 쓰기