cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sonypi.rst (6515B)


      1==================================================
      2Sony Programmable I/O Control Device Driver Readme
      3==================================================
      4
      5	- Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
      6	- Copyright (C) 2001-2002 AlcĂ´ve <www.alcove.com>
      7	- Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
      8	- Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
      9	- Copyright (C) 2000 Takaya Kinjo <t-kinjo@tc4.so-net.ne.jp>
     10	- Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
     11
     12This driver enables access to the Sony Programmable I/O Control Device which
     13can be found in many Sony Vaio laptops. Some newer Sony laptops (seems to be
     14limited to new FX series laptops, at least the FX501 and the FX702) lack a
     15sonypi device and are not supported at all by this driver.
     16
     17It will give access (through a user space utility) to some events those laptops
     18generate, like:
     19
     20	- jogdial events (the small wheel on the side of Vaios)
     21	- capture button events (only on Vaio Picturebook series)
     22	- Fn keys
     23	- bluetooth button (only on C1VR model)
     24	- programmable keys, back, help, zoom, thumbphrase buttons, etc.
     25	  (when available)
     26
     27Those events (see linux/sonypi.h) can be polled using the character device node
     28/dev/sonypi (major 10, minor auto allocated or specified as a option).
     29A simple daemon which translates the jogdial movements into mouse wheel events
     30can be downloaded at: <http://popies.net/sonypi/>
     31
     32Another option to intercept the events is to get them directly through the
     33input layer.
     34
     35This driver supports also some ioctl commands for setting the LCD screen
     36brightness and querying the batteries charge information (some more
     37commands may be added in the future).
     38
     39This driver can also be used to set the camera controls on Picturebook series
     40(brightness, contrast etc), and is used by the video4linux driver for the
     41Motion Eye camera.
     42
     43Please note that this driver was created by reverse engineering the Windows
     44driver and the ACPI BIOS, because Sony doesn't agree to release any programming
     45specs for its laptops. If someone convinces them to do so, drop me a note.
     46
     47Driver options:
     48---------------
     49
     50Several options can be passed to the sonypi driver using the standard
     51module argument syntax (<param>=<value> when passing the option to the
     52module or sonypi.<param>=<value> on the kernel boot line when sonypi is
     53statically linked into the kernel). Those options are:
     54
     55	=============== =======================================================
     56	minor:		minor number of the misc device /dev/sonypi,
     57			default is -1 (automatic allocation, see /proc/misc
     58			or kernel logs)
     59
     60	camera:		if you have a PictureBook series Vaio (with the
     61			integrated MotionEye camera), set this parameter to 1
     62			in order to let the driver access to the camera
     63
     64	fnkeyinit:	on some Vaios (C1VE, C1VR etc), the Fn key events don't
     65			get enabled unless you set this parameter to 1.
     66			Do not use this option unless it's actually necessary,
     67			some Vaio models don't deal well with this option.
     68			This option is available only if the kernel is
     69			compiled without ACPI support (since it conflicts
     70			with it and it shouldn't be required anyway if
     71			ACPI is already enabled).
     72
     73	verbose:	set to 1 to print unknown events received from the
     74			sonypi device.
     75			set to 2 to print all events received from the
     76			sonypi device.
     77
     78	compat:		uses some compatibility code for enabling the sonypi
     79			events. If the driver worked for you in the past
     80			(prior to version 1.5) and does not work anymore,
     81			add this option and report to the author.
     82
     83	mask:		event mask telling the driver what events will be
     84			reported to the user. This parameter is required for
     85			some Vaio models where the hardware reuses values
     86			used in other Vaio models (like the FX series who does
     87			not have a jogdial but reuses the jogdial events for
     88			programmable keys events). The default event mask is
     89			set to 0xffffffff, meaning that all possible events
     90			will be tried. You can use the following bits to
     91			construct your own event mask (from
     92			drivers/char/sonypi.h)::
     93
     94				SONYPI_JOGGER_MASK		0x0001
     95				SONYPI_CAPTURE_MASK		0x0002
     96				SONYPI_FNKEY_MASK		0x0004
     97				SONYPI_BLUETOOTH_MASK		0x0008
     98				SONYPI_PKEY_MASK		0x0010
     99				SONYPI_BACK_MASK		0x0020
    100				SONYPI_HELP_MASK		0x0040
    101				SONYPI_LID_MASK			0x0080
    102				SONYPI_ZOOM_MASK		0x0100
    103				SONYPI_THUMBPHRASE_MASK		0x0200
    104				SONYPI_MEYE_MASK		0x0400
    105				SONYPI_MEMORYSTICK_MASK		0x0800
    106				SONYPI_BATTERY_MASK		0x1000
    107				SONYPI_WIRELESS_MASK		0x2000
    108
    109	useinput:	if set (which is the default) two input devices are
    110			created, one which interprets the jogdial events as
    111			mouse events, the other one which acts like a
    112			keyboard reporting the pressing of the special keys.
    113	=============== =======================================================
    114
    115Module use:
    116-----------
    117
    118In order to automatically load the sonypi module on use, you can put those
    119lines a configuration file in /etc/modprobe.d/::
    120
    121	alias char-major-10-250 sonypi
    122	options sonypi minor=250
    123
    124This supposes the use of minor 250 for the sonypi device::
    125
    126	# mknod /dev/sonypi c 10 250
    127
    128Bugs:
    129-----
    130
    131	- several users reported that this driver disables the BIOS-managed
    132	  Fn-keys which put the laptop in sleeping state, or switch the
    133	  external monitor on/off. There is no workaround yet, since this
    134	  driver disables all APM management for those keys, by enabling the
    135	  ACPI management (and the ACPI core stuff is not complete yet). If
    136	  you have one of those laptops with working Fn keys and want to
    137	  continue to use them, don't use this driver.
    138
    139	- some users reported that the laptop speed is lower (dhrystone
    140	  tested) when using the driver with the fnkeyinit parameter. I cannot
    141	  reproduce it on my laptop and not all users have this problem.
    142	  This happens because the fnkeyinit parameter enables the ACPI
    143	  mode (but without additional ACPI control, like processor
    144	  speed handling etc). Use ACPI instead of APM if it works on your
    145	  laptop.
    146
    147	- sonypi lacks the ability to distinguish between certain key
    148	  events on some models.
    149
    150	- some models with the nvidia card (geforce go 6200 tc) uses a
    151	  different way to adjust the backlighting of the screen. There
    152	  is a userspace utility to adjust the brightness on those models,
    153	  which can be downloaded from
    154	  https://www.acc.umu.se/~erikw/program/smartdimmer-0.1.tar.bz2
    155
    156	- since all development was done by reverse engineering, there is
    157	  *absolutely no guarantee* that this driver will not crash your
    158	  laptop. Permanently.