Lid switch don't work on hp NC6000 laptop
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
acpi (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Regardless of whether my laptop lid is open or closed, I always get this:
root@peace:
state: open
This is the reason why when i close lid, my lcd monitor is still live.
ProblemType: Bug
Architecture: i386
DistroRelease: Ubuntu 8.10
LsUsb:
Bus 004 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 003: ID 093a:2510 Pixart Imaging, Inc.
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Package: linux-image-
ProcCmdLine: root=UUID=
ProcEnviron:
PATH=/
LANG=it_IT.UTF-8
SHELL=/bin/bash
ProcVersionSign
SourcePackage: linux
UnreportableReason: Questo non è un pacchetto Ubuntu genuino
I think this issue is cause by some bug in the BIOS of HP laptop. d/blacklist as below:
static int acpi_video_ bus_start_ devices( struct acpi_video_bus *video)
return acpi_video_ bus_DOS( video, 0, 0); bus_start_ devices( struct acpi_video_bus *video)
return acpi_video_ bus_DOS( video, 1, 0);
The OS control the hardware by running some AML(ACPI machine language) code in the BIOS, but some bug prevent the lid switch from working properly.
To solve this issue we have 3 choice:
1. Block the video.ko by adding a line in the /etc/modprobe.
blacklist video
The drawback of this method is that you will lose some function provide by the acpi/video, such like the notification of display switch, brightness change etc.
2. modify the kernel code and re-compile it:
find the video.c in the drivers/acpi directory in the kernel source tree, open it. Find the code as below:
{
}
change it to :
static int acpi_video_
{
}
Then re-compile and install the modified kernel and modules, after rebooting you will find that the lid switch works.
3. Export the DSDT of the laptop, modify it and override it in the kernell:
I don't think this is a good method. The DSDT is different from computer to computer, so maybe my hack to the DSDT is not suitble for you.