이 게임을 기억하시는 분이 있으려나 모르겠네요.

 

분명 이름은 쿠키샵인데 쿠키는 절대로 안 파는 경영게임 "쿠키샵"입니다. 그런데 이거 정말 오래된 게임인데 지금해도 꽤 난이도가 있습니다. RPG요소가 같이 섞여 있다보니 전투도 치뤄야하고 손님이 오면 후다다닥 처리도 해야하고 할일이 엄청 많습니다. 이걸로 마우스를 꽤나 망가뜨린 경우가 많다고 하네요.

 

PlaynLinux를 이용했고 Wine 5.7을 사용했습니다. 워낙 오래된 게임이라 딱히 설정은 필요없었습니다.

 

단 하나... 시디롬 인식이 잘 안 되서 gCDemu를 설치한 후에 gCdemu에서 iso 이미지를 마운트 했습니다.

이전에 프린세스 메이커3때도 그랬지만 이 당시에는 시디롬을 잘 활용했었습니다. 덕분에 시디가 없으면 안 돌아가는 경우가 많았습니다. 그런데 쿠키샵은 일단 시디롬이라고 인식되기만 하면 어찌되었든 돌아가서 복제방지가 허술한 축에 속합니다. 그리고 640x480으로 돌리니 상당히 눈이 아프네요. 이미 회사가 망해버려서 다시 리마스터링 한다거나 할 수도 없겠지요.

,

이전에 scrcpy를 써서 딜레이가 거의 없는 안드로이드 화면 미러링에 관하여 설명한 적이 있습니다.
https://moordev.tistory.com/323

그런데 PC야 원래 성능이 좋으니까 사실 wifi를 사용한 방법으로도 충분한 경우가 많습니다. 하지만 이보다 성능이 떨어지는 SBC(Single Board Computer)라면 어떨까요? 과연 이걸로도 scrcpy로 안드로이드 스마트폰 화면을 미러링 할 수있을까요?

그래서 한번 SBC의 가장 대표적인 보드인 라즈베리파이를 이용해봤습니다.

이번에 사용할 보드인 라즈베리파이3 B+ (쓴지 몇년 되었습니다.)와 저렴한 Waveshare사의 3.5inch LCD (A) 입니다.LCD는 그냥 라즈베리파이의 GPIO에 맞게 끼우면 바로 작동 됩니다.

물론 작동 된다는 것이지 바로 사용이 가능한 것은 아닙니다. 몇가지 설치절차가 필요합니다. 지금은 그냥 하얀 화면만 나올 뿐입니다.

우선 RaspberryPi OS가 설치된 SDCARD가 필요합니다. 이건 워낙 여기저기에서 방법을 잘 알려주고 있고 라즈베리파이를 본격적으로 쓰시는 분들이라면 이미 다들 알고 계시겠지요.

그리고 LCD에 바로 화면이 뜨지 않기 때문에 SSH를 활성화 하거나 HDMI 모니터와 USB키보드를 준비해야합니다. 저는 그냥 SSH를 활성화 한다음 유선랜을 공유기에 꽂아서 라즈베리파이에 접속했습니다.

SSH를 활성화 하는 방법은 간단합니다. RaspberryPi OS가 설치된 SDCARD를 PC에 꽂으면 boot라고 써있는 디스크가 보입니다. 여기에 SSH 라는 이름을 가진 파일을 하나 만들면 바로 SSH가 활성화 됩니다.

그 다음 SSH로 라즈베리파이에 접속합니다.

ssh pi@192.168.0.xx (192.168.0.xx는 라즈베리파이의 IP주소입니다. 공유기에 접속해서 확인 할 수있습니다.)
yes를 친다음 패스워드는 raspberry

기본 패스워드이니 sudo raspi-config 명령을 사용해서 이것저것 설정을 하고 이제 본격적으로 LCD에 화면을 띄워봅시다.

라즈베리파이를 설치하고 가장 먼저 해야할 것은 패키지 업데이트이고 그 다음이 바로 이 설정이다.

저는 waveshare사의 LCD를 사용했지만 Adafruit사의 것을 사용하시거나 기타 다른 업체를 이용하신다면 또 달라질 수 있습니다.

우선 해야할 것은 매뉴얼을 읽는 것입니다.
https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)

