"eeepc_wmi: Unknown key 88 pressed" when pressing Fn+F2 on Asus EEE1005HA

Bug #662365 reported by Giacomo Ritucci
44
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Linux
Fix Committed
Undecided
Gary M
linux (Ubuntu)
Fix Released
Undecided
Ike Panhc

Bug Description

I have installed Ubuntu 10.10 Netbook Edition on my EEE1005HA and I cannot switch the wlan off.

The hotkey is Fn + F2, but pressing it causes this line in dmesg:

[12904.545256] eeepc_wmi: Unknown key 88 pressed

Other hotkeys are working fine.

Regards,
Giacomo

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: linux-image-2.6.35-22-generic 2.6.35-22.34
Regression: Yes
Reproducible: Yes
ProcVersionSignature: Ubuntu 2.6.35-22.34-generic 2.6.35.4
Uname: Linux 2.6.35-22-generic i686
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.23.
AplayDevices:
 **** List of PLAYBACK Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC269 Analog [ALC269 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
Architecture: i386
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC269 Analog [ALC269 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: giacomo 1438 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xf7db8000 irq 44'
   Mixer name : 'Realtek ALC269'
   Components : 'HDA:10ec0269,104383ce,00100004'
   Controls : 10
   Simple ctrls : 6
Date: Sun Oct 17 21:55:45 2010
HibernationDevice: RESUME=UUID=0c736de0-8033-45b8-89b2-9735502c32bd
InstallationMedia: Ubuntu-Netbook 10.10 "Maverick Meerkat" - Release i386 (20101007)
MachineType: ASUSTeK Computer INC. 1005HA
ProcCmdLine: BOOT_IMAGE=/vmlinuz-2.6.35-22-generic root=UUID=23305b0e-7b8e-4deb-a378-a3fb17325fcc ro quiet splash
ProcEnviron:
 LANG=en_US.utf8
 SHELL=/bin/bash
RelatedPackageVersions: linux-firmware 1.38
RfKill:
 0: phy0: Wireless LAN
  Soft blocked: no
  Hard blocked: no
SourcePackage: linux
dmi.bios.date: 10/16/2009
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 1102
dmi.board.asset.tag: To Be Filled By O.E.M.
dmi.board.name: 1005HA
dmi.board.vendor: ASUSTeK Computer INC.
dmi.board.version: x.xx
dmi.chassis.asset.tag: 0x00000000
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK Computer INC.
dmi.chassis.version: x.x
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr1102:bd10/16/2009:svnASUSTeKComputerINC.:pn1005HA:pvrx.x:rvnASUSTeKComputerINC.:rn1005HA:rvrx.xx:cvnASUSTeKComputerINC.:ct10:cvrx.x:
dmi.product.name: 1005HA
dmi.product.version: x.x
dmi.sys.vendor: ASUSTeK Computer INC.

Revision history for this message
Giacomo Ritucci (rjack) wrote :
Revision history for this message
Ike Panhc (ikepanhc) wrote :

I will see what I can do

Changed in linux (Ubuntu):
assignee: nobody → Ike Panhc (ikepanhc)
status: New → In Progress
Revision history for this message
Dalius (dalius-sandbox) wrote :

I have EEE1101HA and I experience some problems with functional buttons as well.

I have set acpi_osi=Linux in grub and that helped with some buttons (wlan, brightness and most probably suspend - I have not checked if suspend was not working before).

Power button produces unknown key 57. Other power like looking button produces unknown key 6b. I'm not sure if I remember key codes correctly (I will check that later today and correct if I'm wrong).

I might be slow to respond but I would be more than happy if I could help to solve those problems. I'm not afraid to play with my system.

Revision history for this message
Gary M (garym) wrote :

@Ike, I've already started a small patch for this upstream which is under discussion with some wmi developers.

Changed in linux:
assignee: nobody → Gary M (garym)
status: New → In Progress
Revision history for this message
Ike Panhc (ikepanhc) wrote :

Hi,

Could you please to try the kernel at http://people.canonical.com/~ikepanhc/lp/662365/ and see if it fix the problem.

Revision history for this message
PrebenR (randhol) wrote :

Hi

I tested the kernel linked above. It removed the complaints about unknown key, but wireless is not turned on. The kernel modules are not loaded etc... Does this mean there is another problem, or is it still related to this error?

Revision history for this message
PrebenR (randhol) wrote :

After adding acpi_osi=Linux in grub, the default ubuntu kernel again works and wireless is working. If I do the same with the patched kernel above, it doesn't work. So apart from no error messages the patched kernel is a regression for me.

System. asus eee 1000H

Revision history for this message
Ike Panhc (ikepanhc) wrote :

Hi PrebenR,

Can you attach the DSDT so that I can try to know what happen..

Here is the step by step for get DSDT from BIOS.

# sudo cp /sys/firmware/acpi/tables/DSDT .
# sudo iasl -d ./DSDT # sudo apt-get install iasl if iasl is not installed.

Then please attach DSDT.dsl

Revision history for this message
PrebenR (randhol) wrote :

Here is the DSDT.dsl with acpi_osi=Linux in grub

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

The real problem is not the "unknown key" message but the fact that Fn+F2 sort of works, turning the wireless led on and off on Asus Eee PC 1000H and fatally confusing rt2800pci:

1. disable wireless via network-manager

2. press Fn+F2 (led goes off)

3. press Fn+F2 again (led goes on)

4. try to enable wireless via network-manager

In dmesg:

[ 603.242683] eeepc_wmi: Unknown key 88 pressed
[ 621.596234] phy0 -> rt2800_wait_csr_ready: Error - Unstable hardware.
[ 621.596765] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register access failed: offset=0x00007010, value=0xffffffff

If wireless is not disabled via network-manager prior to pressing Fn+F2, the kernel log gets permanently flooded with this last line, but with different offset values. The only way to recover is to reboot.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

dmesg output when pressing Fn+F2 twice and reenabling wireless in network-manager (I replaced the hwaddress of the access point with xx:xx:xx:xx:xx:xx) on Asus Eee PC 1000H.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

It turns out to be that the (only?) proper way to disable wireless on 1000H is to disconnect the wireless card logically from the PCI bus:

# echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove

This doesn't change the status of the wireless LED, but reliably disables the device without causing any trouble. To re-enable wireless run

# echo 1 > /sys/bus/pci/rescan

I don't know whether an ACPI script or the kernel itself should take care of this peculiarity of 1000H.

Natty, kernel 2.6.37-11.25

Revision history for this message
PrebenR (randhol) wrote :

I don't understand. The wireless has worked fine before. Both led goes on and off and so does the device. Why can't you make this work in the new kernels/system? Cannot have a system where one have to disable wireless connection before one can turn off the wireless device. This doesn't make sense.

So I suggest looking at how this has been done in the past.

Now I have the problem that I have to run the kernel with
acpi_osi="Linux". This in turns leads to a problem that if I want to increase the volume using the multimedia keys, then it is always done twice. And the system lags somewhat when one increase/decrease the sound. If I turn off acpi_osi="Linux" this doesn't happen, but then wireless is not working.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

@PrebenR:

> The wireless has worked fine before.

On Lucid: yes, but 'pciehp.pciehp_force=1' boot option was required.

> Why can't you make this work in the new kernels/system?

Because newest kernels switched from eeepc_laptop to eeepc_wmi driver for Windows7-capable Eee PC laptops. The latter doesn't provide PCI hot-plugging, which is needed for Ralink rt2860 hardware in 1000H. On the other hand, 'pciehp_force=1' option is not necessary anymore.

> Now I have the problem that I have to run the kernel with
> acpi_osi="Linux".

acpi_osi option is ignored on 1000H with 2.6.37 kernels and the newest BIOS (2204) I refer to. Either you run an older kernel or you don't have the newest BIOS.

Revision history for this message
Corentin Chary (iksaif) wrote :

First, please CC me for any eeepc-laptop/asus-laptop/eeepc-wmi bugreport, because I wasn't aware of this issue until today.

 I'd be glad to fix this issue, but I don't have the hardware. Could someone (with access to a 1000h) report the issue to <email address hidden> mailing list ? Maybe someone can help here.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

> First, please CC me for any eeepc-laptop/asus-laptop/eeepc-wmi bugreport

Done for this one.

> I'd be glad to fix this issue, but I don't have the hardware.

Would it be possible for you to buy a second-hand 1000H from a donation to <http://dev.iksaif.net/projects/acpi4asus>? If yes, could you please quantify the required costs?

Revision history for this message
Corentin Chary (iksaif) wrote :

>> I'd be glad to fix this issue, but I don't have the hardware.
>
> Would it be possible for you to buy a second-hand 1000H from a donation to <http://dev.iksaif.net/projects/acpi4asus>? If yes, could you please quantify the required costs?

A second hand 1000h seems to cost 200 euros, currently the total of donation (mainly from flattr) is 5 euros... (I think I'll start a donation page on the wiki to list what we need and what we have).

It's why we should first try to find someone on platform-x86 who have the hardware, and is able to fix the bug.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

> currently the total of donation (mainly from flattr) is 5 euros...

This should be fixed by now.

> It's why we should first try to find someone on platform-x86
> who have the hardware, and is able to fix the bug.

I trust your words "I'd be glad to fix this issue", so this would be only a second-best option for me.

Revision history for this message
PrebenR (randhol) wrote :

I can help out, if you tell me what to do. I did a new reinstall of Ubuntu 10.10 as I change HDD on my 1000H and now I cannot get the wireless to work at all. Even with acpi_osi. Maybe I forgot to install the eee package. I'll check later

Revision history for this message
PrebenR (randhol) wrote :

@Ilja

Why should somebody using Ubuntu suffer because of Windows 7? I don't get this.

Revision history for this message
PrebenR (randhol) wrote :

@Corentin

Could you proved a link to a subscription page for : <email address hidden> ?

Revision history for this message
Corentin Chary (iksaif) wrote :

@PrebenR

Windows 7 support changed how the BIOS behaves, and eeepc-laptop/eeepc-wmi drivers directly depends on the BIOS.
You don't need to subscribe to platform-driver-x86 to send a mail, but if you want to, all you need is here: http://vger.kernel.org/majordomo-info.html.
Anyway, I should get a 1000h soon, and I should be able to fix the issue.

Revision history for this message
PrebenR (randhol) wrote :

Thanks!

Just curious: So you mean if I upgraded my firmware then BIOS would change because of Window 7 support? I think I already did upgrade it to the latest version some 7-8 months back. Or is it a change in newer models > eee 1000 ?

Anyway please let me know if you need me to test anything. Currently I'm struggling to get the wireless to work at all.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

@PrebenR

> Currently I'm struggling to get the wireless to work at all.

This is very off-topic here, but you should probably blacklist rt2800pci once you use Maverick, as it fights with rt2860sta for your hardware. On Natty, rt2800pci has matured and works fine. You could choose freely between rt2800pci and rt2860sta if you installed Natty. Still, you must blacklist one of the concurrent drivers.

Sorry for bugspam.

Revision history for this message
PrebenR (randhol) wrote :

Is finding a workaround (until problem is fixed) spam now?

I need my wireless working, but for some reason nothing works now after I reinstalled. Thanks for your tip, but it still didn't work. I'll search other forums for a solution though...

Revision history for this message
PrebenR (randhol) wrote :

@ Ilja

Thanks, finally I got it working. Had to add rt2800lib to blacklist as well (ref:https://wiki.archlinux.org/index.php/Asus_Eee_PC_1000HE#WiFi). Now it works as before with the 2.6.35 kernel.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

> acpi_osi option is ignored on 1000H with 2.6.37 kernels
> and the newest BIOS (2204) I refer to.

This is not more true for 2.6.38-1.28 Natty kernel, the acpi_osi=Linux workaround is available again and unfortunately temporarily necessary, as backlight adjustment is broken by <http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=677bd810eedce61edf15452491781ff046b92edc>, waiting for the fix in <https://bugzilla.kernel.org/show_bug.cgi?id=27702> to be applied.

Revision history for this message
Corentin Chary (iksaif) wrote :

A fixed version of eeepc-wmi is now in linux-next.

It's also available directly from http://git.iksaif.net/?p=acpi4asus.git

To build eeepc-wmi.ko for an older kernel:

$ mkdir /tmp/eeepc-wmi
$ cd /tmp/eeepc-wmi
$ wget http://git.iksaif.net/?p=acpi4asus.git;a=blob_plain;f=drivers/platform/x86/eeepc-wmi.c;h=b0b5a8f440638f679acf8ae58d94bce820234350;hb=e24743bcb86939ad4a630c4bb8008884e936dfe1
$ echo "obj-m := eeepc-wmi.o" > Makefile
$ make -C /lib/modules/`uname -r`/build SUBDIRS=`pwd` modules

To test:
# modprobe -r eeepc-wmi
# modprobe pciehp
# modprobe sparse-keymap
# insmod eeepc-wmi.ko

To install
# mkdir /lib/modules/`uname -r`/updates
# cp eeepc-wmi.ko /lib/modules/`uname -r`/updates
# depmod -a

Changed in linux:
status: In Progress → Fix Committed
Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

Adjusting the bug status because the issue is fixed upstream.

@Ubuntu kernel team:

Please apply the upstream fixes for eeepc-wmi up to the changeset "eeepc-wmi: reorder device ids"

<http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=history;f=drivers/platform/x86/eeepc-wmi.c>

from linux-next to Ubuntu Natty kernel. The corresponding blob:

<http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=blob;f=drivers/platform/x86/eeepc-wmi.c;hb=89151bf97369548a9eaf2e5e0efb2e9d42556d1b>

This achieves feature parity with the legacy eeepc-laptop driver, fixes a critical issue for users of Asus Eee PC 1000H as described in <https://bugs.launchpad.net/linux/+bug/662365/comments/10> as well as the issue of the reporter of this bug for other Eee PC models with WMI device and allows to drop additional kernel options acpi_osi=Linux acpi_backlight=vendor, improving Ubuntu OOTB experience on this hardware.

I run Ubuntu Natty with upstream eeepc-wmi on top of official Natty kernels on Eee PC 1000H and can confirm that eeepc-wmi works correctly. The updated driver was also tested on Asus Eee PC 1005P running Maverick.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

I wasn't aware of <https://lists.ubuntu.com/archives/kernel-team/2011-February/014508.html> while writing my last comment, my apologies for the uprising. Nevertheless, I'd hate if eeepc-wmi has to hit the way of SRU, but let us hope for the best for now.

Revision history for this message
PrebenR (randhol) wrote :

How can I test to see if it works?

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

@PrebenR:

> How can I test to see if it works?

Edit /etc/default/grub to remove acpi_osi=Linux acpi_backlight=vendor from the kernel command line, run

sudo update-grub

Ensure that eeepc-wmi is not blacklisted, reboot, then follow the steps mentioned in <https://bugs.launchpad.net/ubuntu/+source/linux/+bug/662365/comments/29> to build the fixed eeepc-wmi. Unload Ubuntu's broken eeepc-wmi

sudo modprobe -r eeepc-wmi

and install and load the fixed one. Please note that loading pciehp is not needed and will fail as pciehp is built-in in Ubuntu kernels.

If rt2860sta misbehaves when disabling wireless, this should be a bug in rt2860sta. rt2800pci causes no problems, but requires a kernel at or greater than 2.6.37.

Revision history for this message
Constantine (theaspect) wrote :

O the up-to-date ubuntu I've repeated #29 and after that
insmod: error inserting '/tmp/eeepc-wmi/eeepc-wmi.ko': -1 Unknown symbol in module

uname -r : 2.6.35-27-generic
netbook eee1015 pem

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

> O the up-to-date ubuntu I've repeated #29 and after that
> insmod: error inserting '/tmp/eeepc-wmi/eeepc-wmi.ko': -1 Unknown symbol
> in module
>
> uname -r : 2.6.35-27-generic

Please try the following steps to build and install the eeepc-wmi.ko revision mentioned in #30 (which is basicly the same as in #29 except of a few comments):

1) boot without acpi_osi and acpi_video kernel options;

2) download and build the module:

mkdir eeepc-wmi
cd eeepc-wmi
wget "http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=blob;f=drivers/platform/x86/eeepc-wmi.c;hb=89151bf97369548a9eaf2e5e0efb2e9d42556d1b" -O eeepc-wmi.c
echo "obj-m := eeepc-wmi.o" > Makefile
make -C /lib/modules/$(uname -r)/build SUBDIRS=$(pwd) modules

there shouldn't be any errors.

3) install and load the module:

