お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-03-16 18:26:40

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

[解決済]ThinkPadの電源管理で困っています。

お世話になります。

ThinkPad T60 1954-G2JにUbuntu8.10です。

パッテリーの寿命を少しでも延ばすために、tp_smapiモジュールをインストールしたのですが、どうも上手く動いていない感じがします。
以下、やったことですが・・・

端末から以下を実行しました

petit@petit-laptop:~$ sudo -s
root@petit-laptop:~# sudo apt-get install tp-smapi-source hdapsd sysfsutils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  module-assistant
推奨パッケージ:
  tp-smapi-modules
以下のパッケージが新たにインストールされます:
  hdapsd module-assistant sysfsutils tp-smapi-source
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。
183kB 中 0B のアーカイブを取得する必要があります。
この操作後に追加で 881kB のディスク容量が消費されます。
続行しますか [Y/n]? y
未選択パッケージ hdapsd を選択しています。
(データベースを読み込んでいます ... 現在 158437 個のファイルとディレクトリがインストールされています。)
(.../hdapsd_1%3a0.0.20070803-2_i386.deb から) hdapsd を展開しています...
未選択パッケージ module-assistant を選択しています。
(.../module-assistant_0.10.11ubuntu1_all.deb から) module-assistant を展開しています...
未選択パッケージ tp-smapi-source を選択しています。
(.../tp-smapi-source_0.37-3_all.deb から) tp-smapi-source を展開しています...
未選択パッケージ sysfsutils を選択しています。
(.../sysfsutils_2.1.0-4_i386.deb から) sysfsutils を展開しています...
Processing triggers for man-db ...
hdapsd (1:0.0.20070803-2) を設定しています ...
* Not starting hdapsd: /sys/block/hda/queue/protect does not exist, please read /usr/share/doc/hdapsd/README.Debian

module-assistant (0.10.11ubuntu1) を設定しています ...
tp-smapi-source (0.37-3) を設定しています ...
sysfsutils (2.1.0-4) を設定しています ...
* Setting sysfs variables...                                            [ OK ]

パッケージをインストール後、

root@petit-laptop:~# module-assistant prepare tp-smapi
Getting source for kernel version: 2.6.27-13-generic
/usr/src/linux のカーネルヘッダを利用できます
symlink を作成中...
/usr/src/linux シンボリックリンクを作成できませんでした!
apt-get install build-essential
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
build-essential はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

完了!

root@petit-laptop:~# module-assistant auto-install tp-smapi

1 パッケージについての情報を更新しました
Getting source for kernel version: 2.6.27-13-generic
/usr/src/linux-headers-2.6.27-13-generic のカーネルヘッダを利用できます
symlink を作成中...
apt-get install build-essential
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
build-essential はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

完了!
unpack
Extracting the package tarball, /usr/src/tp-smapi.tar.bz2, please wait...
ターゲットのパッケージファイル
/usr/src/tp-smapi-modules-2.6.27-13-generic_0.37-3+2.6.27-13.29_i386.deb がすで
に存在するので、再ビルドはしません!
(however, you could use the -f switch to ignore it)
dpkg -Ei /usr/src/tp-smapi-modules-2.6.27-13-generic_0.37-3+2.6.27-13.29_i386.deb
未選択パッケージ tp-smapi-modules-2.6.27-13-generic を選択しています。
(データベースを読み込んでいます ... 現在 158517 個のファイルとディレクトリがインストールされています。)
(.../tp-smapi-modules-2.6.27-13-generic_0.37-3+2.6.27-13.29_i386.deb から) tp-smapi-modules-2.6.27-13-generic を展開しています...
tp-smapi-modules-2.6.27-13-generic (0.37-3+2.6.27-13.29) を設定しています ...

root@petit-laptop:~# echo "tp_smapi" >> /etc/modules
root@petit-laptop:~# echo "hdaps" >> /etc/modules

