맥 OS X은 정말 아름답고 훌륭한 OS다. 그러나 안타깝게도, 한글 처리가 매우 …매우… 이상하다. 유니코드(UTF-8)을 쓰긴 쓰는데, UTF-8-mac 인가 하는 인코딩 방식을 쓴다.
무슨 차이인고 하니, 한글을 조합할 때 NFC(normalization form C)와 NFD(normalization form D) 방식이 있고, UTF-8-MAC은 NFD 방식이라고 한다(물론 NFC, NFD 둘 다 표준이다.)
NFC : 한글”이란 단어를 “한글”로 저장
NFD : “ㅎㅏㄴㄱㅡㄹ”로 저장
라고 한다. 이는 일어 처리에서도 같은 현상이 있다고(청음/탁음 표기가 글자에서 떼서 저장) 한다. 그래도 대충 알아볼 수 있는 일어에 비해 자모가 완전히 분리되는 한글쪽이 타격이 큰듯.
이 한글 문제를 해결하는 방법이 많지만 완벽하지 않을 뿐더러 해결 불가능한 부분도 있다.
GUI만 사용하면 별다른 문제가 없는데, ssh 등으로 원격 접속할 때 한글 파일/디렉토리명을 사용하기가 힘들고 git 코멘트를 한글로 쓰기가 어려워서(방법은 있다고 한다) 결국 우분투로 이주를 결심했다.
멀티부팅 등을 하려면 뭔가 복잡한데, 그냥 죄 날려버리고 우분투만 쓰는 방법을 기술한다.
맥 OS X용 우분투 설치 미디어 만들기
PC에서 만든 부팅용 USB로 부팅할 수가 없다! 맥에서 부팅 USB를 미리 만들어야 한다.
설치 과정을 요약하면
우분투 iso 파일을 변환(hdiutil)
변환한 파일을 USB에 쓰기(dd)
hdiutil convert -format UDRW -o ~/path/to/target.img ~/path/to/ubuntu.iso
예를 들어 ~/Downloads/ubuntu-12.04-desktop-amd64.iso 에 파일이 있다면
hdiutil convert -format UDRW -o ~/ubuntu-12.04-mac ~/Downloads/ubuntu-12.04-desktop-amd64.iso
~/ 경로에 ubuntu-12.04-mac.dmg 파일을 생성한다.
이 이미지를 USB에 밀어 넣으면 되는데, USB 마운트 된 상태에선 안되므로 언마운트
sudo diskutil unmountDisk /dev/disk2
/dev/disk2가 아닐 수도 있다. diskutil list 던가? 로 확인해볼 것.
이미지 USB에 쓰기
dd if=~/ubuntu-12.04-mac.dmg of=/dev/disk2 bs=1m
/dev/disk2를 /dev/rdisk2로 쓰면 좀 더 빨리 쓸 수 있다고 한다.
이걸로 완성. 리부팅을 하자. 리부팅 되는 동안 command(alt)키를 누르고 있으면 부팅 매체 선택할 수 있는 화면이 나오고, USB로 부팅하면 우분투 설치 과정이 진행된다.
파티션 설정할 때, 맥용 복구 파일이 있는 파티션이랑 그 외 몇 가지가 더 있는데, 이걸 남겨뒀더니 리부팅 할 때 우분투로 부팅 안 되는 경우가 있어서 그냥 HDD에 있는 모든 파티션을 싹 날리고 우분투만 설치했더니 잘 된다.
설치 후 이더넷 드라이버 잡아주기
유선 이더넷 장치가 잡히지 않는다!! 무선은 잡힘.(2014년 1월 현재, 우분투 커널 3.11.0-15는 별도 설정 없이 맥미니 이더넷 드라이버 잡힙니다. 따라서 최신 버전 사용시 아래 내용은 적용할 필요가 없습니다. 그 이전까진 모듈이 제대로 안 잡혔음)
broadcom tg3 모듈을 잡아줘야 한다.
리눅스 소스, 헤더 설치
sudo apt-get install linux-source linux-headers-generic
설치된 파일은 /usr/src 밑에 있다. linux-source 는 tar.bz2로 압축 되어 있음. 압축 풀어준다.
리눅스 커널 소스 디렉토리에서 drivers/net/ethernet/broadcom/ 디렉토리로 이동, tg3.c 파일 편집
cd /usr/src/linux-source-3.8.0/linux-source-3.8.0/drivers/net/ethernet/broadcom/
sudo vim tg3.c
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57762)}, 를 찾아서 그 밑에
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57766)},
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57782)},
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57786)},
추가해주고 저장.
리눅스 커널 소스 디렉토리로 현재 커널의 Module.symvers 파일을 복사해야 함. linux-header 경로에서 가져와야 함.
sudo cp /usr/src/linux-headers-3.8.0-19-generic/Module.symvers /usr/src/linux-source-3.8.0/linux-source-3.8.0/
모듈 컴파일
cd /usr/src/linux-source-3.8.0/linux-source-3.8.0/
sudo make clean
sudo make oldconfig
sudo make scripts
sudo make preparecd drivers/net/ethernet/broadcom/
make –C /usr/src/linux-source-3.8.0/linux-source-3.8.0 SUBDIRS=$PWD modules
컴파일 된 모듈을 복사(/usr/src/linux-source-3.8.0/linux-source-3.8.0/drivers/net/ethernet/broadcom/ 에 생긴다)
sudo cp tg3.ko /lib/modules/3.8.0-19-generic/kernel/drivers/net/ethernet/broadcom/
모듈 올리기
sudo modprobe tg3
리부팅해도 모듈 바로 올라가도록 /etc/modules 파일 수정
sudo vim /etc/modules
loop
lp
rtc
tg3
이후 패키지 업데이트 시 커널 관련 업데이트 있으면 업데이트 후 리붓 시 유선 연결 안될 수 있으니 알아서 조심.. 무선 이더넷과 같이 쓰는 것도 방법이다.
답글 남기기