오늘의 글은 정말 말 많고 탈 많은 AMD(구 ATI)의 리눅스 지원에 대한 글입니다.


감정적으로 엄청 까는 글이므로 보시기 싫으신 분들은 봐주시지 않으셨으면 좋겠습니다. 까는 글이므로 그림이나 사진을 넣는 것을 최대한 뺴려고 합니다. 정말 화가 머리끝까지 솟구쳐서 하는 이야기이므로 AMD그래픽을 좋아하신다면 반대로 화가 나실 수도 있습니다.


우선 AMD로 인수되기 이전의 말 많고 탈 많은 이야기부터 시작합니다.


리눅스나 BSD 계열은 예전에는 많은 양의 3D 그래픽을 요구하지는 않았습니다. 그 정도의 3D 연산을 요구하는 프로그램이래봐야 CATIA (~v4) 정도? 였습니다. 그나마도 3D CAD프로그램은 워크스테이션 여러대를 이어서 돌리는 것이었으니 지금과 같은 직접적인 GPU연산을 필요로 하지는 않았습니다. 그냥 OpenGL가속에 도움이 되는 정도 였습니다. 물론 이 당시에 fglrx라는 놈이 ATI사에서 개발되어서 유닉스 기반 3D연산에 상당히 도움이 되기는 했습니다. 90년대의 3D CAD관련 글을 보면 이에 대한 글이 있을 정도로 fglrx는 고마운 존재였다고 합니다. 물론 ATI의 그래픽 중에서도 FireGL그래픽카드만 적용 가능했지만 당시의 3D CAD는 고가였고 전문가만이 사용가능한 프로그램이었습니다. 그 외의 3D 연산을 필요로 하는 것은 게임 정도였지만 당시의 유닉스는 게임을 돌릴 이유가 없었습니다. 애초에 3D게임도 많이 부족했습니다.제대로 된 3D 게임은 95년쯤에야 나왔으니까요.


그러던 어느날 리눅스 데스크탑이 시장에 나오고 갑자기 뜨기 시작했습니다. 하지만 이 당시에도 리눅스 데스크탑은 중요한 위치에 있지 않았고 3D 가속은 안중에도 없었습니다. 그 당시에는 멀티미디어가 주류였고 이 당시에 Mplayer 같은 놈들이 개발되어서 애용되어집니다. 3D 연산은 필요했지만 있으면 좋고 없으면 말고 수준이었습니다. 리눅스를 사용하는데 필수는 아니었으니까요. 리눅스 데스크탑이 나오고 X의 발전이 이루어졌지만 당시의 X는 2D 가속에 초점이 맞추어져 있었습니다. 그리고 각종 그래픽 칩셋의 프레임버퍼 드라이버들이 세상에 나와서 X에 들러붙게 됩니다. (nv, ati, tdfx, i810 등등의 이름으로 나왔습니다. 척 보기에도 어떤 그래픽드라이버인지 알 수 있지요?) 당시의 커널은 오로지 프레임버퍼만 제공했던 것으로 기억합니다. GUI뿐만 아니라 2D 프레임 버퍼도 X의 유저모드로 전부 제공했기에 xorg.conf 파일(X설정 파일)은 하나라도 잘못 설정하면 그냥 데스크탑 전체가 바보가 되버리는 어마어마한 양의 설정 파일이었습니다. 하지만 이것도 크게 중요하지는 않았습니다. 일단 GUI만 띄우는 데에도 엄청난 노력이 필요했으니까요. 물론 이 때에도 fglrx나 nvidia 같은 바이너리형 독점 드라이버들이 있기는 했습니다. 쓰는 사람만 썼기에 그렇지...


그러던 어느날....


