PostList

2017년 5월 24일 수요일

일반 데스크톱에 해킨토시를 설치해보자! - [1. PC적합성 확인하기]

서론 끄적끄적

처음에는 일반 데스크톱에 MacOS까지 설치할 필요까지는 못느꼈으나(굳이 멀쩡한 Windows 10 냅두고?!)... 공부를 하다보니 리눅스 계열 운영체제를 쓸 일이 필요 이상으로 많아졌고 그렇다고 해서 VMWare, Virtualbox와 같은 가상머신을 쓸 수는 없었습니다. 이유인 즉슨 인공 신경망(Neural Network) 학습에 필요한 GPU를 가상머신에서는 사용할 수가 없기 때문이죠.

최근에 윈도우즈에서도 리눅스 커널을 설치하여 Bash 쉘(Shell)을 돌릴 수 있게 되어(정확히 말하자면 작년 초, 중순 쯤 베타 업데이트가 되었었죠) 여러 가지 방법으로 끄적여보았으나.. 결국 이것도 순수 리눅스가 아니라는 한계에 봉착하여 의존성 라이브러리(흔히, Dependency 라고 부르는 것들..)가 정상적으로 설치되지 않는 문제가 발생하곤 했습니다. 분명 리눅스 서버용을 설치 해놓은, 사양이 조금 좋지 않은 노트북에서는 정상적으로 동작하는데 말이죠.

그에 따른 대안으로, 도커(Docker)를 생각해보지 않은 것은 아니었으나 윈도우즈 bash 쉘에도 올려보고, 그냥 설치도 해보았으나 결과적으로 놓고 이야기했을 땐 이것 또한 Gpu를 구동할 수 있는 방법이 없었습니다. Nvidia사의 경우 gpu 전용 도커(https://github.com/NVIDIA/nvidia-docker) 까지 깃허브(Github)에 올려놓았지만... 안타깝게도 윈도우즈에서는 설치가 되지않고 이 또한 리눅스 전용(이건 MacOS도 피해갈 수 없었.. 읍읍)입니다.

사실 이전부터 MacOS를 설치해서 돌려볼 생각은 하고 있었습니다만.. 불과 한달 전만 해도 MacOS에서 Nvidia Pascal 계열 그래픽카드를 지원하지 않아 설치해봐야 제대로 구동도 못하므로 포기하고 있었습니다..만!!! 드디어 pascal을 지원하는 web driver를 Nvidia에서 배포를 해주기 시작했습니다.
(사실상 해킨토시 유저들을 위해 지원했다고 보는게 맞다고 생각이 드는 것이, 아직 Mac 계열 어느 노트북, PC에서도 pascal 계열 그래픽카드를 장착한 녀석이 없습니다. 심지어 애플은 저번 맥북 프로 신형에도 Nvidia가 아닌 AMD사의 그래픽카드를 채용했죠. 뭐 그건 Maxwell 부터도 있었던 일이었지만 이번에는 애플 측에서 공식적으로 먼저 지원을 해주지 않을까.. 싶었으나 그런 부분은 아쉽군요)

어찌되었든 1070을 쓰고 있는 입장에서 굉장히 반가운 소식이었습니다. 평소에 쓰던 아이폰, 맥북을 통합해서 쓸 수 있고 게다가 unix 계열(뭐, 정확히 말하면 BSD계열에서 파생된 녀석이겠지만요)이기 때문에 brew등의 패키지 유틸리티를 통해 기존의 의존성 라이브러리를 쉽게 설치할 수 있다는 점에 힘입어 설치를 감행하게 되었습니다.

주저리주저리..

결국 목적인 GPU + 딥러닝 + 맥 삼위일체를 달성하기 위해 시작된 짧고 굵었던 설치 과정을 적어보고자 합니다.


순서

  1. PC적합성 확인하기
  2. 부팅USB 만들기
  3. 설치 전 보드 옵션 세팅하기
  4. 설치하기
  5. 설치 후 필수 소프트웨어 설치하기
  6. 그래픽카드 설치하기
  7. (추가) 유용한 유틸리티 설치하기

단계를 구성하다보니 조금 많아진 것 같습니다만..ㅋㅋ 그래도 차근차근 최대한 쉽게 적어보고자 합니다.

참고) 
설치 과정의 대부분은 Tonymac을 참고하였으며 troubleshooting에 관해서는 구글의 힘을 빌렸습니다.


1. PC적합성 확인하기


위 두 사이트를 들어가서 본인의 pc의 부품에 대해 적합성에 문제가 없는지 확인합니다.
위의 x86 커뮤니티 사이트는 우리나라 커뮤니티이고 tonymac의 경우 외국 커뮤니티 사이트입니다.

