Daemon-Tools란 프로그램을 아시나요? 조금 더 말하면 Alcohol120% 혹은 Alcohol52%는요? CDSpace란 추억의 프로그램도 있지요?


 

 





이 프로그램들의 특징은 바로 CD이미지를 가상의 드라이브를 만들어 에뮬레이션해주는 프로그램입니다. 그 중에서 가장 큰 특징은 데이터를 단순히 보여주기만 하는 것이 아닌 디스크에 들어있는 각종 꼼수(보통은 디스크 복제방지장치입니다.)들도 함께 구현해주는 것입니다.


요즘에는 디스크에 복제방지장치를 해둘 필요가 없고(대부분 Steam등의 온라인 인증방식을 쓰기 때문) 기본적인 ISO표준 디스크이미지인 ISO정도는 Windows도 그냥 마운트해주는 기능이 있어서 볼 일이 별로 없는데요. ISO, MDF, CUE, IMG 등 알려진 이미지를 시스템상에서 마운트를 해주는 우리의 리눅스는 더더욱 이런 가상드라이브를 쓸 일이 없었습니다. 하지만 옛날 프로그램이라면 어떨까요?


옛날에는 이런 메시지를 많이 봤었다. 특히 친구끼리 디스크 바꾸면서 게임할때.



옛날에 만들어진 게임들은 주로 CD를 넣어야만 실행이 되는 방식을 사용했습니다. 덕분에 디스크가 없으면 실행이 안 되는 것으로 복제방지를 해두었고 이를 패치한 No-CD패치들이 돌아다녔습니다. 말이좋아 패치지 실은 일종의 크랙이었습니다. 혹은 배경음악을 음악CD형태로 만들어넣어서 CD를 넣지 않으면 배경음악이 나오지 않는 경우도 있었지요. (예: 프린세스 메이커3, 이스 시리즈, Pump it up! 가정용 1집~4집) 당시에는 이런 식으로 많이 만들어져 있어서 당시의 프로그램들을 굴리려고 하면 진짜 디스크를 넣거나 아니면 음악없이 그냥 돌리는 방식을 써야만 했습니다.



아무튼 CD를 넣어달라고 하는데 내가 CD를 넣어도 못 알아챈다. 어쩌라고


그렇다면 그냥 마운트 할 게 아니라 가상이미지를 통째로 CD-Rom드라이브에 넣은 것처럼 만들어야 합니다. 이 때 제일 편리한 프로그램이 바로 CDemu입니다.


http://cdemu.sourceforge.net/

https://launchpad.net/~cdemu/+archive/ubuntu/ppa


사실 CDemu는 2003년에 cue, bin파일로 대표되는 디스크이미지를 Mplayer에서 재생하기 위해 만들어진 프로젝트입니다. 이후 같은 방식으로 가상CD방식으로 에뮬레이션하게 됩니다. 즉 가상 장치를 만들고 여기에 이미지를 넣는 기존의 Daemon-Tools와 똑같은 방식으로 말입니다.


가상 장치에 넣는 방식이기 때문에 자동 마운트 기능이 없다면 일반 CD-ROM을 읽을 때처럼 마운트를 따로 해줘야 하지만 우분투는 자동마운트가 되기 때문에 기존의 노틸러스에 있는 마운트 기능을 쓰는 것하고 차이가 없습니다. 하지만 AudioCD나 CDExtra같은 이미지라면 이야기가 조금 다릅니다. AudioCD이미지를 노틸러스에서 마운트하면 아무것도 마운트가 되지 않지만 CDemu를 통해서 에뮬레이션 하면 AudioCD를 인식하고 AudioCD를 넣었을 때와 동일한 기능을 사용할 수 있게 됩니다.


CDemu로 이미지를 마운트해야 이 메시지를 볼 수 있다. 아니면 그냥 데이터 마운트일뿐


서론은 이제 그만두고 CDemu를 설치하고 사용하는 방법에 대해 설명하겠습니다. 재미있게도 Daemon-Tools와 사용방법이 거의 비슷합니다.


CDemu는 다음 명령어로 PPA를 등록해서 설치 할 수 있습니다. 다른 배포판을 사용하신다면 위에 홈페이지 주소를 적어놓았으니 그곳에서 각 배포판에 맞는 패키지를 다운로드 받거나 컴파일하시면 됩니다.