3.5inch RPi LCD (A) - Waveshare Wiki

Introduction 3.5 inch Touch Screen TFT LCD Designed for Raspberry Pi Getting Started Hardware Connection There are 40 pins on Raspberry Pi but only 26 pins on the LCD, so you should pay attention to connecting the pins to your Pi accordingly. Install the t

www.waveshare.com

여기 보면 드라이버 설치방법이 써 있습니다. 드라이버를 이미 git을 통해 제공하고 있군요.
git clone https://github.com/waveshare/LCD-show.git

waveshare/LCD-show

Contribute to waveshare/LCD-show development by creating an account on GitHub.

github.com

cd LCD-show

이제 여기서 자신의 LCD에 맞는 것을 찾습니다. 저는 3.5인치 LCD A버전이므로 LCD-35입니다. 만약 LCD B버전이거나 다른 크기의 LCD라면 다른 것을 찾아야 합니다. 역시 매뉴얼을 보면 자세히 나와있으니 이를 이용하면 됩니다.

우선 실행옵션을 줘야하므로
sudo chmod +x LCD35-show
./LCD35-show

이러면 이제 필요한 소스를 다운받고 빌드를 해서 드라이버를 설치합니다. 그리고 자동으로 라즈베리파이가 부팅되는데 LCD에 X가 짠하고 뜹니다! 그리고 터치도 되므로 터치펜이나 손가락으로 꾹꾹 누르면 진행이 됩니다.

그냥 한번 화면을 90도로 돌려보았다. 그러니까 터치 좌표가 꼬인다...

이제 라즈베리파이 화면을 띄우는데에 성공했으니 한번 scrcpy를 빌드해봅시다.

우선 이 링크의 것을 참조했습니다. https://gist.github.com/RubenNL/e259f145371d2c16a3932fa39aa9a775

Install scrpy

GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

그냥 scrcpy의 가이드대로 빌드하면 Android SDK가 필요한 경우가 있는데 Android SDK는 ARM위에서 돌아가지 않습니다. 따라서 미리 빌드된 것을 사용해야합니다.

우선 라즈베리파이에 접속을 한 후에

sudo apt install git wget meson libavformat-dev libsdl2-dev adb

위 명령으로 필요한 것을 설치합니다. 보통 libsdl2와 libavformat, adb만 설치하고 나머지는 이미 있을 가능성이 높습니다.

그리고 필요한 것을 다운로드 받습니다.
2020년 현재 최신 버전은 1.16버전이므로 이것을 사용합니다.

wget https://github.com/Genymobile/scrcpy/archive/v1.16.tar.gz
tar -zxvf v1.16.tar.gz
cd scrcpy-1.16
wget https://github.com/Genymobile/scrcpy/releases/download/v1.16/scrcpy-server-v1.16
meson x --buildtype release --strip -Db_lto=true -Dprebuilt_server=scrcpy-server-v1.16

이제 빌드를 위한 준비가 시작됩니다. 그리고 준비가 완료되면
ninja -Cx

이제 빌드가 될텐데 오류가 난다면 위의 사전설치 패키지를 확인해주시기 바랍니다.
빌드가 끝나면 인스톨

sudo ninja -Cx install

이제 안드로이드 스마트폰과 라즈베리파이를 USB로 연결하고 라즈베리파이에서 scrcpy 명령을 내리면 스마트폰 화면이 창으로 뜰겁니다. 대신 화면도 작고 창크기도 작은데다가 라즈베리파이의 성능 문제도 있다보니 매우매우 느립니다.

그리고 저는 라즈베리파이를 스마트폰 화면 미러링 전용으로 쓸 생각이라 이것을 scrcpy를 서비스로 등록해서 사용할 생각입니다. USB에 디버깅 옵션이 켜진 스마트폰이 연결되면 바로 화면을 띄우는 것이지요.

다시 라즈베리파이에서 터미널을 엽시다.
sudo nano /etc/systemd/system/scrcpy.service


이제 새로운 텍스트 에디터가 뜰텐데 다음과 같이 입력합니다.

더보기

[Unit]

Description=Start SCRCPY Android Screen

[Service]

Type=simple

User=pi

ExecStart=/usr/local/bin/scrcpy -b2M -m480 --max-fps 10 -f --rotation 1 -n

