가끔 지워서는 안 되는 파일을 지우기도 하는 것이 사람입니다.


보통 그럴때는 휴지통에서 복구하는 방법으로 해결하기도 하는데 사람이란것이 워낙 멍청한지라 정말 아무 생각없이 휴지통 비우기를 시전하는 경우도 있지요.


그럴 때 사용하는 프로그램으로 가장 유명한것이 Finaldata란 프로그램입니다.

http://www.finaldata.co.kr/


문제는 이 프로그램은 포렌식에 이용되는 것이기에 더럽게 비쌉니다. 보통 일반인은 이런 프로그램을 쓸 정도는 아닙니다.


이 프로그램은 주로 경찰이나 정보기관에서 주로 사용하는 프로그램입니다.


보통 일반인이 쓸 정도면 실수로 삭제했다가 어?하고 다시 복구해야 하는 경우겠지요. 일단 간단하게 USB메모리 정도를 생각할 수 있습니다. 내부 HDD에서 복구해야한다면 HDD를 떼다가 다른 컴퓨터에서 복구 프로그램을 돌리면 됩니다.


이런 프로그램을 간단하게 만든 것이 있는데 바로 testdisk란 프로그램입니다.


https://www.cgsecurity.org/wiki/TestDisk


간단하게 우분투에서는 그냥 apt로 설치가 가능합니다.


sudo apt-get install testdisk


다만 단점은 CLI프로그램이라 키보드만 사용가능하다는 점입니다.


예시로 다음과 같이 묶인 SDCARD를 복구해보겠습니다.

파일을 삭제한지 얼마 안 된 상황과 똑같은 상태로 만들어주는 Winmend folder hidden으로 폴더를 잠가놓았다. 삭제 후 작업을 하지 않은 상황과 같은 상황이다.

해당 SDCARD는 Winmend folder hiddne라는 도구로 암호화(!)되어 파일들이 숨겨진 상태입니다. 말이 좋아 숨겨진 상태이지 사실은 삭제 체크가 되어 읽혀지지 않는 상태입니다. (금방 삭제한 파일과 같은 상태라는 의미입니다.)해당 도구로 복구가 가능하긴 하지만 이것을 강제로 복구해보겠습니다.


터미널에서

sudo testdisk

명령을 통해 testdisk를 실행합니다.


영어라서 곤란한 사람이 있을 수도 있지만...

이 정도 영어는 다들 읽을 수 있을 것이라고 봅니다. (파일 복구한다면서 이 정도도 못 읽으면 이 참에 공부를 하셔야 할 겁니다.)


여기서는 파일 복구 기록을 남길것인지 아니면 안 남길것인지 물어보는 것입니다. 솔직히 복구가 완전히 안 됐을 경우를 대비해서 만들면 좋은데 나중되면 귀찮을 수도 있어서 알아서 선택하시기 바랍니다. 저는 No Log를 선택하겠습니다.


이제 복구하실 디스크를 선택하면 됩니다. 아까도 말했듯이 OS가 설치된 디스크는 떼어서 다른 컴퓨터에서 읽혀야합니다. 뭐하면 라이브USB에 testdisk만 설치해서 쓰는 방법도 있겠지요.


저는 USB메모리인 /dev/sdb를 선택할 예정입니다.


난감한 것이 나왔는데 파티션테이블 타입을 알려달라는 의미입니다. Intel과 EFI GPT 둘 중 하나일 것입니다. 요즘 OS는 GPT를 쓰는 경우도 많습니다. 어떤 것인지 모르시겠다면 디스크 유틸리티를 통해 알 수 있습니다.


여기서 보시면 파티션 만들기와 파티션 형식을 알 수 있는데 제 OS가 설치된 HDD는 파티션 만들기는 GUID이고 파티션 형식이 EFI라고 나옵니다. 즉, EFI GPT를 선택해야합니다. 그리고 USB메모리는 파티션 만들기가 주 부트영역이라고 나옵니다. 이걸 줄여서 우리는 MBR이라고도 합니다. 옛날 DOS시절부터 써오던 유서깊은 방식입니다. Testdisk에서는 Intel방식이라고 합니다.


저는 USB메모리(SDCARD)를 읽을 것이니 Intel을 선택하겠습니다.


여기서 많은 작업이 가능한데 숨겨진 파티션을 찾아내거나 부트옵션을 주거나 깨끗하게 싹 날리는 작업이 가능합니다. 그런데 지금 제가 말한 기능은 Gparted를 통해 편하게 작업이 가능합니다. 우리는 파일 복구를 위해서 이 프로그램을 쓰는 것이니 Advanced를 선택하겠습니다.


파일 복구 작업을 하기 위한 파티션을 선택하라고 나옵니다. 파티션이 두 개 이상이라면 해당 파티션을 선택하시고 아래의 Undelete를 좌우 방향키로 조정한 다음 Enter키를 누르면 됩니다. 저는 파티션이 하나뿐이니 하나만 뜨네요.


디스크를 잘못 선택했다면 q를 눌러서 뒤로 돌아갈 수 있습니다.(이것은 공통입니다.)


Undelete를 누릅시다.



빨간색으로 표시된 것이 삭제된 파일, 폴더를 의미합니다. 여기서 좌우 방향키를 누르면 해당 폴더로 들어갈 수 있고 파일을 살펴볼 수 있습니다.


