2016/04/23

Ubuntu 16.04 LTS 설치 소감


(2016/07/15 참고사항 추가)

어제 software-updater와 upgrade 명령으로 daily update를 했더니 gcc가 v5.3.2에서 v5.4.0으로, 커널은 v4.4.0-28에서 v4.4.0-31로 upgrade 됐다. 문제는 커널 업그레이드 과정에서 NVIDIA 드라이버 v352.63을 사용중이었는데 커널 모듈 컴파일 에러가 발생했다.

새로운 커널을 계속 사용하려면 NVIDIA 드라이버를 교체하는 수 밖에 없는데 그 과정에서 아래 NVIDIA 관련 삽질을 또다시 반복하는 사태가 벌어졌다. 아무튼 아래의 NVIDIA 설치 방법을 써먹을 기회(?)가 생겼고, 최신 NVIDIA 드라이버 v367.27을 설치해서 문제가 해결됐다. NVIDIA 드라이버 설치 후 로그인이 되지 않는 문제까지 생겨서 dconf db를 지우고 데스크탑 설정을 다시 해주어야만 했다.

그런데 이것이 리눅스 커널 Secure Boot와 관련된 문제인지 아닌지는 확실하지 않다. iMac에서 발생한 상황인지라 Mac은 기본적으로 Secure Boot를 사용하지 않기 때문이다. 일반 PC인 경우에는 BIOS/UEFI firmware Setup에서 Secure Boot를 끄면 문제가 안생기는 것인지 모르겠다.

참고로, Secure Boot를  disable 시키지 않고 부팅하려면 인증된 커널을 사용하면 되는데 여기를 참고하거나 아래 URL 참고... 그런데 너무 복잡하고 커널 업그레이드 될 때마다 인증을 해 주어야 하는 건 아무래도 무리일듯...

https://wiki.ubuntu.com/SecurityTeam/SecureBoot

그리고, 참고 삼아 VirtualBox도 업그레이드 됐는데 홈페이지 갔더니 v5.1도 새로 나왔더라. 빠르고 좋대서 5.1로 설치했다. 아직 제대로 안써봐서 머가 좋은지는...

추가하는 김에, Qt 5.6부터는 수정된 ibus immodule이 탑재되어 있어서 ibus를 기본 입력기로 사용해도 Qt Creator나 Qt App에서 한글입력이 잘된다.

-----------------------------------------------------------------------------

어제 따끈따끈한 우분투 16.04 LTS가 떳길래 반가운 마음에 우분투 설치 iso 이미지를 내려 받아
서 iMac에 설치하였다. LTS 버전이라 Clean Install을 감행했다. HDD의 iso 이미지로 설치하니까 10분도 안걸려 설치가 끝났다. 머 우분투 설치 자체야 쉽지만 예전에 쓰던 상태로 다시 만들기 위해 소프트웨어들을 다시 설치하고 모든 설정을 다시 해 주는게 보통 일은 아니다. 그간에 사용하던게 왜 이리 많은지 환경을 맞추는데만 2시간 넘게 소요된 것 같다.

그런데 문제는 우분투에 기본 탑재된 NVIDIA Proprietary driver(v361.42)를 설치하고 재부팅한 후부터 옛날에 경험했던 삽질들을 다시 하느라 엄청난 시간을 허비해야 했다. 공포의 Black(또는 Blank) Screen 문제가 발생한 것이다. 이 놈이 부팅할 때마다 서너 번에 한 번은 제대로 동작하는데 대부분의 경우에 Black Screen 문제가 생긴다. 우분투 15.04나 15.10에서는 기본 탑재된 NVIDIA 드라이버들이 아무 문제 없었기 때문에 당연히 아무 문제가 없으리라 예상했는데 리눅스에 항상 아쉬운 부분으로 남는다. 물론 nouveau 드라이버는 깔금하게 동작한다.