#Restart=always

Restart=on-failure

[Install]

WantedBy=graphical.target

#WantedBy=multi-user.target

위 명령 중에서 -b2M은 영상 비트레이트를 2M까지만 -m480은 최대 480p --max-fps는 10프레임 이하로 --rotation 1은 화면을 90도 돌리라는 의미입니다. 저는 주로 세로화면을 쓰기 때문에 이렇게 했습니다.

저장을 위해 Ctrl+O 그리고 엔터
이제 파일을 저장했으면

sudo systemctl daemon-reload
sudo systemctl enable scrcpy.service

위 명령어로 서비스에 등록합시다. 이제 USB로 스마트폰이 연결될때까지 라즈베리파이는 계속 연결을 시도할 것입니다.


그냥저냥 쓸 만한 속도가 나오네요. 제 보드는 라즈베리파이3니까 라즈베리파이4 이상이라면 fps를 높여서 더 빠르고 완벽한 속도를 보일 수 있을겁니다.

이제 필요하면 https://gitlab.com/larsfp/rpi-readonly

Projects · Ways / rpi-readonly

Make raspberry pi raspbian file system read-only

gitlab.com

여기의 것을 사용해서 SDCARD에 쓰기를 못하게 만들 수도 있습니다. 이러면 갑자기 Raspberrypi가 멈춰서 다시 시작해야 하는 일이 생기더라도 SDCARD를 보호 할 수 있습니다.

,

우분투에서 안드로이드 게임을 하거나 안드로이드 에뮬레이터를 돌리는 것은 꽤나 어렵습니다. 기껏해야 Genymotion정도가 안드로이드를 돌리는데 겨우 쓸만합니다.

 

그리고 대부분 안드로이드 게임은 ARM용이기 때문에 잘 돌아간다는 보장도 없습니다. PC에서 모바일 게임을 하는게 이렇게 어렵습니다. 그리고 스마트폰과 PC와의 연동도 그다지 매끄럽지 않습니다. 그래서 삼성과 마이크로소프트가 Your Phone이란 앱을 통해서 Windows와 연동할수 있는 서비스를 내놓았는데 반응이 썩 좋지는 않습니다.

 

https://support.microsoft.com/ko-kr/help/4531317/setting-up-and-using-link-to-windows

 

https://support.microsoft.com/ko-kr/help/4531317/setting-up-and-using-link-to-windows

쿠키가 사용되고 있지 않습니다. 쿠키를 사용하고 페이지를 새로 고치세요.

support.microsoft.com

위의 페이지를 들어가면 삼성 휴대폰과 Windows를 연동할 수 있는 방법에 대해 설명하고 있습니다. 문제는 역시 Windows와 삼성 스마트폰만 가능하다는 것입니다. 우분투는 사용 할 수 없는 기능이지요.

예전에 비슷한 것으로 삼성Flow라는 것이 있었는데 이것조차 Windows만 사용가능했습니다. 즉, 우분투 사용자들은 손만 쪽쪽 빨아야만 했었습니다. 그런데...

 

GenyMobile에서 SCRCPY란 오픈소스 툴을 내놓았습니다. 현재 버전은 1.16입니다. 써본 결과...

신세계입니다!!!!!

 

저기 있는 Your Phone보다 100배 더 반응속도가 좋습니다. 오픈소스이면서 거의 모든 환경을 지원해 준다는 것도 좋구요. LG나 샤오미같은 거의 모든 안드로이드 환경을 지원하는 것도 좋습니다.

 

scrcpy를 사용하면

 

요렇게 스마트폰화면이 미러링이 됩니다. 그리고 마우스로 클릭하면 터치도 됩니다!!! 두둥!!!

 

혹시나 게임도 돌려봤는데

스마트폰 성능에 따라 다르겠지만 매우 부드럽습니다. 1280x1080으로 60fps는 나오는 것 같네요. 제가 사용하는 휴대폰은 삼성에서 보급형으로 내놓은 A50입니다. 성능은 요즘 나오는 플래그쉽에 비해 좋지 않은 편이지요. (그리고 테스트한 게임은 꽤 성능을 요구하는 게임입니다.)

 