sudo add-apt-repository ppa:cdemu/ppa
sudo apt-get update
sudo apt-get insall gcdemu


이렇게 하면 CDemu의 GUI버전인 gcdemu가 설치됩니다.


그럼 gCDemu를 실행해 봅시다. 당연히 메뉴에 있을 테니 잘 실행해 주세요. 그러면...



아무 반응이 없습니다.  딱 한군데 빼고요. 알림영역을 보시면 아이콘이 하나 생긴것을 알 수 있습니다. Daemon-Tools도 이런식으로 만들어져 있지요. 설치하고 보면 알림영역에 아이콘 하나만 떠있고 처음 쓰는 사람은 멘붕을 하지요.


이렇게 생긴 아이콘을 찾아보자

여기에 마우스 오른쪽 버튼을 누르면 바로 이것이 핵심입니다. 여기에 #Device 00 :Empty라 되어있을 텐데 가상장치00번이 만들어져 있고 비어있다는 의미입니다. 역으로 말하면 가상장치를 여러개 만들 수 도 있다는 의미지요. (바로 아래에 New device가 있지요.)


Daemon-Tools와 마찬가지로 이 메뉴에서 모든 것을 해결한다.



#device 00:Empty를 눌러봅시다.


여기서 Load버튼을 누르고 CD이미지 파일을 선택하시면 됩니다. 그럼 노틸러스가 자동으로 실행되면서 CD가 넣어졌음을 인식할 것이고 이를 읽을 수 있을 것입니다. 무엇보다 AudioCD라면 AudioCD임을 알아챌 것이고요. 만약 드라이브 명이 필요하다면 위 스크린샷에서 처럼 /dev/srX 형태로 되어있으니 이것을 선택하면 됩니다.


참 쉽죠?


만약 Daemom-Tools가 그리우시다면 이 쪽도 써보시는 것은 어떨까요? 편리하다는 것은 좋은 거랍니다.


참고로 CDemu가 지원하는 이미지는 cue와 bin, mds와 mdf, iso, img 등이 있습니다. 그냥 흔히 쓰이는 디스크 이미지파일을 생각하시면 됩니다. (CDSpace에서 쓰는 lcd는 안 됩니다..)


=======2017. 6. 15========


CDEmu의 GUI인 gCDEmu의 인터페이스를 한글화 했습니다. 물론 i18n을 지원하기 때문에 간단하게 작업했고 몇몇 오타나 오역이 있을 수 있습니다.


gcdemu.mo.zip

위의 파일의 압축을 풀고 gcdemu.mo 파일을 관리자권한으로

/usr/share/locale/ko/LC_MESSAGES

에 넣어주시면 이후 시스템 재시작후 gCDEmu의 인터페이스가 한글화 되어 나오게 될 것입니다.


번역 파일인 po파일은 CDEmu프로젝트에 메일을 넣은 상태입니다. 아직 답변은 없지만 확인 되는대로 답변이 올 것입니다.

ko.po



,

라즈베리파이나 오래된 PC를 에뮬레이터 머신으로 만들어줄 수 있는 Lakka란 프로젝트가 있습니다. RetroArch란 온갖 게임콘솔과 아케이드를 에뮬레이터 해주는 프로그램을 이용한 것인데요. 다른 것은 모두 배제하고 최소한의 OS(Libreelec 기반)와 RetroArch만 올려서 만든 배포판입니다.



http://www.lakka.tv/


2017년 현재 RetroArch는 상당한 수준의 인터페이스와 엄청난 지원 범위를 자랑하고 있어서 오래된 PC나 저렴한 라즈베리파이에 게임패드를 연결한 다음 Lakka만 올려서 게임기로 만드는 경우가 늘고 있습니다.




그런데말입니다.

RetroArch의 PSP코어(통칭 lr-ppsspp라고 합니다.)가 옵션이 상당히 부실합니다. PPSSPP의 소스코드를 이용해서 에뮬레이팅은 상당수준이지만 PPSSPP자체가 아직 완전하지 않아서 게임마다 설정을 다르게 줘야하고 이런 저런 삽질을 동원해야하는데 RetroArch는 다른 콘솔머신도 지원해야하다보니 크게 신경을 못 쓰는 것이 현실입니다.