저의 경우 tonymac에서 제 부품을 검색해서 적합성에 문제가 없음을 확인한 뒤에 설치를 진행했습니다.
Tonymac으로 진행하실 경우 사이트 들어가자마자 나오는 Buyer's Guide를 클릭해서 확인해보시면 됩니다. 최신 pc일 경우 문제없이 부품의 유효정보를 확인할 수 있지만 시간이 지난 PC에 대한 부품은 따로 보셔야 합니다(https://www.tonymacx86.com/threads/build-recommendations-for-older-versions-of-os-x-using-older-chipsets.141225/). 
각 하드웨어에 따라 쓸 수 있는 MacOS(OSX) 최소 버전이 정해져있습니다.

사실 해킨토시를 설치하는 과정에서 생기는 모든 문제들이 이곳에서 발생한다고 보셔도 무방합니다. 따라서 가장 좋은 방법은 위 사이트에서 본인의 pc의 부품들, 특히 메인보드cpu, 그리고 그래픽카드가 문제 없이 호환되는지를 잘 확인하시길 바랍니다. 특히 모든 OS의 핵심 기능이라고 할 수 있는 이더넷 기능을 제대로 소화할 수 있는 메인보드인지, 혹여 되지 않는다면 이를 대체할 이더넷 PCI카드가 준비되어 있는지 등을 확인하시면 될 것 같습니다. 앞의 모든 과정 중에 가장 귀찮지만 가장 중요한 부분이므로 이 부분만 제대로 짚고 넘어가신다면 앞으로 진행될 부분에서는 큰 문제 없이 설치 가능하시리라 봅니다.

... 이렇게 적어놓았지만, 사실 처음 설치를 시도하는 경우, 또 본인의 사양에 대해 꿰뚫고 있는 분이 아니라면 헤맬 수 밖에 없는지라 간단하게 팁을 드려볼까 합니다.


1) 먼저 본인 메인보드의 모델 명, 제조사를 확인 한 뒤 해당 제품이 해킨토시를 지원하는지 확인하세요.

- 사실 지원이라는 말은 엄밀히 이야기하면 틀린 말이고 해당 제품으로 해킨토시를 설치한 용자가 다수 존재한다는 것을 기반으로 해킨토시가 설치 가능하다고 판단하는 것이라 보면 되겠습니다. 해킨토시엔 '공식적' 이라는 용어는 존재하지 않습니다. 다만 특별한 문제가 없다면 분명 같은 모델명을 가진 다른 제품 또한 설치 될 것이라고 가정하는 것이지요. 사실 커뮤니티에서 해당 제품으로 설치한 분이 있다면 대부분 문제 없이 설치가 진행됩니다. 같은 제품임에도 불구하고 설치가 정상적으로 진행되지 않는다면 다른 부품의 문제 이거나 정말 정말로 최후의 추측으로 보드가 문제가 있다고 판단할 수 있겠죠.


2) 메인보드에 장착된 이더넷 내장 카드, 사운드 카드 혹은 WiFi 및 Bluetooth의 모델명을 확인하세요.

- 비교적 고가의 메인보드의 경우 보드 자체적으로 와이파이 기능 및 블루투스가 되는 것들이 있습니다. 이 경우 반드시 확인 하시어 해당 모델이 해킨토시에서 정상적으로 동작하는 지를 점검해보셔야 합니다. 보통 제조사 홈페이지 혹은 컴퓨터 구매 시에 보드 박스안에 들어있던 보드 설명서에 적혀 있을 겁니다. 만약 지원하지 않을 경우 말짱 꽝! 사용이 불가능해지므로.. 마음의 준비를 하셔야 합니다.
(필자 또한 블루투스 및 와이파이가 되는 보드 이지만 지원하지 않으므로...읍읍..)


3) CPU가 Intel사의 제품인지 확인하고, 해당 CPU로 해킨토시가 설치 가능한지 확인하세요. 이와 마찬가지로 그래픽카드 또한 확인하세요.

- 이 부분은 크게 설명드릴 부분은 없는 것 같습니다. 정말 간혹 CPU별로 트러블슈팅이 있는 경우도 있으니 이 부분 또한 확인해주세요. 또한 너무 오래된 그래픽카드의 경우 지원하지 않는 경우가 있으니 참고바랍니다. Nvidia 사 제품의 경우 최근까지 Pascal 계열 그래픽카드(10번대 : 1060, 1070, 1080, etc.)를 사용하지 못했으나 최근에 사용가능해졌습니다. 따라서 최근에 나온 TitanXp, 1080Ti 까지도 지원이 가능한 상태입니다.

