[gutsy] hdaps module does not load on Thinkpad T61P

Bug #133636 reported by Michael R. Head on 2007-08-20
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Tim Gardner
linux-source-2.6.22 (Ubuntu)
Tomas Rusnak

Bug Description

Binary package hint: linux-source-2.6.22

burner@phoenix:/usr/share/doc/hdapsd$ sudo modprobe hdaps FATAL: Error inserting hdaps (/lib/modules/2.6.22-9-generic/kernel/drivers/hwmon/hdaps.ko): No such device
burner@phoenix:/usr/share/doc/hdapsd$ dmesg | tail -n 2
[37697.820000] hdaps: supported laptop not found!
[37697.820000] hdaps: driver init failed (ret=-19)!

If I'm not mistaken, "Thinkpad T61P" needs to be added to hdaps_init() in drivers/hwmon/hdaps.c to support this new Thinkpad models.

Chuck Short (zulcss) wrote :

Added to my git tree. Thanks.

Changed in linux-source-2.6.22:
status: New → Fix Committed
Tim Gardner (timg-tpi) wrote :

Gutsy commit eaaf5978c397129fa6f4e20efc4394f9d64f9849

Changed in linux-source-2.6.22:
assignee: nobody → timg-tpi
importance: Undecided → Low
cullen (cullen+ubuntu) wrote :

I had the same results with my R61

cullen@lenny:~$ sudo modprobe hdaps
FATAL: Error inserting hdaps (/lib/modules/2.6.22-10-generic/kernel/drivers/hwmon/hdaps.ko): No such device

[25192.888000] hdaps: supported laptop not found!
[25192.888000] hdaps: driver init failed (ret=-19)!

Ben Collins (ben-collins) wrote :
Download full text (4.0 KiB)

linux-source-2.6.22 (2.6.22-11.32) gutsy; urgency=low

  [Amit Kucheria]

  * Build system: Allow custom builds to comprise multiple patches
  * Move UME to a Custom build and add first setup of thermal framework

  [Ben Collins]

  * ubuntu: Enable CONFIG_BLK_DEV_IO_TRACE
  * bcm203x: Fix firmware loading
    - LP: #85247
  * ubuntu: mtd changes caused module renaming. Ignore
  * rt: Do not patch top level Makefile for SUBLEVEL. Will always end up

  [Chuck Short]

  * [USB] Unusual Device support for Gold MP3 Player Energy
    - LP: #125250
  * [SIERRA] Adds support for Onda H600 ZTE MF330
    - LP: #129433
  * [HDAPS] Add Thinkpad T61P to whitelist.
    - LP: #133636
  * [USB] Add support for Toshiba (Novatel Wireless) HSDPA for M400.
    - LP: #133650

  [Kyle McMartin]

  * apparmor 10.3 hooks
  * unionfs 2.1 hooks
  * nuke UNION_FS stuff from fs/{Kconfig,Makefile}

  [Tim Gardner]

  * Paravirt-ops I/O hypercalls
  * Fix lazy vmalloc bug for Gutsy
  * bluetooth headset patch
    - LP: #130870
  * Add the PCI ID of this ICH4 in list of laptops that use short cables.
  * v2.6.22.5 merge
  * Update Xen config options.
    - LP: #132726
  * Remove mtd modules from ABI
  * Support parallel=<n> in DEB_BUILD_OPTIONS
    - LP: #136426

  [Upstream Kernel Changes]

  * hwmon: fix w83781d temp sensor type setting
  * hwmon: (smsc47m1) restore missing name attribute
  * sky2: restore workarounds for lost interrupts
  * sky2: carrier management
  * sky2: check for more work before leaving NAPI
  * sky2: check drop truncated packets
  * revert "x86, serial: convert legacy COM ports to platform devices"
  * ACPICA: Fixed possible corruption of global GPE list
  * ACPICA: Clear reserved fields for incoming ACPI 1.0 FADTs
  * AVR32: Fix atomic_add_unless() and atomic_sub_unless()
  * r8169: avoid needless NAPI poll scheduling
  * forcedeth: fix random hang in forcedeth driver when using netconsole
  * libata: add ATI SB700 device IDs to AHCI driver
  * Hibernation: do not try to mark invalid PFNs as nosave
  * i386: allow debuggers to access the vsyscall page with compat vDSO
  * x86_64: Check for .cfi_rel_offset in CFI probe
  * x86_64: Change PMDS invocation to single macro
  * i386: Handle P6s without performance counters in nmi watchdog
  * i386: Fix double fault handler
  * JFFS2 locking regression fix.
  * [Input]: appletouch - improve powersaving for Geyser3 devices
  * [Input]: add driver for Fujitsu serial touchscreens
  * [sdhci]: add support to ENE-CB714
  * v2.6.22.5
  * [MTD] Makefile fix for mtdsuper
  * ocfs2: Fix bad source start calculation during kernel writes
  * NET: Share correct feature code between bridging and bonding
  * sky2: don't clear phy power bits
  * uml: fix previous request size limit fix
  * i386: fix lazy mode vmalloc synchronization for paravirt
  * signalfd: fix interaction with posix-timers
  * signalfd: make it group-wide, fix posix-timers scheduling
  * DCCP: Fix DCCP GFP_KERNEL allocation in atomic context
  * IPV6: Fix kernel panic while send SCTP data with IP fragments
  * IPv6: Invalid semicolon after if statement
  * Fix soft-fp underflow handling.
  * Netfilter: Missing Kbuild entry for netfil...


