Thinkpad X120eでtp_smapiをロードする方法

Thinkpad X120eでtp_smapiをロードする方法

私の新しいThinkpad X120eはUbuntu Nattyで見事に動作します。今私は得たいtp_smapiモジュールバッテリーの充電動作を制御できるようにします。残念ながら、「No Thinkpad Embedded Controller」(下)というメッセージが表示されます。

thinkwiki tp_smapiページでは、この場合BIOSのアップグレード。いくつかの古いBIOS(例:1.xIBMのBIOS

# apt-get install tp-smapi-dkms
...(works)...
# modprobe -v tp_smapi
WARNING: Error inserting thinkpad_ec (/lib/modules/2.6.38-7-generic/updates/dkms/thinkpad_ec.ko): No such device
FATAL: Error inserting tp_smapi (/lib/modules/2.6.38-7-generic/updates/dkms/tp_smapi.ko): No such device
# tail -1 /var/log/syslog
Apr 19 23:45:05 xilotl kernel: [ 5552.149408] thinkpad_ec: no ThinkPad embedded controller!
# dmidecode -s bios-version
8FET26WW (1.10 )

これを行う方法についての他のアイデアはありますか?

dmidecodeアップデート:(ie)の他の関連部分は次のとおりですdmidecode -t0 -t1 -t11

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
    Vendor: LENOVO
    Version: 8FET26WW (1.10 )
    Release Date: 03/09/2011
    ...

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: LENOVO
    Product Name: 0596CTO
    Version: ThinkPad X120e
    ...

Handle 0x0027, DMI type 11, 5 bytes
OEM Strings
    String 1: OEM default string

ベストアンサー1

ソースコードを編集してこれを行うことができましたthinkpad_ec.c

コードは、実行時dmidecode -t 11に出力に「IBM ThinkPad Embedded Controller」を参照する必要があると予想しています。ただし、新しいThinkpad X120eには、以下に記載されていない素晴らしい内蔵コントローラがありますdmidecode -t 11。その結果、「thinkpad_ec:ThinkPad組み込みコントローラがありません!」というエラーでコードが失敗します。

この確認を避けるために、現在ホワイトリストにあるThinkPadモデルのリストにThinkPad X120eを追加し、モジュールをthinkpad_ec.c再構築しました。正常にロードされ、宣伝されたとおり、/sys/devices/platform/smapi/BAT0でバッテリの充電停止しきい値を設定できました。


Thinkpad X120eユーザーで、tp_smapiモジュールを使用したい場合、モジュールのロード失敗を克服した方法は次のとおりです。

$ sudo su
# apt-get install tp-smapi-dkms
...(works)...
# modprobe -v tp_smapi
WARNING: Error inserting thinkpad_ec (/lib/modules/2.6.38-7-generic/updates/dkms/thinkpad_ec.ko): No such device
FATAL: Error inserting tp_smapi (/lib/modules/2.6.38-7-generic/updates/dkms/tp_smapi.ko): No such device
# tail -1 /var/log/syslog
Apr 19 23:45:05 xilotl kernel: [ 5552.149408] thinkpad_ec: no ThinkPad embedded controller!

キーファイルを編集し、vi /usr/src/tp-smapi-0.40/thinkpad_ec.c+とマークされた行を追加します。

diff --git a/thinkpad_ec.c b/thinkpad_ec.c
index a924d18..90d117e 100644
--- a/thinkpad_ec.c
+++ b/thinkpad_ec.c
@@ -460,6 +460,7 @@ static int __init check_dmi_for_ec(void)
                TP_DMI_MATCH("IBM", "ThinkPad A30"),
                TP_DMI_MATCH("IBM", "ThinkPad T23"),
                TP_DMI_MATCH("IBM", "ThinkPad X24"),
+               TP_DMI_MATCH("LENOVO", "ThinkPad X120e"),
                { .ident = NULL }
        };
        return dmi_find_substring(DMI_DEV_TYPE_OEM_STRING,

モジュールの再構築:

# dkms remove -m tp-smapi -v 0.40 --all
# dkms add -m tp-smapi -v 0.40
# dkms build -m tp-smapi -v 0.40
# dkms install -m tp-smapi -v 0.40
# modprobe tp-smapi

最後にこれを試してください:

# cd /sys/devices/platform/smapi/BAT0
# echo 60 > stop_charge_thresh

hwong557が述べたように、起動時に自動的にロードされるようにtp_smapi追加します。/etc/modules


tp_smapiモジュールマネージャの場合それとも、この修正を「正しい」方法で得ることができる知識がある人はいますか?これが「正しい」修正ですか? Thinkpad X120eをこのホワイトリストに永続的に追加する必要がありますか、または内蔵コントローラがあるかどうかを確認する他の方法はありますか?この変更や問題に対するその他の修正がアップストリームソースに追加されることを願っています。

おすすめ記事