
Ubuntu日本語フォーラム

ログインしていません。
お世話になります。
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)
オフライン
システム起動後に、
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
となってしまい、起動時に正常に読み込まれていないようです。
オフライン
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)
オフライン
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%まで達したら充電を止める、
のような動作をさせたいのですが、この記述ではやや上手くないようです。
オフライン
どうにも上手く行かないので試しに、
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 となっています。
どうも、カーネル関係のバージョンが合っていないためのエラーで上手くビルド出来ないようなのですが、この辺りはどうしたら良いでしょうか…。
オフライン
#1の
module-assistant auto-install tp-smapi
と
#5の
m-a -t a-i tp-smapi
はCUIかGUIの違いだけで同じコマンドなのですが、#1から#5の間に何か変更したのではないですか?
カーネル関係のバージョンは原因ではないでしょう。
オフライン
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)
オフライン
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/
オフライン
jackalopeさん、ありがとうございます。
それがどうも、HardyとIntrepidでは仕様が違うようなのです。
オフライン
取り敢えず最初からやり直そうと思い、色々インストールしたものを削除しました。カーネルも現在のカーネルイメージ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%まで達したら充電を止める、
のような動作
をしないのです。
もっと何か設定があるのか…。うーん。
オフライン
こんなのもあります。
http://www.thinkwiki.org/wiki/Talk:Tp_smapi#battery_start.2Fstop_thresholds_saved_after_reboot.3F
こちらには環境がないのでこれ以上はコメントできません。
オフライン
jackalopeさん、色々とお手数をおかけしました。
どうも、#10を実行したあとで動作を始めたようです。
Windows下での動作に比べ、放電の仕方がかなり緩慢なので最初は気づかなかったのですが、ACを差したまま少しずつバッテリーを消費しているようです。
この辺りもまた設定の仕方があるのかも知れませんが…。
バッテリー駆動したあとにACを差しても、85%付近で充電を止めるので、そのことからも動作が裏付けられるようです。
どうもありがとうございました。
オフライン