아무튼 지금은 모든 문제가 해결됐다. 우분투가 전반적으로 빨라진 느낌도 든다. 나중에 우분투 16.04를 설치하는 사람들에게 참고가 되길 바란다. Unity 8과 Mir는 사용할 수는 있지만 아직은 완성도가 떨어지는 모양이다. 기본적으로 NVIDIA 환경에서 동작하지 않는다. 우분투 15.10에서 설치해 봤는데 nouveau 환경에서도 로그인 조차 안돼서 포기했다.

우분투 16.04 LTS의 새로운 것들

이 곳을 참고하거나 Release Note를 참고하면 우분투 16.04에서 달라진 것들을 쉽게 확인할 수 있다.

Linux kernel 4.4, Python 3.5, Golang 1.6, PHP 7, OpenSSH 7.2p2, Apt 1.2, LibreOffice 5.1, Firefox45 등을 비롯한 수많은 S/W가 upgrade 되었다. 참고로, 패키지 관리자인 Apt는 apt-get대신 apt 명령으로 사용할 수 있고, 새로운 기능들을 추가로 사용할 수 있다. 이 곳을 참고하면 주요 배포판의 패키지 명령들을 비교해서 기능을 쉽게 익힐 수 있다.

Unity 7.4 데스크탑 기능도 많이 안정화 됐고 기능도 강화됐는데, 아래의 명령으로 화면 왼쪽의 Launcher를 아랫쪽으로 옮길 수도 있다.

$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom

그 동안에 Privacy 문제로 논란이 됐던 Dash에서의 On-line 검색은 기본 설정에서는 동작하지 않도록 바뀌었다. Overlay Scrollbar는 15.10부터 바뀐 것이다. [System Settings] > [Appearance]와 Unity Tweak Tool을 설치해서 함께 사용하면 대부분의 Unity 데스크탑 환경을 필요한 대로 설정할 수 있게 되었다. HUD의 단축키가 <Alt>로 되어 있어서 국내 사용자들이 한영키 설정시 혼란을 많이 겪었었는데 <Alt>+<Space> 키로 바뀐 것도 고무적이다. 이 곳을 참고하면 유니티 데스크탑 환경 설정에 도움이 된다.

무겁고 느려 터져서 논란이 됐던 Ubuntu Software Center도 Gnome Shell의 Software로 대체되었다. 제목은 Ubuntu Software가 됐고 아이콘이 그대로라 바뀐 줄 모를 수도 있다. 이와 함께 Gnome Shell의 Calendar도 일정관리를 위해 사용할 수 있고, On-line 계정과 연동하여 동기화할 수도 있다.

이외에도, Snap 패키징, LXD(LXC hypervisor), ZFS 파일시스템을 우분투에서 사용할 수 있다. 리눅스에서는 License와 특허 등의 문제로 ZFS 파일시스템 대신 Btrfs 개발에 힘을 실어 왔는데 우분투가 ZFS를 밀기로 한 것인지는 모르겠다. ZFS는 역사가 깊고 대규모 서버 환경에서 검증됐기 때문일 수도 있다. 참고로, Btrfs와 ZFS는 기능적으로는 유사하지만 설계부터 다르고, Btrfs가 리눅스 커널에 포함되어 있는데 반해 ZFS는 라이센스 문제 때문에 kernel module로만 사용할 수 있다.

AMD Radeon 그래픽 카드 사용자들은 당분간 우분투 16.04를 사용하지 말라는 경고도 있다. fglrx 대신 오픈소스 radeon과 amdgpu 드라이버가 개발 중인데 아직 성능이 그닥이란다.

NVIDIA 드라이버 재설치 방법

전에 올렸던 우분투 복구모드에서의 NVIDIA 드라이버 설치 방법으로는 nouveau 모듈이 로딩되는 것을 막지 못해서 NVIDIA 드라이버 설치 후에 로그인이 되지 않는 문제가 생겼다. 그래서 구글링해서 찾은 방법대로 성공했기에 다시 정리한다.

NVIDIA 홈페이지에 가보니 우분투 16.04에 기본 탑재된 v361.42가 최신 stable 버전이더라. 같은 놈이라서 문제가 생길 소지가 있어서(나중에 해봤더니 이 버전은 설치시 오류가 생기더라) 15.10에서 잘 동작했던 NVIDIA-Linux-x86_64-352.63.run을 내려 받아서 설치했다.