2005년이었던 것으로 기억합니다. 아니, 2004년이었나? 오픈수세로 유명한 노벨이라는 기업에서 XGL이라는 것을 발표하고 공개를 했습니다. 그리고는 3D 가속환경하에서 엄청난 데스크탑 효과를 보여주며 GUI란 이런 것이라고 보여주게 됩니다. 지금의 윈도7,8의 창 효과정도는 버로우 시킬 정도의 화려한 효과였습니다. 사실 맥에서는 이와 비슷한 효과를 이미 사용하고 있었습니다. 이를 따라한 것이기는 한데, 역으로 말하면 리눅스 데스크탑에서도 맥처럼 상시 그래픽 가속이 가능하다는 이야기가 됩니다. 덕분에 리눅스 커뮤니티에서는 이를 적용하기 위해서 삽들을 뺴들기 시작했고 폭발하기 시작했습니다. 이후 이 3D데스크탑 효과기능은 Beryl등의 이름을 거쳐서 Compiz-Fusion이란 이름으로 나오게 되는데 이 당시의 삽질은 정말 어마어마했습니다. 각 리눅스 배포판들은 이를 적용하려면 XGL을 기존의 X를 버리고 설치해야 했는데 이게 꽤 엄청난 삽질이었거든요.XGL을 성공적으로 설치했다고 한들, 그래픽 드라이버가 DRI(즉, 직접 렌더링)이 지원되지 않으면 말짱 꽝이었습니다. 드라이버 소스가 공개되어있던 인텔을 제외한 다른 오픈소스 드라이버들은 DRI가 잘 안 되었고, 자신의 칩셋에 대해 잘 아는 회사들만이 드라이버를 내놓을 수 있었습니다. 이 때 빠르게 드라이버를 내놓은 곳은 여전히 fglrx란 이름으로 내놓았던 ATI였지만, 무슨 생각이었는지 Compiz가 말을 안 듣는다거나 커널패닉을 일으키거나 하는 이유로 말썽을 일으키게 됩니다. 반대로 Nvidia는 무슨 짓을 한 것인지, 굉장히 안정적인 드라이버를 내놓습니다. 지금도 비슷하지만 워낙 ATI의 드라이버가 막장이었기에 멀쩡한 ATI카드를 버리고 한 단계 낮은 Nvidia카드로 갈아타는 사람도 있었습니다.


XGL적용삽질이 한창 이루어질 때 즈음, 리눅스계의 독보적인 기업인 레드햇에서 GLX라는 것을 내놓게 됩니다. XGL과 이름이 비슷하지요? 기능은 사실상 동일 하지만 이는 기존 X를 갈아치우지 않고 X에 패치형태로 적용한 물건입니다. 즉, XGL이 기존 X와 어느정도 호환성을 갖추고 쌓아올린 물건이면 GLX는 기존 X를 이리저리 개조해서 만든 물건이라는 것이지요. 그리고 Compiz는 둘 다 적용 가능하게끔 개발이 이루어지게 되어서 배포판은 선택의 기로에 서게 됩니다. 이 선택의 기로는 그래픽 드라이버도 마찬가지였다고 합니다. 예전부터 fglrx를 내놓던 ATI는 XGL을 선택했고 Nvidia는 GLX 쪽으로 가닥을 잡았던 듯 합니다. 하지만 웃긴 것은 GLX를 쓰던 XGL을 쓰던 Nvidia는 별 문제가 없었는데, ATI는 GLX를 쓰면 난리를 쳤습니다. 드라이버 개발능력이 경쟁사보다 딸리는 것인지 대체...


2007년에 가장 다운로드수가 높았던 배포판인 우분투는 XGL과 GLX 둘 다 가능하게끔 설정을 하기는 했는데, 이 당시의 글을 보면 독점 드라이버 설치가 정말 거지같았던 것을 알 수 있습니다. 이리하면 저곳에서 뻑나고 저리하면 이쪽에서 뻑나고 커널 업데이트하면 또 뻑나고...어휴... 그리고 Compiz(당시는 Beryl이었나요?)를 설치하면 그대로 GUI가 사라지는 등...캐노니컬에서도 이를 인지 했는지 이후 8.04라는 역대 최고의 안정적인 버전이 나오면서 그래픽드라이버 설정을 간단하게 마우스 한 두번 클릭으로 바꾸고(아니면 설치 중에 드라이버 설치 한다고 물어봅니다. 지금도 그렇기는 하지만)기본 3D X환경을 GLX로 가게 됩니다. 그리고는 Compiz를 기본 탑재해버립니다. 그 덕이었을까요? 다른 배포판 들도 XGL대신 GLX를 선택해버리고(사실 기존 X를 개조한 수준이라 딱히 수정할 곳이 없어서 그냥 X를 설치하면 되니까 XGL에 비해 메리트가 있었습니다.) XGL에 별다른 메일링이 없어져 버렸습니다. 즉, XGL이 도태되어져 버린 것입니다. 덕분에 ATI는 발등에 불 떨어졌지요. GLX만 쓰면 난리를 쳐대는데, 이를 해결해야 했으니까요. 당시의 회고에 따르면 fglrx만 설치하고 Compiz환경으로 만들면 그대로 하얀화면으로 되어버리는데, 우분투는 기본적으로 compiz를 쓰다보니 우분투를 쓰면서 fglrx를 쓸 수가 없었다고 합니다.그나마 오픈수세는 XGL을 탑재했다보니 큰 문제는 없었는데, 이마저도 XGL이 도태되면서 노벨에서도 GLX를 적용한 X를 탑재하기에 이르릅니다. 그동안 ATI는 삽질을 계속했습니다.