복구하고 싶으신 파일을  :로 선택하실 수 있습니다. (Shift+;) 아래 내용을 보시면 알겠지만 여기서 Shift+C를 누르면 선택된 파일을 복구 할 수 있습니다. a를 누르면 현재 폴더에 들어있는 모든 파일을 선택 가능합니다.


파일 하나만 복구하시려면 그냥 c만 눌러서 바로 아래 작업을 할 수 있습니다.


초록색이 선택받은(?)파일들이다.여기서 Shift+C를 누르면 복구를 위한 저장폴더 선택을 할 수 있다.

Shfit+C를 누르면 갑자기 명령을 내렸을 때의 폴더가 덜컥 튀어나옵니다.

저는 홈폴더에서 프로그램을 실행했기에 홈폴더가 나오는군요.


여기서 복구될 파일이 저장될 곳을 선택해주시면 됩니다. 미리 폴더를 만들어두셔야 편하겠지요.

저는 ~/restore라는 폴더에 저장하겠습니다.


여기서 다시 Shift+C를 눌러주시면 복구를 시작합니다.


그리고 어떤 파일이 Fail되었는지 어떤 파일이 성공했는지 알 수 있습니다. 

저는 다행히 전부 성공했습니다. (사실 Winmein으로 잠긴 파일은 무조건 성공합니다. 금방 삭제된 상태와 동일하거든요. 어떤 파일이든 삭제된 시점에서 사용시간이 얼마 지나지 않을 수록 복구가 가능해집니다.)


자물쇠 마크는 root권한으로 만들어져서 그런것이다. chmod 666으로 누구나 읽을 수 있게 하자. (사실 읽는 것은 문제없다.)


복구파일을 저장한 곳에 의문의 폴더가 생성되어있고

해당 폴더에 들어가면...



해당 파일이 복구 되어있습니다!!!!


참고로 지금까지 저는 돈 한 푼 안 들이고 파일 복구 작업을 했습니다.

아마추어 파일 복구가 생각보다 어렵지 않습니다.


다만, 파일용량이 얼마 되지 않아서 파일복구가 어렵지 않았고 만약 파일이 크다면 복구하기가 어려웠을 것입니다. 무엇보다 저는 임의로 Winmein Folder Hidden이란 프로그램으로 파일을 삭제된 상태로 얼려주는(그렇기에 폴더를 숨길 수 있지요.)상태로 만들었기에 100%성공을 할 수 있었지만 만약 사용중이던 디스크면 복구가 어려워집니다.


참고로 Winmein Folder Hidden으로 숨겨진 파일을 이런 식으로 복구 할 수도 있습니다.(백날 이런식으로 숨겨봐야 데이터가 있으면 다 찾아냅니다. 차라리 그냥 암호화해서 압축하세요.)


이제 복구하는 방법을 아셨으니 복구를 못하게 하는 법을 알려드리겠습니다.


간단합니다. 그냥 용량 큰 파일을 해당 디스크에 여러번 복사해서 덮어주시면 이런 식으로 복구가 안 됩니다. 아니면 dd를 이용해서


sudo dd if=/dev/zero of=/dev/디스크위치 bs=10M


이렇게 하시면 그냥 싹 제로필해서 이 프로그램으로 복구가 안 됩니다. 대신 파티션 테이블도 날아가니 Gparted를 통해 파티션테이블을 다시 만들 필요는 있겠지요.

,

한동안 시끄러웠던 CPU게이트의 중대 버그였던 Meltdown과 Spectre는 이제 왠만한 IT업계사람이라면 다 알 것입니다.


해당 버그는 리눅스커널의 패치를 감시하다가 알게 되었다고 하지요. 인텔이 몰래 작업하려 했지만 의심을 사면서 결국 인정을 하게 되었고 그것이 이러한 사태까지 불러오게 되었습니다.


해당 보안버그를 해결하기 위해서 Meltdown은 근본적인 대책이 AMD CPU로 갈아타는 방법뿐이고 Spectre는 모든 CPU가 다 해당되므로 해당 버그에 공격당하지 않기를 바라는 것 뿐이었지요.


그러나 구글이 retpolin이란 프로젝트를 발표하면서 해당 CPU의 기능을 회피하고 성능저하를 거의 없게 만드는 것을 만들어 내었습니다.


사실 한동안 잊고 있었는데 이번 우분투 18.04를 부팅할 때 보니 이런 문구가 나오더군요.


즉 Spectre를 회피하기 위해 retpolin으로 전환한다고 뜹니다. 이로서 해당 버그로부터 안심할 수 있겠네요.

,

Windows10이 처음 발표 되었을 때 다들 어떠셨나요? 전 처음 Windows10을 봤을 때 굉장히 신박하다는 생각을 했습니다. Windows8의 실패를 교훈삼아 시작메뉴를 되살리고 또 Windows8의 인터페이스가 익숙한 사람들을 위해 Windwos10에 해당 인터페이스도 남겨놓았습니다. 참 여러모로 대단하다는 생각이 들었습니다.


그리고 지금 Windows에 익숙한 사람들을 위해 해당 인터페이스로 바꿔주는 고마운 테마팩이 있더군요.


https://b00merang.weebly.com/windows-10.html

바로 여기입니다.


그래서 한번 UbuntuMATE에 Windows10 테마팩을 씌우고 기본 테마로 변경한 작업을 공개하고자 합니다.


