KVM 튜토리얼 03 — 고급 기능
대상: 중급~전문가 — 파워 유저 기능 및 설정
1. 환경설정 시스템
비디오
- 해상도 및 프레임 레이트 — 선호 캡처 설정
- 미디어 백엔드 — FFmpeg, GStreamer (Linux) 또는 Qt Multimedia (Windows)
- 하드웨어 가속 — VAAPI (Intel/AMD), V4L2-M2M (Raspberry Pi)
- 종횡비 및 스케일링 — 사용자 지정 비율, Stretch/Fit/Fill
오디오
- 활성화 — 타겟에서 오디오 캡처 전환
- 입력/출력 장치 — 소스 및 재생 장치 선택
타겟 제어
- 마우스 모드 — Absolute, Relative (HID), Relative (Events)
- 마우스 이벤트 스로틀 — 초당 30–1000 이벤트
- 키보드 레이아웃 — 타겟 OS 및 지역 레이아웃
- 반복 키 입력 간격 — 키를 누르고 있을 때 반복 속도
- 커서 자동 숨김 — 비디오 영역 위에서 호스트 커서 숨기기
로깅
- 로그 수준 — Debug, Info, Warning, Error
- 파일로 로그 —
~/Documents/openterface.log(macOS) 또는 구성된 경로 (Qt) - 시리얼 로깅 — 별도의 시리얼 통신 로그
2. EDID 관리
EDID란?
EDID(Extended Display Identification Data)는 KVM 장치가 타겟에 전송하여 표시 기능 — 지원 해상도, 주사율, 벤더 정보 — 을 설명하는 데이터입니다. KVM은 「가상 모니터」 역할을 하므로 EDID가 타겟이 출력할 해상도를 결정합니다.
EDID 표시 이름 편집
KVM 장치가 타겟에 보고하는 표시 이름을 변경할 수 있습니다. 이 이름은 타겟 OS의 디스플레이 설정에 표시됩니다.
참고: 현재는 표시 이름 편집만 지원됩니다. 해상도 편집 및 사용자 지정 해상도 항목은 아직 사용할 수 없습니다.
접근: Settings > EDID Display Name Editor (macOS) 또는 Device > Update Display Settings (Qt)
사용 사례
- 타겟 OS 설정에서 디스플레이 식별
- 멀티 모니터 구성에서 KVM 디스플레이를 구분하기 위한 사용자 지정 이름
3. 매크로 시스템 (macOS)
매크로는 도구 모음 매크로 패널에서 트리거할 수 있는 저장된 키보드 동작 시퀀스입니다.
키 시퀀스 형식
수정자 태그: <CTRL>, <SHIFT>, <ALT>, <CMD> (타겟 OS에 따라 Cmd/Win/Super로 매핑)
특수 키: <ESC>, <BACK>, <ENTER>, <TAB>, <SPACE>, <LEFT>, <RIGHT>, <UP>, <DOWN>, <HOME>, <END>, <DEL>, <PGUP>, <PGDN>, <F1>–<F12>
지연: <DELAY05s>, <DELAY1S>, <DELAY2S>, <DELAY5S>, <DELAY10S>
예시
AI 지원 생성
매크로 편집기의 Magic 버튼은 자연어로부터 매크로를 생성합니다. 원하는 동작을 설명하면 AI가 키 시퀀스를 생성합니다.
검증
테스트 후 매크로를 verified(검증됨)로 표시합니다. 검증된 매크로만 AI 에이전트의 자율 실행에 사용할 수 있습니다.
4. 스크립트 도구 (Qt)
AutoHotKey에서 영감을 받은 스크립트 언어로, 타겟에서 키보드 및 마우스 동작을 자동화합니다.
열기
메뉴: Device > Script Tool
명령
| Command | Description | Example |
|---|---|---|
Sleep |
실행 일시 정지 | Sleep 1000 |
Send |
키 입력 전송 | Send Hello World |
Click |
마우스 클릭 | Click 100 200 |
SetCapsLockState |
CapsLock 전환 | SetCapsLockState On |
FullScreenCapture |
스크린샷 | FullScreenCapture "/tmp/shot.png" |
수정자 접두사
^ = Ctrl, + = Shift, ! = Alt, # = Win
5. 펌웨어 업데이트
업데이트 시기
- 새 하드웨어 기능
- 버그 수정
- 호환성 개선
업데이트 절차
- Firmware Update Tool 열기 (macOS에서는 Settings > Firmware Update Tool, Qt에서는 Device > Update Firmware)
- 도구가 네트워크에서 최신 버전 확인
- 쓰기 작업 중 진행률 추적
- 업데이트 중에는 장치를 분리하지 마세요
복구
- 장치 전원 유지
- Firmware Update Tool을 닫았다가 다시 열고 재시도
- 장치가 응답하지 않으면 Serial Reset Tool 사용
6. Serial Reset Tool
접근: Settings > Serial Reset Tool (macOS) 또는 Device > Factory Reset HID Chip (Qt)
다음 경우에 사용:
- 펌웨어 업데이트 실패 후 장치가 알 수 없는 상태
- HID 칩이 응답하지 않음
- 장치를 재판매하기 전 준비
7. 진단 (Qt)
메뉴: Device > Device Diagnostics
하드웨어 테스트를 순차적으로 실행:
- 시리얼 연결 테스트
- 타겟 USB 상태
- 공장 초기화 테스트
- 고/저 baudrate 테스트
- 스트레스 테스트 (빠른 명령, 성공률 측정)
- 플러그 앤 플레이 테스트 (USB 연결 해제/재연결 감지)
실행 후 Support Email Dialog를 통해 결과를 내보냅니다.
8. AI 채팅 시스템 (macOS)
타겟 화면을 분석하고, 동작을 제안하며, 키보드/마우스 작업을 실행할 수 있는 내장 AI 어시스턴트.
채팅 모드
| Mode | Description |
|---|---|
| Interactive | 질문하고 안내 받기 |
| Agentic | AI가 자율적으로 계획하고 다단계 작업 실행 |
| Guide | 한 번에 하나의 지시를 단계별로 |
| Planner | 복잡한 요청을 구조화된 계획으로 분해 |
구성
Settings > AI Chat: API 엔드포인트, 키 (Keychain에 저장), 모델, 타겟 시스템 (macOS/Windows/Linux 등)
9. 원격 제어 (VNC/RDP — macOS)
Control > Connection Protocol을 통해 Hardware KVM, VNC, RDP 모드 간 전환.
| Scenario | Mode |
|---|---|
| BIOS/UEFI, 네트워크 없음, 부팅 중, 충돌한 타겟 | Hardware KVM |
| 고대역폭 데스크톱 사용, Windows 서버 | VNC 또는 RDP |
10. TCP 서버 (Qt)
포트 12345에서 원격 제어를 위한 내장 TCP 서버.
명령
CHECK_STATUS, GET_LAST_IMAGE, GET_TARGET_SCREEN, SCRIPT_COMMAND
Python 예시
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("localhost", 12345))
sock.send(b"CHECK_STATUS\n")
print(sock.recv(4096).decode())
sock.close()
> **보안:** 인증, 암호화 또는 속도 제한 없음. 신뢰할 수 있는 네트워크에서만 활성화하세요.
---
## iPadOS 전용 기능
### Bluetooth 연결 관리
iPadOS 앱은 **Bluetooth Low Energy (BLE)** 를 통해 KVM-Go 동글에 연결하여 키보드/마우스 HID 입력을 수행합니다:
- **자동 연결:** 기본적으로 활성화. 시작 시 앱은 5초간 스캔하고 가장 신호가 강한 `kvm*` 장치에 자동 연결합니다.
- **재연결:** 연결이 끊기면 앱은 2초 간격으로 최대 3회 재연결을 시도합니다.
- **신호 모니터링:** RSSI는 2초마다 업데이트. BLE 버튼은 신호 강도(예: `-45 dBm`)와 색상 표시: 녹색 (-50~0 dBm), 주황 (-70~-50 dBm), 빨강 (-70 dBm 미만).
- **장치 스캔:** 이름이 `kvm`으로 시작하는 장치(대소문자 구분 없음)만 목록에 표시됩니다.
- **수동 제어:** BLE 화면을 열어 스캔, 연결, 연결 해제 또는 자동 연결 비활성화.
### 정보 오버레이
**Info** 버튼을 탭하면 오른쪽 상단에 실시간 입력 상태 오버레이가 표시됩니다:
┌─ 입력 상태 ────────────┐ │ 마우스 │ │ 모드: Absolute │ │ 위치: 512.0, 384.0 │ │ 드래그 모드: Active │ │ 스크롤: Inactive │ │ 키보드 │ │ 모드: Normal │ │ Caps Lock: OFF │ │ 수정자: Ctrl, Shift │ └────────────────────────┘
오버레이는 터치에 투명 — 비디오 미리보기와의 상호작용을 차단하지 않습니다.
### 화면 방향 보정
**Rotate** 버튼을 탭하여 방향 보정 모드를 순환: Normal, 90° CW, 180°, 90° CCW. KVM-Go 동글이 비표준 방향으로 장착된 경우 비디오 미리보기를 보정합니다. 회전은 라이브 미리보기와 저장된 캡처 모두에 적용됩니다.
### 유휴 타이머 비활성화
앱은 사용 중 유휴 타이머를 비활성화하여 iPad 화면을 **켜진 상태**로 유지하고, 타겟 PC를 모니터링하는 동안 iPad가 자동 잠금되는 것을 방지합니다.
### 로깅 시스템
앱에는 카테고리 기반 필터링을 갖춘 내장 `Logger`가 있습니다:
| Category | Covers |
|---|---|
| `bluetooth` | BLE 스캔, 연결, 데이터 전송 |
| `mouse` | 마우스 입력, 제스처 감지, 모드 변경 |
| `keyboard` | 키 이벤트, 수정자 상태, 복합 키 |
| `camera` | 비디오 녹화, 스크린샷, 사진 캡처 |
| `ui` | 터치 처리, 제스처 인식, 미리보기 레이어 |
| `general` | 앱 수명 주기, 일반 정보 |
콘솔 노이즈를 줄이기 위해 앱 소스에서 로깅을 조정할 수 있습니다.
---
## 다음 단계
- **[고장 해결 →](04-troubleshooting.md)** — 일반적인 문제와 해결책
---
## Android 전용 기능
### 설정 패널
Android 앱의 설정 패널(메뉴 버튼 ☰)에는 모든 구성 옵션이 포함되어 있습니다:
| Setting | Description |
|---|---|
| **Device** | 연결된 USB 장치 및 상태 표시. 탭하여 선택 또는 재스캔. |
| **Disconnect Device** | 모든 USB 연결을 안전하게 해제. 분리 전에 사용. |
| **Baudrate** | 시리얼 통신 속도: **115200** (기본값) 또는 **9600** (느림, 문제 발생 시). |
| **Controls** | 카메라 밝기, 대비, 색조 슬라이더. |
| **Video Format** | 해상도 및 프레임 레이트 선택기. |
| **Rotate/Flip** | 90° CW/CCW 회전, 수평/수직 뒤집기. |
| **Screen Capture / Record Video** | 스크린샷 및 비디오 녹화. |
| **Relative / Absolute / Drag** | 마우스 제어 모드 전환. |
| **About Device** | Android 버전 및 앱 버전 정보 표시. |
### 설정 유지
Android 앱은 세션 간 설정을 기억합니다:
| Setting | Persisted? |
|---|---|
| 마우스 제어 모드 | 예 |
| 비디오 형식 (해상도, FPS) | 예 |
| 카메라 매개변수 (밝기, 대비, 색조) | 예 |
| 키보드 레이아웃 (US, JP, DE) | 예 |
| Baudrate | 예 |
| 장치 연결 기록 | 예 |
앱을 다시 열면 마지막 설정이 복원됩니다. 모두 재설정하려면: Android 설정 → 앱 → Openterface → 저장소 → **데이터 지우기**.
### 안전한 연결 해제
Android에서 KVM 장치를 분리하기 전:
1. 설정 패널 열기
2. **Disconnect Device** 탭 (빨간색으로 표시)
3. 앱이 USB 연결을 해제할 때까지 대기
4. 케이블 분리
이렇게 하면 데이터 손상을 방지하고 타겟 컴퓨터가 키보드/마우스를 올바르게 해제합니다.
### Android 성능 팁
- **해상도 낮추기** — 640×480은 1920×1080보다 훨씬 가볍습니다
- **프레임 레이트 줄이기** — 30fps는 60fps보다 대역폭을 적게 사용합니다
- **다른 앱 닫기** — 휴대폰 메모리 확보
- **고품질 USB OTG 어댑터 사용** — 저렴한 어댑터는 연결 병목이 될 수 있습니다
- 개발팀은 카메라 파이프라인 자체의 지연 시간 감소 작업을 진행 중입니다