당시의 드라이버에 대해 말씀드리지면 윈도용 Catalyst는 물론이고 리눅스의 fglrx도 해커들이 개조를 해야 쓸만하다는 평을 들을 정도로 참 드라이버가 막장이었습니다. 윈도용도 막장이었는데, 개발팀이 훨씬 적은 리눅스, 유닉스 용은 뭐...말을 말아야지요.


그래서였는지, ATI는 중대 발표를 해버립니다. 나온지 3년 밖에 안 된 X시리즈(R500)까지의 드라이버 지원을 중단 하겠다고 선언을 해버립니다. 즉, 과거의 칩셋에 대한 지원을 끊음으로써 드라이버 개발에 더 많은 지원을 하겠다는 것이지요. 이는 윈도+리눅스+기타 OS 전부 통하는 이야기였습니다. 그리고 정말로 드라이버가 개변한 시기는 AMD에 인수되고 몇 년 지난 2013년이 되어서야 쓸 말한 드라이버소리를 듣게 됩니다. 과연 이것이 잘 한 것인지 아니면 무리수였는지는 모르겠지만, 덕분에 당시 나온지 3년밖에 안 된 X시리즈 사용자들은 엿을 먹게 되었습니다. 드라이버 지원은 레거시라는 이름 하에 해주겠다고 했지만 그나마도 2009년에 끊었습니다. 윈도는 어땠냐구요? 기존에 제공된 드라이버 해킹해서 적용하고 있습니다. 무슨 We Are The World도 아니고...


이 무렵 Nvidia는 그냥 쿨하게 싹 다 지원하는 방향으로 가게 됩니다. 8800GT가 나오면서 이전의 드라이버를 끊기는 했지만, 이전 드라이버들이 최신 OS에 적용할 수 있게끔 지원을 해줍니다. 예를 들이서 96.xx 버전은 XP까지만 지원이 가능한 드라이버지만 윈도8에서 설치가 되게 끔 해주는 것입니다. 실제로 96.xx 버전을 윈도8에서 설치하면 지원 하드웨어(즉, Geforce 4 이전의 물건)의 구동이 무리없이 됨을 알 수 있습니다. (물론 완벽하지는 않아서 버그가 있기는 합니다.) 그에비해 Catalyst는 이 짓을 하면....까만화면을 보게 됩니다.(OS 가리지 않는 WDM기반이라며? 이건 대체...???)리눅스도 사정이 비슷해서 지금도 구형 하드웨어에 최신 우분투를 설치하면 Nvidia칩셋이라면 상당히 구버전인 96.xx나 1xx.xx 를 설치 할 수 있게끔 되어있습니다. ATI칩은???? 안 되요. 설치하면 까만화면만 보게됩니다.


자 아까 GLX와 XGL 지원에 대한 이야기를 잠깐 했었지요? ATI는 XGL위주로 가게 되었는데 XGL이 도태되면서 하는 수 없이 GLX지원으로 방향을 틀게 되고 이는 어마어마한 버그의 향연으로 이루어지게 됩니다. 한달에 하나씩 나오는 주제에 버그가 수정되지도 않은채 나오기도 하고(hex 에디터로 수정해서 쓰는 사람도 있었습니다. 물론 방법을 공개했으니 이를 배포판에서 적용해서 내놓기도 했습니다. 이게 어떻게 독점 드라이버지...?) 경쟁사는 어땠을까요? Nvidia는 GLX를 쓰던지 XGL을 쓰던지 큰 문제는 벌어지지 않았습니다. 그러니 GLX로 넘어가더라도 XGL관련 코드만 삭제하면 그만이었으니 문제는 전혀 없었습니다. 이 쯤되면 ATI는 욕을 바가지로 퍼 먹어도 할 말 없습니다. 덕분에 리눅스는 당시의 인텔2D가속 문제와 함께(당시 인텔은 동영상 티어링 문제로 말이 많았습니다.) 무조건 Nvidia라는 분위기가 형성되게 됩니다. 이후에 인텔의 문제가 해결되며 문제를 일으키는 GPU제조사는 ATI뿐이었습니다.(다른 S3등은 제조사 도움없는 오픈소스 드라이버 뿐이었으니 무시합시다. - 인텔은 제조사 도움을 받는 오픈소스 드라이버였음)


