'배터리 수명'에 해당되는 글 1건

  1. 2009.02.18 :: ThinkPad로 우분트를 쓸 때 배터리 수명을 늘이는 방법
기술을 얘기한다 2009.02.18 11:52
/* 개인적으로는 배터리는 소모품이니 그냥 완전 방전에만 주의하고 쓰면 된다라는 설을 신봉하고 있었다. 그런데 여러가지 경제 사정이 어려워지니 별 걸 다 신경 쓰게 된다. */

ThinkPad 에는 배터리를 정교하게 관리하는 기술이 내장되어 있다. 이 기능을 윈도에서 이용하고자 할 때에는 Power Manager 라는 프로그램을 이용하면 된다. 예를 들어, ThinkPad 에서 사용하는 Li-Ion 배터리의 경우에는 너무 많이 충전 방전을 반복하면 수명이 단축된다. 따라서, 충분히 배터리가 떨어졌을 때만 충전을 시작하고 그리고 충전도 100% 가 아닌 약간 미달되게 충전하는 것이 더 좋다고 한다. (항간에는 이를 놓고 실로 다양한 설이 난무하고 있으므로 나도 어느 것이 정설인지는 모르겠다. 일단은 thinkwiki 에 있는 배터리 관리 관련 글을 믿어보기로 하자.)

그런데 리눅스에는 해당 프로그램이 없어서 안되는 줄 알고 있었는데 우연히 smapi 라는 것을 이용하여 할 수 있다는 것을 알게 되고 이를 설치해보았다. smapi 에 관한 상세한 설명은 thinkwiki의 smapi 관련 기사 를 참조하면 되고 우분투 리눅스에서 설치하는 방법은 ubuntu forum 의 관련 글을 참조하면 되겠다.

글에 다 나와 있지만 그래도 기록을 위하여 절차를 설명하면 다음과 같다.

synaptic 이나 aptitude 등을 이용해서 필요한 패키지(tp_smapi_src, build-essential, linux-source-현재버전)를 설치한다. ubuntu forum 의 글에서는 source forge 에서 thinkpad smapi 소스를 받으라고 되어 있지만 Intrepid 에서는 해당 패키지가 들어 있는 듯 하다. 그냥 synaptic 에서 설치하였다.

smapi 소스 패키지는 /usr/src 디렉토리 아래에 설치되는데 그곳으로 가서 소스를 풀어준다.
$ cd /usr/src
$ sudo tar jxvf tp-smapi.tar.bz2
풀린 소스에서 커널 모듈을 빌드 한다.
$ cd tp-smapi/
$ sudo make install HDAPS=1 KSRC=/usr/src/linux-headers-현재리눅스버전
다음 번 부팅 부터는 자동으로 해당 모듈이 로드 되도록 /etc/modules 파일에 tp_smapi 라는 줄을 추가한다.
$ sudo -s;
$ echo "tp_smapi" >> /etc/modules
리부팅을 하느니 이번에는 그냥 해당 모듈을 로드해보자.
$ sudo modprobe tp_smapi
그리고 충전을 시작할 시점 (즉, 이 수준 이하로 배터리가 떨어지면 충전이 시작된다) 과 충전을 중단할 시점을 지정한다.
$ sudo -s;
echo "30" > /sys/devices/platform/smapi/BAT0/start_charge_thresh;
echo "85" > /sys/devices/platform/smapi/BAT0/stop_charge_thresh;
척 봐서 알겠지만 /sys/devices/platform/smapi 아래에 배터리에 관련된 정보가 들어 있기도 하고 필요한 컨트롤을 할 수 있는 파일이 들어 있기도 하다. 그럼 현재 배터리 정보를 보려면 어떻게 하나? 파일 하나 하나를 뒤질 수는 없으니 이걸 정리해주는 스크립트가 있다. --> 이 링크 <-- 를 클릭해서 쉘 스크립트를 받은뒤 실행해보면 배터리 상태를 보여준다.
$ ~/bin/thinkpad-smapi.bash -b 0
BATTERY 0 INFORMATION
=====================

Battery slot:
  Battery present: yes
  Battery state: idle

Embedded info:
  FRU P/N: 42T4505
  Barcoding: 1ZDA078729D
  Serial number: 2929
  OEM Manufacturer: SANYO
  Chemistry: LION
  Manufacture date: 2007-08-07
  Design capacity & voltage: 37440 mWh, 14400 mV

Battery health:
  First use date: 2007-09-05
  Cycle count: 148
  Last full capacity: 28770 mWh
  Average current / power (past 1 minute): 0 mA, 0 mW

Battery status:
  Remaining capacity: 28430 mWh (99 %)
  Remaining running time: [not discharging]
  Running current & power: 0 mA, 0 mW
  Temperature: 34700 mC
  Voltage: 16256 mV
  Remaining charging time: [not charging]

Battery charging control:
  Start charging at: 30 %
  Stop charging at: 85 %
  Prevent charging for: 0 min
  Force battery discharge: no
눈여겨볼 수치에 색칠을 했다.

우선 148. 대략 충전 싸이클 500 여회가 되면 배터리는 망가진다는 설이 있다. 그렇게 본다면 벌써 수명을 1/3 은 쓴 셈이다. 으 아까워라. 진작에 신경 써 줄껄...

그 다음에 볼 수치는 28430 / 37440. 원래는 3만7천 정도가 충전되던 배터리 였는데 이제는 완전히 충전해도 2만 8천 밖에 안 들어간다는거다. 어째 요즘 버티는 시간이 좀 줄었다 싶더라...

그리고 30 / 85. 그래 이제는 설정을 해줬으니 충전 싸이클도 쉽게 안 늘어나고 현 상태로라도 오래 버텨주겠지.

그런데 30 / 85 설정 값은 리부팅하면 없어진다. 이를 계속 유지시키려면 다음과 같은 추가 작업을 해줘야 된다.

$ sudo aptitude install sysfsutils
$ sudo -s;
echo "devices/platform/smapi/BAT0/start_charge_thresh=30" >> /etc/sysfs.conf
echo "devices/platform/smapi/BAT0/stop_charge_thresh=85" >> /etc/sysfs.conf


신고
posted by 신묘군