이번에 사용한 도구는 Customizer가 아닌 http://moordev.tistory.com/229 여기서 소개한 Cubic입니다.


우선 UbuntuMATE를 기반으로 하기로 했으니 UbuntuMATE를 다운로드 받아주세요.

그건 따로 이야기 하지 않겠습니다.

적당히 여기서 다운로드 받으세요. https://ftp.harukasan.org/ubuntu-cdimage/ubuntu-mate/releases/

(부경대 서버입니다.)


일단 Cubic을 실행하면 다음과 같이 나오는데 우선 iso압축을 풀어낼 곳을 지정합니다. 적당히 만들면 됩니다.



그리고 이미지 이름과 볼륨 이름을 지정하라고 하는데 저는 원래 것과 똑같이 하기로 했습니다.


이제 테마팩을 다운로드 받아야겠지요?



https://b00merang.weebly.com/windows-10.html
여기서 테마팩과 아이콘 팩을 다운로드 받습니다.

그러면 압축파일이 두 개가 나오겠지요.


Windows-10-master.zip

Windows-10-Icons-master.zip


해당 압축파일을 풀면 Windows-10-master란 폴더와 Windows-10-Icons-master라는 두개의 폴더가 나오겠지요.


이것을 깔끔하게 이름을 바꿉니다.

Windows-10-master는 Windows10

Windows-10-Icons-master도 Windows10


이렇게 바꾸는 겁니다.


그리고 cubic의 작업(cubic에서 터미널이 뜨면)이 완료되면 작업폴더로 들어갑니다. 그러면 다음과 같이 폴더가 보입니다.


여기서 squashfs-root폴더로 들어갑니다. 그다음 usr/share/theme 순서로 들어가면 우분투의 기본 테마들이 쭉 나옵니다.


여기에 아까 압축을 풀고 정리를 헀던 테마의 Windows10폴더를 복사합니다. 아마 그냥은 안 될거고 관리자 권한이 필요할 겁니다.


그것은 Alt+F2를 누르고 gksu nautlius 혹은 gksu caja 같은 명령을 이용하거나 터미널에서 sudo caja 같은 명령을 이용해도 됩니다.


참고로 Windows10폴더로 들어가면 바로 아래와 같은 파일이 나와야 합니다. 


그리고 아이콘은 작업폴더/usr/share/icons 로 들어가서 아까 압축을 풀었던 Windows10 폴더를 넣습니다.


만약 처음 하신다면 권한이 설정이 안 되어있을 가능성이 높습니다.


sudo chmod 664 -R 작업폴더/usr/share/icons/Windows10

sudo chmod 664 -R 작업폴더/usr/share/theme/Windows10

권한 설정을 안 했더니 파일을 못 읽더군요.


그리고 기본 테마를 바꾸는 작업을 해야 합니다.


그건 역시 작업폴더/usr/share/glib-2.0/schemas로 들어가서 일부 설정을 손대야 합니다.


40_ubuntu-mate-win10.gschema.override


이렇게 파일을 만든 다음 내용을 아래와 같이 적으면 됩니다.


[org.mate.interface]
icon-theme='Windows10'
gtk-decoration-layout='menu:minimize,maximize,close'
gtk-theme='Windows10'
font-name='Ubuntu 11'
document-font-name='Ubuntu 11'
monospace-font-name='Ubuntu Mono 13'

[org.mate.Marco.general]
center-new-windows=false
compositing-manager=true
side-by-side-tiling=true
theme='Windows10'
titlebar-font='Ubuntu Medium 11'


빨간 부분이 기존 Ambient-MATE에서 고친 부분입니다.


Windows10 테마는 murrine엔진도 설치해야 하지만 ubuntuMATE에서는 기본적으로 설치되어 있기 때문에 안 하셔도 됩니다.


이제 cubic에서 그냥 Next를 눌러봅시다.


만약 원하신다면 기존 커스터마이징 하듯이 여기서 손을 대셔도 됩니다.



그리고 쭉 내리다 보면 fcitx를 없애려고 하는데 한국어 입력기를 쓰시려면 fcitx를 냅두세요.(이건 하다보면 눈치챕니다.)



,

