2011년 2월 22일 화요일

리눅스 시리얼포트 콘솔 사용하기

가끔 콘솔을 연결하여 사용해야 될 때가 있다. 스위치 초기 환경 설정을 하거나, 기타 장비들에 접근할때 말이다. 보통은 윈도우 머신에서 간단하게 하이퍼터미널을 이용하여 연결하여 잠깐식 사용하곤 하였다. 콘솔이라는게 계속적으로 많이 사용되기 보다는 잠깐 설정에 이용되는 경우가 많다. 최근 콘솔에 연결해야 할 경우가 있었는데, 윈도우를 붙일 상황이 여의치 않아 리눅스 시스템 시리얼 포트에 연결하여 사용해 봤다. 오히려 더 간단함에 편리하다. 맨날 사용하던 방식대로만 윈도우에 붙여서 사용하다 보니 바로 가까이 붙어 있는 리눅스는 생각치도 못했다. 이게 바로 익숙함에 의한 것일까? :-)

어찌되었든 사용은 다음과 같이 아주 간단하다.

일단  연결할 시리얼포트에 대한 정보를 얻어야 하니, dmesg 로 살펴본다.

# dmesg | grep tty
[    0.004000] console [tty0] enabled
[    2.407703] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    2.407703] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    2.407703] 00:05: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    2.407703] 00:06: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

ttyS0 을 확인할 수 있고, 아주 간단하게 screen 을 이용하여 쉽게 접근할 수 있다.

# screen /dev/ttyS0 9600

복잡한거 생각할 것도 없이 그냥 screen 명령어로 쉽게 가능하다. 물론 뒤에 따라오는 9600 속도는 상황에 따라 다 다르므로 그때 그때 맞춰서 사용하면 된다.

screen 을 이용하는 방법외에 조금 더 고전적인 방식은 cu 명령어를 이용해도 된다. 이것은 오래전 통신 방법으로 이용되던 UUCP 연결때 사용하는 것인데, 이것도 콘솔로 이용가능하다.

# cu --help
Taylor UUCP 1.07, copyright (C) 1991, 92, 93, 94, 1995, 2002 Ian Lance Taylor
Usage: cu [options] [system or phone-number]

# cu -s 9600 -l /dev/ttyS0
cu: open (/dev/ttyS0): Permission denied
cu: /dev/ttyS0: Line in use

위와 같이 해 보았더니 퍼미션 에러가 발생한다. 퍼미션을 확인해 보니 root 소유이다.

# ls -l /dev/ttyS0
crw------- 1 root root 4, 64 2011-02-01 02:19 /dev/ttyS0

uucp 로 변경하고 실행하니 깔끔히 접속된다.

# chown uucp /dev/ttyS0
# cu -s 9600 -l /dev/ttyS0
Connected.

console>

그리고 빠져나갈때는 ~. 를 입력하면 된다.

콘솔을 이용하는 이유는 여러가지가 있는데, 다음 HOWTO 문서를 참고해 보길 바란다.

Why use a serial console?
http://www.iitk.ac.in/LDP/HOWTO/Remote-Serial-Console-HOWTO/intro-why.html

항상 사용하던 방식의 습관을 버리고, 안해보던 방식도 한번 사용해 보는 것은 어떤가? 이것이 본인의 Skill 을 항상 시킬 수 있는 하나의 방법은 아닐까. 단, 귀챠니즘은 항상 존재한다. ^^

댓글 없음:

댓글 쓰기