우분투 16.04에 기본 탑재된 NVIDIA 드라이버에 문제가 생겨 GUI를 쓸 수 없기 때문에 nouveau 드라이버로 복구하는 일 부터 다시 해야 했다. 참고로, iMac에서는 UEFI 모드에서는 NVIDIA 드라이버가 정상 동작하더라도 <Alt>+<Ctrl>+<F1> ~ <F6> 키로 console을 띄우면 Black Screen이라 복구모드 외에는 작업할 수 있는 방법이 없다. NVIDIA가 아직 지원하지 않는단다. 그런데 복구 모드에서는 Copy & Paste가 안되기 때문에 GUI 환경에서 작업하는게 좋다.

0. 우분투 복구 모드에서 파일 시스템 Check

나의 경우에는 NVIDIA가 동작하는지 확인하느라 재부팅을 몇 번이나 했는데 이 과정에서 Power 버튼으로 Hard 부팅을 해야 했기에 파일 시스템이 좀 깨져 있었다. 혹시 모르니 복구 모드로 부팅해서 fsck를 돌려 볼 필요가 있다.

1. 우분투 복구 모드에서 문제가 있는 NVIDIA 드라이버 제거

복구 모드에서 파일 시스템 check를 하면 자동으로 디스크 파티션을 rw 모드로 mount 해주는데, fsck를 돌리지 않았다면 수동으로 mount해 주어야 한다.

$ mount -o remount,rw /
$ mount -a

우분투 복구 모드 활용에서 다룬대로 복구 모드로 부팅한 후, 아래의 명령으로 NVIDIA 드라이버를 모두 제거한다.

$ apt-get remove --purge nvidia*

만약, 아래 3번에서 이미 blacklist 파일을 생성했었다면 nouveau 드라이버로 부팅하기 위해서, 파일을 삭제하거나 편집기로 아래와 같이 '#' 으로 comment 처리해야 한다.

$ nano /etc/modprobe.d/blacklist-nouveau.conf

#blacklist nouveau
#options nouveau modeset=0

$ reboot

2. 우분투로 정상 부팅 후 nouveau 드라이버 복구

우분투로 부팅하면 nouveau가 아직 복구된게 아니므로 GUI가 뜨긴 하지만 로그인이 안된다. 하지만 이 상태에서는 <Alt>+<Ctrl>+<F2> 키로 정상적인 console 로그인이 가능하다. 아래의 명령으로 필요한 패키지를 재설치 한다.

$ sudo service lightdm stop
$ sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx
$ sudo service lightdm start

참고로, 위의 명령이 우분투 16.04에서도 동작하긴 했지만 우분투 15.04이후 systemd를 사용하고 있기 때문에 아래와 같이 systemctl 명령이 올바른 것일 수 있다.

$ sudo systemctl lightdm.service stop

이제 재부팅하면 nouveau 드라이버로 로그인 할 수 있다. 그런데 만약 재부팅 후에도 로그인이 되지 않을 경우가 발생할 수 있는데(삽질하다 보니 발생하더라...) 아래와 같이 dconf database를 삭제하면 로그인 할 수 있다. 다만, 주의할 점은 dconf database를 삭제하면 Unity Desktop 설정을 모두 다시 해 주어야 한다.

$ mv ~/.config/dconf/user ~/.config/dconf/org.user
$ sudo reboot

3. 새로운 NVIDIA 드라이버 설치 후 nouveau 드라이버가 로딩되지 않도록 blacklist 파일 생성

$ sudo nano /etc/modprobe.d/blacklist-nouveau.conf

nouveau 모듈이 로딩되지 않도록 편집기로 아래의 두 줄을 넣어 저장한다.
blacklist nouveau
options nouveau modeset=0
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off

$ sudo nano /etc/modprobe.d/nouveau-kms.conf

커널의 nouveau가 동작하지 않도록 편집기로 아래의 내용을 넣어 저장한다.
options nouveau modeset=0

