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

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


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

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)을 썼습니다. 헥스에디터로 노가다하면 충분히 한글화가 가능하겠네요.

,

타자연습은 처음은 컴퓨터를 배우셨을 때 많이 해보셨을겁니다.


그 중에서 제일 많이 쓰셨던 프로그램이 아무래도 한컴타자연습일 것이라고 생각하는데요. 아무래도 한컴오피스를 깔면 같이 깔려있고 게다가 타자연습이라는 기본에 매우 충실해서 상당히 쓸만하기 때문입니다.


그런 한컴타자연습이 사실 한컴에서 무료로 배포중입니다.


http://www.hancom.com/hanfriends/friendsTypingDownload.do


여기서 한컴타자연습을 무료로 다운로드 받을 수 있습니다. 심지어 전체이용가로 게임심의까지 받았더군요. (한컴내부에서도 소개문을 보면 그냥 게임 취급하고 있습니다.)


우리 모두에게 필요한 게임! 즉, 타자연습은 게임취급이다.

이것을 Wine으로 실행하면 어떨까 해서 해봤는데 잘 되더군요.


온라인은 아직 안 했봤는데 사실 혼자 하기만 해도 타자연습이라는 본분에는 아주 잘 어울립니다.


PlayonLinux로 설치하는 방법을 알려드릴려고 했는데 사실 편하게 하는 것이 더 좋을 것 같아서 알려드립니다.


일단 Wine 3.0버전에서도 아무 문제없이 실행되는 것을 확인 했습니다.


그런데 솔직히 귀찮아서 PlayonLinux Vault로 백업한 파일을 올립니다.


https://drive.google.com/open?id=1-n81XcuuOnElYMWkbek_MyvbQpZqJXGp

위의 파일을 다운로드 받으신 다음


PlayonLinux에서 (없으면 설치하세요!)

플러그인 - PlayOnLinux Vault를 실행합니다.


그리고 위의 스크린샷 처럼 Restore를 선택한 다음 파일을 선택하라고 하면 찾아보기를 누른 뒤의 다운로드 받은 파일을 선택 합니다. 그리고 다음을 누르면...


이렇게 HncTT란 아이콘이 생성됩니다.


이걸 실행하면...


한컴타자연습이 실행됩니다!!!


만약 실행이 안 되신다면

Wine 버전관리에서 x86버전으로 3.0버전을 설치하신 다음(2.14에서도 됩니다....)


구성버튼을 누르고




HncTT의 와인버전을 3.0으로 설정하시면 잘 됩니다.


,

 


 



어떤 사람들은 "이게 무슨 소리야?" 하실 수도 있고

어떤 사람들은 "얘가 또 잘못 먹었나?" 하실 수도 있을겁니다.


아무래도 이쪽 계통의 사람들이라면 당연하게도 잘 알고 계실 겁니다.


안드로이드는 리눅스가 맞습니다.


그런데 리눅스의 정의가 무엇일까요?

이를 위해서는 OS의 정의부터 알아봐야 할 것 같습니다.


사실 세계 3대 OS하면 다음과 같습니다.


1. Windows

2. macOS

3. Linux


그런데 이렇게 나누는 것이 과연 정답일까요? OS가 필요한 이유가 무엇일까요?


이렇게 되면 복잡해지기 시작합니다.


간단하게 이야기해보겠습니다.


자동차가 있습니다. 자동차에서 제일 중요한 것은 보통 엔진이라고 합니다. 사실 엔진이 없으면 그저 동력이 없는 깡통일 뿐이니까요. 하지만 엔진만 있다고 자동차라고 할 수 있을까요? 멀리 갈 것도 없이 바퀴가 없으면 자동차로서 쓸 수 없는 물건이 됩니다. 거기에 사람이 앉을 수 있는 좌석도 있어야 하고 핸들과 같은 조작계도 있어야 합니다.


비슷하게 말하겠습니다.