sudo modprobe -r eeepc-wmi
sudo mkdir /lib/modules/$(uname -r)/updates
sudo cp eeepc-wmi.ko /lib/modules/$(uname -r)/updates/
sudo depmod
sudo modprobe eeepc-wmi

This is tested working on Maverick with 2.6.35-27-generic, which is not quite up-to-date as 2.6.35-28-generic is in maverick-proposed.

The eeepc-wmi build directory is created in user's home directory because everything in /tmp is deleted on reboot.

Revision history for this message
Constantine (theaspect) wrote :

ok i've solved my problem
using modprobe led-class

so wifi switched on/off but led always on

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

@Constantine:

> so wifi switched on/off but led always on

If your Eee PC has built-in bluetooth, please don't forget that the corresponding LED will stay on unless both WiFi and bluetooth are disabled.

Revision history for this message
Ilja Sekler (ilja-sekler-) wrote :

Natty kernel with backported eeepc-wmi fixes has been shipped:

https://launchpad.net/ubuntu/+source/linux/2.6.38-8.40

linux (2.6.38-8.40) natty; urgency=low

  [ Brad Figg ]

  * [Config] Set CONFIG_NR_CPUS=256 for amd64 generic
    - LP: #737124

  [ Henrik Rydberg ]

  * SAUCE: HID: hid-ntrig: add support for 1b96:0006 model
  * SAUCE: HID: ntrig: fix suspend/resume on recent models

  [ Kees Cook ]

  * [Config] packaging: adjust perms on vmlinuz as well
  * SAUCE: nx-emu: further clarify dmesg reporting
    - LP: #745181

  [ Leann Ogasawara ]

  * rebase to v2.6.38.1
  * [Config] update configs after v2.6.38.1 rebase
  * rebase to v2.6.38.2

  [ Manoj Iyer ]

  * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads.
    - LP: #745217

  [ Tim Gardner ]

  * SAUCE: INR_OPEN=4096
    - LP: #663090

  [ Upstream Kernel Changes ]

  * (drop after v2.6.38) HID: ntrig don't dereference unclaimed hidinput
  * (drop after v2.6.38) HID: ntrig: apply NO_INIT_REPORTS quirk
  * (drop after v2.6.38) HID: hid-ntrig: init settle and mode check
  * eeepc-wmi: add hotplug code for Eeepc 1000H
  * eeepc-wmi: serialize access to wmi method
  * eeepc-wmi: return proper error code in eeepc_rfkill_set()
  * eeepc-wmi: add an helper using simple return codes
  * eeepc-wmi: add hibernate/resume callbacks
  * eeepc-wmi: switch to platform_create_bundle()
  * eeepc-wmi: reorder defines
  * eeepc-wmi: use the presence bit correctly
  * eeepc-wmi: add camera and card reader support
  * eeepc-wmi: add wimax support
  * eeepc-wmi: set the right key code for 0xe9
  * eeepc-wmi: support backlight power (bl_power) attribute
  * eeepc-wmi: respect wireless_hotplug setting
  * eeepc-wmi: real touchpad led device id is 0x001000012
  * eeepc-wmi: comments keymap to clarify the meaning of some keys
  * eeepc-wmi: add touchpad sysfs file
  * eeepc-wmi: reorder device ids

  [ Major Kernel Changes ]

  * rebase from v2.6.38 to v2.6.38.1
    - LP: #735640, #735450
  * rebase from v2.6.38.1 to v2.6.38.2
    - LP: #733780
 -- Leann Ogasawara <email address hidden> Mon, 28 Mar 2011 06:20:13 -0700

=> Fix Released.

Thanks a lot!

Changed in linux (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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