root@petit-laptop:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-2.6.27-13-generic
root@petit-laptop:~# modprobe -a tp_smapi hdaps

ここまでやったあとに、sysfs.confを開いて、

root@petit-laptop:~# gedit /etc/sysfs.conf

#
# /etc/sysfs.conf - Configuration file for setting sysfs attributes.
#
# The sysfs mount directory is automatically prepended to the attribute paths.
#
# Syntax:
# attribute = value
# mode attribute = 0600 # (any valid argument for chmod)
# owner attribute = root:wheel # (any valid argument for chown)
#
# Examples:
#
# Always use the powersave CPU frequency governor
# devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave
#
# Use userspace CPU frequency governor and set initial speed
# devices/system/cpu/cpu0/cpufreq/scaling_governor = userspace
# devices/system/cpu/cpu0/cpufreq/scaling_setspeed = 600000
#
# Set permissions of suspend control file
# mode power/state = 0660
# owner power/state = root:power

このあとに以下の2行を追加して再起動。

devices/platform/smapi/BAT0/start_charge_thresh=30
devices/platform/smapi/BAT0/stop_charge_thresh=85

と、ここまでを10日くらい前に行ったのですが、バッテリーの残量が減っていかないのですね。
Windowsの場合、省電力マネージャでパワー源最適化に設定していると、AC電源を差したままでユーザが設定した閾値までバッテリーを消費していき、再び充電を始めるという動作になるのですが、tp_smapiというのはそういうことが出来るモジュールではないのでしょうか?

それと、これは電源管理ではなくハードディスクプロテクションですけれども、Ubuntuの起動時に必ず、
* Not starting hdapsd: /sys/block/hda/queue/protect does not exist, please read /usr/share/doc/hdapsd/README.Debian
となってしまい、hdapsdをスタートすることが出来ません。
READMEを見てみると、

hdapsd for Debian
-----------------

hdapsd needs the hdaps kernel module and the hdaps_protect patch in the kernel
so it WON'T work out-of-the-box on a Debian machine yet.
Look at http://thinkwiki.org/wiki/HDAPS for additional information.

-- Evgeni Golov <[email protected]>  Tue, 12 Dec 2006 10:44:31 +0100

とのことで、動かないのになぜリポジトリに存在するのでせうか???
Windowsを完全に廃してUbuntuに移行しようと考えているのですが、この辺りがネックになっていて踏ん切りがつかずにおります。
どうか、お知恵を拝借させてください。
非常に長文で申し訳ありません。

最後の編集者: petitbootang (2009-03-24 00:08:59)

オフライン

 

#2 2009-03-16 19:31:42

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: [解決済]ThinkPadの電源管理で困っています。

システム起動後に、

petit@petit-laptop:~$ dmesg | grep tp_smapi
[   19.723499] tp_smapi 0.37 loading...
[   19.723637] tp_smapi successfully loaded (smapi_port=0xb2).

petit@petit-laptop:~$ dmesg | grep hdaps
[   19.748136] hdaps: LENOVO ThinkPad T60 detected, setting orientation 1
[   19.748230] hdaps: initial mode latch is 0x05
[   19.748399] hdaps: setting ec_rate=250, filter_order=2
[   19.748447] hdaps: fake_data_mode set to 0
[   19.748678] hdaps: device successfully initialized.
[   19.852159] hdaps: driver successfully loaded.

とすると、それぞれロードされていて一見正常に動作しているように見えるのですが…。

しかし再起動すると、ドライバを読み込んでいるところで、tp_smapiは特にエラーは出ないのですが、hdapsは* Not starting hdapsd: /sys/block/hda/queue/protect does not exist, please read /usr/share/doc/hdapsd/README.Debian
となってしまい、起動時に正常に読み込まれていないようです。

オフライン

 

#3 2009-03-16 19:33:51

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: [解決済]ThinkPadの電源管理で困っています。

http://www.thinkwiki.org/wiki/Tp_smapi