위의 조건을 모두 PASS하셨다면 사실상 가장 큰 벽을 넘은 것이나 마찬가지입니다. 나머지 과정들은 대부분 수동적으로 따라오시기만 하면 될 것 같습니다... 만 글이 너무 길어지는 것 같아 다음 파트는 다음 글에서 작성하여 올리도록 하겠습니다 :)

2017년 3월 25일 토요일

Computer Vision, Machine Learning, Web, UE4 !

앞으로 여기에 글을 쓸 예정!
그동안 귀찮아서 안하고 있었는데 이번 기회에 CV, web server & client with nodeJS, ML, 그리고 Unreal Engine 4 (4.15) 도 써보려고 합니다.

저번에 연구실 후배한테 급하게 짠 ROS 기반 dynamixel 다관절 로봇 구동 코드를 보여주는데.. 정리가 하나도 안되서 진땀을 빼씀

2016년 8월 1일 월요일

Sublime Text 3 & Package Control 설치

(이 글은 Sublime Text 3 - 3114 빌드 기준으로 작성되었음)

보통 코드를 짤 때 다양한 코드 툴을 사용하기 마련인데, 일반적인 윈도우즈 사용자들은 사실 서브라임을 쓸 기회가 적다고 할 수 있겠다. 물론 다양한 목적에 따라 사용하는 경우도 빈번히 있지만, 보통은 C언어 혹은 자바와 같이 윈도우즈에서 돌아가는 프로그래밍 언어를 기반으로 하는 코드를 짜는 경우가 많아 서브라임보다는 Visual StudioEclipse 를 사용하기 마련이다. 지금 내가 소개할 서브라임의 경우는 단순히 C언어, 자바를 사용할 때 이외에도 다른 언어를 기반으로 하는 프로그램을 작성할 때 아주 유용한 툴이다. 물론 그렇다고 해서 위의 두 툴이 좋지 않다는 이야기는 결단코 아니지만 (일단 공짜이고 가벼운) 서브라임 텍스트를 한번 소개해보고자 한다.

일단 서브라임텍스트의 두드러진 장점이 몇 가지가 있는데,

1) 프로그램 자체가 다른 개발 도구들에 비해 가볍다.

2) 코드가 굉장히 가시적이고 정렬 정돈이 편하며 화면 관리가 편하다.

3) 폴더식 파일관리를 통해 프로젝트를 다수에 한꺼번에 관리하기 용이하다.

4) 다양한 패키지를 제공한다.

이 정도가 있다고 나는 생각한다.
엄밀히 말하면 1,2,3,4 모두 장점이 맞긴 하지만 정말 두드러진 장점 하나를 뽑자면 단연코 4번이라고 할 수 있겠다. 그리고 이 패키지를 설치하는 데 사용하는 도구인 패키지 컨트롤까지 설치해보자.


설치--

각 OS별 설치 방법은 다양하나, 기본적인 큰 틀은 전부 같다. 홈페이지에서 다운로드 후 설치 혹은 압축해제로 바로 사용할 수 있다.

https://www.sublimetext.com/
(서브라임 텍스트 공식 홈페이지)

다운로드 페이지를 들어가 각 OS에 맞는 프로그램을 다운로드 후 설치한다.
(블로그 작성 기준 Windows 10 에서 다운로드 후 압축해제하여 사용하였음)



설치 후 실행 시 이 창이 보였다면 성공.


하지만 여기서 아무것도 하지않고 사용한다면 사실상 서브라임을 사용하는 의미가 없으므로 패키지 컨트롤을 설치해보도록 하자.

