it87 (sensors) module broken, needs automatic adding of a kernel line during installation

Bug #418246 reported by Alexander Gordeev on 2009-08-24
160
This bug affects 25 people
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Medium
linux (Ubuntu)
Low
Unassigned
Nominated for Karmic by Stefan Divjak

Bug Description

Binary package hint: linux-generic

Hello.
I'm using Karmic with the latest kernel and default boot options. The "sensors" console utility doesn't show sensors information because kernel module "it87" cant load with new kernel.

After
$ sudo modprobe -v it87
insmod /lib/modules/2.6.31-6-generic/kernel/drivers/hwmon/it87.ko
FATAL: Error inserting it87 (/lib/modules/2.6.31-6-generic/kernel/drivers/hwmon/it87.ko): Device or resource busy

In dmesg output theese messages appeared

[ 674.364436] it87: Found IT8712F chip at 0x290, revision 5
[ 674.364505] ACPI: I/O resource it87 [0x295-0x296] conflicts with ACPI region IP__ [0x295-0x296]
[ 674.364511] ACPI: Device needs an ACPI driver

$ uname -a
Linux user-desktop 2.6.31-6-generic #26-Ubuntu SMP Fri Aug 21 17:48:16 UTC 2009 i686 GNU/Linux

But, it works with kernel boot options - "acpi=off" or "acpi=ht".

And it works with kernel 2.6.28-15 with default boot options

ProblemType: Bug
Architecture: i386
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: user 3158 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'ICH5'/'Intel ICH5 with ALC658D at irq 17'
   Mixer name : 'Realtek ALC658D'
   Components : 'AC97a:414c4781'
   Controls : 38
   Simple ctrls : 24
Date: Mon Aug 24 21:52:04 2009
DistroRelease: Ubuntu 9.10
Lsusb:
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Package: linux-generic 2.6.31.6.17
PccardctlIdent:

PccardctlStatus:

ProcCmdLine: root=UUID=2394eb88-f899-42b5-939e-c9d0a3dccfcb ro quiet splash
ProcEnviron:
 LANG=ru_RU.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-6.26-generic
RelatedPackageVersions:
 linux-backports-modules-2.6.31-6-generic N/A
 linux-firmware 1.16
RfKill:

SourcePackage: linux-meta
Uname: Linux 2.6.31-6-generic i686
WpaSupplicantLog:

dmi.bios.date: 08/17/2005
dmi.bios.vendor: Award Software International, Inc.
dmi.bios.version: FC
dmi.board.name: 8IPE1000
dmi.board.vendor: Gigabyte Technology Co., Ltd.
dmi.chassis.type: 3
dmi.modalias: dmi:bvnAwardSoftwareInternational,Inc.:bvrFC:bd08/17/2005:svn:pn:pvr:rvnGigabyteTechnologyCo.,Ltd.:rn8IPE1000:rvr:cvn:ct3:cvr:

Alexander Gordeev (a-gordeev) wrote :
tags: added: acpi conflict it87
Hernando Torque (htorque) wrote :

I can confirm this with a DFI Lanparty nF4 SLI-D board, but it seems this is actually expected behavior and not a bug: http://bugzilla.kernel.org/show_bug.cgi?id=13967

If everything worked fine before, you can try to add "acpi_enforce_resources=lax" or "acpi_enforce_resources=no" to the kernel line of your GRUB2 entries (or add it to the defaults in /etc/default/grub). This should make lm-sensors work again.

Changed in linux-meta (Ubuntu):
status: New → Confirmed
Alexander Gordeev (a-gordeev) wrote :

I added "acpi_enforce_resources=lax" and it works for me. dmesg is "clear", lm-sensors shows all information from it87. Thanks!

Dan Lenski (lenski) wrote :

I have the same problem here... motherboard is BIOSTAR TA780G+ with Athlon 64 x2 BE-2400 CPU. The acpi_enforce_resources=lax fix works for me as well.

