AI 탐구노트

우분투에서 스마트폰 화면 미러링 구현하기 본문

기술 팁

우분투에서 스마트폰 화면 미러링 구현하기

42morrow 2024. 9. 28. 14:34

 

우분투에서 스마트폰 화면을 데스크톱에 미러링하는 방법을 알아 봅니다.

 

스마트폰 앱에서 뭔가를 해야 하는데 아무래도 손가락으로 하는 작업보다 키보드를 이용하는 경우가 편한 경우가 있죠?

예를 들어 타이핑이 많이 필요한 경우라거나 혹은 스마트폰 화면을 캡처해야 하는 경우 같이 말입니다. 

그런 때 필요한 것이 미러링인데 우분투에도 이를 지원하는 scrcpy라는 도구가 있습니다.

 

 

SCRCPY

scrcpy는 오픈소스 미러링 도구라고 보면 됩니다.

화면/소리/마우스/키보드 원격 제어를 지원하며 다음과 같은 특징을 가지고 있습니다.

  • 호스트 OS : 윈도우, 우분투, Mac 등 다 지원
  • USB, Wifi 지원
  • 가볍고(native), 성능좋고(30~60fps), 고해상도 지원(FHD 이상 가능),
  • 저지연(35~70ms), 바로시작(~1초 이내)
  • 단말에 특별히 설치해야 하는 것은 없음 (adb, scrcpy 정도만 필요)
  • 기기에 아무것도 남지 않음
  • 복수의 폰을 미러링할 수도 있음 (멀티 display)
  • drag & drop 지원됨 - 단 폰의 SDcard 접근 권한 필요

 

이 툴을 이용하면 폰의 카톡을 PC에서 사용할 수 있습니다. 당연히 미러링이니까요...

 

제약사항은 adb 디버깅 활성화가 필요하다는 것입니다. (아래 내용에서 설명) 

 

프로그램 설치

우선 안드로이드 스마트폰과의 연결을 위해 adb  설치가 필요합니다.

참고로 ADB는 Android Debug Bridge의 약자로, 앱 설치나 디버깅 등을 쉽게 사용할 수 있도록 해 주는 CLI 기반 도구입니다.

 

$ sudo apt install adb

 

 

그리고나서 scrcpy를 설치합니다. 

 

 $ sudo apt install scrcpy

 

 

스마트폰 설정 확인 (Android만 지원)

 

스마트폰의 안드로이드 설정에서 다음 내용을 확인합니다.

 

1.개발자 옵션 활성화 및 USB 디버깅 설정

 

사진 : 개발자 옵션 활성화 및 USB 디버깅 항목 활성화

 

 

참고) 만약 개발자 옵션이 보이지 않을 경우에는 '설정 > 휴대폰 정보 > 빌드 번호'를 여러 번 탭해서 개발자 옵션을 활성화할 수 있습니다.

 

 

2.USB 연결 타입 확인

충전 전용이 아닌 'USB로 파일 전송' 모드인지 확인 

 

 

 

 

 

1.USB 디버깅 활성화 상태에서 USB 연결 시 스마트폰 쪽 화면에는 신뢰할 수 있는 PC인지 묻는 화면이 나오고 이를 수락해야 미러링이 진행됩니다.

2.'개인보안 자동차단' 설정 시 USB 디버깅 항목이 자동으로 비활성화되므로 해제해 두고 진행해야 합니다.

 

 

 

 

여기까지가 연결을 위한 준비 단계였습니다. 

이제 스마트폰과 PC를 USB 케이블로 연결 진행합니다. (데이터 전송 가능 케이블인지 꼭 확인하고 진행하세요.)

 

스마트폰 USB 연결 확인

adb 도구를 이용해서 진행하게 되는데, 스마트폰이 USB 연결되면 adb 상에 device 목록으로 표시됩니다. 

 

# adb server 종료 & 재시작
$ adb kill-server
$ adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully

# device 확인
$ adb devices  (디바이스명은 일부 변경)
List of devices attached
R58RXXXXXXx device

 

 

위와 같이 목록이 나오면 연결이 완료된 것입니다.

간혹 인식이 되지 않는 경우가 있는데 그 경우에는 앞서 준비 사항에 있었던 것들을 다시 확인합니다.

  • 스마트폰 연결에 사용한 USB 케이블이 충전 외에 데이터 전송도 지원하는 것인지 확인
  • 스마트폰이 파일 전송모드로 연결되어 있는지 (아닐 경우, 충전모드로만 되어 있는 경우가 있음)
  • 안드로이드 설정에서 'USB 디버깅'이 활성화되어 있는지 확인 

 

화면 미러링 실행

스마트폰의 USB 연결까지 확인했으니 미러링을 진행해 봅니다. 

 

# 폰 화면과 동시에 미러링
$ scrcpy

# 폰 화면 끄고 미러링만 하기
$ scrcpy -S

 

 

역시 잘 되네요... 

기본은 화면 미러링만 되는 것이라 세부적으로 옵션을 줘서 필요한 기능을 활성화할 수 있습니다. 

 

 

1.스마트폰 화면 녹화 기능 

 

# 파일명 지정해서 레코딩
$ scrcpy --record <파일명>

# 녹화화면 보이지 않으면서 레코딩
$ scrcpy --no-display --record <파일명>

 

 

2.미러링 화면 크기 조정 

 

# 미러링 화면 크기 지정 : -m<화면크기_width>
$ scrcpy -m800

 

 

3.미러링 시 스크린세이버 동작 방지 

# 스크린세이버 방지 : --disable-screensaver 
$ scrcpy --disable-screensaver

 

 

4.UHID 마우스, 키보드 에뮬레이팅

 

가끔 마우스, 키보드가 적용되지 않는 경우가 있는데 그 경우에는 UHID를 이용해서 사용할 수 있습니다. 

 

참고) UHID(Universal Human Interface Device)는 리눅스 커널에서 가상으로 입력 장치를 생성하고 처리할 수 있게 해주는 가상 장치 프레임워크로, UHID를 사용하면 마우스나 키보드와 같은 입력 장치를 소프트웨어적으로 에뮬레이트하는 방식으로 지원할 수 있습니다. 아무래도 조금 반응 속도가 느릴 수 있습니다. 

 

# 물리 키보드를 에뮬레이팅 : -K 또는 --hid-keyboard
$ scrcpy -K 

# 물리 마우스를 에뮬레이팅 : -M 또는 --hid-mouse
$ scrcpy -M

 

 

이외에도 다양한 옵션들이 있으니 필요한 게 어떤 것인지 생각해서 옵션들을 적용해 보시기 바랍니다.