Changed in linux-source-2.6.22:
status: Fix Committed → Fix Released
Tom Vetterlein (smbm) wrote :

Could R61 also be added to this? Would it be preferable to file a new bug?

Tomas Rusnak (linker) wrote :

same result with Lenovo Z61m

FATAL: Error inserting hdaps (/lib/modules/2.6.22-11-generic/kernel/drivers/hwmon/hdaps.ko): No such device

root@nerd:/home/linker# dmesg | tail -n 2
[ 394.984000] hdaps: supported laptop not found!
[ 394.984000] hdaps: driver init failed (ret=-19)!

Mikael Sennerholm (mikannet) wrote :

same same with Lenovo Thinkpad X61:

FATAL: Error inserting hdaps (/lib/modules/2.6.22-11-generic/kernel/drivers/hwmon/hdaps.ko): No such device
[ 4920.460000] hdaps: supported laptop not found!
[ 4920.460000] hdaps: driver init failed (ret=-19)!

jamesh (jamesrh) wrote :

I'm seeing this on a R61, gutsy tribe 5 with all the updates as of 9/18/07:

$ uname -a
Linux 2.6.22-11-generic #1 SMP Mon Sep 17 03:18:44 GMT 2007 x86_64 GNU/Linux

$ sudo modprobe hdaps
FATAL: Error inserting hdaps (/lib/modules/2.6.22-11-generic/kernel/drivers/hwmon/hdaps.ko): No such device

$ dmesg | tail -n 2
[ 5136.940234] hdaps: supported laptop not found!
[ 5136.940243] hdaps: driver init failed (ret=-19)!

Could someone add the Lenovo R61, X61, and Z61m to the whitelist in hdaps_init() in drivers/hwmon/hdaps.c to support the new Thinkpad models?