여기 OS가 있습니다. OS애서 제일 중요한 것은 보통 커널이라고 합니다. 사실 커널이 없으면 그저 하드웨어를 쓸 수 없는 코드 덩어리일 뿐이니까요. 하지만 커널만 있다고 OS라고 할 수 있을까요? 멀리 갈 것도 없이 응용프로그램이 없으면 OS로서 쓸 수 없는 물건이 됩니다. 거기에 명령어체계도 있어야 하고 CLI나 GUI같은 인터페이스도 있어야 합니다.


위의 글과 아래글의 차이는 무엇일까요? 사실 저는 OS를 자동차에 비유했습니다.

자동차

 OS

 엔진

 커널

 바퀴

 응용프로그램

 조작계(핸들 등)

 인터페이스(CLI, GUI)


즉, OS란 커널과 그 위에서 돌아가는 응용프로그램들과 인터페이스 등으로 구성된 것을 의미합니다.


그럼 리눅스의 정의로 다시 돌아와 보겠습니다.


우리가 흔히 리눅스라고 말하는 것은 어떤 것일까요? 제일 많이 쓰이는 우분투 리눅스에 대해 알아보도록 합시다.


우분투 리눅스는 당연히 리눅스 커널을 사용합니다.

인터페이스는 GUI로 X11기반의 Gnome(사람에 따라서는 Wayland가 기본)을 씁니다.

기본 응용프로그램으로 Bash를 쉘프로그램을 쓰고 Firefox를 기본 웹브라우저로 사용합니다.


일단 여기까지만 이야기 해봅시다. 이제 다시 확인 해봅시다. OS는 커널과 그 위에서 돌아가는 응용프로그램, 그리고 인터페이스 등으로 구성되었다고 했습니다.


우분투 리눅스는 리눅스가 맞습니다. 

그리고 서버용으로 쓰이는 RHEL도 리눅스커널을 쓰고 CLI로 Bash를 쓰면서 YUM이나 VI같은 응용프로그램을 씁니다. 그리고 RHEL도 리눅스가 맞지요.


보통 리눅스라고 부르는 OS는 이런 식으로 구성되었다고 생각하시면 되겠습니다. (서버용의 인터페이스는 Gnome이 아닌 그냥 콘솔 인터페이스라고 하지요.)


그럼 같은 Gnome 인터페이스를 쓰고 Firefox를 쓰는 FreeBSD는 무엇일까요?

우분투와 FreeBSD의 차이는 커널의 차이입니다.


우분투는 리눅스고 FreeBSD는 BSD입니다.

즉, 리눅스의 정의는

리눅스 커널을 사용한 OS라고 할 수 있겠습니다.


인터페이스가 무엇이든 응용프로그램이 무엇이든 그건 상관 없는 셈입니다.


그렇게 따지면 안드로이드는 분명 리눅스가 맞습니다.


하지만... 우리가 알고 있는 리눅스랑 사용 방법이 완전히 다릅니다.

왜냐하면 인터페이스가 완전히 다르고 전혀 다른 응용프로그램을 사용하니까요.


이렇게 생각해봅시다.


페도라와 우분투는 같은 OS인가?

같은 OS라고 보는 사람은 없을 겁니다. 일부 응용프로그램이 다르거든요.

(YUM, APT 등)

하지만 인터페이스는 같을 수 있습니다.

그리고 일정 부분 사용하는 응용프로그램이 같지요.


그럼 안드로이드는 어떨까요?

전혀 다른 인터페이스와 전혀 다른 응용프로그램으로 구성되어 있습니다.


즉, 안드로이드는 리눅스는 맞으나 다른 리눅스OS와 다른 OS라고 볼 수 있습니다.


그러니까 리눅스는 맞는데 우리가 흔히 말하는 리눅스와는 다른 물건이라고 할 수 있습니다. ChromeOS도 마찬가지입니다. 이것도 리눅스 커널을 썼으니 리눅스가 맞기는 한데 인터페이스도 다르고 응용프로그램도 제한적입니다. 그러니까 다른 OS로 봐야합니다.


이제 여기서 한가지 의문이 생기게 됩니다.

아까 3대 OS 이야기 했었지요?


