Specifications

CHAPTER 3. REQUIREMENTS SPECIFICATION 17
Driver/Interface name: Event Interface
User space interface: /dev/input/eventn (minor 13, major 64+n)
Data type: binary
Permissions: read and write access for root
Read access: open(2), read(2) and ioctl(2)
Write access: ioctl(2)
Table 3.1: Event Interface Attributes
User space interface: /proc/acpi/event
Driver/Interface name: ACPI Event Interface
Data type: string
Permissions: read access for root
Access method: open(2) and read(2)
User space interface: /var/run/acpid.socket
Driver/Interface name: ACPI Daemon Socket
Data type: string
Permissions: read and write access for all users (only read access is used)
Access method: socket(2) (Unix domain socket)
Table 3.2: ACPI Event Interface Attributes
ACPI Event Interface
The ACPI event interface reports all ACPI events—events triggered by the ACPI button driver
as well as events triggered by other ACPI drivers. User space applications can only access the
interface /proc/acpi/event if they have root privileges. This would not be a serious issue
if the only input events reported using ACPI would be the events of the power button, sleep
button and lid switch. But as described in Chapter 2 (§2.6), ACPI is also used to report
function key events. These function key events are interesting for user space applications
which do not run with root privileges, too. For example, a function key with an imprint for
change volume or start mail program should be accessible by all users—not only to root.
If the previously addressed ACPI daemon acpid is running, user space applications without
root privileges are able to receive the ACPI events by connecting to the Unix domain socket
/var/run/acpid.socket. The daemon acpid is sending all occurring ACPI events to the
connected process or processes. No root privileges are required to connect and read from the
socket. It is up to the process reading from the socket to pick out the interesting events.
The attributes of both the ACPI event interface and the ACPI daemon are summarized in
Table 3.2.
Specific Event Interfaces
Several interfaces for user input are only available on specific systems. But this fact does not
make these interfaces less important. All drivers for these specific interfaces are implementing
their own interface rather than using the Linux input core or ACPI event interface. Thus,
they depend on user space applications using the specific interface to pro cess input events.
Common issues are that there is no reasonable user space application available or users have