그리고 이건 거의 모든 리눅스 배포판에서 사용가능하며 macOS와 Windows에서도 됩니다. 그리고 스마트폰은 안드로이드5.0 이상버전이기만 하면 됩니다. 루팅도 필요없습니다.

 

macOS나 Windows에서 scrcpy를 사용하는 것은 다른 곳에서도 많이 소개하고 있으니 저는 우분투에서 이것을 사용 방법을 소개하겠습니다.

 

우선 우분투에서 scrcpy를 설치해야 합니다.

우분투 16.04 이후 snap이 기본적으로 설치 되어 있기 때문에 이를 이용합니다.

 

터미널에서

sudo apt install android-tools-adb

sudo snap install scrcpy

 

이미 설치가 되어 있어서 이렇게 뜬다.

 

설치가 끝났습니다. 

이제 안드로이드 휴대폰에서 설정을 하면 됩니다.

 

우선 개발자 옵션을 활성화해야 합니다. 보통 개발자 옵션은 빌드번호를 여러번 터치하면 열리게 되는데 이것도 못 들어가시는 분들이 있더군요.

 

안드로이드 휴대폰에서 설정에 들어갑니다.

내 휴대폰은 이미 개발자 옵션이 활성화 되어 있지만 보통은 휴대전화 정보가 마지막일 것이다.

그리고 설정을 뒤지다 보녀 휴대전화 정보가 있습니다. 이쪽으로 들어갑니다.

삼성휴대폰의 경우에는 소프트웨어 정보가 따로 있는데 다른 업체에서 제작한 경우에는 소프트웨어 정보 없이 바로 다음 페이지가 나오기도 합니다. 안드로이드 버전 관련 페이지를 찾으시면 됩니다.

보통 이렇게 나올 텐데 여기서 빌드번호를 미친듯이 터치해주시면 아래에 개발자 모드 어쩌구 하면서 메시지가 뜰겁니다. 여기서 "개발자가 되셨습니다!" 라는 메시지가 나올때까지 두드려주세요. 그리고 다시 설정페이지로 돌아갑니다.

 

그러면 제일 아래쪽 혹은 제일 마지막 페이지에 개발자 옵션이 있을 겁니다.

여기서 USB디버깅을 활성화 해주세요. 모든 안드로이드 스마트폰은 개발용으로 쓰일 수 있기 때문에 디버깅 옵션이 있습니다. 디버깅 옵션이 없다면 그 폰은 정말 꽉막힌 제조사에서 만든 것이니 다음에는 구매를 고려하지 않으시는 것이 좋습니다. (삼성이나 LG, HTC같은 유명 업체는 무조건 해당 옵션이 있습니다.)

 

이제 휴대폰을 PC와 USB로 연결하고 터미널에서 다음과 같이 명령합니다.

 

scrcpy

 

처음에 오류가 날 수 있는데 이때 휴대전화의 화면을 보면 디버그 관련하여 해당 PC에서 승인 할것인지 물어봅니다. 확인을 해주시고 다시 scrcpy 명령을 치면...

 

여러분의 스마트폰 화면이 PC에서 뜨게됩니다!!!!

 

다만, 전화를 PC에서 받을 수 없고 결국 휴대폰을 사용해야 하며 (블루투스 이어폰을 쓴다면 대체가 가능하긴 하겠죠!) 소리도 PC에서 나는 것이 아니라 휴대폰에서 나온 다는 것이 한계입니다. 이건 화면 미러링을 위한 것이니 어쩔 수 없지요. 그리고 화면이 꺼지면 미러링도 당연히 멈춥니다.

 

하지만 이게 얼마인가요. 그리고 삼성DEX는 아직 지원이 안 되는 것 같지만 어찌어찌 하면 삼성DEX를 쓸 수 있을지도 모릅니다. 

그나저나 미러링 속도가 게임도 가능할정도로 빠릅니다. 필요하다면 그냥저냥 쓸만한 안드로이드 스마트폰이나 안드로이드 개발보드를 PC에 물려서 안드로이드 환경과 PC환경을 함께 사용할 수 있겠네요.

 

만약 PC와 안드로이드 스마트폰을 블루투스로 연결하면 휴대폰 소리가 PC로 전달됩니다. 이제 모바일 게임을 PC에서 하는데에 지장이 없네요!!!

,