즉, 통합 에뮬레이터로는 훌륭하지만 특정 기기의 성능은 그리 좋지 못하다는 의미지요. 특히 PSP의 명작이라 할 수 있는 DJMAX시리즈의 경우에는 링크디스크나 IO문제로 PPSSPP의 많은 설정과 기능을 요구합니다. 하지만 RetroArch의 PSP코어에는 이런 기능이 없습니다. 그래서 RetroArch의 PSP게임을 굴리면 완벽하게 돌아가지가 않지요. 게다가 RetroArch는 Adhoc을 이용한 온라인 기능도 부실합니다.


그래서 생각한것이 아에 RetroArch같은 통합에뮬레이터 시스템이 아닌 PPSSPP만 올려서 PSP 전용콘솔머신을 하나 만들자!라고 생각했습니다. 그래서 삽질을 시작했습니다. PSP게임외에 다른 콘솔은 Lakka에서도 아무 문제없이 굴러가니까 그 쪽은 그냥 Lakka를 쓰면 될테니까요.


PPSSPP 그 자체도 인터페이스는 상당히 편리하게 되어있고 패드만으로도 모든 옵션을 선택할 수 있게 잘 만들어져 있습니다.


다른 에뮬레이터와 다르게 상당히 예쁘게 잘 만들어져 있다. 디자인이 현대적이라고 해야할까.


그래서 이참에 백라이트 나간 노트북을 부셔서(!) 콘솔머신을 하나 만들기로 했습니다.

그래서 다음과 같은 계획을 하나 짰습니다.



1. 하드웨어는 백라이트 나간 오래된 노트북으로 하고 이것을 TV에 연결해서 쓸 수 있도록 한다.


2. 게임은 PPSSPP만을 올려서 PSP게임만 지원하게 한다.


3. 컨트롤러는 오로지 게임패드로 (다행히 PPSSPP가 게임패드만으로 굴릴 수 있다.)