So what's the deal... we have to wait for motherboard manufacturers to write correct ACPI drivers for their sensor chips? And flying pigs? :-(

Chris Coulson (chrisccoulson) wrote :

I'm confirming the issue here too. In case I don't get time to, would someone mind testing the latest mainline kernel from http://kernel.ubuntu.com/~kernel-ppa/mainline/ , to see if it an upstream issue?

Thanks

affects: linux-meta (Ubuntu) → linux (Ubuntu)
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Incomplete
tags: added: regression-potential
removed: acpi conflict it87
Stefan Divjak (stefan-divjak) wrote :

The above solution works for me as well. For the sake of others some more details:

- open /boot/grub/menu.lst
- find the line starting with "# kopt="
- do not uncomment the line, but append "acpi_enforce_resources=lax"
- save and close
- run update-grub
- reboot

aeneas (aeneascarver) wrote :

for the record: This workaround works for me as well

Riccardo 'c10ud' (c10ud) wrote :

this workaround works also here (Asus m2a-mx), karmic with 2.6.31-10-generic #34-Ubuntu SMP Wed Sep 16 01:09:15 UTC 2009 x86_64 GNU/Linux

Stefan Divjak (stefan-divjak) wrote :

Chris,

following your request I just checked with the latest mainline kernel, 2.6.32-020632rc1. The behaviour is exactly the same, a "modprobe it87" will only succeed if the kernel boots up with acpi_enforce_resources=lax.

But as Hernando wrote in post #2, this is the expected behaviour now. Seems the only hack-free (user friendly) solution would be adding the above kernel line during Ubuntu installation ("We just detected that your it87 conflicts ... blah ... normally safe to use but (whatever)... blah ... would you like the it87 to be activated anyway (yes/no)" - or something like that. :-)

Stefan Divjak (stefan-divjak) wrote :

This is the dmesg.txt after booting kernel 2.6.32-020632rc1 without the acpi_enforce_resources parameter set.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Stefan Divjak (stefan-divjak) wrote :

Detailed workaround if you are already using grub2:

- open /etc/default/grub
- insert GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"
- save and close
- run update-grub
- reboot

Stefan Divjak (stefan-divjak) wrote :

Switched to wishlist, as the more strict ACPI enforcement is actually not a bug, but a feature, and renamed appropiately.

Stefan Divjak (stefan-divjak) wrote :

...ok, at least renamed, as wishlist is no longer used.

summary: - it87 module error, ACPI conflict
+ it87 (sensors) module broken, needs automatic adding of a kernel line
+ during installation
Stefan Divjak (stefan-divjak) wrote :

== Regression details ==
Discovered in version: linux-image-2.6.31-6 (Karmic Alpha)
Last known good version: linux-image-2.6.28 (Jaunty)

Hi All,

I've linked this to the upstream bug report and dropped the importance from medium to low as this change was intentional and the noted workaround indeed works. I'm also going to move the regression-potential flag since this behavior is as expected. Thanks!

Changed in linux (Ubuntu):
importance: Medium → Low
status: Confirmed → Triaged
tags: removed: regression-potential
Changed in linux:
status: Unknown → Invalid
Mr. Captcha (mr-captcha) wrote :

Same here:

kernel: 2.6.31-13
ubuntu karmic koala

w83627hf: Found W83627HF chip at 0x290
ACPI: I/O resource w83627hf [0x295-0x296] conflicts with ACPI region IP__ [0x295-0x296]
ACPI: Device needs an ACPI driver

not possible to see sensor information

Hi!

Add kernel option:

acpi_enforce_resources=lax

and your it87-module will load

x Fokko

Mr. Captcha schrieb:
> Same here:
>
> kernel: 2.6.31-13
> ubuntu karmic koala
>
> w83627hf: Found W83627HF chip at 0x290
> ACPI: I/O resource w83627hf [0x295-0x296] conflicts with ACPI region IP__ [0x295-0x296]
> ACPI: Device needs an ACPI driver
>
> not possible to see sensor information
>
>