아래의 명령으로 수정한 blacklist가 제대로 동작하도록 initramfs를 update해 준다.
$ sudo update-initramfs -u

$ sudo reboot

4. 다시 우분투 복구 모드로 부팅 후, 새로운 NVIDIA 드라이버 설치

$ mount -o remount,rw /
$ mount -a

$ sh NVIDIA-Linux-x86_64-352.63.run
$ reboot

5. 재부팅 후 NVIDIA 드라이버 환경에서 정상 로그인이 되는지 확인

부팅 후 NVIDIA 버전은 아래 명령으로 확인할 수 있다.

$ nvidia-smi

참고 사항

위의 4번처럼 우분투 복구모드로 부팅하지 않고 부팅시 Grub 메뉴엔트리를 수정하여 콘솔 모드로 부팅해서 작업해도 된다. 기본 Ubuntu 부팅 메뉴가 선택된 상태에서 <e> 키를 누르면 Grub edit 모드로 진입하는데 커널 부팅 옵션(linux로 시작하는 부분)의 "quiet splash $vt_handoff" 부분을 지우고 "3 nomodeset"으로 대체한 후 <F10>키를 누르면 수정된 옵션으로 부팅한다. 참고로 3은 Linux runlevel 이다. 이렇게 부팅하면 rw mode로 이미 mount된 상태이므로 mount 명령은 필요 없다.

구글 chrome 설치 오류

구글에서 chrome을 내려 받아 설치하면 오류가 생겨서 처음부터 약간 기분이 나빠진다. 그런데 알고 보니 우분투에서 긴급 패치를 한 것 같다. 구글 chrome을 설치하기 전에 우분투 16.04 daily update부터 해주면 누락된 라이브러리가 먼저 설치되기 때문에 오류가 발생하지 않는다. [System Settings] > [Software & Updates] > [Ubuntu Software] > [Download from] > "Main Server"로 바꿔주고 나서,

$ sudo apt-get update
$ sudo apt-get upgrade

하면 우분투 daily update를 설치할 수 있다. 사실 우분투 설치하고 나서 이걸 항상 가장 먼저 해주는게 좋다.

VirtualBox 설치시 참고 사항

VirtualBox 5.0.18 설치는 오라클 VirtualBox 설치 방법을 따라가면 되는데, /etc/apt/sources.list 파일의 저장소 설정은 아래와 같이 해도 잘 된다.

deb http://download.virtualbox.org/virtualbox/debian xenial contrib

버추얼박스 설치 후에 VirtualBox Extension Pack을 내려 받은 후 설치하기 위해서는 아래의 명령을 실행해 주면 된다.

$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.18-106667.vbox-extpack

언제부터 바뀐 것인지 모르겠는데 Guest Additions iso 이미지가 설치되어 있지 않더라. 가상머신 실행 후, [Devices] > [Insert Guest Additions CD Image]를 선택하면 On-line으로 내려 받아 ~/.VirtualBox 폴더에 저장된다.

기타 참고 사항

iMac에서 이전의 우분투 버전에서는 Broadcom Proprietary WIFI 드라이버를 별도로 수작업으로 설치했어야 했는데 16.04에서는 잘 잡아 주더라.

또한, 한글 입력은 fcitx를 사용하면 잘 된다. Qt5.5에서 Qt Creator나 Qt App에서 한글 입력이 안되던 문제가 생겼었는데 한글 입력도 잘 된다. 다솜 입력기도 잘 된다는데 우분투 패키지에 포함되지 않아서 아쉽다.

다만, 아직 본격적으로 우분투 16.04를 써 본건 아니라서 어떤 문제가 있을지는 두고 볼 일이다.

댓글 2개:

  1. 감사합니다. 왜 자꾸 로그인이 안되나 햇는데 그래픽 드라이버 때문이었군요. 빠르게 문제 해결했습니다. 구글도 왜 자꾸 멈추나 했는데, 해결방법까지 다 있는거에 너무 감사하네요. 시간 단축시켜주셔서 감사합니다.

    답글삭제
  2. 감사합니다. 엄청난 도움이 되었습니다.

    답글삭제