Bug 154955 - [acpi] Keyboard or ACPI doesn't work on Lenovo S10-3
Summary: [acpi] Keyboard or ACPI doesn't work on Lenovo S10-3
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-22 10:20 UTC by Alexander
Modified: 2024-11-07 22:02 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander 2011-02-22 10:20:12 UTC
While booting / installing FreeBSD system on Lenovo S10-3C laptop, either (internal) keyboard doesn't work or an ACPI functions.

In case if booting with default options, keyboard doesn't function (just like it doesn't exists). In case if booting without ACPI, keyboard works fine, but lack of ACPI function render the laptop as pretty much useless.

Fix: 

The problem reported & confirmed on Linux kernel as well - please, check the following link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/677633

Unfortunately, Linux guys didn't come back with specific description of the problem fix, but mentioned there is something specific to ACPI.
How-To-Repeat: Boot FreeBSD on Lenovo S10-3C.
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2011-02-23 08:59:10 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-acpi

reclassify.
Comment 2 Eitan Adler freebsd_committer freebsd_triage 2017-12-31 08:01:39 UTC
For bugs matching the following criteria:

Status: In Progress Changed: (is less than) 2014-06-01

Reset to default assignee and clear in-progress tags.

Mail being skipped
Comment 3 spell 2024-11-07 22:02:41 UTC
(In reply to Alexander from comment #0)

The same issue on my Lenovo Ideapad S110 with 13.3-RELEASE.

My fix (quick one, needs to be integrated somehow into proper place):

#include <sys/types.h>
#include <sys/cdefs.h>
#include <machine/cpufunc.h>
#include <fcntl.h>

#define I8042_COMMAND_REG 0x64

int main() {
        open("/dev/io", O_WRONLY);
        outb(I8042_COMMAND_REG, 0xae);
        return 0;
}

Thank you (over years) for the link which has conveyed to the fix.