Hi Aitor! Anno domini 2019 Mon, 4 Mar 10:21:09 +0100 aitor_czr scripsit: > Hi Nik, > > On 4/3/19 9:52, Dr. Nikolaus Klepp <dr.kl...@gmx.at> wrote: > > Hi! > > > > I am trying to build a patched thinkpad_acpi module for 4.19 kernel (the > > patch removes the spaming error message from the battery charge/discharge > > levels BCTG/BCSG on thinkpads T60/T61/X61). I can build the module, but the > > creaded module won't load. > > > > This is what I did to compile the modules: > > > > # aptitude install linux-source-4.19 > > # cd /usr/src > > # tar xJf linux-source-4.19.tar.xz > > # cd linux-source-4.19/ > > # cp /boot/config-4.19.0-2-amd64 .config > > # make modules_prepare > > # make modules > > > > This succeeds, but the created modules won't load: > > > > root@t61:/usr/src/linux-source-4.19# insmod > > ./drivers/platform/x86/thinkpad_acpi.ko > > insmod: ERROR: could not insert module > > ./drivers/platform/x86/thinkpad_acpi.ko: Invalid module format > > root@t61:/usr/src/linux-source-4.19# file > > ./drivers/platform/x86/thinkpad_acpi.ko > > ./drivers/platform/x86/thinkpad_acpi.ko: ELF 64-bit LSB relocatable, > > x86-64, version 1 (SYSV), > > BuildID[sha1]=571675351aecfb803c56549d218d85d53f60b8d7, with debug_info, > > not stripped > > > > Any idea what I missed? > > > > Nik > > Where can we find the sources of this patched module? Did you give a try > to module assistant?
It's just a patch for my laptop, nothing special. How should I use module-assistant? I thought it was just for already-pprepared module packages, not arbitrary kernel modules? Anyway, I finaly manged to build the patched module: # mkdir /usr/src/thinkpad_acpi # cd /usr/src/thinkpad_acpi # echo 'obj-$(CONFIG_THINKPAD_ACPI) += thinkpad_acpi.o' > Makefile # cp ../thinkpad_acpi.c . # make -C /usr/src/linux-headers-$(uname -r ) M=/usr/src/thinkpad_acpi # insmod thinkpad_acpi.ko # And it works, no more error spam im dmesg :-) Nik > > Aitor. -- Please do not email me anything that you are not comfortable also sharing with the NSA, CIA ...
--- ./linux-source-4.19/drivers/platform/x86/thinkpad_acpi.c 2019-01-16 22:04:38.000000000 +0100 +++ thinkpad_acpi.c 2019-03-04 11:44:55.480443068 +0100 @@ -9315,6 +9315,8 @@ static acpi_status tpacpi_battery_acpi_e static int tpacpi_battery_get(int what, int battery, int *ret) { + return -ENODEV; + switch (what) { case THRESHOLD_START: if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_START, ret, battery)) @@ -9384,41 +9386,6 @@ static int tpacpi_battery_probe(int batt * 3) Get the current stop threshold * 4) Check for support */ - if (acpi_has_method(hkey_handle, GET_START)) { - if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_START, &ret, battery)) { - pr_err("Error probing battery %d\n", battery); - return -ENODEV; - } - /* Individual addressing is in bit 9 */ - if (ret & BIT(9)) - battery_info.individual_addressing = true; - /* Support is marked in bit 8 */ - if (ret & BIT(8)) - battery_info.batteries[battery].start_support = 1; - else - return -ENODEV; - if (tpacpi_battery_get(THRESHOLD_START, battery, - &battery_info.batteries[battery].charge_start)) { - pr_err("Error probing battery %d\n", battery); - return -ENODEV; - } - } - if (acpi_has_method(hkey_handle, GET_STOP)) { - if ACPI_FAILURE(tpacpi_battery_acpi_eval(GET_STOP, &ret, battery)) { - pr_err("Error probing battery stop; %d\n", battery); - return -ENODEV; - } - /* Support is marked in bit 8 */ - if (ret & BIT(8)) - battery_info.batteries[battery].stop_support = 1; - else - return -ENODEV; - if (tpacpi_battery_get(THRESHOLD_STOP, battery, - &battery_info.batteries[battery].charge_stop)) { - pr_err("Error probing battery stop: %d\n", battery); - return -ENODEV; - } - } pr_info("battery %d registered (start %d, stop %d)", battery, battery_info.batteries[battery].charge_start,
_______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng