索尼可编程 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 设备,并且此驱动程序根本不支持它们。
它将(通过用户空间实用程序)访问这些笔记本电脑生成的一些事件,例如
jogdial 事件(Vaio 侧面的小轮子)
捕获按钮事件(仅在 Vaio Picturebook 系列上)
Fn 键
蓝牙按钮(仅在 C1VR 型号上)
可编程键、后退、帮助、缩放、拇指短语按钮等(如果可用)
可以使用字符设备节点 /dev/sonypi(主设备号 10,次设备号自动分配或指定为选项)轮询这些事件(请参阅 linux/sonypi.h)。一个将 jogdial 运动转换为鼠标滚轮事件的简单守护程序可以从以下位置下载:<http://popies.net/sonypi/>
拦截事件的另一种方法是通过输入层直接获取它们。
此驱动程序还支持一些 ioctl 命令,用于设置 LCD 屏幕亮度并查询电池充电信息(将来可能会添加更多命令)。
此驱动程序还可用于设置 Picturebook 系列的摄像头控制(亮度、对比度等),并且 video4linux 驱动程序将此驱动程序用于 Motion Eye 摄像头。
请注意,此驱动程序是通过对 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,则无论如何都不应需要此选项)。
verbose
设置为 1 可打印从 sonypi 设备收到的未知事件。设置为 2 可打印从 sonypi 设备收到的所有事件。
compat
使用一些兼容性代码来启用 sonypi 事件。如果驱动程序过去(1.5 版之前)对您有效,但不再有效,请添加此选项并报告给作者。
mask
事件掩码,告知驱动程序将向用户报告哪些事件。对于某些硬件重用其他 Vaio 型号中使用的值(例如,没有 jogdial 但将 jogdial 事件用于可编程按键事件的 FX 系列)的 Vaio 型号,此参数是必需的。默认事件掩码设置为 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 0x2000useinput
如果设置(这是默认设置),则会创建两个输入设备,一个将 jogdial 事件解释为鼠标事件,另一个像键盘一样报告按下特殊键。
模块使用:¶
为了在使用时自动加载 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 在您的笔记本电脑上正常工作,请使用它而不是 APM。
在某些型号上,sonypi 无法区分某些按键事件。
一些带有 nvidia 显卡(geforce go 6200 tc)的型号使用不同的方式来调整屏幕的背光。有一个用户空间实用程序可以调整这些型号的亮度,可以从 https://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2 下载
由于所有开发都是通过逆向工程完成的,因此绝对不能保证此驱动程序不会使您的笔记本电脑崩溃。永久性的。