맥북 2009 late에 리눅스 1년 사용기

애플로부터 업데이트가 중단된 White unibody 맥북 2009 late(일명 유니바디 흰둥이, 6.1)에 Lubuntu 18.04를 설치하고 사용한 지 1년이 넘었다. 처음 설치할 때는 OSX, 부트캠프와 함께 멀티부팅하면서 사용했는데, 어느 날 부트캠프가 부팅 실패(리눅스 설치와는 절대 무관)해지면서, 120GB SSD(램과 함께 하드에서 업그레이드)에 용량만 차지하고 사용하지 않던 OSX도 삭제하고 Lubuntu로만 사용중이다. 터치패드도 배터리 때문인지 드문 드문 튀기도 하고 클릭도 가끔 잘 안 먹기 시작했다. 하드웨어상의 노후화를 극복하기 위해, i3 window manager와 tmux 등을 사용하면서 왠만한 작업은 키보드로만 하고 있다. 앞으로도 1 ~ 2년은 더 버틸 수 있을 거 같다. 하여간 1년 된 기념으로 사용기를 남겨본다.

Try Lubuntu 18.04 without installation

Live USB를 가지고 일단 설치없이 Lubuntu를 맥북에서 사용해보는 게 좋을 거 같다. 중요한 부분들이 동작하는 지를 먼저 살펴볼 수 있고, 설치 직후 동작하지 않는 부분들에 대한 해법을 미리 테스트해볼 수 있기 때문이다.

USB를 꽂은 후 부팅을 해보니, 부팅에는 문제가 없다. Wifi도 잘 연결이 되고…별 다른 문제가 보이질 않는다. Bluetooth 헤드셋 연결 모드에 Audio sink(=A2DP)가 보이질 않아서 구글링해보니 pulseaudio-module-bluetooth 설치로 해결된다고 해서 테스트해보니 잘 된다. 모니터 해상도도 잘 맞고…한글은 재부팅해야 제대로 적용되니까 테스트 못해봤다. 이 정도면 괜찮은 거 같아서 진행하기로 한다.

멀티부팅을 위한 파티션 준비

먼저 OSX로 부팅해서 Disk utiliy 실행해서 설치할 디스크 선택 후 파티션 정보로 들어가서 OSX가 설치된 파티션을 줄였다. SSD인데, 100기가에서 85기가로 줄이는 데 대략 30분 정도 소요되었다. 리사이징중에는 진행상태 변화가 없어서 되는 지 마는 지 알 수 없었다. 구글링 결과 4시간만에 끝났다는 글을 보고 그냥 뒀더니 한참후에야 되었다. HDD였으면 한참 애가 탔을 듯 하다.

설치

설치시 언어는 그냥 English US로 두고, 키보드는 구글링 결과에 의거해서 English Macintosh로 골랐다. 기본 설정 대로 Normal installation 모드를 선택하고, Install 3rd party …를 선택했다. 파티션 옵션에선 Something else를 선택하고 아까 비워놓은 파티션 선택 후 Change 옵션 골라서 ext4 타입 선택하고, mount point에 / 입력하고 포맷 옵션 체크한다.

설치 직후 업데이트

설치직후 Sofoware updater 실행해서 업데이트를 한다. 그런 후 재부팅을 하자.

rEFInd가 사라졌다.

Lbuntu 설치 후 부팅메뉴가 안 나온다. 종료 후 Option키로 누른 상태에서 전원버튼을 눌러서 OSX가 설치된 파티션 선택해서 OSX로 부팅해서 rEFInd를 재설치했지만, 그래도 부팅메뉴는 나오지 않았다. 결국 다시 Lubuntu로 부팅해서 rEFInd를 설치(./refind-install)하고, sudo ./refind-mkdefault 실행해서 rEFInd가 부팅시에 먼저 사용되도록 하니 그제서야 부팅메뉴가 나왔다.

rEFInd 설치방법

http://www.rodsbooks.com/refind/getting.html에서 A binary zip file을 다운로드 후 압축 해제 후 디렉토리에 가서 ./refind-install 실행 후 rebooting

rEFInd 부팅메뉴에서 원하는 것만 남기기

부팅화면에서 - 키를 누르면 해당 부팅옵션을 숨길 수 있다. Lubuntu의 경우 Grub을 사용하는 부팅옵션(생성된 부팅메뉴 중 첫번째)을 사용했고, OSX하고 부트캠프 윈도우만 남기고 다른 것들은 모둔 숨김 처리했다.

모니터 밝기 조절

Nvidia driver를 설치하지 않았지만 F1, F2키를 눌러서 밝기 조절이 되었다. Power manager에서 Handle display brughtness key가 선택이 되지 않은 상태임에도 동작했다. 그런데 Power manager에서 그 옵션이 체크안된 걸 보고 나오면, 그때부터는 다시 조절이 되질 않았다. 따라서 반드시 그 옵션을 체크해야 한다. 초기에 밝기 조절이 된 거는 버그일 것으로 추정된다.

