ubuntu 12.04 btrfs on ssd, nvidia optimus setting.


OS: Ubuntu 12.04
CPU: Intel Core i7 - 3610QM
RAM: 8Gb
SSD: Intel 330 120Gb
GPU: Nvidia 660M 2Gb

1. LiveCD 모드로 부팅한다.

Btrfs 의 compress 를 켜기 위해 터미널 과 설치 프로그램 실행.
파티션 부분에서 따로 옵션을 입력할수가 없어 터미널에서 수동으로 바꿨다(desktop 버전).

아마 SSD 를 보통 0번에 꼽지 멀티부스터나 다른곳에 꼽지 않을것이다. msata 도 있으니 ssd 디스크 번호 확인후.
# cd /sys/block/sda/queue
# echo noop > scheduler
SSD 를 위한 스케줄러로 임시 변경.

설치 프로그램 실행 후 파티션 부분을 완료하면 바로 터미널 에서 아래 명령을 입력.

# mount -o remount,ssd,discard,compress=lzo /target

위키를 보니 ssd 옵션이 trim 을 활성화 시켜주진 않는다고 함.

2. 설정 시작.

설치가 끝난 후 첫 부팅할때 grub 에서 error: spares file not allowed 에러가 뜰텐데

해결방법은 몇가지가 있는데 파티션 제일 앞 부분 10Mb 정도 비워두고 만들면 된다고도 하는데 확인은 안해봄.

grub 설정을 바꾸면 되는데

/etc/grub.d/00_header 에서

function recordfail {
  set recordfail=1
  # if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
}

이부분을 주석 처리 후

# update-grub

3. SSD 를 위한 셋팅.

디스크 스케줄러를 변경하지 않아도 크게 체감상 느껴지진 않는듯 한데
ssd 만 사용한다면 grub 설정 변경 /etc/default/grub 파일안에 아래
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop quiet splash" 이와같이 수정

# update-grub

HDD 와 같이 사용시에는
/etc/rc.local 수정
Disk ID 는 /dev/disk/by-id 에서 확인.

#!/bin/bash
SSD=(ata-INTEL_SSDSC2CT120A3_CVMP2180017B120BGN)

declare -i i=0
while [ "${SSD[$i]}" != "" ]; do
NODE=`ls -l /dev/disk/by-id/${SSD[$i]} | awk '{ print $NF }' | sed -e 's/[/\.]//g'`
echo noop > /sys/block/$NODE/queue/scheduler
i=i+1
done

exit 0

/etc/fstab 설정을 바꾼다.

UUID 는 본인들 하드에 맞게끔.

UUID=eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee /
btrfs noatime,ssd,discard,compress=lzo,defaults,subvol=@ 0 1
UUID=eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee /home
btrfs ssd,discard,compress=lzo,defaults,subvol=@home 0 2
tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /tmp tmpfs nodev,nosuid,mode=1777,size=7G 0 0

size 는 본인 램 용량 보다 적게.
/dev/sdb1 /mnt/data ntfs-3g, user,defaults,uid=UID,mode=700 0 0

보통 노트북을 사용시 SSD와 HDD 를 같이 사용할텐데 원하는 위치로 본인 UID 설정.

프로그램 설치시 받은 파일위치 를 HDD 로 변경
# mkdir -p /mnt/data/linux/var.cache.apt.archives
# ln -s /mnt/data/linux/var.cache.apt.archives /var/cache/apt/archives

사용자 폴더의 다운로드, 문서, 비디오, 음악 폴더들을 만약 HDD 에 원도우를 사용한다면 원도우 사용자 폴더에 링크시키는 것을 추천.

SSD 의 패기 ureadahead 삭제.
# apt-get remove ureadhead
삭제하면 부팅이 한 0.5~2초 빨라진다.

우분투 부팅이 별다른 설정 없이도 부팅시 나오는 indicator 5개  ● 이내로 끝난다 부팅시 등록된 서비스가 많아질수록 느려지는게 확연히 느껴진다.