패키지 컨트롤 설치 방법은 간단하다. 패키지 컨트롤 공식 홈페이지(https://packagecontrol.io/installation) 를 방문하여 좌측에 보이는 코드를 버전에 맞게 드래그해서 복사한다.

서브라임 텍스트 3 버전을 다운로드 하였으므로 나의 경우 3 버전 코드를 드래그했다.

위와 같은 코드를 복사하였으면 다시 서브라임 텍스트로 돌아와서 Ctrl + ` 를 누르게 되면 아래에 텍스트 상자 하나가 생기게 되는데 거기에 그대로 붙여넣기하고 엔터를 치면 설치 완료된다. 설치 도중 오류 메시지 처럼 경고가 나와도 무시하고 계속 진행하면 되며, 더이상의 경고창이 뜨지 않고 설치가 끝난 것 처럼 보일 경우 서브라임을 끄고 다시 켠다. 패키지 컨트롤을 처음 설치했다면 반드시 이 과정을 거쳐야 한다.


(이런식으로 밑에 생겼다면 아까 복사했던 명령어들을 여기에 붙여 넣어보자.)

제대로 설치가 되었는지 확인하는 방법은 쉽다. 다시 서브라임 텍스트로 돌아와 Ctrl + Shift + P 를 눌러 이번엔 위에 새로운 입력창이 생겼는지 확인한다. 아래 사진과 같은 입력창이 생겼다면 성공. 


패키지 컨트롤이 정상 작동한다(빨간 상자)

다음에 시간날 때 서브라임 텍스트의 꽃인 패키지 컨트롤 Install Package를 사용하여 다양한 패키지를 설치하는 방법을 적어보겠다.

Windows 10 명령창이 멈추는 현상 해결 방법

윈도우즈에서 명령창을 자주 안쓰기도 했고 윈 7에서는 이런 현상이 없었던 것 같아 모르고있었던 현상이랄까.. 요새 부쩍들어 windows 10에서 node JS 를 굴릴 때마다 이유없이 프로세스가 멈춰 간혹 곤란할 때가 있었다.

혹여나 내 컴퓨터 문제인가 싶어 다른 환경에서 테스트 해보았지만 역시나 windows 10계열에서만 같은 문제가 발생하였다. 원인을 알고보니 사용자 실수라고 해야할까.. windows 10에서 추가된 명령창의 특수 기능 때문이었다.

(원본 글)
http://stackoverflow.com/questions/33883530/why-is-my-command-prompt-freezing-on-windows-10

요약하자면 이렇다-

"명령창 수행도중 클릭 같은 행위로 인해 명령창이 '선택' 상태가 되었을 때 명령창이 일시적으로 멈추게 된다."


아래의 스크린샷은 windows 10에서 명령창으로 meteor를 실행한 모습이다.



(정상적으로 수행중인 명령창)

특별한 일 없이 명령만 입력 후 가만히 있을 경우 특별한 중단 현상이 없다.



(검은 화면을 클릭 후 멈춘 명령창)

클릭 후 검은 화면 중앙 좌측에 커서가 뜨면서 프로세스가 멈췄다. 멈춤과 동시에 타이틀에 선택이라는 단어가 추가되었다.

명령을 입력해놓고 다른 작업을 하다가 명령창을 확인하기 위해 본의아니게 빈 화면을 클릭하는 경우가 더러있는데 이 경우 굉장히 난감하지 않을 수 없다. 빠른 입력이라는 특수 기능이 추가되서라는데.. 이게 오히려 나에겐 굉장히 불편했다. 아마 나도 이런 식으로 화면 클릭을 해버려서 명령창이 간간히 멈췄던 것 같다.



해결방법은 두 가지가 있다-

1) Esc, Ctrl + C 등의 탈출키를 통해 선택 상태에서 벗어나는 방법
정말 간단하다. 선택 상태를 확인하는 방법은 위에서 설명했듯이 타이틀에 선택 이라는 문구로 확인 가능하고 이의 경우에 그냥 키보드의 Esc 버튼을 눌러도 된다. 무엇보다 좋은 방법은 이러한 기능을 꺼버리는게 제일 좋긴 하겠다만.

2) 설정에서 빠른 입력을 해제 하는 방법

진짜 그냥 꺼버리는 방법이다. 그냥 속성 창을 열고 빠른 실행 체크를 풀면 된다. 나의 경우 이 방법을 썼다.


타이틀에서 오른쪽 클릭을 하여 속성 창을 띄운 뒤,


빠른 편집 모드를 끄면 이제 위와 같은 문제는 더이상 일어나지 않게 된다.


사실 이러한 문제가 있을 때마다 리눅스나 OSX에서 작업을 했는데 본의 아니게 연구실에서는 간혹 윈도우즈에서 테스트를 해봐야 할 경우가 있어 할 때마다 거슬려서 한번 알아본 것이 도움이 되었다.


2016년 5월 20일 금요일

openGL Extensions Viewer 4.4.3

그래픽카드가 openGL을 제대로 지원하는지 여부를 쉽게 판별하게 해주는 유틸리티.
설치 후 실행하면 각 버전에 대해 문제가 있을 경우 빨간 불로 들어온다. 결과적으로 빨간 불이 없는 가장 높은 버전으로 표시가 된다.
공식 사이트 : http://www.realtech-vr.com/glview/

여기는 openGL 스터디!

openGL 관련 글이 올라올 예정.

openGL 4.5 기준으로 프로그래밍하는 것을 올릴 예정이며
운영체제는 기본 windows 10, visual studio 2015를 활용할 예정임.