Also, to be proactive, we might want to add any other new Thinkpads with this technology that are not whitelisted (see the end of the page at:
http://www.thinkwiki.org/wiki/Active_Protection_System for a list)

Thanks a ton!

Tomas Rusnak (linker) wrote :

drivers/hwmon/hdaps.c have this part where the problem is:

struct dmi_system_id hdaps_whitelist[] = {
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad H"),
                 HDAPS_DMI_MATCH_INVERT("ThinkPad R50p"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad R50"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad R51"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad R52"),
                 HDAPS_DMI_MATCH_INVERT("ThinkPad T41p"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad T41"),
                 HDAPS_DMI_MATCH_INVERT("ThinkPad T42p"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad T42"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad T43"),
                 HDAPS_DMI_MATCH_LENOVO("ThinkPad T60p"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad X40"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad X41 Tablet"),
                 HDAPS_DMI_MATCH_NORMAL("ThinkPad X41"),
                 HDAPS_DMI_MATCH_LENOVO("ThinkPad X60"),
                { .ident = NULL }

This systems works out of the box, but the patch can be very simple, i mean :)

It's possible to reopen this bug and change status, or is better idea to open a new bug?

Nick Jenkins (nickpj) wrote :

Same problem on Feisty on a ThinkPad T40 ("hwmon/hdaps.ko): No such device"
error on loading the module, the "hdaps: supported laptop not found!" and
"hdaps: driver init failed (ret=-19)!" dmesg lines), so please also include
the T40 in the whatever the solution is for Gutsy if it hasn't already been

Nick Jenkins (nickpj) wrote :

Sorry, please disregard the above comment, as the T40 is not a supported model according
to http://www.thinkwiki.org/wiki/Active_Protection_System#Models_featuring_this_Technology
My sincere apologies for the bug-spam.

Tomas Rusnak (linker) wrote :

If we want to use hdaps module to protect our hdd, it could be good idea to implement disk protection patch, as you can read on http://www.thinkwiki.org/wiki/HDAPS. The one, for latest kernels (2.6.20,2.6.21 and 2.6.22), is in attachment. More information you can find on thinkwiki or directly on http://article.gmane.org/gmane.linux.drivers.hdaps.devel/993

gagarine (gagarine) wrote :

The module is loaded successful for me (i think)

[ 35.816635] hdaps: inverting axis readings.
[ 35.816638] hdaps: LENOVO ThinkPad T60 detected.
[ 35.817307] input: hdaps as /class/input/input3
[ 35.817367] hdaps: driver successfully loaded.

The package don't put the module on the /etc/modules to load it automatically so i do by hand:

$ sudo su
# echo "hdaps" >> /etc/modules
# exit
$ sudo modprobe hdaps

But after that the demon hdapsd don't start:
xx@area42:~$ sudo /etc/init.d/hdapsd start
 * Not starting hdapsd: /sys/block/hda/queue/protect does not exist

If y start hdaps-gl it run but if I move my computer the 3D image don't move....

I see the http://www.thinkwiki.org/wiki/Tp_smapi it's not on ubuntu package?

gagarine (gagarine) wrote :

Oups sorry i have a Thinkpad T60p

Tomas Rusnak (linker) wrote :

As you wrote:
 * Not starting hdapsd: /sys/block/hda/queue/protect does not exist

Are you sure, your hdd device is called hda? Because, if you have sata disk, then the correct path will be /sys/block/sda/queue/protect. Change your init script to correct it.

gagarine (gagarine) wrote :

Yeah i have a sda hd.

So I change the /etc/init.d/hdapds:

# PATH should only include /usr/* if it runs after the mountnfs.sh script
DESC="IBM Hard Disk Active Protection System (HDAPS) daemon"
DISK="sda" <- her i put sda

BUT when i restart the service:
gagarine@area42:~$ sudo /etc/init.d/hdapsd start
 * Not starting hdapsd: /sys/block/hda/queue/protect does not exist

I have the same error... I very don't understand :/

Tomas Rusnak (linker) on 2007-10-09
Changed in linux-source-2.6.22:
status: Fix Released → New
assignee: timg-tpi → linker

I just tried to load the hdaps module on my T61p, and it still doesn't work.

As far as I can tell, it is because the vendor in the whitelist is listed as IBM, when it in my dmidecode output is LENOVO. Also it shouldn't be necessary to have entries for both T61 and T61p, according to the comment at the top of the whitelist.

I would assume that the same problem exists for the R61, and maybe also for the Z60? The output from running

sudo dmidecode | grep -i Vendor:

should make it possible to determine this.

Tom Vetterlein (smbm) wrote :

My R61 outputs LENOVO.

gagarine (gagarine) wrote :

My T60p outputs:
gagarine@area42:~$ sudo dmidecode | grep -i Vendor:
        Vendor: LENOVO

Tomas Rusnak (linker) wrote :

Z61m give me this:

root@nerd:/home/linker# dmidecode | grep -i Vendor:
        Vendor: LENOVO

Sammy Spets (sammys) wrote :

X61 has the following:

pie:~# dmidecode | grep -i Vendor:
        Vendor: LENOVO

Sammy Spets (sammys) wrote :

FYI: A medium level bug was filed for T61 and it's been marked as Fix Released. I'm looking to switch to Ubuntu from Debian on my laptop and this is one of the few things causing me pain.

The bug is: https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/147383/

Jon Tai (jontai) wrote :

I have a T61 running 2.6.22-14-generic #1 SMP i686 GNU/Linux. The fix from #147383 should be in this kernel, but I still can't load the hdaps module (no such device, supported laptop not found, etc.)

jon@interceptor:~$ sudo dmidecode | grep -i Vendor:
        Vendor: LENOVO

Colin Watson (cjwatson) wrote :

Bumping from tribe-6 (!) to later. Please retarget as appropriate.

Changed in linux-source-2.6.22:
milestone: tribe-6 → later

I'm retargeting this bug towards the Hardy kernel release. Just to summarize the list of which vendors and models that needed to be added to the whitelist:

Lenovo Thinkpad Z61m
Lenovo Thinkpad X61
Lenovo Thinkpad R61
Lenovo Thinkpad T61p
Lenovo Thinkpad T61

If I've made an error or forgotten any, please add a comment. Thanks!

Changed in linux-source-2.6.22:
importance: Low → Medium
milestone: later → hardy-alpha-1
status: New → Triaged
Tomas Rusnak (linker) wrote :

Please add Z60m to list, too:

dmidecode | grep -i Vendor:
        Vendor: IBM

But after this, we have one another problem for full functional hdaps - we need a disk protection patch. Have anybody information about progress of this in ubuntu?

alcor (alcor-hiphouse) wrote :

same problem with LENOVO Thinkpad Z61P.

Anthony Squire (tony11235) wrote :

As far as I know I'm having the same problem. I have a Thinkpad T60. The module gets registered. But starting hdapsd fails. I changed the DISK variable in /etc/init.d/hdapsd to sda, but yet when I try to start hdapsd:

* Not starting hdapsd: /sys/block/hda/queue/protect does not exist

but "protect" doesn't even exist /sys/block/hda/queue/ nor does in the "hda" equivalent.

Same problem, X61 Tablet. getting the same "* Not starting hdapsd: /sys/block/hda/queue/protect does not exist message", and "modprobe hdapsd" results in a "FATAL: Error inserting hdaps (/lib/modules/2.6.22-14-generic/kernel/drivers/hwmon/hdaps.ko): Operation not permitted"

also, something to look at: "/sys/block/hda/queue/protect does not exist", and the Thinkpad X61 Tablet has an SDA drive.

Same problem with the X61 Tablet under Gutsy, running:
"sudo /etc/init.d/hdapsd start"
delivers the following:
"* Not starting hdapsd: /sys/block/sda/queue/protect does not exist"

Hi All,

I've got a few comments:

Tomas Rusnak: The IBM Thinkpad Z60m should already have support in the 7.10 gutsy gibbon release (HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad Z60m"), is included in the hdaps whitelist). Please verify it works.

Anthony Squire, irongrunty, and buster8079: Please verify you are experiencing the same problem (ie look for the "hdaps: supported laptop not found!" in your dmesg output. If you don't see this message, please open a new bug report. Otherwise please include your vendor information by providing the output of 'dmidecode | grep -i Vendor'

For everyone else, here is the updated list I've complied. We'll work on getting this into the Hardy Heron kernel now that it's been released. Thanks.

Lenovo Thinkpad Z61m
Lenovo Thinkpad Z61P
Lenovo Thinkpad X61
Lenovo Thinkpad R61
Lenovo Thinkpad T61p
Lenovo Thinkpad T61

Changed in linux:
importance: Undecided → Medium
status: New → Incomplete
Michael R. Head (burner) wrote :

Here's what I get on my T61p:

burner@phoenix:~$ sudo modprobe hdaps
FATAL: Error inserting hdaps (/lib/modules/2.6.22-14-generic/kernel/drivers/hwmon/hdaps.ko): No such device
burner@phoenix:~$ dmesg | tail -n 2
[ 579.104000] hdaps: supported laptop not found!
[ 579.104000] hdaps: driver init failed (ret=-19)!
burner@phoenix:~$ sudo dmidecode | grep -i Vendor
        Vendor: LENOVO
        Vendor Syndrome: Unknown
burner@phoenix:~$ sudo dmidecode | grep -i thinkpad
        Version: ThinkPad T61p
        Family: ThinkPad T61p
        String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06 ]-

Tomas Rusnak (linker) wrote :

2Leann Ogasawara: Thank you for your comment. I waiting for Z61m support, too. Hdaps module has been loaded successfully under Gutsy on Z60m. But I still have a problem with hdapsd daemon:

 sudo /etc/init.d/hdapsd start
 * Not starting hdapsd: /sys/block/hda/queue/protect does not exist

It's same problem, what about gagarine mentioned above.

Anthony Squire (tony11235) wrote :

Here's my output after a successful modprobe.

[ 180.308000] hdaps: inverting axis readings.
[ 180.308000] hdaps: LENOVO ThinkPad T60 detected.
[ 180.308000] hdaps: initial latch check good (0x01).
[ 180.308000] input: hdaps as /class/input/input8
[ 180.308000] hdaps: driver successfully loaded.

and after sudo /etc/init.d/hdapsd start

* Not starting hdapsd: /sys/block/hda/queue/protect does not exist

I guess I'll post a Thinkpad T60 related bug.

Thomas and Anthony, can one of you open a new bug report regarding hdapsd not starting for you? We like to restrict bug reports to target one specific issue. In this case this bug is about the module not even loading. Thanks!

Changed in linux:
assignee: nobody → ubuntu-kernel-team
status: Incomplete → Triaged
Steve Langasek (vorlon) on 2007-12-08
Changed in linux-source-2.6.22:
milestone: hardy-alpha-1 → none
Ben Collins (ben-collins) wrote :

Tim, please see about getting these trivial additions into our 2.6.24 kernel, and also getting it upstream somehow.

For others, please note that we will likely not fix this in gutsy.

Changed in linux-source-2.6.22:
status: Triaged → Won't Fix
Changed in linux:
assignee: ubuntu-kernel-team → timg-tpi
status: Triaged → In Progress

I just tried the attached patch on top of 2.6.24-rc5 on my T61p, and it makes hdaps-gl and hdapsd work as expected.

zdzichu (zdzichu-gmail) wrote :

Ad-hoc adding identifiers is half fix. External tp_smapi module supports more Thinkpads and should be merged upstream or in ubuntu.
See https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/45014

Tim Gardner (timg-tpi) wrote :

UBUNTU: SAUCE: hdaps module does not load on Thinkpad T61P

Changed in linux:
milestone: none → hardy-alpha-2
status: In Progress → Fix Committed
Tim Gardner (timg-tpi) wrote :

linux (2.6.24-2.3) hardy; urgency=low

  [Amit Kucheria]

  * LPIA: Add thermal framework from Intel
  * LPIA: Poulsbo-specific patches
  * LPIA: Add thermal framework from Intel

  [Tim Gardner]

  * SAUCE: hdaps module does not load on Thinkpad T61P
    - LP: #133636

  [Upstream Kernel Changes]

  * Rebased against 2.6.24-rc5

 -- Tim Gardner <email address hidden> Wed, 12 Dec 2007 13:58:52 -0700

Changed in linux:
status: Fix Committed → Fix Released
Stephan (stephanolbrich) wrote :

same here on R60:

[59804.636000] hdaps: supported laptop not found!
[59804.636000] hdaps: driver init failed (ret=-19)!

dmidecode | grep -i Vendor:
        Vendor: LENOVO

Marc MERLIN (marc-soft) wrote :

Sorry, I know this bug has had a lot of updates already, but it ended up leading me in the wrong direction, so I thought I'd give a comment:
On my Z61p, the module wouldn't load either and I patched it with my laptop ID before I even found this page, but even after loading, the module wasn't reporting any sensor info.
It's only later that I found/read that the built-in module in the kernel doesn't actually work for all thinkpads. On mine, I ended up installing tp_smapi-0.33 from http://www.thinkwiki.org/wiki/Tp_smapi with
make load HDAPS=1.
Only after that module was loaded, did I get hdaps-gl to show any tilting

Thnkpad T61p Model 6457-7WU
Hardy Heron Alpha 3

Upon installing hdapsd, I get the same:

Setting up hdapsd (1:0.0.20070803-1) ...
 * Not starting hdapsd: /sys/block/hda/queue/protect does not exist

Running lsmod, I see that hdaps is not loaded. modprobe hdaps works, and lsmod shows the driver as loaded:

hdaps 11168 0
input_polldev 6928 1 hda

But do_checkprotect still fails, and if I comment the call out for testing, the next failure is:

# /etc/init.d/hdapsd start
WARNING: Cannot open hdaps position input file /dev/input/hdaps/accelerometer-event (No such file or directory). You may be using an incompatible version of the hdaps module, or missing the required udev rule. Falling back to reading the position from sysfs (uses more power). Use '-y' to silence this warning.

Noel J. Bergman (noeljb) wrote :

> * Not starting hdapsd: /sys/block/hda/queue/protect does not exist

Fixed it to use sda instead of hda, but the same results. Nothing under /sys/block/*/queue has a protect entry.

Noel J. Bergman (noeljb) wrote :

See https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/45014 for a working solution. I have hdaps working now with Hardy.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers