However now you have thermal and everything else that you need.
Again, there is no need to do DSDT-decompiling/compiling.
How good for you that you understand !. Shame that you don't understand that you're not the only one reading on this forum and that posts are rarely read by one single person.
But now perhaps you do...
Hi Red_Lion,
Please don't overreact to some "constructive" criticism.
Looking for the bezel buttons in the DSDT, or at least trying to find where they are mapping their signal, seems perfectly reasonable. It makes as much or more sense than things I have tried.
Right now my suspicion is the signal is directed to the HP-WMI kernel module. MisteR2 discovered that's where the swivel hinge signal was going. He persuaded Matthew Garrett to seperate the signal out of the docking event and provide a patch. We almost have auto-magic rotation now. See Recent News towards the bottom here: http://ubuntuforums.org/showthread.php?p=6274392
Please take a look. We still haven't quite figured it out. Running a script isn't quite auto-magic.
Hehe... I try to fix this with no patching.
It's runnig under user:
Also this make work remoute/bezel buttons in tablet mode (need run under root)Code:#!/bin/bash old="0" while true; do if [[ -e /sys/devices/platform/hp-wmi/dock ]]; then new=`cat /sys/devices/platform/hp-wmi/dock` if [[ $new != $old ]]; then if [[ $new == "0" ]]; then echo "Rotate to normal, hide cellwriter" xrandr -o normal xsetwacom set stylus rotate NONE xsetwacom set touch rotate NONE xsetwacom set eraser rotate NONE cellwriter --hide-window elif [[ $new == "4" ]]; then echo "Rotate to tablet, show cellwriter" xrandr -o right xsetwacom set stylus rotate CW xsetwacom set touch rotate CW xsetwacom set eraser rotate CW cellwriter --show-window fi fi old=$new sleep 1s fi done
Also (if we go back to DSDT) look to this:Code:#!/bin/bash old="0" while true; do if [[ -e /sys/devices/platform/hp-wmi/dock ]]; then new=`cat /sys/devices/platform/hp-wmi/dock` if [[ $new != $old ]]; then echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind echo -n "i8042" > /sys/bus/platform/drivers/i8042/bind fi old=$new sleep 1s fi done
If you see "Method (GBBV, 0, NotSerialized)" (i will find this by QBBB) you will see what all events listed in _Q16 not present in GBBV (it's hp_wmi?)Code:Method (_Q16, 0, NotSerialized) { Store ("!!! DVD/Music Button pressed !!!", Debug) Store (QBBB, Local0) If (LEqual (Local0, 0x03)) { Notify (MBTN, 0x02) } If (LEqual (Local0, 0x06)) { Notify (PBTN, 0x02) } If (LEqual (Local0, 0x09)) { Notify (VBTN, 0x02) } If (LEqual (Local0, 0x12)) { Notify (TBTN, 0x02) } Store (0x04, ^^^^WMID.WEID) Store (Zero, ^^^^WMID.WEDT) Notify (WMID, 0x80) }
Last edited by Red_Lion; August 4th, 2009 at 05:41 PM.
Hi Red_Lion,
Right, that's my guess, HP-WMI.
Are you are saying this works for you?:
It gives you auto-magic rotation? How exactly are you setting it up under "user"?Code:#!/bin/bash old="0" while true; do if [[ -e /sys/devices/platform/hp-wmi/dock ]]; then new=`cat /sys/devices/platform/hp-wmi/dock` if [[ $new != $old ]]; then if [[ $new == "0" ]]; then echo "Rotate to landscape" xrandr -o normal xsetwacom set stylus rotate NONE xsetwacom set touch rotate NONE xsetwacom set eraser rotate NONE elif [[ $new == "4" ]]; then echo "Rotate to portrait" xrandr -o right xsetwacom set stylus rotate CW xsetwacom set touch rotate CW xsetwacom set eraser rotate CW fi fi old=$new sleep 1s fi done
Are you on Jaunty (9.04)?
On non patched hp_wmi - work.
Need run under user in xorg (just save, +x, and put in in autostart in gnome/kde/xfce...).
If you rotate screen to tablet mode - this script rotate stilys/eraser (but see - here is no touch - i broken him, so not put in to script by hands) to left-handed and show cellwriter. If you in normal "notebook" mode - normal rotation and autohide cellwriter (in mode change only).
Just run on non patchen hp_wmi - you will see
If i not mistake it's you call "magic rotation"?
// Also - i on archlinux This script was also tested on 8.10, 9.04
Hi Red_Lion,
You must be using Kubuntu Jaunty (9.04).
I understand you now. You are using the unpatched HP-WMI and using the "docking event" as the trigger. Clever.
Unfortunately that won't work for Intrepid (or Hardy) because there is no HP-WMI.
Code:$ lsmod wmi 15808 0 dock 18592 1 libataCode:~$ modinfo -d wmi ACPI-WMI Mapping DriverSo there is no "hp-wmi/dock" in "/sys/devices/platform/". Instead there is "/sys/module/wmi", "/sys/bus/acpi/drivers/wmi", and "/sys/module/dock". Oh well.Code:$ modinfo -d dock ACPI Dock Station Driver
Ohh... About 8.10 - sorry - i think what anover ubuntu user who use this script is on 8.10.
I know what a say now is naive (i don't know can be compiled on 8.10) - but try to compile and install hp_wmi in my attachment.
Bookmarks