To force battery discharging (even if connected to AC):

    # echo 1 > /sys/devices/platform/smapi/BAT0/force_discharge

とあります.
/etc/sysfs.conf
にもう1行
devices/platform/smapi/BAT0/force_discharge = 1
を追加してみるのは如何がでしょう?

hdaps に関しては hdaps_ec をロードしろとありますね.

Installation on Ubuntu Hardy

Ubuntu ships tp_smapi in their linux-ubuntu-modules Package since Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified hdaps module to hdaps_ec. You should load hdaps_ec, not hdaps.

Some Ubuntu packages lack the hdaps_ec module, as reported here.

最後の編集者: einundzwanzighundertsechs (2009-03-16 20:11:25)

オフライン

 

#4 2009-03-16 22:49:43

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: [解決済]ThinkPadの電源管理で困っています。

einundzwanzighundertsechsさん

レスありがとうございます。

/etc/sysfs.conf
にもう1行
devices/platform/smapi/BAT0/force_discharge = 1
を追加してみるのは如何がでしょう?

これ、早速やってみまして、おぉー放電が始まったじゃないですか!と思って喜んでいたのですが、
閾値を越えてどんどん放電してしまって、シャットダウンまで行ってしまいますねぇ(^^;)

今試してみているこの例では、

devices/platform/smapi/BAT0/start_charge_thresh=30
devices/platform/smapi/BAT0/stop_charge_thresh=85

のように、30%まで容量が低下したら充電を始めて、85%まで達したら充電を止める、
のような動作をさせたいのですが、この記述ではやや上手くないようです。

オフライン

 

#5 2009-03-18 09:56:55

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: [解決済]ThinkPadの電源管理で困っています。

どうにも上手く行かないので試しに、
http://www.thinkwiki.org/wiki/Tp_smapi#Installation_from_source
のところにある、Installation on Debian unstable (sid), testing (squeeze) or stable (lenny)の
sudo m-a -t a-i tp-smapi というコマンドを打ち込んでみると、

petit@petit-laptop:~$ sudo m-a -t a-i tp-smapi
.
1 パッケージについての情報を更新しました
Getting source for kernel version: 2.6.27-13-generic
apt-get install linux-headers-2.6.27-13-generic
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
linux-headers-2.6.27-13-generic はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
symlink を作成中...
apt-get install build-essential
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
build-essential はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

完了!


残念ながらターゲットのカーネルバージョンに対するカーネルヘッダが見つからず、 利
用するためのほかの有効なカーネルヘッダも指定されていません。
     

However, you can install the header files for your kernel which are provided by
the linux-headers-2.6.27-13-generic package. For most modules packages, these
files are perfectly sufficient without having the original kernel source.

To install the package, run:

module-assistant prepare

または

apt-get install linux-headers-2.6.27-13-generic

とのことでした。
そこで、sudo apt-get install linux-source-`uname -r` としたところ、

E: パッケージ linux-source-2.6.27-13-generic が見つかりません

といわれてしまったので、仕方なく単に
sudo apt-get install linux-source としたところ、

petit@petit-laptop:~$ sudo apt-get install linux-source
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  linux-source
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
2978B 中 0B のアーカイブを取得する必要があります。
この操作後に追加で 32.8kB のディスク容量が消費されます。
未選択パッケージ linux-source を選択しています。
(データベースを読み込んでいます ... 現在 151310 個のファイルとディレクトリがインストールされています。)
(.../linux-source_2.6.27.14.17_all.deb から) linux-source を展開しています...
linux-source (2.6.27.14.17) を設定しています ...

2.6.27.14のソースがインストールされてしまいます。
uname -r でカーネルは2.6.27-13-generic なので、これでは余計に整合性が取れなくなってしまいますよね。
linux-headersはsynapticで見ると、
linux-headers-2.6.27-13-generi 2.6.27-13.29 となっています。