이후 ATI가 AMD에 인수되며 자금사정이 나아지며 드라이버 지원이 나아지는 듯 했습니다. 하지만 현실은 시궁창. Nvidia가 각종 삽질을 하고 AMD에 비해 높은 가격을 받지만, 리눅스에서는 여전히 Nvidia가 선택 될 수밖에 없습니다. 물론 ATI가 R500이하 시리즈의 드라이버 지원을 끊을 때, 기술문서를 공개 함으로써 오픈소스 드라이버 개발지원을 해주기는 했습니다. 그래서 오픈소스드라이버가 개선되어졌냐고 하면 Catalyst 설치시의 40%성능도 채 안 나옵니다. 제가 보기에는 그냥 지들이 드라이버 개발능력이 안 되니까 커뮤니티에 떠 넘긴듯한 인상이 듭니다. AMD로 넘어간 지금도 사정이 거기서 거기라 Catalyst가 안 돌아가면 고성능 3D 연산은 포기해야 합니다.



제가 리눅스를 쓰면서 언제나 느끼는 것이지만 다시는 ATI(AMD)칩 쓰는 하드웨어는 이제 안 사려고 합니다. 이 고통은 그냥 돈으로 해결하는 것이 답일 듯 합니다. 아무리 칩을 잘 만들면 뭐합니까? 아무리 싸게 내놓으면 뭐 합니까? 제가 쓰기에 불편하면 그건 그냥 실리콘 덩어리입니다. 하드웨어 설계능력이 좋아도 소프트웨어가 거지같으면 병신 된다는 것을 너무 뼈저리게 느끼고 있습니다. 더군다나 리눅스는 하드웨어를 보통 안 바꾸니 (서버 위주로 사용하면서 일부 계층은 최적화를 중시한다는 것을 감안합시다.)소프트웨어 지원이 절실한데 리눅스를 윈도지원 하듯이 하는 것은 아니라고 봅니다. 다시는..다시는 안 쓸겁니다. AMD GPU...

,

최근 갑작스런 일 폭풍에 9월 중 블로그 활동이 바닥을 치고 있습니다. 오늘 밤샘작업(...)을 끝내고 간만에 티스토리에 접속했더니 방문자수가 급증했더군요. 글도 안 올렸는데?


갑작스럽게 방문자수가 폭발했기에 확인 해봤더니 원인은 역시나 우분투도 아니고, 또 Long Live The Queen 관련....


오늘 메일을 보니 그럴만한 이유가 있었더군요.



험블에 떴으니 구입하실 분은 당장 해외결제 체크카드를 만들어서 지르시길. (VISA체크카드는 외환이나 신한 계좌 하나 트면서 달라고하면 청소년도 그냥 줍니다.)

험블번들 Weekly에 Long Live The Queen이 떴군요. 물론 평균가 이상 돈을 내야 하지만 워낙 평균가가 껌값(...$6...라니...)인 관계로 많이 구입하신 것 같습니다. 그러다 한글패치 검색을 통해서 이리저리 흘러들어오신 것 같습니다.


그런데...여긴 한글패치가 있는 장소가 아니거든요. 본 한글패치의 개선패치가 있을 뿐입니다. 한글패치의 DLC라고 할까?


다시 한번 말씀드리지만 한글패치는

http://ghap.tistory.com/entry/LONG-LIVE-THE-QUEEN-%ED%95%9C%EA%B8%80-%ED%8C%A8%EC%B9%98-%ED%8C%8C%EC%9D%BC%EC%9E%85%EB%8B%88%EB%8B%A4

여기 있습니다. 제 패치는 일종의 한글패치 확장입니다. Ghap님 패치 없이 제 패치해봐야 한글로 게임 안 되요~ (물론 일부는 되기는 합니다만, 애초에 대사가 한글화가 안 되는데...)


무엇보다 제 패치는 렌파이를 통짜로 교체하는 위험이 좀 있어서 혹시라도 엔진이 꼬이거나 하면 재설치를 해야 합니다. 용량이 작아서 금방되기는 하지만 스팀이 워낙 느려터졌으니...