잠자기(Suspend)

Power manager에서 노트북 덮을 시 동작을 Suspend로 변경 후 뚜껑을 덮으니 잠자기 상태로 진입하고, 투껑을 열었을 때 잠자기 상태에서 빠져나온 후 로그인 창을 보여주었다. 정상 동작!

동영상

사운드 확인 겸 해서 유튜브 영상 하나를 재생해봤다. 잘 된다.

Bluetooth 헤드셋

sudo apt-get install -y pulseaudio-module-bluetooth해서 설치를 한 후 블루투쓰 페어링 후 헤드셋 연결을 하면 된다. Ubuntu 12.04에선 헤드셋 연결 후 수동으로 사운드 출력을 헤드셋으로 변경했었는데…감동이다 ㅠ.ㅠ 헤드셋 연결시 Audio sink 모드가 자동으로 선택안되면 Bluetooth manger에서 disconnect 후 다시 Audio sink모드로 connect해야 하는 상황은 동일하다.

외장하드

exFAT으로 포맷된 외장하드 사용을 위해 sudo apt-get install -y fuse exfat-fuse exfat-utils해서 설치한다. 연결된 상태면 부팅 후 사용자 로그인시 자동으로 연결이 되었다. 주의할 점은, 부팅시가 아니라, 로그인시라는 점. 부팅시에 연결하려면 /etc/fstab을 손봐야 하는데, 서버용이 아니라서 별 문제가 되진 않는다.

한글

기본 설정 - Language Support

이 메뉴로 최초 접근시 제대로 설치되지 않았다면서 설치하겠냐는 팝업창이 뜨면 Yes를 눌러서 설치를 한다. 이후 언어 설치/제거에서 한국어 선택해서 한국어 패키지 추가 후 시스템 전체 적용 클릭하고 키보드 입력기로 fcitx 선택한 후 재부팅한다.

기본 설정 - Fcitx 설정

입력방법 탭에서 한국어 고른 후 Hangul이라는 키보드를 키보드 - 영어(미국) 아래에 추가한다. 만약 한국어가 안 보이면 Show Only Current Language 옵션의 체크를 해제해야 한다.

그런데 Global 설정에서 전환키를 우측 Option키로 하려고 했는데 되질 않았다. 일단은 기본키인 ctrl + space를 사용중이다.

