'2014/07/24'에 해당되는 글 2건

http://www.ubuntugeek.com/how-to-improve-ubuntu-laptop-power-management.html


우분투는 그 자체 만으로도 상당히 쓸만한 OS이지만 리눅스 특유의 ACPI정책덕에 전력을 많이소모하는 것으로 유명하다. 발열도 윈도에 비해 많은 편이고 배터리 소모율도 상당한 편이다. 그래서 laptop-mode-tool이라던가 커널패치를 통해 CPU전압을 조절하는 등 많은 시도가 있어왔고 이를 하나롤 처리해주는 패키지를 소개하고자 한다.


이름은 TLP이며 

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw


위의 3줄 명령어로 설치 가능하다. 보면 알겠지만 PPA를 통한 설치이므로 우분투계열이 아닌경우 설치가 어려울 수 있다. 하지만 오픈소스이니 찾아보면 소스를 컴파일함으로써 사용 가능하니 다른 배포판사용자들도 충분히 사용가능하리라 믿는다. 그도 그럴 것이 여기는 우분투 사용관련 블로그이다.


sudo tlp start


위 명령어를 이용하여 바로 작동이 가능하다. 특히 tlp가 관리하는 것이 배터리모드와 AC모드의 구분 및 바로 절약모드 돌입이다. 우선 적으로 AMD GPU의 low전압모드가 있고 성능은 떨어지더라도 발열량을 극히 줄일 수 있어서 상당히 괜찮게 만들어진다. 그외에 사운드카드의 절약모드의 경우 소리가 안 나고 있을 경우에는 전원을 차단해서 배터리를 절약하는 방식으로 돌아가며 일부 보드나 노트북은 무선랜 사용시 자동으로 전원 차단을 해줘서 전원절약을 극대화 시켜주기도 한다. 사실 이 기능들은 모두 우분투에 기본적으로 들어가 있는 기능들이지만 이를 모두 활성화 해주려면 상당한 삽질이 필요하다. 이것을 한번에 해주는 것이 바로 tlp이다.


이 설정도 /etc/default/tlp파일을 수정함으로써 AC전원에서 절약모드로 들어갈 수도 있다. 만약 발열이 심하다면 이 설정을 손을 대는 것도 나쁘지는 않다. 물론 관리자 권한으로 수정해야 하므로 sudo명령은 필수다.


만약 뭐가 뭔지 모르겠고 난 그냥 발열만 잡고 싶다면 AC와 배터리를 똑같이 설정해주면 된다.


# Seconds laptop mode has to to wait after the disk goes idle before doing a sync.
# Non-zero value enables, zero disables laptop mode.
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2 


이 기본 설정이라면

# Seconds laptop mode has to to wait after the disk goes idle before doing a sync.
# Non-zero value enables, zero disables laptop mode.
DISK_IDLE_SECS_ON_AC=2
DISK_IDLE_SECS_ON_BAT=2

으로 바꿔줌으로써 상당한 하드디스크 발열을 잡을 수 있다.


다른 모드도 비슷하게 작동하니 숫자를 조절해가면서 성능과 발열을 조절하면 우분투에서도 상당히 전력소모량을 줄일 수 있게 된다.


만약 지금 설정을 보고 싶다면 터미널에서

tlp-stat

이 명령만으로 충분히 확인 가능하니 직접 시도하면서 삽질을 해보자. 이런 재미에 우분투로 삽질하는 것 아니겠는가?



,

컴퓨터를 쓰다보면 ACPI란 말을 자주 듣게 된다. 사실 윈도를 설치할때 몇번 듣게 됨과 동시에 전원이 자동으로 꺼지지 않으면 사용하란 말도 듣게된다. 이 ACPI란 무엇일까? 