엔진패치도 문제없다고 생각하신다면 해주시면 좋습니다.



참고로... 엔진을 그냥 버전만 교체하는 것이 아니라 중복 번역을 해결하기 위해 커스터마이징된 엔진이 올라올 예정입니다. 그리고 마찬가지로 그 엔진에 포팅작업을 한 스크립트 패치도 올라올 예정이고요. (별건 아니고 그냥 엔진 교체랑 다를 것은 없습니다.)엔진교체 없이 중복번역을 해결해 보려 했는데 답이 좀처럼 안 나와서 그냥 엔진에 손을 대서 중복 번역을 해결하기로 했습니다. 이제 일 폭풍이 잠시 끝났으니 중복 번역 관련 엔진 수정을 시작하려 합니다. 그래봐야 say함수 구겨버리고 말겠지만.


,

여러가지 문서를 만들고 난 뒤에 전달용으로 PDF로 만드는 것이 당연한 문서 전달 방법입니다. 물론 이거 안 자키는 사람들도 상당히 많기는 하지만 대부분 최종적인 문서는 PDF로 만들어서 보관하는 것이 관례입니다.


PDF는 글자체도 내장하고 그림도 내장해서 더욱 편리하지요. 그래서 PDF파일만 있으면 레이아웃이 깨질 염려도 없고, 폰트가 안 맞아서 어색한 문서가 되는 것을 방지 할 수 있습니다. 이러한 장점들 덕에 전달용 문서규격으로 PDF가 현재 ISO 표준으로 되어 있습니다. 심지어 PDF는 인쇄물을 그대로 파일화를 하기 때문에 PDF로 만들어진 문서들은 해당 PDF를 수정이라도 하려고 하지 않는 한 해당 문서를 별 문제 없이 다시 쓸 수 있습니다.

아직도 몇몇 단체에서는 문서를 hwp로 넘기는 만행을 저지르고 있는데 제발 표준인 PDF를 이용했으면 합니다. Adobe Reader 깔기 귀찮아서 PDF는 별로라고 한 사람도 있었던 것 같은데, Windows8에서는 PDF리더가 내장되어졌습니다. 이제 Adobe Reader 깔기 귀찮다고 투덜거릴 사람은 사라질 운명입니다.


아무튼 PDF는 정말 문서계의 최종 규격이라 그런 것인지 리눅스에서도 PDF 만드는 것은 그리 어렵지 않습니다.보통 사용하는 프로그램에 PDF기능이 있다면 그냥 이것을 쓰면 되고 없으면 가상프린터를 이용해서 PDF를 뽑아내는 것으로 PDF를 만듭니다.


리눅스에서 제일 많이 쓰이는 LibreOffice는 자체적인 PDF 기능을 내장하고 있지만 이외의 다른 문서 도구는 따로 PDF 도구가 없습니다. 하지만 윈도에서도 PDF만드는 기능이 없을 경우를 위해 가상 프린터를 만들어서 PDF화를 도와줄 수 있습니다. 특히 한컴PDF가 이런 방향으로 많이 쓰이곤 합니다.


자 그럼 리눅스에서 PDF만들려면 어떻게 해야 할까요? 간단하게 cups-pdf 패키지를 설치하면 PDF전용 프린터가 설치됩니다. 다만 특이하게도 ~/PDF라는 폴더가 만들어져 있지 않으면 PDF파일이 생성이 안 됩니다. 꼭 내 홈폴더에 PDF란 폴더를 만들어 둡시다.





cups-pdf 설치후에 프린터란을 보면 없던 프린터가 생성된다. 이게 가상 프린터이다.

그럼 누군가가 말하기를 cups-pdf는 어떻게 설치하냐고 물으시는 분도 계셨는데 간단하게 우분투소프트웨어에서 cups-pdf라 검색하면 뜹니다. 이걸 설치하면  리눅스에서 PDF화하는 방법이 완성이 됩니다. 


지금까지 확인해본결과 Libre-Office를 제외하고 자체 PDF생성기능이 있던 문서편집도구는 없었습니다.그러니까 그냥 cups-pdf가상프린터를 써서 만드는 것이 더 나을 듯 합니다.문서가 완성이 되면 최종본을 저장하고 이것을 꼭 PDF화 해서 보관해 두도록 합시다.

누군가가 원한다면 그냥 PDF만 주면 되니까 상관없습니다.


왜냐하면 PDF로 보내는 것은 의무니까요.


,