4. FTP서버를 하나 만들어서 게임을 FTP로 전송할 수 있게 한다. (SMB도 생각했지만 FTP가 더 안정적이었습니다.


5. 라이브모드만 지원하되 Persistent모드로 만들어서 넣자. (설정 저장을 위해)


6. 어차피 나만 쓸 거 보안은 신경 끄자.



여기서 제일 중요하게 여긴것은 1번과 6번입니다. 사실 보안까지 신경쓰기 시작하면 취미로 하는 것이 일거리가 되기 때문에 처음부터 신경을 껐습니다.


세로로 세우기 위해서 다이소 도마꽂이에 꽂았는데 딱 맞는다. 도마꽂이가 랩톱 세우는데 최고였다.


그렇게 오늘 저의 게임기가 되어주실 노트북은 인텔 코어2듀오 콘로 2.4GHz 메모리 2GB 저장용량 250GB의 제품입니다. GPU는 자그마치 인텔 내장 그래픽. 백라이트가 나가서 액정을 그냥 떼버렸고 안테나는 외부에 노출 시켰습니다.


어차피 TV뒤쪽 공간에 밀어넣을 예정이니 모양은 상관없습니다.


그리고 상세한 제작 과정은 다음과 같습니다.


1. OS는 Customize(https://github.com/kamilion/customizer) 로 우분투 Mini-remix(http://www.ubuntu-mini-remix.org/)를 기반으로 한다.


1.1 Customizer를 리눅스 PC에 설치한다. (따로 설명하지 않겠습니다.)

1.2 Customizer-gui에서 ISO선택을 누르고 우분투 Mini-remix이미지를 선택한다.


1.3 소스 수정버튼을 누르고 한국서버를 선택한 다음 multiverse와 universe를 추가한다.


1.4 세팅 탭에서 위치(?)를 ko_KR.UTF8을 선택해서 한국어기반을 갖출 수 있도록 한다.

1.5 나머지는 터미널 버튼을 누른다음 명령으로 때운다. (sudo apt-get update 등등)


2. Customizer에서의 터미널 창에서 최대한 다른 것은 배제해야 하므로 다음 명령으로 기반만 갖춘다.


sudo apt-get install xorg alsa alsa-utils mesa-utils jstest-gtk fonts-nanum

sudo apt-get install --no-install-recommeds pulseaudio pulseaudio-utils slim wicd networkmanager openbox


이렇게 함으로서

소리가 나고(pulseaudio, alsa)

그래픽가속을 하고(xorg mesa)

네트워크에 접속을하며(wicd networkmanager)

최소한의 GUI세션에 접속을 할 수 있게 됩니다.(slim openbox)


물론 기반만 갖추었고 설정은 하나~~~도 안 했기 때문에 건드릴 것이 많지요.


3. PPSSPP는 그냥 PPA를 등록한다음 설치

sudo add-apt-repository ppa:ppsspp/stable
sudo apt-get update

sudo apt-get install ppsspp-qt


add-apt-repository에서 에러가 날 텐데요. PPA등록전에

sudo apt-get install python-software-properties software-properties-common


이 명령을 먼저 내려서 PPA등록용 스크립트들을 설치하도록 합시다. 왠지 쓸데없는 것이 설치된 듯하지만 귀찮은 것보단 이게 더 낫습니다.


4. 게임 이미지 전송용 FTP서버를 설치한다. 어떤 것을 설치해도 상관은 없지만 vsFTPD를 설치하겠습니다.


sudo apt-get install vsftpd


4.1 vsFTPd 설정

 sudo nano /etc/vsftpd.conf


다른 것은 기본값 혹은 마음대로 해도 되는데


write_enable=YES


이 옵션 만큼은 무조건 이렇게 해놓는다.


4.2 자신 있으면 SAMBA를 설치해도 되는데 나는 귀찮으니 PASS


5. slim을 설정해서 자동 로그온이 되도록 하자. slim은 데스크톱 관리자로 우분투의 lightdm보다 더 가볍고 세션 관리가 쉽기 때문에 선택


sudo nano /etc/slim.conf


제일 아래줄에 이렇게 적는다.

auto_login    yes
default_user  ubuntu


여기서 defulat_user는 Customizer에서 설정한 라이브유저 이름이다.(기본이 ubuntu라 그냥 여기서도 ubuntu)


6. openbox의 autostart를 만들어서 PPSSPP와 네트워크 관리자 등이 자동으로 실행되게 만들자.


sudo nano /etc/skel/.config/openbox/autostart


여기에 쉘스크립트 형태로 만들면 로그온 할때마다 자동으로 스크립트 형태로 실행된다.

sudo usermod -a -G audio $USER
sudo usermod -a -G video $USER
wicd-gtk &
start-pulse-audio-x11 &
xterm &
ppsspp --fullscreen
sudo shutdown -h now


다른 프로그램은 뒤에 &이 붙어있는데 (wicd-gtk는 무선랜 접속을 위함 만약 무선랜이 필요없으면 지워도 됨) ppsspp --fullscreen 뒤엔 없는 이유는 그 아래 명령어가 ppsspp가 종료될 때까지 실행되지 않도록 하기 위함이다.


보면 알겠지만 sudo shutdown -h now는 시스템 종료 명령어이다. 즉, PPSSPP의 실행이 끝나면 자동으로 시스템이 꺼진다는 것! 물론 xterm이나 wicd-gtk가 같이 실행되고 있으므로 Alt-Tab키를 눌러서 빠져 나올 수는 있다. 하지만 PPSSPP가 꺼지면 시스템 종료로 이어진다는 것!


7. 이제 라이브 ISO파일을 만들자!

터미널에 exit를 쳐서 빠져나오고

Customizer에서 ISO다시빌드 버튼을 누르면 시간이 지난뒤에 /home 폴더에 Ubuntu~~.iso파일이 하나 만들어졌을 것이다. 일단 궁금하니 VirtualBox나 Qemu같은 가상머신으로 테스트해보자. 부팅후에 PPSSPP가 실행되고 PPSSPP를 끄면 시스템이 꺼질 것이다. 이것이 잘 만들어졌다면 큰 그림은 완성


8. 이제 디스크를 준비합니다.

머신에 넣을 HDD를 USB to HDD기기로 USB장치로 인식되게 하셔야 합니다. (즉, 노트북에서 HDD를 꺼낸다음 연결합니다.) USB to SATA장비는 2만원에서 4만원 정도 합니다.


대충 이런형태의 물건이다. 저기 있는 SATA포트에 HDD를 연결하고 전원을 넣은다음 USB를 연결하면 PC가 외장하드로 인식한다.

Gparted를 실행!


보통은 /dev/sdb 혹은 제일 뒤쪽에 있는 것이 USB-HDD이니 해당 디스크를 선택한다.


그리고 파티션을 3개로 쪼개는데 포맷은 모두 ext4로 한다. 첫번째 파티션을 호환성을 위해 FAT32로 해도 상관은 없지만 ext4가 안정성은 더 높다.


예시로 든 것이므로 굳이 똑같이 따라할 필요는 없다. 다만 home-rw 파티션을 넉넉히 해주는 것이 중요하다. 게임 이미지가 저장될 공간이기 때문.


이 때 제일 처음 파티션은 ISO크기보다 약간 큰 정도면 되고(즉, ISO내의 내용물이 들어갈 자리) 두번째 파티션은 레이블을 casper-rw로 하고 40GB이상으로 잡는다. 나머지 파티션은 레이블을 home-rw로 하고 모든 용량을 투입하도록 하자.


2017. 5. 29 추가

파티션을 나눌 때 약 메모리 용량의 2배 크기 정도의 스왑파티션을 만들어두자. 가끔 메모리 부족으로 PPSSPP가 튕기는 경우가 있는데 PPSSPP가 종료되면 autostart 스크립트가 작동하면서 시스템이 종료되어버린다. 스왑을 잡아두면 이런 경우가 현저히 줄어들게 된다. 즉, 일종의 보험인 셈.


9. Unetbootin설치 및 실행


sudo apt-get install unetbootin

위 명령으로 unetbootin을 설치하고 실행하자. 아직 USB-HDD는 연결을 끊었다가 다시 연결하도록 하자.


위 스크린샷 처럼 Diskimage 라디오 버튼을 누르고 오른쪽의 ...버튼을 누른다음 아까 만든 ISO를 선택한다. 아래의 Drive는 제일 오른쪽 숫자가 1이 되는 장치를 선택한다.

(/dev/sdb1 혹은 /dev/sdc1 같이)


왜냐하면 아까 편집한 파티션의 제일 처음(아무런 레이블도 안 붙였던 ISO크기 정도의 파티션)이 바로 시스템 파티션이기 때문


그리고 Space used to preserve files across reboots라고 있는데 이것을 1MB라고 해 놓는다. 이 옵션이 바로 Persistent Live옵션의 필수다.


10. 아직 끝나지 않았다! 부트 옵션 수정!!!!!


USB-HDD내용물을 보면 1번 파티션에 ISO의 내용물이 거의 그대로 들어갔음을 알 수 있을 것이다. 여기서 몇가지 작업을 더 하도록 하자.


syslinux.cfg 파일을 관리자 권한으로 열자.


제일 위에 Timeout 100 이라고 쓰인 부분이 있다. 확 줄이자. 100초는 너무 길다. 한 5초?


그리고 부트옵션 중 Default 아래에

append  file=/cdrom/preseed/ubuntu.seed boot=casper

요렇게 써있는 부분이 있다.

여기에 몇가지 내용을 더 붙이자.


append  file=/cdrom/preseed/ubuntu.seed boot=casper lang=ko_KR keymap=kr net.ifnames=0 biosdevname=0

이렇게 해주면 무조건 한국어로케일로 부팅하게 된다. 그리고 무선랜의 인터페이스 이름이 wlan0로 만들어져서 다른 시스템에서도 wicd가 똑같이 작동 할 수 있게 된다.


그리고 casper-rw란 1MB짜리 파일이 보일 텐데 이건 그냥 삭제한다.


권한이 어쩌고 하면그냥 관리자 권한으로 밀어버리면 된다.


11. HDD를 다시 PC에 넣고 부팅


가상머신에서처럼 똑같이 작동한다면 시스템 구축에 성공한것이다. 이제 게임생활을 시작하자...가 아니라 네트워크 접속을 해서 게임 이미지를 밀어넣어야 할 시간이다.




12. 키보드를 이용해서 Alt-Tab키를 눌러 wicd-gtk를 띄우자. 일단 네트워크에 접속을 해야 뭘 밀어넣던지 말던지 할 것이 아닌가. (유선랜의 경우에는 별다른 문제없이 그냥 바로 접속 될것이다.)


네트워크에 접속이 완료되면 아래에 Wicd 창 아래에 IP주소가 뜬다. 이것을 가지고 다른 PC를 이용해서 FTP로 밀어넣으면 된다.


FTP프로그램은 파일질라가 제일 좋은데 다른 클라이언트들이 접속이 끊어지면 파일 전송도 같이 끊어버리는 반면 파일질라는 재접속을 해서라도 파일 전송을 끝내주기 때문에 굉장히 안정적입니다.


호스트에 게임머신의 IP를 넣고 사용자명에 아까 라이브 유저(기본값: ubuntu)를 적고 연결을 하면 그냥 연결이 됩니다. 왼쪽 로컬 사이트에서 PSP게임 이미지를 찾은 다음 그냥 업로드를 하면 끝입니다. 업로드 되는 곳은 /home/ubuntu(라이브유저이름)입니다.


13. 이제 실행해 볼까?


아쉽지만 소리 문제가 있을 수 있습니다. 난 HDMI를 통해 소리가 나오길 원했는데 엉뚱하게 노트북 스피커로 나오면(...)


Alt-Tab을 눌러서 xterm창을 띄웁시다.

pacmd set-card-profile 0 output:hdmi-stereo


이렇게 치면 HDMI로 소리가 나오게 될 겁니다. 우분투는 HDMI연결 여부를 확인하고 알아서 스위칭을 해주는데 이쪽은 그런 기능따윈 만들어 넣지도 않았으니 그냥 수동으로 해주는 것입니다.


게임패드를 USB포트에 연결하면 알아서 연결이 될 것이고 PPSSPP상에서 설정을 약간 하면 이후로는 키보드가 필요없을 것입니다. 가끔 게임 이미지 밀어넣을때정도?


이제 마음껏 게임을 해볼까요??후후...


개인적으로 XBOX패드보다는 PS패드가 이 시스템에는 더 잘 어울린다고 생각합니다.

PSP말고 다른 콘솔도 하고 싶으시다고요? 그럼 그냥 LAKKA쓰세요.

,

https://packages.ubuntu.com/search?keywords=ukui&searchon=names&suite=zesty§ion=all


우분투 17.04부터는 따로 우분투 기린을 쓰지 않아도 우분투 기린의 UI인 UKUI를 사용할 수 있습니다.


sudo apt-get install ukui-desktop-environment


이렇게만 해도 설치가 완료되네요.


문제는 한국어인데 ukui-control-center와 ukui-menu 이 둘만 한국어화하면 아무런 문제가 없습니다.


ukui-korean-mo.zip


위의 압축파일을


/usr/share/locale/ko/LC_MESSAGES


위 경로에 풀어주시면 됩니다. 관리자 권한이 있어야 넣을 수 있습니다.


터미널로 하시려면


unzip -x ukui-korean-mo.zip

sudo cp ukui-control-center.mo /usr/share/locale/ko/LC_MESSAGES

sudo cp ukui-menu.mo /usr/share/locale/ko/LC_MESSAGES


이렇게 해주시면 됩니다.

귀찮다고요? 그럼 관리자 권한으로 파일 매니저를 여시면 됩니다.


Alt+F2를 누르시고


gksu nautilus

(우분투, 우분투 그놈, 리눅스 민트 시나몬 등)

혹은


gksu caja

(우분투 마테, 리눅스 민트 마테, 우분투 기린 등)

혹은


gksu pcmanfm

(루분투, LXLE 등)

혹은


gksu thunar

(주분투, 리눅스 민트 xfce 등)

혹은


kdesudo dolphin

(쿠분투 등)

 

이 들중에서 자신의 배포판에 맞는 것을 쓰시면 됩니다.


그리고 압축파일안의 내용물을

/usr/share/locale/ko/LC_MESSAGES

여기에 퐁당!


그리고 로그아웃했다가 로그온 하시면 한국어로 나오는 것을 볼 수 있을 겁니다.




2017. 5. 25


UKUI 소스트리에 한국어 번역파일이 Merge되었습니다. UKUI의 다음버전에서는 한국어지원이 될 것입니다. 아마도 17.10부터 지원 될 것이라 예상되지만 지금 당장 써보고 싶으신 분들은 위에 나온대로 하시면 됩니다.

,