1. Windows

2. macOC

3. Linux <-여기에 안드로이드가 들어갈까요?


정답부터 말씀드리자면 아니지요.


저 3대 OS란 표현부터가 틀려먹었습니다.

3대 데스크톱 OS라고 표현해야 합니다. 그런데 이것도 이상합니다. Linux란 것은 리눅스커널을 쓴 수많은 OS를 포괄해서 표현하는 것이니까요. 그럼 이렇게 다시 써야 겠네요.


1. Windows

2. macOS

3. Ubuntu

4. Fedora


이렇게 쓰면... 다른 OS사용자분들이 태클을 걸 것입니다.


1. Windows

2. macOS

3. Ubuntu

4. Fedora

5. OpenSUSE

6. Debian

7. Arch

...

...

...


에라이...



안드로이드 때문에 복잡해져 버렸네요.


그냥 이렇게 생각합시다.


안드로이드는 리눅스가 맞다 하지만 리눅스 데스크톱 OS는 아니다.


하지만 안드로이드가 데스크톱으로 들어오는 것도 머지 않았다는 사실...

RemixOS같은 물건이 존재하는 한 이것도 가능한 이야기입니다.


이러면 또 정의가 바뀌어야겠네요...

,

https://www.youtube.com/playlist?list=PLUBVPK8x-XMjxqbVg5aIjImKW6O64Ns1q

RWBY 유튜브 공식채널


Vol.3를 보다 보면 오프닝전에 게임 광고가 나옵니다.


RWBY라는 애니메이션이 있습니다. 미국의 Rooster Teeth란 단체(?)에서 만드는 애니메이션인데 분명 미국에서 만들어졌음에도 캐릭터들이 일본분위기가 나는 것이 특징입니다. 하지만 만든사람들이 만든 사람들이다보니 미국 하이틴 느낌이 다분히 납니다. (Vol.1~Vol.2 까지만 Vol.3부터는 배틀물 느낌이 나더니 Vol.4부터는 암울함 그 자체...)


아무튼 이런 애니메이션을 가지고 게임이 만들어졌는데 나름 재미있는 게임이 나왔습니다. 


문제는 역시나 그렇듯이 Windows만 지원한다는 것! 하지만 Wine으로 돌리니 일부 문제만 빼고는 잘 돌아갑니다.


이런 게임은 역시 PlayonLinux로 굴리는 것이 제일 좋겠지요.


일단 여기를 참고 : https://appdb.winehq.org/objectManager.php?sClass=version&iId=34898


일단 Wine-Staging을 이용할 것이니 도구-Wine 버전관리에서 staging이 붙은 최신버전 (18.2.19 현재 2.21-staging이 최신)을 설치합니다.


x86버전을 설치하는 것을 추천합니다.


그리고 설치를 해야겠지요.


PlayonLinux에서 설치버튼을 누르고




왼쪽 아래의 Install a non-listed program을 선택합니다.


이름은 아무래도 상관없지만 알기 쉬운 것으로 해주세요.



이번에 설치한 Wine-Staging을 이용할 것이니

Use another version Of Wine을 체크해주세요.


여기서 아까 설치한 Wine-Staging을 선택


x86버전을 설치했으므로 32bits로 선택


이제 Wine이 어쩌고 할 텐데 기다려 주신다음 Wine 설정 창이 나오면 Staging 탭으로 달려갑시다.



여기서 CSMT 활성화 체크


그 다음 설치할 프로그램이 어쩌고 하는데 우리는 여기서 설치할 생각이 없고 Steam을 이용할 예정이니 가뿐하게 창을 닫아줍시다.


그 다음 PlayonLinux의 구성 버튼을 누릅니다.


왼쪽의 이름을 찾으면서 아까 설치 기능으로 설정한 이름(저는 RWBY라고 했지요.)을 찾은 다음 구성요소 추가 탭을 눌러 Steam을 설치합니다.


미리 Steam을 설치해두었기에 steam 아이콘이 있는 것일 뿐...

