索尼可编程I/O控制设备驱动程序自述文件¶
版权所有 (C) 2001-2004 Stelian Pop <stelian@popies.net>
版权所有 (C) 2001-2002 Alcôve <www.alcove.com>
版权所有 (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
版权所有 (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
版权所有 (C) 2000 Takaya Kinjo <t-kinjo@tc4.so-net.ne.jp>
版权所有 (C) 2000 Andrew Tridgell <tridge@samba.org>
该驱动程序允许访问在许多索尼Vaio笔记本电脑中发现的索尼可编程I/O控制设备。一些较新的索尼笔记本电脑(似乎仅限于新的FX系列笔记本电脑,至少是FX501和FX702)没有sonypi设备,因此该驱动程序完全不支持它们。
它将(通过用户空间实用程序)提供对这些笔记本电脑生成的一些事件的访问,例如:
慢跑拨盘事件(Vaio侧面的小滚轮)
捕获按钮事件(仅限Vaio Picturebook系列)
Fn 键
蓝牙按钮(仅限C1VR型号)
可编程键、返回、帮助、缩放、拇指短语按钮等(如果可用)
这些事件(参见 linux/sonypi.h)可以使用字符设备节点 /dev/sonypi(主设备号10,次设备号自动分配或作为选项指定)进行轮询。一个将慢跑拨盘移动转换为鼠标滚轮事件的简单守护程序可以从以下网址下载:http://popies.net/sonypi/
拦截事件的另一个选项是直接通过输入层获取它们。
该驱动程序还支持一些用于设置LCD屏幕亮度以及查询电池充电信息的 ioctl 命令(未来可能会添加更多命令)。
该驱动程序也可用于设置Picturebook系列上的摄像头控制(亮度、对比度等),并被Motion Eye摄像头的video4linux驱动程序使用。
请注意,该驱动程序是通过逆向工程Windows驱动程序和ACPI BIOS创建的,因为索尼不同意发布其笔记本电脑的任何编程规范。如果有人能说服他们这样做,请给我发个便条。
驱动程序选项:¶
可以使用标准模块参数语法(将选项传递给模块时使用 <param>=<value>,或者当 sonypi 静态链接到内核时在内核启动行上使用 sonypi.<param>=<value>)将多个选项传递给 sonypi 驱动程序。这些选项是:
次设备号
misc 设备 /dev/sonypi 的次设备号,默认值为 -1(自动分配,参见 /proc/misc 或内核日志)
摄像头
如果您有 PictureBook 系列 Vaio 笔记本电脑(带有集成 MotionEye 摄像头),请将此参数设置为 1,以允许驱动程序访问摄像头
fnkeyinit
在某些 Vaio 型号(C1VE、C1VR 等)上,除非将此参数设置为 1,否则 Fn 键事件不会启用。除非确实需要,否则不要使用此选项,某些 Vaio 型号对此选项支持不佳。此选项仅在内核编译时没有ACPI支持的情况下可用(因为它与ACPI冲突,并且如果ACPI已启用,则无论如何都不需要它)。
详细
设置为 1 以打印从 sonypi 设备接收到的未知事件。设置为 2 以打印从 sonypi 设备接收到的所有事件。
兼容
使用一些兼容代码来启用 sonypi 事件。如果该驱动程序在过去(1.5版之前)对您有效但现在不再工作,请添加此选项并向作者报告。
掩码
事件掩码,告诉驱动程序哪些事件将报告给用户。对于某些 Vaio 型号,此参数是必需的,因为其硬件重用了其他 Vaio 型号中使用的值(例如FX系列,它没有慢跑拨盘,但重用慢跑拨盘事件用于可编程键事件)。默认事件掩码设置为 0xffffffff,这意味着将尝试所有可能的事件。您可以使用以下位来构建自己的事件掩码(来自 drivers/char/sonypi.h)
SONYPI_JOGGER_MASK 0x0001 SONYPI_CAPTURE_MASK 0x0002 SONYPI_FNKEY_MASK 0x0004 SONYPI_BLUETOOTH_MASK 0x0008 SONYPI_PKEY_MASK 0x0010 SONYPI_BACK_MASK 0x0020 SONYPI_HELP_MASK 0x0040 SONYPI_LID_MASK 0x0080 SONYPI_ZOOM_MASK 0x0100 SONYPI_THUMBPHRASE_MASK 0x0200 SONYPI_MEYE_MASK 0x0400 SONYPI_MEMORYSTICK_MASK 0x0800 SONYPI_BATTERY_MASK 0x1000 SONYPI_WIRELESS_MASK 0x2000使用输入
如果设置(这是默认值),将创建两个输入设备,一个将慢跑拨盘事件解释为鼠标事件,另一个则像键盘一样报告特殊键的按下情况。
模块使用:¶
为了在使用时自动加载 sonypi 模块,您可以将这些行放入 /etc/modprobe.d/ 中的配置文件中。
alias char-major-10-250 sonypi
options sonypi minor=250
这假定 sonypi 设备使用次设备号 250
# mknod /dev/sonypi c 10 250
错误:¶
几位用户报告称,此驱动程序会禁用BIOS管理的Fn键,这些Fn键用于将笔记本电脑置于睡眠状态或切换外接显示器开关。目前还没有解决方法,因为该驱动程序通过启用ACPI管理来禁用这些键的所有APM管理(而ACPI核心部分尚未完成)。如果您拥有带有可正常工作Fn键的此类笔记本电脑并希望继续使用它们,请不要使用此驱动程序。
一些用户报告称,当使用带有 fnkeyinit 参数的驱动程序时,笔记本电脑的速度会降低(经过 dhrystone 测试)。我无法在我的笔记本电脑上重现此问题,并且并非所有用户都有此问题。发生这种情况是因为 fnkeyinit 参数启用了 ACPI 模式(但没有额外的 ACPI 控制,例如处理器速度处理等)。如果 ACPI 在您的笔记本电脑上有效,请使用 ACPI 而不是 APM。
sonypi 无法区分某些型号上的特定按键事件。
某些配备 Nvidia 显卡(GeForce Go 6200 TC)的型号使用不同的方式调节屏幕背光。有一个用于调节这些型号亮度的用户空间实用程序,可以从以下网址下载:https://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2
由于所有开发都是通过逆向工程完成的,因此 *完全无法保证* 此驱动程序不会导致您的笔记本电脑崩溃。永久性地。