4. bumblebee
Nvidia Optimus 는 정말 짜증난다.
그나마 리눅스에 bumblebee 가 있어 사용할수 있어서 리눅스를 택하였다. 이것만 아니였으면 FreeBSD 를 사용중이였을텐데.

저장소 업데이트.
# add-apt-repository ppa:bumblebee/stable
# add-apt-repository ppa:ubuntu-x-swat/x-updates
혹은
# add-apt-repository ppa:xorg-edgers/ppa
# apt-get update

# apt-get install bumblebee bumblebee-nvidia
x-swat 을 추천하지만 이것저것 최신버전을 원하면 xorg-edgers 로.

/etc/bumblebee/bumblebee.conf 에서 사용할 driver 선택후
해당 드라이버 설정한다.
/etc/bumblebee/xorg.conf.nvidia
/etc/bumblebee/xorg.conf.nouveau
대부분 에러들이 BusID 때문인데 lspci 로 BusID 확인후 그것을 설정에 적어준다.
# lspci | grep NV
01:00.0 VGA compatible controller: NVIDIA Corporation Device 0fd4 (rev ff)

/etc/bumblebee/xorg.conf.사용드라이버 에
Device 섹션에 BusID "01:00.0" 처럼 본인환경에 맞게 설정.

xorg-edgers 선택시

/etc/X11/xorg.conf 를 만들고

Section "Device"
        Identifier "intel"
        Driver "intel"
        Option "AccelMethod" "uxa"
EndSection

지금 사용중인버전에서도 SNA  사용시 조금씩 깨지는데 uxa 로 사용하면 괜찮다.

kernel 3.2 에서 노트북에 문제가 많이 생겨서 어쩔수 없이 업데이트 해버려 xorg-edgers 안의 3.5 로 사용중.

5. 프로그램 셋팅

Chrome 와 Firefox 임시 폴더를 꼭 /tmp 안으로 이동 시켜 램디스크를 사용.
Firefox 는 about:config 에서 새 문자열로 만든다.
browser.cache.disk.parent_directory /tmp

Chrome 은 아이콘 설정에서 명령행 뒤에 -disk-cache-dir=/tmp/ 를 추가하면 된다.
크롬도 파이어폭스처럼 설정하면 좋을텐데.

사용자가 여러명인 컴퓨터라면 따로 폴더를 지정.

6. 후기

그런데 결과적으로 내 노트북에서 nvidia driver 는 작동하지 않는다. 드라이버 가 장치인식을  제대로 못하는듯. 원도우에서도 nvidia 사이트에서 공식 드라이버로(물론 노트북 버전으로)는 설치가 안되고  MSI 의 CD에 포함된 것으로 해야 되던데 비슷한 문제인듯 하다.
이미 nvidia linux bug report 를 하였지만 언제나 대답없는 nvidia.

nouveau 는 잘 작동하며 glxgears 도 높게 스코어가 뜨지만 고질적인 문제인지 optirun 실행시 화면이 깜빡이며 마우스 포인터만 보일때가 있는데 그럴땐 마우스 로 아무곳이나 클릭하거나 Ctrl+Alt+F1 후 Ctrl+Alt+F7 로 다시 돌아가면 제대로 나온다.

아무튼 작동이 안되도 bbswitch 가 nvidia gpu 를 일단 꺼주며 설치해 두는것을 권장.
그런데 HD 4000 그래픽도 쓸만한게 compiz 돌리고 동영상 보고 거의다 잘 된다.

SSD 가 정말 빠르긴 빠르다 로그인 패스워드 입력 하자마자 프로그램이 막힘없이 실행이 된다. HDD read 측정시 560M 정도까지 나오고(스샷은 나중에..)

VirtualBox 이미지를 SSD 에 설치하여 사용해본결과 정말 빠르다.

그리고 btrfs trim 을 활성화 시키고 사용하니 컴퓨터 종료시 오래걸린다, 하지만 그때문인지는 확실하게 확인하지 못하였다.

Comments