터미널 설정(http://www.mobilehunter.net/152)

vi ~/.bashrc 한 후, 다음을 입력해서 한글을 활성화한다.

export LANGUAGE="ko_KR.UTF-8"
export LANG="ko_KR.UTF-8"
export LC_ALL="ko_KR.UTF-8"

vi ~/.inputrc해서 OSX의 터미널 어플리케이션에서 접속시 한글 입력안되는 이슈를 해결한다.

set convert-meta off
set meta-flag on
set output-meta on

D2Coding 한글 폰트 설치

먼저 gnome-font-viewer를 설치한다.sudo apt-get install -y gnome-font-viewer 실행하면 된다. 다음은 폰트 설치이다. https://github.com/naver/d2codingfont/releases에서 zip 파일 다운받은 후 압축을 풀고 ttf 파일 2개(보통 거와 진한 거)를 각각 오른쪽 클릭 후 Font라는 메뉴를 클릭 후 나오는 화면 상단에서 Install 눌러서 설치하면 된다. Install failed라고 나오지만 사용하는 데에는 문제가 없었다. 터미널에도 적용하고 Joplin이라는 노트앱에서도 잘 동작했다.

Additional Drivers

Software & Updates에서 Additional Drivers에서 NVidia X server 추가 설치를 하니, 밝기 조절도, 슬립도 모두 안되는 사태가 발생했다. 내 경우는 설치하지 않기로 했다.

Fan control by MBPFan

구글링을 통해 얻은 해법이다. 테스트된 기기 목록을 보니 Macbook 2009late도 지원될 것으로 보였다.

최소, 최대 팬 속도 알아내기

cd /sys/devices/platform/applesmc.768 한 후 cat fan*_min하면 최소값 2000, `cat fan*_max’하면 최대값 6200을 얻을 수 있다.

최대 온도 알아내기

cat /sys/devices/platform/coretemp.*/hwmon/hwmon*/temp*_max하면 105000이 나오는데, 1000으로 나누면 최대 온도 105를 얻을 수 있다.

온도센서와 팬 활성화

sudo vi /etc/modules해서 다음 2줄을 추가한다.

coretemp
applesmc

MBPFan

sudo apt-get install -y git build-essential
sudo mkdir /usr/local/src
sudo chmod -R 755 /usr/local/src
sudo chown -R $USER:$USER /usr/local/src
cd /usr/local/src
git clone https://github.com/dgraziotin/mbpfan
cd mbpfan
make
sudo make install
sudo make tests

테스트가 통과했다면 서비스를 설치하고 사용하면 된다.

sudo cp mbpfan.service /etc/systemd/system/
sudo systemctl enable mbpfan.service

위에서 알아낸, 팬 속도와 최대 온도를 적용하자. sudo vi /etc/mbpfan.conf해서 다음처럼 변경한다.

min_fan_speed = 2000
max_fan_speed = 6200
max_temp=105

sudo systemctl restart mbpfan.service해서 서비스를 재부팅하면 끝이다.

sudo apt-get install -y lm-sensors해서 설치 후 sensors | grep Core하면 온도를 볼 수 있다.

Web cam

https://www.onlinemictest.com/webcam-test/ 에 접속해봤더니 추가 설정없이 잘 된다.

Touchpad

기본적으로, 한번 탭으로 클릭, 두번 탭으로 더블클릭, 손가락 두 개 탭시에 오른쪽 마우스, 손가락 두 개로 스와이프시 스크롤 등 기본적인 것들은 모두 동작한다. 하지만 세부 조절을 위해 다음을 추가한다.

sudo vi /usr/share/X11/xorg.conf.d/50-mtrack.conf 한 후 다음을 붙여넣는다.

Section "InputClass"
    MatchIsTouchpad "on"
    Identifier      "Touchpads"
    Driver          "mtrack"
    Option          "IgnoreThumb" "true"
    Option          "IgnorePalm" "true"
    Option          "DisableOnPalm" "true"
    Option          "DisableOnThumb" "true"
    Option          "TapButton1" "1"
    Option          "TapButton2" "3"
    Option          "TapButton3" "2"
    Option          "TapButton4" "0"
    Option          "ClickFinger1" "1"
    Option          "ClickFinger2" "3"
    Option          "ClickFinger3" "2"
    Option          "TopEdge" "25"
    Option          "IgnoreTop" "true"
    Option          "TopCorners" "25"
    Option          "BottomEdge" "25"
    Option          "SwipeLeftButton" "9"
    Option          "SwipeRightButton" "8"
    Option          "SwipeUpButton" "11"
    Option          "SwipeDownButton" "10"
    Option          "ScrollUpButton" "5"
    Option          "ScrollDownButton" "4"
    Option          "ScrollLeftButton" "7"
    Option          "ScrollRightButton" "6"
EndSection

FN keys

https://help.ubuntu.com/community/AppleKeyboard https://wiki.archlinux.org/index.php/Apple_Keyboard

sudo vi /etc/modules 해서 hid_apple을 추가해서 모듈이 로딩되도록 한다. 그리고 sudo vi /etc/modprobe.d/hid_apple.conf 한 다음에 다음을 추가한다.

options hid_apple fnmode=2
options hid_apple swap_opt_cmd=1

fnmode=2는 function key 눌릴 경우, F1, F2처럼 사용되고 Fn + F1이 눌리면 밝기 조절이 되도록 하기 위함이다. swap_opt_cmd=1는 option키와 command키를 바꿔서 일반 키보드 레이아웃과 비슷하게 사용하기 위함이다.

변경 후 sudo update-initramfs -u -k all해서 부팅시 옵션이 적용되도록 한다. 이제부터는 fn + F1 or F2를 눌러야 밝기 조절이 되고, alt키는 command키를 누르면 된다.

재부팅 이슈

전원을 끄기 위해 sudo shutdown -h now를 실행하면 잘 되었다. 그런데 재부팅을 위해 sudo shutdonw -r now 실행시 재부팅이 되지 않았다. 정상적으로 shutdown후 재부팅에 돌입하지 않는 문제였다. 여러 구글링 결과를 시도해본 결과 다음의 조합으로 빠르게 재부팅이 가능해졌다.

sudo vi /etc/default/grub해서 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force"처럼 수정 후 sudo update-grub해서 반영시킨다.

sudo vi /etc/systemd/system.conf해서 다음의 2라인의 주석처리를 해제하고 값을 변경한다.

DefaultTimeoutStartSec=5s
DefaultTimeoutStopSec=5s

변경 후 적용하기 위해 sudo systemctl daemon-reload를 실행한다.

이제 sudo shutdown -r now 실행해보면 재부팅이 잘 된다.

Password manager, Seahorse

추후 시스템 상의 암호들을 관리하기 위해 Seahorse를 설치해둔다.

Lubuntu만 남기기

Lubuntu Live USB를 가지고 부팅 후(option키 누른채로 전원을 켜야 함), gparted를 실행한 후 Lubuntu 파티션과 EFI 파티션을 남기고 삭제한 후 Lubuntu 파티션을 확장해준다. 적용을 누르면, /boot가 포함된 경우 부팅실패할 수 있다고 나오지만 무시하고 진행한다. 이미 EFI 파티션에 /boot가 안전하게 생성되어 있기 때문이다.

Wifi driver

무선랜 끊김 현상 해결은 맥북 2009 late + Lubuntu 18.04 wifi 끊김 문제 해결를 보면 된다.

배터리 교체

배터리 교체도 했다. 맥북 2009 late + Lubuntu 18.04 배터리 교체기를 보면 된다.

Related