frell (lee) wrote :

fix works for Asus P5Q (Latest BIOS) with the w83627ehf module.

Although with this board i have to load the module with;

modprobe w83627ehf force_id=0x8860

But i always did... Dawn buggy Asus BIOS

rdratlos (rdratlos) wrote :

For owners of an Asus mainboard there is a better work-around than the dangerous "acpi_enforce_resources=lax" proposal described above:
http://www.ubuntu-forum.de/artikel/47250/workaround-lm-sensors-auf-ubuntu-9-10-mit-it87-chip-driver.html (German)

It recommends to compile and install lm-sensors 3.1.1 directly from Debian sources. This latest version of lm-sensors supports direct access to hwmon sensors in sysfs. For Asus boards all missing it87 sensors now appear as atk0110 sensors, when entering 'sensors' on the command line. After recompiling the ksensors package from Ubuntu karmic with libsensors4 support, the missing sensors can also be used and displayed by ksensors.

Hopefully, the new versions of lm-sensors and ksensors will be part of Ubunut jaunty.

MrMagne (mr.magne) wrote :

both solutions don't work for me. To be more precise either worked randomly. It seems that the devices are not mounted at the same time at each boot (ie. /sys/class/hwmon/hwmon2/fan1_input becomes /sys/class/hwmon/hwmon1/fan1_input), So fancontrol service is broken randomly.

Notice in the lm-sensors FAQ about this: http://www.lm-sensors.org/wiki/FAQ/Chapter3#Mysensorshavestoppedworkinginkernel2.6.31 there is a less hacky solution (for *some* ASUS users at least) by enabling the asus_atk0110 driver and updating lm-sensors. Could we at least have that done for Ubuntu rather than everyone using dangerous hacks?

tags: added: karmic

Hi all.

Two considerations here. Asus M2N.

1st: I've noticed that after a new kernel update, I have to type 'sudo update-grub', to apply again my "acpi_enforce_resources=lax" workaround.

2nd: At least in my case, lm-sensors 3.1+atk0110 driver, can display temps but not control fan3, which it87 can very sucessfully.

GavinC (gavin-cowie) wrote :

Re: Comment #20 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/418246/comments/20

There is a workaround for this 'side effect' of the 'lax' workaround...

http://ubuntuforums.org/showpost.php?p=8640528&postcount=7

"blacklist the unnecessary(?) k8temp module" - that seems to have the effect of 'stabilising' the flip flopping of the it87 vs atk0110 hwmon# references. Works in 2.6.31-17-server x64 kernel.

Gavin

Leo Milano (lmilano) wrote :

Has anyone tried in Lucid? The worlaround (acpi_enforce_resources=lax) works here in Karmic, but it doesn't in current Lucid.

leo@grisell:~$ dmesg |grep lax
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-2.6.32-15-server root=UUID=e1c15c83-23cf-4bfb-a043-ba9469332293 ro quiet splash acpi_enforce_resource=lax

leo@grisell:~$ sudo lshw |grep -i a7
    product: A7GM-S 2.0

leo@grisell:~$ sudo modprobe it87
FATAL: Error inserting it87 (/lib/modules/2.6.32-15-server/kernel/drivers/hwmon/it87.ko): Device or resource busy

Hernando Torque (htorque) wrote :

It's "acpi_enforce_resources" - seems you just missed the final 's'. :-)

Leo Milano (lmilano) wrote :

