Consegui fazer isso funcionar editando o código-fonte de thinkpad_ec.c
.
O código espera que, quando você executar dmidecode -t 11
, sua saída deve mencionar "IBM ThinkPad Embedded Controller". No entanto, o novo Thinkpad X120e tem um bom controlador incorporado que não é mencionado em dmidecode -t 11
. Como resultado, o código falhou com o erro "thinkpad_ec: no ThinkPad embedded controller!".
Para contornar essa verificação, adicionei o ThinkPad X120e à lista atual de modelos ThinkPad na lista de permissões em thinkpad_ec.c
e, em seguida, recompus o módulo. Ele foi carregado com sucesso e eu consegui definir o limite de carga parada da minha bateria em / sys / devices / platform / smapi / BAT0 como anunciado.
Se você é um usuário do Thinkpad X120e e deseja usar o módulo tp_smapi agora , aqui está como passei da falha de carregamento do módulo:
$ 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!
edite o arquivo crucial usando vi /usr/src/tp-smapi-0.40/thinkpad_ec.c
para adicionar a linha marcada com +:
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,
reconstrua o módulo:
# 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
e, finalmente, tente usá-lo:
# cd /sys/devices/platform/smapi/BAT0
# echo 60 > stop_charge_thresh
Como hwong557 menciona, adicione tp_smapi
a /etc/modules
para que ele seja carregado automaticamente na inicialização.
Se você é o mantenedor do módulo tp_smapi
ou outra pessoa experiente que consiga corrigir isso "certo": Essa é a correção "certa"? O Thinkpad X120e deve ser permanentemente adicionado a essa lista de permissões, ou existe outra maneira de verificar a existência do controlador incorporado? Espero que essa alteração ou alguma outra correção para o problema seja adicionada à origem do envio.