ACPI란 일종의 컴퓨터 전력관리 표준규격에 일종이다. 우리가 시스템종료를 실행했을때 따로 스위치조작없이 전원이 나가는것도 이 ACPI때문이며 노트북에서 배터리모드로 자동 전환되는것도 바로 이 ACPI의 규격에 나와있는것이다. 헌데 이 ACPI가 표준그대로 잘 만들어지면 크게 문제는 없겠는데 PC제작사에서 대충 동작만 가능하게끔 만들어놓곤 하는것이 문제다. 이 동작여부도 오로지 당시의 대세윈도만 여부를 판단한다. 지금시점이라면 윈도7이 될것이다. 대기업PC라면 미리 탑재된 윈도만 동작확인을 하며 다른OS는 신경도 안쓰기 마련이다.

사실 윈도에서도 규격에 맞지않게 만들어졌다면 당연히 정상작동을 안해야 하는데 윈도란것이 워낙 괴랄한 하드웨어지원을 하는터라(레거시지원이 제일 잘되는OS가 바로 윈도)신기하게도 작동을 한다. 

문제는 여기서 발생되는데 다른OS를 설치해서 사용하는경우 이 ACPI설계가 개판이면 정상작동여부가 불투명해진다는 것이다. 대표적인것이 2.6.38때 벌어진 pci-e과열사태가 있다. 윈도야 워낙 잘 돌아갔지만 aspm을 강제 활성화하지 않은경우 리눅스에서는 배터리광탈 및 과열을 일으켜버리고 사망하시는 일이 일어났는데 일부 비표준ACPI지원과 관련이 있다고 한다. 그도 그럴것이 리눅스를 미리 탑재하고 출시되는 PC는 몇 안되니 리눅스의 점유율을 높이려면 기존 윈도와 동거(?)하던가 윈도를 밀어내고 자리를 차지하는 수밖에 없다. 그런데 그 윈도 기본탑재PC들이 저런 개판ACPI를 달고 다니는 경우가 꽤 있다보니 리눅스도 윈도마냥 괴랄한지원을 추가하는 수밖에 없다.

그런 비표준ACPI지원하려다 생겨난 버그도 생기고 하는터에 최근 리눅스는 전력관리 테이블조차 윈도의 것을 그대로 쓰는것으로 밝혀졌다. 아니, 사실 PC마다 멋대로이기는 해도 OS별 전력관리테이블이 존재해서 팬컨트롤이나 cpu스로틀링 같은것을 해당테이블에 맞춰 운영하게 되어있는데 보통은 리눅스용 테이블이 만들어져있어서 이것을 이용하지만 이것마저 개판인 경우도 많다보니 그냥 리눅스에서 리눅스용 테이블대신 윈도용 테이블을 가져다가 사용한다는 것이다. 제 아무리 많은 발전을 한 리눅스라고는 해도 윈도와 전원관리 철학이 다르지 않았던가(리눅스는 전원절약보다는 안정을 선호 윈도는 노트북에 한해 전력최소를 지향)하지만 워낙PC제조사들이 막장짓을 자주해서인지 커널부터 윈도용을 가져가 쓴다니...(물론 부트옵션으로 리눅스용 테이블을 쓰게끔 할 수도 있다)

어쨌건 불행인지 다행인지 옛날에 꽤 문제를 닐으키던 ACPI활성화 문제는 적당히 해결이 됐는지도 모르겠다. 하지만 지금도 가끔 최신 하드웨어에서 전력관리가 안 되어서 과열및 전력광탈 현상이 아직도 목격되고 있다. 시간이 지나면 자연스럽게 해결될 문재라고는 한다. 그런데 그게 언제냐고...

옛날이야기를 하자면 우분투 라이브 옵션 중에 acpi=off 옵션이 붙어있었다. 이것은 아에 acpi를 무시하겠다는 의미로 팬이 왕왕돌아가면서 사용자의 귀를 간지럽히게 된다. 그리고 자동 셧다운도 작동하지 못했다. 어떤의미인줄 알겠는가? 리눅스에서 acpi를 지금수준으로 지원하는것도 거의 기적이라고 생각이 들 정도다. 이러니 아직도 리눅스가 전력관리 못한다는 소릴듣지...

정말 리눅스는 언제쯤 메인 대세가 될 수 있을 것인가... 아니면 PC제조사들이 신경써서 표준그대로 설계하면 참 좋을텐데(실제 호환이 가장 뛰어난 하드웨어는 애플의 물건이다)

,