Ouch! Thanks Hernando!!! Yes, I can confirm that the workaround still works (and it's still needed, unfortunately)

Shambler0 (sendmespam) wrote :

niether "acpi_enforce_resources=lax" nor "acpi_enforce_resources=none" work with kernel 2.6.31-20.57 generic (karmic). "acpi=off" does work, but that disables soft-powerdown, Cool&Quiet, and more. That's better than non-working PWM anyway.

"acpi_enforce_resources=lax" still works whenever I load kernel 2.6.31-14.48 generic or older (I haven't tried kernel versions between 31-14 and 31-20 yet)

I am sure I typed everything correctly because I verified grub.cfg, and also because same kernel options shared between all my kernels.

asus_atk0110 loads, but lm-sensors 3.0.2-2ubuntu4 does not detect it (PLEASE add 3.1.1 to binary repositary!)
I haven't tested building 3.1.1 from source yet, because it is useless for me: that driver does not support PWMs, and my MB does not even have a built-in PWM control to rely on, like ASUS boards have.

M/B: EliteGroup, model "ECS NFORCE4-A939".
I have not yet observed any problems in having "acpi_enforce_resources=lax" on that board.

home ~ # sensors -s
home ~ # sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +32.0°C (crit = +70.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +30.0°C

home ~ # modprobe it87
FATAL: Error inserting it87 (/lib/modules/2.6.31-20-generic/kernel/drivers/hwmon/it87.ko): Device or resource busy

home ~ # dmesg | grep acpi_enforce
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.31-20-generic root=UUID=XXX ro acpi_enforce_resources=lax

home ~ # dmesg | grep it87
[ 3624.776062] it87: Found IT8712F chip at 0x290, revision 7
[ 3624.776074] it87: in3 is VCC (+5V)
[ 3624.776077] it87: in7 is VCCH (+5V Stand-By)
[ 3624.776140] ACPI: I/O resource it87 [0x295-0x296] conflicts with ACPI region IP__ [0x295-0x296]

================ TIP: If your sensors get mixed each time you reboot ================

If your sensor devices are switched / swapped / mixed / changed randomly on every boot (hwmon0 <--> hwmon1), and disabling all but one of them is not an option, try this workaround:

Run "ls -l /sys/bus/i2c/devices" -- you'll get a list of symlinks:

# ls -l /sys/bus/i2c/devices
lrwxrwxrwx 1 root root 0 2010-03-19 08:09 hwmon0 -> ../../../devices/virtual/hwmon/hwmon0
lrwxrwxrwx 1 root root 0 2010-03-19 05:10 hwmon1 -> ../../../devices/pci0000:00/0000:00:18.3/hwmon/hwmon1

Open /etc/fancontrol ("sudo gedit /etc/fancontrol")

Replace all symlink filenames (like "hwmon1/device/pwm1") with what symlinks actually point to, complete with "../../.."

So, for example, a line
  hwmon1/device/pwm1=hwmon1/device/temp1_input
should become:
  ../../../devices/pci0000:00/0000:00:18.3/pwm1=../../../devices/pci0000:00/0000:00:18.3/temp1_input
It looks ugly, but it works....

Be sure NOT to insert "/hwmon/hwmon1/device/", so it should NOT look like "../../../devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/device/temp1_input", because that "/hwmon1/" part is still random.

This also does NOT work with virtual devices. I suggest writing a shell script to create symlinks to them somewhere else.

Shambler0 (sendmespam) wrote :

Minutes after writing this report, I found that I missed an update.
"acpi_enforce_resources=lax" is again respected in kernel 2.6.31-20.58 generic, so it is a bug in 2.6.31-20.57 or earlier.

Aymeric (mulx) wrote :

On an ASUS P5VDC-MX asus_atk0110 doesn't find any sensors.
Using acpi_enforce_resources=lax + it87 allow me to see all sensors previously see on Ubuntu Hardy.

Description: Ubuntu 10.04.1 LTS
Release: 10.04

Changed in linux:
status: Invalid → Fix Released
Changed in linux:
importance: Unknown → Medium
Vortex (ecbeachbum) wrote :

This bug happens after upgrading from 10.10 to 11.04

and is similar to:

https://bugs.launchpad.net/ubuntu/+source/sensors-applet/+bug/751258?comments=all

This bug was filed against a series that is no longer supported and so is being marked as Won't Fix. If this issue still exists in a supported series, please file a new bug.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.