적절히 steam을 설치했다면 일반 탭에서 steam 아이콘을 만들어야 편하겠지요.


그리고 Steam.exe를 바로가기로 만들면 됩니다.


이제 Steam을 실행하고 게임을 구입하고 깔기만 하면 됩니다.


단! 한가지 트릭이 더 필요합니다. 바로 RWBY:Grimm Eclipse는 DX11이 기본으로 이용되는 게임인데 Wine에서 DX11은 아직 갈길이 멉니다. 그래서 레거시용 옵션인 DX9(쉽게말해서 구형 OS인 WindowsXP용...)모드로 강제구동 되도록 해야 합니다. 그건 스팀에서 설정을 해야 합니다.


게임이름에서 마우스 오른쪽 버튼을 눌러 속성에 들어가신 다음


시작 옵션을 추가해주셔야 합니다. 고급사용자 어쩌고 하지만 우린 고급사용자 맞습니다.


-force-d3d9

이렇게 적어주시면 DX9로 구동이 됩니다.


게임패드가 정상적으로 지원되지 않기에 이 화면은 키보드를 제외하면 그저 그림의 떡...

다만 여기서 한 가지 문제가 생기는데 분명 컨트롤러가 지원된다고 되어있지만 아무리 용을 써도 컨트롤러가 작동이 되지 않았습니다.


키보드와 마우스는 아무런 문제 없이 되니 상관은 없지만 컨트롤러가 편하신 분들은 답답할 겁니다. 그럴 때는 QJoypad(Joy2Key같은 프로그램)으로 컨트롤러를 키보드로 입력되게 하신 다음 플레이하시면 됩니다.


Windows10에서도 같은 문제가 발생해서 여기서도 Joy2Key나 Xpadder 같은 프로그램을 쓴다고 하네요. 게임자체 문제인 듯 합니다.


일단 이 게임은 혼자하면 재미없고 4이서 협동을 해야 재미있는 게임이니 같이 한번 해보는 것도 추천합니다.


2만원이 넘는 뭐 같은 가격은 넘어가자구요...(가격대비 볼륨이 썩 좋지는 않습니다. 할인 할 때 사세요. 꼭...)

,

GPD Win이란 5인치 가량의 크기를 가진 작은 노트북이 있습니다.


기본적으로 Windows가 탑재된 5.5인치 '랩탑' GPD Win은 분명 게임용이지만 게임만 하기엔 뭔가 아쉬운 x86 칩셋을 달고 있다.


솔직히 말해서 본래 목적은 게임용이지만 여기엔 커다란 특징이 바로 Windows10이 기본으로 설치되어 있다는 것입니다.


https://en.wikipedia.org/wiki/GPD_Win


인텔의 아톰 체리트레일이 달려있으며 GPU도 마찬가지로 체리트레일에 붙어있는 인텔HD가 달려있습니다. 최근에는 안드로이드도 올리는데 성공했다고 합니다.(물론 x86용이라 ARM용 앱은 실행이 안 됩니다.)https://www.black-seraph.com/


Windows만해도 크게 문제가 없는데 굳이 여기에 Lubuntu를 설치하려고 하는 이유는 다음과 같습니다.


1. Windows10은 돼지다.

Windows가 많이 빨라지고 가벼워졌다고 하는데 기본 메모리 사용량을 보면 여전히 1.0GiB 남짓 먹습니다. 이 물건의 기본 메모리가 4GiB임을 생각해보면 1/4를 운영체제가 먹고 있는 셈입니다. 뭔가 아쉽지요.


2. 터치스크린에 최적화 된 Gnome도 돼지다.

사실 Gnome 데스크탑은 여기에 정말 잘 어울리는 환경입니다. 기본적으로 터치스크린을 지원하고 꽤나 날렵하지요.

그런데 Gnome도 기본 메모리 요구량이 상당히 높습니다. 게임용으로 쓰기엔 너무 많이 먹습니다.


3. 어차피 인텔HD 그래픽이라 GPU 성능이 차이가 없다.