대부분 우분투 사용자분들은 다음미러(http://ftp.daumkakao.com/)나 카이스트(http://kr.archive.ubuntu.com/, http://ftp.kaist.ac.kr/) 혹은 네오위즈(http://ftp.neowiz.com/)를 사용하고 계실 것이라고 생각합니다.


하지만 이 셋만으로는 미러가 부족할 수밖에 없지요. 그동안 카이스트서버가 교체작업으로 모자를 때 우분투나 데비안은 다음이나 네오위즈로 대처가 가능했지만 이들외의 다른 마이너한 배포판은 한동안 고통에 시달리다가 일본의 Jaist를 쓰기도 했습니다.


그런데 찾아보니 https://ftp.harukasan.org/ 이곳도 있네요. 주소가 조금 그렇긴한데(하루카상...누구를 의미하는 걸까요?) 서버위치는 부산의 부경대라고 합니다. 그리고 다음이나 네오위즈와는 다르게 cdimage(http://cdimage.ubuntu.com/)도 서비스 해줍니다.


각종 우분투 이미지와 데비안 이미지를 미러링해주고 있다. Sponsors부분을 보면 부경대 데이터베이스 연구실이라고 적혀있다. 즉 여긴 비영리단체가 운영한다는 점. 터지기 직전인 카이스트서버(공식 우분투 서버)와 비교해서 사람이 많이 없는 듯 하다.



다음이나 네오위즈에서는 릴리즈된 iso만 해주지만 여기서는 각종 변형판도 미러링해주기 때문에 편리합니다. 그리고 만약 집이 부산이라면 가까우니까 더 빠르고 안정적으로 쓸 수 있겠지요.


일단 저희집(경기도 성남)에서 확인해보니 초당 2MB는 나오는 것 같습니다. 저는 100mbps급으로 사용중이기에 만약 1Gbps급을 사용하신다면 조금 더 속도가 나올 수 있을 겁니다.


저야 가까운 판교(네오위즈)가 더 빠르겠지만 네오위즈가 고질적인 주말, 저녁시간 속도저하 문제가 있어서 (당연히 게임때문이겠지요.) 다음을 쓰고 있는데 다음도 미리렁이 카이스트와 비교해서 현저히 늦어지는 등 최근 삐걱거리는 느낌이 들더군요. 일단 여기는 별로 알려지지 않아서 그런지 꽤 넉넉하네요.


그리고 우분투 이미지만 다운로드 받으려면 LANET이란 곳도 있습니다. 회선이 좀 안 좋지만 그래도 새로운 배포판이 릴리즈 될 때마다 터지는 카이스트보단 속도가 낫습니다. http://ubuntu-iso.lanet.kr/


정말 여긴 우분투 이미지만 미러링 해줍니다. 따로 업데이트서버는 운영하지 않으니 여기서는 배포판이 나오는 날 다운로드 받는 용도로 사용하면 될 듯 합니다.

(사실 배포판을 다운로드 받는 제일 빠른 방법은 Torrent를 쓰는 것입니다. 하지만 클라이언트 설치가 녹록치 않은 경우가 많으면 이쪽을 쓰는 것도 방법입니다.)


새로운 미러링 사이트가 생긴다는 것은 좋은 것이니까요. 많이 애용해주도록 합시다.

,


저는 Customizer를 정말 자주 활용합니다. 나만의 우분투를 만들 때 정말 편리하게 만들 수 있거든요.

이것을 이용해서 별의 별것을 다 만들었습니다.


http://moordev.tistory.com/189 ElementaryOS 0.4 한국어판

http://moordev.tistory.com/193 LinuxMint 18.2 한국어판

http://moordev.tistory.com/184 LinuxMint 18.2 Harmonikr Remix

http://moordev.tistory.com/166 PPSSPP전용 우분투OS(공개 안 함)

http://moordev.tistory.com/215 LinuxMint 18.3 한국어판(하모니카 커뮤니티버전)


이외에도 많지만 참 많은 것을 Customizer로 만들었습니다. 단순히 배포판 iso를 이용해서 한국어 설정만 한 것도 있지만 밑바닥부터 쌓아올려 만든 물건도 있습니다. 그럴때 기반이 된 배포판이 Mini-Remix인데요. Mini-remix는 아쉽게도 16.04이후로 홈페이지가 사라졌습니다.


그래서 따로 백업본을 올려놓기도 했는데 18.04부터는 이를 대신 할 수 있는 것이 캐노니컬을 통해 지원된다고 합니다.

바로 live-server입니다. 쉽게 말해서 서버버전을 라이브USB를 통해 바로 부팅해서 쓸 수 있도록 한다는 의미인데요. 이게 왜 Mini-Remix의 대체가 가능하냐면 특정 서버프로그램과 인스톨러를 제외하면 최소화된 우분투로 쓸 수 있기 때문입니다.


http://cdimage.ubuntu.com/ubuntu-server/daily-live/current/


2018년 3월 현재 18.04는 아직 베타버전이기 때문에 문제가 있을 수 있지만 제가 뭐 언제부터 그런거 신경이나 썼던가요...?


일단 한번 가상머신으로 실행해 봤습니다.



역시 서버에디션답게 인스톨러가 실행되는군요. 그런데 뭔가 조금 다릅니다. 기존의 데비안 인스톨러와는 느낌이 다르지요. 훨씬 예쁘다고 할까? (하지만 데비안의 X기반 인스톨러는 아니지요.)


한번 Alt+F2를 눌러서 tty2로 빠져나가봤습니다.


흠... 바로 사용이 가능하네요. 그냥 여기서 Xorg설치하고 startx를 해도 될 것 같네요. 그럼 한번 Customizer로 한번 돌려보겠습니다.


참고로 18.04는 그동안 써왔던 Customizer는 사용이 안 되므로 Custom ISO Ubuntu Creator(줄여서 CUBIC)을 이용해보도록 하겠습니다.(https://launchpad.net/~cubic-wizard/+archive/ubuntu/release)


sudo add-apt-repository ppa:cubic-wizard/release

sudo apt-get update

sudo apt-get install cubic


기존 Customizer와는 다르게 이런 식으로 chroot 환경만 딸랑 내주는데 어차피 Customizer 쓸 때도 그랬으니 크게 다를 것은 없습니다.


뭔가 되는 것 같네요.


다만 좀 많이 불편하고 프로그램이 불안정 합니다. 어쨌건 이걸 쓰면 나만의 우분투를 만들 수 있을 듯 합니다! mini-remix가 다시 돌아오는 것이 최선이지만 없다면... 어쩔 수 없지요.


==================================


뭔가 문제가 있습니다....

chroot에서 삽질을 하려고 보니 이 물건... DNS 설정이 안 먹힌다!!!


덕분에 apt-get이 안 먹혀서 뭔가 프로그램상 문제가 있는 줄 알았습니다.

혹시나 하고 8.8.8.8(구글 DNS)에 Ping을 쏴봤는데 이건 잘 되더군요.


그래서 검색해본 결과...

https://askubuntu.com/questions/741753/how-to-use-cubic-to-create-a-custom-ubuntu-live-cd-image


Note, while customizing Ubuntu 17.10, DNS lookups may not work in the chroot environment and you may not be able to use apt ("Name or service not known" error). This is because the link /etc/resolv.conf points to /run/systemd/resolve/stub-resolv.conf. But stub-resolv.conf does not exist. To resolve this, execute the following command in the Cubic chroot terminal window...

ln -sr /run/systemd/resolve/resolv.conf /run/systemd/resolve/stub-resolv.conf

To verify DNS resolution works, execute...

cat /etc/resolv.conf
ping google.com

라고 합니다.


이미 17.10때 부터 내려온 버그라고 하는데...


/etc/resolve.conf가 가리키는 곳이 아무것도 없어서 벌어진 일이라고 합니다.


mkdir /run/systemd/resolve
ln -sr /run/NetworkManager/resolv.conf /run/systemd/resolve/stub-resolv.conf


17.10과 위치가 또 달라져서 고생 좀 했습니다.


,

서울서체가 무엇인지는 다들 아실 겁니다.

서울시에서 만들어서 서울시 곳곳의 서체를 필요로 하는 곳에 쓰이는 글꼴입니다.


꽤 예쁘게 만들어졌고 생각보다 깔끔하게 표현되어서 많은 사람들이 애용하는 중입니다.

https://www.seoul.go.kr/v2012/seoul/symbol/font.html

나름 저작권을 밝히고 있는 서울서체 홈페이지 그런데 Open Font Lisense는 아니다.



바로 옆나라 일본에서도 한글이 필요한 부분에서 이미 사실상 국제표준(?)한글 폰트가 된 NotoSans나 나눔고딕이 아닌 서울남산체를 사용한다는 제보가 있었고 서울시가 아닌 다른 지자체에서도 이들을 사용한다고 할 정도로 인기가 상당히 있는 글꼴이 되겠습니다.


그런데 이건 인쇄나 영상매체, 웹 용 등으로 사용할 때 이야기고 서울서체를 포함해서 커스텀 OS를 배포할 때는 어떨까요?


글꼴 저작권에는 재배포권이라는 것이 있습니다. 오로지 특정한 곳에서만 글꼴을 받을 수 있으며 다른 곳에는 이용을 할 수 없게 만들어진 것을 말합니다.


http://www.bloter.net/archives/201916

여기에 보시면 서울 서체는 기기 임베디드용으로 사용 가능하다고 나와있습니다. 이 경우에는 기기나 프로그램에서 글꼴로 사용할 때를 말하는 것이지요.


임베디드는 일종의 OS니까 사용가능한 것일까요?

몰랐는데 해당 부분은 가능하다고 보고 있습니다. OS에 내장시켰다고 보면 나름 이해가 가거든요.


그렇다면 사용하기 쉽게 패키지화를 했다면 어떨까요? 예를 들면 우분투에서도 쉽게 설치할 수 있도록 DEB으로 패키지를 만들었다고 합시다.


이건 어떻게 되는 걸까요? 앱의 임베디드는 가능하다고 하는데 이렇게 만들면 이건 임베디드가 아니라 그냥 재배포가 될 것 같은데요.


여기서 골치가 아파지기 시작하더군요. 사실 서울서체는 우분투같은 리눅스에서도 상당히 좋은 글꼴입니다. 그런데 서울시청에서는 윈도용 TTF만 배포중이고 이렇게 되면 리눅스 사용자들은 수동으로 TTF를 설치해야만 합니다.


그래서 이걸 패키지로 만들어서 배포하면 편하겠다고 생각한건데 이러한 상황은 생각하지 못한 것인지 아니면 재배포권에 대한 이야기는 전혀 없더군요. 찾아보니 이걸 시청에 물어본 사람도 없습니다. OS에 포함하는 것은 임베디드로 처리가 가능하지만 패키지는 아무리 생각해봐도 답이 안 나오네요.


서울시청에 물어보려고 해도 편하게 사용할 수 있게 자동화하여 묶었다고 하면 알아들으려나요?

솔직히 이걸 알아듣게 설명하는 것도 골치가 아프네요.


역시 매번 뭔가 하려고 하면 이렇게 쉽지가 않습니다.


==========

서울 시청에 전화해본 결과...


해당 폰트는 무조건 서울시청에서만 배포하며 다른 곳에서 배포는 금지되어 있다고 합니다. 쉽게 말해서 사용은 하되 서울 서체를 직접적으로 배포하지 말라고 합니다.


그러니까 패키지화는 하면 안 되는 겁니다. 아쉽지만 패키지로 설치하는 것은 물건너갔고 대신 MS폰트처럼 자동 스크립트형태로 설치하게 만들어야겠네요.


https://gist.github.com/keeferrourke/d29bf364bd292c78cf774a5c37a791db


여기있는 스크립트를 일부 수정해서 만들어봐야겠습니다.

,

최근 월광보합이라는 게임기(?)가 절찬리에 판매중입니다.


사실 별건 아니고 조이스틱과 게임기가 합쳐져서 만들어진 일종의 합본팩+게임기입니다.

인터넷 조금만 검색해도 이곳 저곳에서 월광보합이라는 이름하에 팔리고 있다.

그런데 이 물건... 정체가 뭘까요?


사실은 중국에서 처음 만들어진 일종의 에뮬레이터+조이스틱입니다. (요즘은 국내에서도 만듭니다.) 본래는 Pandora Box라는 이름하에 오락실에 야금야금 퍼져있었는데요. 오락실 업주 입장에서도 기존 캐비닛은 하나의 게임만 돌릴 수 있지만 이 물건은 한 캐비닛에서 훨씬 더 많은 게임을 넣을 수 있고 손님 입장에서도 자기가 원하는 게임을 할 수 있다보니 기존의 캐비닛들을 밀어내고 그 자리에 하나씩은 있더군요.


그러다가 그것이 돈이 된다고 생각했는지 오락실 캐비닛에 들어가던 회로 기판을 가정용으로 조이스틱에다가 내장해서 판매하는 것이 위에 보이는 물건들입니다.

실제로 용산 전자상가나 테크노마트, 청계천 대림상가에서 쉽게 볼 수 있고 판매되고 있습니다.


http://www.nocutnews.co.kr/news/4930646

기사까지 났네요. 복고바람이라고 하는데 사실 복고바람 이전에 레트로 게임기의 수요는 꾸준했기에 크게 와닿지는 않는 기사입니다. (실제 청계천에서 네오지오 아케이드 기판을 사가는 사람이 아직 꽤 있습니다.)


그런데 이걸 왜 리눅스 관련에다가 넣을까요?

뭐... 눈치빠르신 분들은 아시겠지만 이 물건의 OS는 리눅스입니다. 아니 리눅스일 수밖에 없습니다. 그렇지 않고서는 이 가격이 나올 수가 없지요. 리눅스에 MAME(http://mamedev.org/)나 FinalBurn Alpha(https://www.fbalpha.com/)같은 에뮬레이터를 설치하고 AttractMode(http://attractmode.org/)같은 프론트엔드를 만들면 이런 월광보합OS를 만들 수 있습니다.


귀찮으면 RetroPie(https://retropie.org.uk/)나 Recalbox(https://www.recalbox.com/)같은 이미 잘 만들어진 OS도 있습니다. 그런데 이것이 리눅스라는 사실을 아는 사람은 거의 없는 것 같네요. DOS아니냐고 하는 사람도 있던데 DOS도 가능하긴 한데 굳이 21세기에 16비트 OS가 필요할까요?


월광보합외에도 뭔가 제대로 된 듯한 레트로가 나왔으니 바로 닌텐도에서 내놓은 NES미니와 SNES미니가 있습니다.


http://www.bodnara.co.kr/bbs/article.html?num=143131

https://www.nintendo.co.jp/corporate/release/en/2017/170627.html


20년이 넘는 세월 동안 작아져서 돌아온 SNES미니 출처: 닌텐도 공식 홈페이지

이 물건도 사실은 ARM+리눅스+자체제작 에뮬레이터로 구성되어 있습니다.

사실 마음먹으면 SNES나 NES를 원칩으로 만들어서 그냥 기판에 박아버릴 수도 있을 텐데 이렇게 한 이유가 이쪽이 더 싸게 먹히기 때문입니다.


ARM칩셋은 스마트폰부터 웹서버에까지 사용될 정도로 광범위하게 쓰이고 있고 여기에 올라가는 리눅스OS도 소스코드가 공개되어 있어서 사용하기가 편합니다.

OS사용에 따른 최적화? 제일 싸구려 칩셋이 SNES의 스펙은 이미 뛰어넘은지 오래라서 SNES 원기기보다 프레임이 더 화면 전환이 부드럽습니다.


요즘에는 이것이 리눅스라는 것을 10분 활용해서 다른 짓을 하려고 한다고 하더군요. Xorg를 올리고 Gimp같은 데스크탑용 프로그램을 돌린다거나 기존 리눅스용 게임을 포팅해서 넣는다거나 하려고 한다고 합니다.


실제로 리눅스의 세계정복이라는 우스개 소리가 있는데 이런 식으로 알게모르게 야금야금 시장을 먹고 정복을 하고 있습니다.


보통 월광보합은 오락실 캐비닛을 위해 만들어진 만큼 오락실 게임위주로 되어있지만 에뮬레이터 특성상 꼭 오락실 게임만 들어갈 이유는 없지요. NES나 SNES, SEGA게임도 가능합니다. 이도 역시 리눅스이기에 가능한 것입니다. 조금 찾아보니 리눅스라는 십분 활용해서 NES 미니에서 Doom을 돌린 사람도 있다고 하네요.

https://www.ns-koubou.com/blog/2016/11/17/doom_on_nes_classic/


리눅스는 게임용으로 쓸 수 없다는 편견을 아직 사람이 아직도 많은데요. 제가 게임을 돌리는 방법을 자주 올리고 성공 사례에 리눅스용 게임들도 알려줘도 이해를 못하는 사람이 많더군요.

그런데 월광보합+Pump it up!+세가린드버그(이니셜D에 주로 쓰임)만으로 국내 오락실 지분 50%정도는 리눅스가 먹은 듯 합니다. (나머지는 철권이나 EZ2AC같은 Windows기반 기판과 아직 남은 자체 기판 정도일 겁니다.)


그.렇.다.는.것.은?


마음만 먹으면 월광보합같은 것을 만드는 것이 어렵지 않다는 것을 의미하기도 합니다. 어차피 리눅스고 리눅스가 돌아가는 곳에 조이스틱만 달아주면 월광보합은 만들 수가 있다는 의미가 됩니다. 제일 큰 문제는 게임 Rom을 어떻게 처리하냐가 문제입니다. 리눅스는 ARM에도 돌아가고 x86에도 돌아갑니다. 중고PC를 하나 구한다음 PC의 크기를 최소화 해서 쑤셔넣어도 되고 라즈베리파이 같은 저렴한 손바닥PC를 써도 됩니다.


그리고 오락실 버튼과 조이스틱을 사다가 달아주면 하드웨어 준비 끝. (버튼이나 조이스틱은 어디서 구하냐는 분들도 있을 텐데 청계천의 삼덕사에 가보세요. 우리나라의 어지간한 스틱은 이곳의 물건을 쓸 겁니다.)


나머지는 OS를 설치하고 에뮬레이터 설정 후 게임ROM을 넣어서 돌리는 것만 남은 것이지요. 참 쉽죠?


그렇기에 월광보합의 가격을 보면 결국 하드웨어 값만 들어있다는 결론이 나옵니다.(그 안에 있는 게임ROM들은 중국 물건 특성상 라이센스 했을리가 없습니다. 국내 제작은 본인이 게임을 넣도록 하는 경우가 많고요.)


그러므로 게임수가 많아서 가격이 비싸다느니 소프트웨어 최적화가 어쩌고 해서 가격이 높다라니 하는 것은 무시해도 됩니다. 그거 다 개소리에요. 오픈소스인 리눅스 커널에 오픈소스인 에뮬레이터를 깔고 소프트웨어라곤 프론트엔드인데 그 마저도 AttractMode같은 것을 썼다면 이것마저 무료. 게임ROM? 간혹보면 해킹판 롬도 있던데 원 게임사에서 그런 것을 허락했을리가...


아시겠죠? 그냥 좋다고 막 살 물건은 아니에요. 이 물건...

그냥 뭐.. 그렇다고요.

,

Blender는 무료 3D 모델링 툴로 Autodesk사의 3DS MAX, Maya와 함께 3대 모델링 및 애니메이터로 유명합니다. 다른 두 도구가 더럽게 비싼데 Blender는 그정도의 기능을 무료로 제공하니 참 고마운 도구라고 할 수 있겠습니다.


여러모로 Gimp와 Photoshop과의 관계와 비슷하다고 할까요? 물론 Blender도 한계가 있습니다. 일단 기본 렌더러가 썩 좋지 않다는 문제가 있고 Python을 플러그인으로 활용하는데 Python의 단점 중 하나인 느린 성능이 발목을 잡습니다. 그리고 UI가 좀 난잡하다고 하더군요. (저는 잘 모르겠습니다.)


그런데 이 Blender가 한동안은 문제가 없더니 이번에 커널을 업그레이드 하고나서 사용하기 어려운 버그가 발생했습니다.


보시는게 더 나을 것 같네요.


카메라 회전을 하거나 기능을 쓰려고 할 때마다 화면이 깜빡깜빡 거리면서 이전의 메뉴가 뜨거나 UI가 왔다갔다 하는 모습이 뜹니다.


특히 아래쪽을 보시면 똑같은 메뉴가 두 줄이 보이는데 사실은 같은 메뉴가 지속적으로 깜빡거리면서 위치가 바뀌는 것입니다.


이래가지곤 작업이 불가능합니다. 단축키만으로 작업을 한다면 그래도 어찌하곘는데 사실상 불가능하지요.


해결 방법은 다음과 같습니다.


어떻게든 깜빡이는 UI를 뚫고 File-User Preference에 들어갑니다.

깜빡거리는 것이 너무 심하면 Ctrl+Alt+U를 눌러도 됩니다. 이쪽이 더 빠르겠네요.


그 다음 SYSTEM 탭에서 Window Draw Mathod 부분을 찾습니다. 여기서 Automatic이라 되어있는데 화면을 그리는 방법을 지가 알아서 하겠다는 것이지요. 근데 지가 알아서 하는게 이 모양이니 수동으로 바꿔주면 됩니다.


 

Automatic을 Triple Buffer로 고치고 아래에 새로 생긴 Save User Settings를 눌러주면 UI의 깜빡거림이 사라집니다!


이는 Windows에서도 통하고 Linux에서도 통합니다. Blender 쓰시는 분들 중에서 드라이버 업데이트나 커널 업데이트 등으로 UI가 고통스러워진 분들이라면 한번 확인해 보세요!

,

이번에 티스토리에서 저에게 또 초대장을 줬습니다.


이번에는 3월 27일까지 사용가능한 초대장입니다. 사실 기간 무제한 초대장이 5장정도 남아있는데 이건 나중에라도 드릴 수 있으면 드리도록 하고 우선 3월 27일까지 쓸 수 있는 초대장을 10분께 선착순으로 드리고자 합니다.


블로그 주제는 아무 상관이 없고 그저 재미있게 운영해주셨으면 합니다.


제가 블로그 운영한지 약 3년정도 지났는데 이번이 두 번째 초대장 배포군요. 그래도 하루 300명정도 꾸준히 방문해주신 덕에 그래도 티스토리에서 관심을 주시긴 하네요. 하하


===============================================


댓글로 문의 주신 분들이 제가 갖고 있는 초대장 한도를 넘어서 초대장 배포를 마감합니다.


우선 메일주소 확인이 필요하신 분들이 있으니 이 분들 메일 주소를 다시 확인 후에 진행하도록 하겠습니다.


,

이전에 RWBY:Grimm Ecllipse란 게임을 우분투에서 실행 하는 방법에 대해 공개한 적이 있었습니다.

http://moordev.tistory.com/221


이 게임이 일단 영어권에서 만들어진 만큼 언어에 문제가 있었는데 일본어, 중국어 번체, 스페인어 등의 다양한 언어를 지원하더군요. 문제는.. 한국어는 없습니다.


그렇다고 괜찮은 이 게임을 그냥 외국어로만 하기는 좀 그렇더군요. 이 참에 조금 손을 보기로 했습니다.


우선 게임 분석을 해야겠지요. 스팀의 설치된 폴더에 가면 rwby_ge_Data란 폴더가 있습니다. 이 쪽을 들여다보면 assets란 파일들이 주르륵 나와있습니다.


이건 보통 Unity3D 엔진으로 만들었다는 증거가 됩니다. 그렇다면 Unity3D게임의 한글화 기법을 적용하면 되겠군요.


아쉽지만 Unity3D 게임은 한글화가 쉽지 않습니다.

우선 assets파일을 풀어내는 프로그램은 존재합니다. 다시 패킹도 가능하고요. UnityEX란 프로그램인데

UnityEX.rar

이것으로 assets파일을 풀어내고 다시 합칠 수 있습니다.


하지만 풀어냈다고 우리가 아는 그런 포맷이 튀어나오는 것이 아니라 확장자가 *.-숫자 형태로 된 파일이 튀어나옵니다.


물론 이미지는 dds포맷으로 풀 수 있고 일부 텍스트는 txt로 나오기도 합니다.(NGUI같은 라이브러리는 txt를 쓴다고 합니다. 하지만 이 라이브러리를 썼다는 보장이 없다면...) 그럼... 노가다 해서 알아내야지요...


그래서 알아낸 것이 아래와 같습니다.


sharedassets0.assets

resources.resource


이 두 파일이 핵심입니다.


그 중에서 sharedassets0.assets는 안에 TTF 파일을 가지고 있어서 폰트 수정을 위해 필요한 파일이고 resources.resource 파일에는 로컬라이징용 대사파일이 있습니다.


UnityEX로 해당 파일을 풀면 어마어마한 양이 튀어나오는데 sharedassets0.assets에서는 TTF파일만 찾아서 우리가 아는 한글폰트(나눔고딕이나 서울남산체, NotoSans 등...)으로 파일을 바꿔치기 해주면 해당 파일이 할 일은 끝납니다. 그리고 Import all file 버튼을 누르면 한글폰트가 담긴 파일이 나옵니다.


문제는...


resources.resource에 들어있는 스크립트입니다.


이걸 알아내기까지 좀 노가다했습니다.


옆의 사본은 무시. 그냥 내가 작업하다 날려먹을까봐 백업한 것.

resources_00001.-59 이 파일이 핵심입니다.

사실 여기서 제일 스크립트 파일 중에서는 용량이 크거든요. 그래서 헥스에디터로 열어봤더니 다행히도 이것이 Localize 어쩌고 하는 파일이더군요.


같이 들어있는 ARIAL.ttf는 무시해도 좋지만 혹시나 해서 이것도 나눔고딕으로 바꿔치기 했습니다. (ARIAL하고 나눔고딕이 제일 흡사하더군요.)


이걸 헥스에디터로 열고


한글로 덮은 부분은 본래 일본어가 있던 부분

인코딩을 UTF-8로 해 놓으니 온갖 언어가 다 보입니다.


여기서 전 일본어 부분을 덮기로 했습니다. 왜냐하면 UTF-8의 형태 때문인데 ASCII코드와의 호환을 위해 기존 ASCII코드는 1바이트만 차지하지만 나머지 글자는 3바이트를 차지하는 구조로 한글은 UTF-8에서 3바이트를 차지합니다. 그렇다는 것은 영어부분을 덮으면 본래 대사 길이의 1/3만 쓸 수밖에 없지만 일본어는 기존 대사 길이를 거의 다 쓸 수 있습니다. 게다가 특수문자는 ASCII의 반각(1바이트)을 거의 이용하는 한글과 달리 일본어는 전각(3바이트...)를 쓰곤 해서 번역된 문구를 쓸 공간이 매우 넉넉합니다.


이렇게 헥스에디터에서 노가다 작업을 하고 다시 UnityEX에서 패킹을 한 다음 한 번 테스트를 해봤습니다.


일본어 부분을 덮었기에 설정에서 일본어로 설정을 했습니다. 아직 번역이 안 된 부분은 일본어로 나오기에(덕분에 무슨 말인지...) 문제가 있지만 번역을 한 부분은 한국어로 잘 나오네요.


폰트는 서울남산체, 본고딕(NotoSans CJK)을 썼습니다. 헥스에디터로 노가다하면 충분히 한글화가 가능하겠네요.

,