どうも、カーネル関係のバージョンが合っていないためのエラーで上手くビルド出来ないようなのですが、この辺りはどうしたら良いでしょうか…。

オフライン

 

#6 2009-03-19 11:42:08

jackalope
メンバ
登録日: 2009-01-01

Re: [解決済]ThinkPadの電源管理で困っています。

#1の
module-assistant auto-install tp-smapi

#5の
m-a -t a-i tp-smapi
はCUIかGUIの違いだけで同じコマンドなのですが、#1から#5の間に何か変更したのではないですか?
カーネル関係のバージョンは原因ではないでしょう。

オフライン

 

#7 2009-03-20 14:47:27

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: [解決済]ThinkPadの電源管理で困っています。

jackalopeさん による投稿:

#1の
module-assistant auto-install tp-smapi

#5の
m-a -t a-i tp-smapi
はCUIかGUIの違いだけで同じコマンドなのですが、#1から#5の間に何か変更したのではないですか?
カーネル関係のバージョンは原因ではないでしょう。

はい、まぁ確かに。
一番最初、まず何も入ってない状態のときにうまくいかなかったので、その後、カーネルのバージョンを上げたり下げたり…。
それに伴って、カーネルソースやヘッダーを色々入れたり出したり(汗

色々調べてみると、どうもUbuntuのデフォルトのカーネルではうまく動かず、パッチを当てる必要があるらしいのですが、そのパッチがどこにあるのかと、パッチの当て方が分からず(汗、汗

Linux歴だけはムダに長いのですが、ことこういったことになるとほぼお手上げ状態で(TT)

最後の編集者: petitbootang (2009-03-24 00:52:28)

オフライン

 

#8 2009-03-20 16:22:56

jackalope
メンバ
登録日: 2009-01-01

Re: [解決済]ThinkPadの電源管理で困っています。

Ubuntuのデフォルトのカーネルではうまく動かず、パッチを当てる必要があるらしいのですが

http://www.thinkwiki.org/wiki/Tp_smapi#Installation_on_Ubuntu_Hardy
パッチは必要ないようですが。。。

このようなページもあります。
http://www.krizka.net/2008/01/23/thinkpad-x61-tablet-tilt-detection-and-ubuntu-hardy-heron/

オフライン

 

#9 2009-03-20 18:42:45

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: [解決済]ThinkPadの電源管理で困っています。

jackalopeさん、ありがとうございます。

それがどうも、HardyとIntrepidでは仕様が違うようなのです。

オフライン

 

#10 2009-03-21 11:46:48

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: [解決済]ThinkPadの電源管理で困っています。

取り敢えず最初からやり直そうと思い、色々インストールしたものを削除しました。カーネルも現在のカーネルイメージ2.6.27-14-genericだけ残し、ソースやヘッダー、その他もすべて削除しました。

jackalopeさん による投稿:

このようなページもあります。
http://www.krizka.net/2008/01/23/thinkpad-x61-tablet-tilt-detection-and-ubuntu-hardy-heron/

ご紹介いただいたページを参考に、

petit@petit-laptop:$ sudo aptitude install build-essential kernel-header
petit@petit-laptop:$ sudo aptitude install tp-smapi-source

として、

petit@petit-laptop:$ cd /usr/src/modules/tp-smapi
petit@petit-laptop:/usr/src/modules/tp-smapi$ sudo make install HDAPS=1 KSRC=/usr/src/linux-headers-`uname -r`
make -C /usr/src/linux-headers-2.6.27-14-generic M=/usr/src/modules/tp-smapi O=/usr/src/linux-headers-2.6.27-14-generic modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.27-14-generic' に入ります
  CC [M]  /usr/src/modules/tp-smapi/thinkpad_ec.o
  CC [M]  /usr/src/modules/tp-smapi/tp_smapi.o
  CC [M]  /usr/src/modules/tp-smapi/hdaps.o
  Building modules, stage 2.
  MODPOST 3 modules
  CC      /usr/src/modules/tp-smapi/hdaps.mod.o
  LD [M]  /usr/src/modules/tp-smapi/hdaps.ko
  CC      /usr/src/modules/tp-smapi/thinkpad_ec.mod.o
  LD [M]  /usr/src/modules/tp-smapi/thinkpad_ec.ko
  CC      /usr/src/modules/tp-smapi/tp_smapi.mod.o
  LD [M]  /usr/src/modules/tp-smapi/tp_smapi.ko
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.27-14-generic' から出ます
rm -f /lib/modules//kernel/drivers/misc/{thinkpad_ec,tp_smapi,tp_base}.ko
rm -f /lib/modules//kernel/drivers/firmware/{thinkpad_ec,tp_smapi,tp_base}.ko
rm -f /lib/modules//kernel/extra/{thinkpad_ec,tp_smapi,tp_base}.ko
rm -f /lib/modules//kernel/drivers/hwmon/hdaps.ko
rm -f /lib/modules//kernel/extra/hdaps.ko
make -C /usr/src/linux-headers-2.6.27-14-generic M=/usr/src/modules/tp-smapi O=/usr/src/linux-headers-2.6.27-14-generic modules_install
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.27-14-generic' に入ります
  INSTALL /usr/src/modules/tp-smapi/hdaps.ko
  INSTALL /usr/src/modules/tp-smapi/thinkpad_ec.ko
  INSTALL /usr/src/modules/tp-smapi/tp_smapi.ko
  DEPMOD  2.6.27-14-generic
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.27-14-generic' から出ます
depmod -a

このあと、下記を実行

petit@petit-laptop:/usr/src/modules/tp-smapi$ sudo aptitude install hdaps-utils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます     
パッケージの状態を初期化しています... 完了
以下の新規パッケージがインストールされます:
  hdaps-utils
0 個のパッケージを更新、 1 個を新たにインストール、 0 個を削除予定、0 個が更新されていない。
8316B のアーカイブを取得する必要があります。 展開後に 81.9kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://archive.ubuntu.com intrepid/universe hdaps-utils 0.1-1.1 [8316B]
8316B を 1s 秒でダウンロードしました (7529B/s)
未選択パッケージ hdaps-utils を選択しています。
(データベースを読み込んでいます ... 現在 185489 個のファイルとディレクトリがインストールされています。)
(.../hdaps-utils_0.1-1.1_i386.deb から) hdaps-utils を展開しています...
Processing triggers for man-db ...
hdaps-utils (0.1-1.1) を設定しています ...
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます       
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了

特にエラーなく終了し、tp_smapi、hdapsd、hdaps-utilsの各モジュールがインストールされ、起動時に読み込まれるようになったようなのですが…

依然として、

30%まで容量が低下したら充電を始めて、85%まで達したら充電を止める、
のような動作

をしないのです。
もっと何か設定があるのか…。うーん。

オフライン

 

#11 2009-03-21 15:55:23

jackalope
メンバ
登録日: 2009-01-01

Re: [解決済]ThinkPadの電源管理で困っています。

こんなのもあります。
http://www.thinkwiki.org/wiki/Talk:Tp_smapi#battery_start.2Fstop_thresholds_saved_after_reboot.3F
こちらには環境がないのでこれ以上はコメントできません。

オフライン

 

#12 2009-03-24 00:08:14

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: [解決済]ThinkPadの電源管理で困っています。

jackalopeさん、色々とお手数をおかけしました。

どうも、#10を実行したあとで動作を始めたようです。
Windows下での動作に比べ、放電の仕方がかなり緩慢なので最初は気づかなかったのですが、ACを差したまま少しずつバッテリーを消費しているようです。
この辺りもまた設定の仕方があるのかも知れませんが…。

バッテリー駆動したあとにACを差しても、85%付近で充電を止めるので、そのことからも動作が裏付けられるようです。

どうもありがとうございました。

オフライン

 

Board footer

Powered by FluxBB