AMD나 Nvidia의 경우 DirectX 렌더링을 사용한다면 Wine으로 굴릴 때 성능저하를 느끼게 됩니다. 기본적으로 D3D->OpenGL을 쓰기 때문인데요. 어차피 인텔GPU를 쓰면 크게 와닿지 않습니다. 렌더링 성능이 거기서 거기거든요.

게다가 GPD Win이 굴릴 수 있는 구식 게임은 DirectX9 정도인데 Wine-Gallium Nine(https://wiki.ixit.cz/d3d9)은 이미 Windows보다 더 빠르게 구동이 가능해졌습니다. (비록 Arch에서 그렇게 구르는 것이기는 하지만) 즉, 이쪽이 더 게이밍에 더 좋은 셈입니다.


다만 이런저런 문제로 인해 커널을 컴파일 해야하며 설정이 조금 복잡합니다.


http://oldcomputer.info/log/index.php?id=20180105220917-debian-linux-on-a-gpd-win

http://hansdegoede.livejournal.com/17445.html


위의 두 링크를 참고했습니다. 아래는 커널소스와 설정을 공유한 블로그주소입니다.


Lubuntu를 설치하는 방법은 당연하게도 Lubuntu 설치 USB를 만들고 부팅하면 됩니다.(64비트용을 설치해야 합니다. 32비트는 지원하지 않습니다.)


전원을 켜고 열심히 DEL키를 연타하면 바이오스 설정을 할 수 있는데 부트순서를 USB메모리를 Windows Boot Manager보다 앞으로 설정하면 라이브 부팅이 됩니다. 어차피 일반 PC부품과 동일하게 만든것이니 이 부분은 동일합니다.

다만 GPD Win의 특징을 하나 말씀드리자면 기본 화면이 모바일용으로 나온 LCD라 가로 화면이 기본이 아닌 세로 화면이 기본입니다. 그래서 부팅중 열심히 DEL키를 두드리면 바이오스 설정이 옆으로 돌아가서 나옵니다.


그래서 라이브 부팅을 하면 이따위로 화면이 돌아갑니다.


xrandr과 몇가지 명령을 통해서 화면을 돌려야 하는데 기본 적인 설치때도 돌아가있어서 짜증납니다. 출처에 나온 것에 의하면 라이브 부팅전에 명령을 통해 화면을 돌리라고 하는데 저는 귀찮아서 세로로 돌려놓고 스마트폰 쓰듯이 설치했습니다.


그리고 설치후에 보면 여전히 화면이 돌아가 있습니다. 그러므로 이를 바로잡기 위해서 약간의 삽질을 동원해야합니다.


1. 수정된 커널설치

https://github.com/jwrdegoede/linux-sunxi

이곳에 GPD Win에 맞는 커널이 올라옵니다. 이것을 컴파일 하면 됩니다.


하지만 귀찮지요... 그래서 제가 컴파일 한 패키지를 올립니다.


linux-image-4.15-GPDWIN

https://drive.google.com/open?id=15kODz6H0ZGa4OtUT3Kfk_6uWfOxWOzSv

linux-header-4.15-GPDWIN

https://drive.google.com/open?id=1atsMLBrJDA-ba-1ZzyK5PEHima2MDeDi

linux-libc-dev-4.15

https://drive.google.com/open?id=13rttNTL2-ECO7_2Cjl28tNu47WMstIPW


위의 세 파일을 다운로드 받아서 설치해주시면 됩니다. 그리고 부팅중에 Shift키를 꾹 누르고 있다가 해당 커널을 선택해주세요. (기본 커널버전이 낮으면 알아서 4.15로 부팅 될 겁니다.)


2. 돌아간 화면 수정하기

https://drive.google.com/open?id=1l1B-mhzZ9-l409RqhV3tVn237NeR7P_2

위의 스크립트를 다운로드 받아주신다음 /etc에 넣어주세요.


그러니까 /etc/rotategpd.sh 파일이 생성된겁니다. 그리고


sudo chmod +x /etc/rotategpd.sh


이렇게 명령을 줘서 실행권한을 줍니다.


그리고 LX메뉴 - 기본 설정-Default Applications for LXSession

Autostart에서 +추가 버튼옆에

/etc/rotategpd.sh

이렇게 적고 +추가 버튼을 누릅니다.


이제 로그인할 때마다 화면이 알아서 가로로 돌아올겁니다.(버그가 약간 있어서 창이 최대화가 안 된다거나 터치좌표가 엉키는 문제가 있습니다. 그럴때는 그냥 재부팅이 답입니다...)


로그인 화면이 돌아가 있는 것은 lightdm설정을 손보면 된다고 하는데 솔직히 그건 귀찮네요.


그리고 /etc/default/grub 파일을 수정합니다.


GRUB_CMDLINE_LINUX_DEFAULT="quiet fbcon=rotate:1 dmi_product_name=GPD-WINI55"


GRUB_CMDLINE_LINUX_DEFAULT 항목을 찾아서 위와 같이 수정하면 됩니다.


3. 무선랜 잡기

https://drive.google.com/open?id=1Gr8i_VjF1lACz3TpgfeWBJ3MnIjkXYq0


해당 파일을 다운로드 받아서 /lib/firmware/brcm 여기에 넣어주시면 이후 재부팅후에 무선랜이 정상작동 될 겁니다. Broadcom무선랜 특유의 삽질이 동원됩니다.


4. 사운드 잡기


이게 제일 손이 많이 갑니다. 우선 Lubuntu 16.04는 Pulse-Audio가 활성화가 되어있지 않습니다.

일단 업데이트부터 합시다.


sudo apt-get update

sudo apt-get upgrade


이제 pulse-audio가 설치될 것입니다.


그리고


https://drive.google.com/open?id=11XLGPDTpZKMIrej3e6FWzeD-z-V_DaNC

이것과


https://drive.google.com/open?id=1NnhkrTdaRjhjM1u2JxkR5C5B6_bhGosD


이것을 다운로드 받아서 /usr/share/alsa/ucm/chtrt5645 여기에 넣습니다. 만약 폴더가 없다면 만드시면 됩니다.


그리고 /etc/pulse/daemon.conf 파일을 열어서

realtime-scheduling = no


해당 옵션을 이렇게 설정하시면(그냥 귀찮으면 제일 아래에 적어주세요) 이제 소리도 문제없이 나옵니다.


5. 센서 잡기

각종 온도 센서와 스로틀링을 위한 설정입니다.

https://drive.google.com/open?id=14ZTEFauFxihqKXULc4SSZZ82IiiQPe5P


해당 파일을 다운로드 받은 다음

/lib/udev/rules.d/

여기에 넣어주시면 됩니다.


자 이제 됐습니다. 마음껏 쓰시면 됩니다.


P.S rotategpd.sh 파일 실행순간이 너무 빠르면 화면전환 오류가 잦아지네요.

앞에 sleep명령을 넣던지 해서 조금 xrandr의 실행을 늦춰야 할 것 같습니다.

,

블로그에 글을 올리지 않은지 어느새 한 달이 지나버렸습니다.

이러다가 영원히 정지를 할 것 같은 불길한 예감이 들어서 리눅스와 관련없는 잡담이라도 적습니다.


사실 제 전공은 리눅스도 아니고 컴퓨터도 아닙니다.


아주 관련이 없지는 않지만 조금은 동떨어진 기계 설계학을 전공했지요.


중고등학교때 저는 친구들사이에서 알아주는 컴덕후였습니다. 아니 중2때 제 손으로 컴퓨터를 조립하기 시작했습니다. 첫 조립한 컴퓨터가 작동했던 그 때 그 희열감은 정말 마약과도 같았습니다.

그 컴퓨터를 조립하기 위해 중1부터 컴퓨터에 관심이 많았던 친구와 함께 공부를 했습니다. 이런저런 부품과 컴퓨터의 구조 그리고 당시에 잘 사용하지 않던 Fdisk와 고스트 사용법까지 공부했습니다.


그 당시에는 정말 즐거웠습니다. 나중에는 와이어 트릭같은 나름 고급 스킬까지 쓰면서 컴퓨터와 정말 친해졌었지요.


하지만 고등학생이 되면서 현실을 알게되었습니다. 아무리 컴퓨터와 친해져도 이걸로 먹고 살기는 쉽지 않다는 이야기를 들었습니다. 한국의 컴돌이들은 그저 코더일 뿐 우리나라에서 리누즈 토발즈나 빌게이츠 같은 사람은 나오기가 어렵다는 것이지요. 현실이 그랬습니다. 그래서 고3때 현실과 타협하기로 했습니다.


남들 말을 듣고 기계 쪽은 그나마 대우가 낫다는 말을 들었습니다. 당시만 하더라도 이공계는 어디서든 찬밥이었기 때문에 그나마 대우가 좋은 쪽으로 갔습니다. (지금 이공계에 학생들이 지원하는 것을 생각하면 격세지감입니다.)


어렵사리 기계과를 졸업하고 취직을 했습니다. 컴공이 코딩 노가다라면 이쪽은 CAD노가다더군요. 야근은 당연한 것이고 잘 풀리지 않을 때는 머리를 쥐어뜯어서 일정을 마쳐야 했습니다.


대한민국 회사가 그렇죠 뭐...


어쨌건 직업은 직업이고 토발즈 형님이 그랬듯이 좋아했던 리눅스를 취미로 삼기로 했습니다. (토발즈 형님은 취미이자 주업이기는 합니다.) 그러면서 리눅스에서 CAD질을 하는 남들이 보면 묘한 짓을 하기도 했습니다.

 그런데 생각보다 관심을 갖는 사람들이 많더군요. 하지만 처음 리눅스를 접하는 사람들이 한국어가 기본이 아니라는 것에 실망하는 것을 보고 한국어가 세팅된 배포판을 커스텀해서 배포했습니다. 알고보니 하모니카(http://hamonikr.org/)라는 훨씬 더 좋은 프로젝트가 있다는 것을 알게되었지요.


우분투 기린, 리눅스 민트를 한국어를 기본 설정해서 하모니카 커뮤니티에 올렸습니다. 당시 하모니카 프로젝트는 리눅스민트 17.3(우분투 14.04기반)에 머물러 있었고 리눅스민트 18(우분투 16.04기반)을 기반으로 한 것이 없었거든요.


어느새 제가 만든 커스텀 버전이 메인 화면에 걸렸습니다. 기분이 정말 좋았습니다. 좀 더 제가 만든 것을 다른 사람들이 쓸 수 있다는 사실이 좋았습니다.


이렇게 조금씩 여유가 있을 때 취미로 하면 일과 병행할 수 있을 것이라고 생각했지요.


그때까지만 하더라도 그랬습니다.


요즘 일에 치여살고 앓아 눕기까지 하면서 취미 활동은 물론이거니와 여가 활동도 못하는 지경에 이르렀습니다. 주말은 모자른 잠을 보충하는 날이 되었고 퇴근은 언제나 저녁이후...


사실 하모니카 18.3의 HWE커널이 계속 말썽이라 GA커널 버전을 준비하고 있었습니다. 하지만 준비한지 한 달째... 아무것도 못하고 있습니다.


여유? 저에게는 사치일 뿐이군요.


요즘엔 가끔 이런 생각을 합니다. 차라리 리눅스를 전공해서 이쪽으로 일을 시작했다면 어떘을까?


좋아하는 것과 해야하는 것은 별개라고 하지만 어쩌면 조금이라도 더 행복했을지도 모른다는 생각이 듭니다.


고3시절 현실에 타협하지 말고 그냥 내가 좋아했던 컴퓨터를 밀고 나갔더라면. 아니, 대학에서 전과를 해서라도 컴퓨터쪽을 전공했더라면.


지금 제 나이에 다시 다른 전공을 하는 것은 무리입니다. 이젠 결혼을 준비해야하고 먹고사는 문제가 걸려있지요.


취미를 즐기면서 세상 살기 정말 힘드네요.

,