GFDL | Linux
The Panasonic Hotkey Driver implements hotkey functionality for Panasonic R1(N variant), R2, R3, T2, W2, and Y2 laptops on linux for machines running a 2.6 kernel.
You can find more generic information about Linux on Panasonic on David's Linux and the Panasonic R4 site, and it may helps you! Thanks a lot to David!
upload upated driver for kernels after 2.6.15
The hotkey driver currently implements:
- Hotkeys for raising and lowering brightness(Fn+F1, Fn+F2), muting sound (Fn+F4), raising and lowering volume (Fn+F5, Fn+F6), suspending to RAM (Fn+F7), spinning down the hard drive (Fn+F9), and suspending to disk (Fn+F10)
- An interface for setting the screen brightness (see Technical Details section for more info)
- An interface for muting the sound (not used; 0 for unmuted, 1 for muted)
- An interface for reading the LCD type (0 for normal, 1 for semi-transparent)
- An interface for reading the number of batteries installed
- On some models, an interface for reading the current environment state (1 for normal temperature, 129 for high temperature, 0 for not implemented)
The hotkey driver currently does not implement:
- The monitor switch hotkey (Fn+F3); this is because we haven't figured out how
- An interface to enable or disable the internal and external display; this is something that could be done easily
Suspending to RAM is intentionally disabled because it does not work well on Linux. If you want it to work, you can add code to hotkey.pl to implement it.
In order to get the driver working, you will need:
- A 2.6.8.1 or greater kernel source tree
- A Panasonic R1(N variant), R2, R3, T2, W2, or Y2 laptop
acpid running on your system
- A Perl interpreter (this is for the key handler)
For anything more than the bare minimum of raising and lowering screen brightness, you'll want to have:
- ALSA installed and functioning for sound functions
- Software suspend configured in your kernel (see below)
hdparm if you want to be able to spin down your disk
You'll need to download at least the hotkey handler and an appropriate kernel patch to get this to work.
You'll probably want the AC adapter handler too.
You may want not to patch kernel but make modules outside of kernel tree. You can download driver package.
Driver package
Hotkey handlers
updated hotkeys utility
Kernel patches
hotkey drivers
video switch drivers
Instructions by driver package
You will need to download a driver package. It is now only support 2.6 series kernel. You'll also need a script to handle the hotkey events.
Download and untar driver package.cd into package directory pcc-acpi-0.8/ and type
make;su make install then driver automatically compile and install proper place. If you want to compile for the version that you don't run, please use instructions by kernel patch.
After install, type su depmod -aand
su modprobe pcc_acpi then driver will be loaded to running kernel.
Instructions by patch
You will need to download an appropriate patch for your kernel. You'll also need a script to handle the hotkey events; one which works is available below.
Patching the kernel
Download an appropriate patch for your kernel. cd into your kernel source directory. Run the following command:
patch -p1 < location_of_patch
Now make menuconfig or use your favourite method of kernel configuration.
Kernel configuration
- Go under "Code maturity level options" and enable "Prompt for development and/or incomplete code/drivers". Then exit this menu.
- Go under "Power Management Options (ACPI, APM)" and enable "Power Management support".
- If you want suspend-to-disk (hibernate) to work, enable "Software Suspend"
- Enter the "ACPI (Advanced Configuration and Power Interface) Support" menu.
- Enable "ACPI support"
- Select "AC Adapter" as a built-in
- Select all other ACPI options you want
- Select "Panasonic Laptop Extras" as a built-in
Exit menuconfig (or your favourite configuration utility) and build and install the kernel.
Setting up acpid
To configure acpid for using the new Hotkey driver, you will need to download the "Hotkey Handler" package (listed under downloads). Untar this file in /etc/acpi (or your distribution's acpid configuration location).
If you want acpid to reduce the screen brightness when on battery power, you should also download the "AC Power Handler" package (listed under downloads) Untar this file in /etc/acpi (or your distribution's acpid configuration location).
If you plan not to use GUI for volume and mute(hotkeys or Gnome), please edit hotkey.pl to change $config values as "mute_mode" = 0 or 1 and "mixer_mode" = 0. In default, these are set to 2 that mean volume and mute is set by GUI utility.
Setting up hotkeys or Gnome shortcut keys
download new hotkeys utility which support Panasonic. If you use Debian GNU/Linux, you only download deb package. Not so, you may download source package and compile. It is easy to compile.
$ ./configure
$ make
$ make install
thats all.
To configure hotkeys for using the hotkey driver, you will need to download the "pcc.def" file(listed under downloads). Make directory $HOME/.hotkeys and copy this file. After you launch
hotkeys -t pcc
, you may show overlay gui by pushing Fn+F1,F2, Fn+F4, Fn+F5, Fn+F6 hotkeys.
Final steps
Now you are ready to restart the system. Reboot. Try the hotkeys. Do they work? If so, great! If not, please see the Troubleshooting section.
So, it isn't working for you. To try and save you (and us!) a lot of time, I've assembled a checklist of things to check before reporting a bug. Please go through the following steps before sending us an email:
- Review the requirements and ensure that they are all present and functional
- Ensure acpi is enabled on your machine by checking that
/proc/acpi exists
- Make sure the hotkey driver is enabled by running
ls /proc/acpi/pcc/. If it says "No such file or directory" then the hotkey driver is not installed and operational.
- Ensure
acpid is installed and running
- Make sure that
/etc/acpi/hotkey.pl exists and is executable, and that /etc/acpi/event/hotkey exists
If this does not solve your problem and you are sure that it should work, please email (dbronaugh (at) linuxboxen (dot) org) or (miura (at) da-cha (dot) org). Make sure you include:
- The output of
dmesg
- Your kernel's .config
- The output of
uname -a
- The model of your laptop (CF-R1N62ZVKM for example) and details about its configuration
- A description of the problem
- A patch which fixes the problem (yeah, we don't really expect this)
The hotkey part of the kernel driver emits ACPI events (like the AC adapter does, etc). These are caught by acpid and dispatched via /etc/acpi/events/hotkey to /etc/acpi/hotkey.pl . hotkey.pl in turn performs the appropriate action, be it setting volume, muting the sound card, changing the brightness, spinning down the hard drive, or suspending to disk. The driver also emit key input events (same as normal keyboard). These are caught by Gnome shortcut key configuration and hotkeys utilities. It is useful to show GUI and launch helper programs.
Screen brightness controls on the Panasonic laptops look complicated, but in the end they make sense. The driver implements these using 6 files: ac_brightness, ac_brightness_max, ac_brightness_min, dc_brightness, dc_brightness_max, dc_brightness_min. All the files prefixed with ac_ are for controlling the brightness when the laptop is under AC power. They affect persistent (across reboot) status registers which store the screen brightness, as well as controlling the actual brightness. The files prefixed with dc_ do the same for when the laptop is under battery power.
When the AC Power Handler script is being used, when AC power is connected the ac_brightness value is loaded. The dc_brightness field is not affected by this. Likewise, when AC power is disconnected, the dc_brightness value is loaded; the ac_brightness register is not affected by this. So, there are effectively 2 sets of brightness -- one set for when the laptop is under DC power, and one set for when the laptop is under AC power.
The *_brightness_min files show the minimum brightness for their respective power levels. Likewise, the *_brightness_max files show the maximum brightness for their respective power levels.
Reference
First created on Aug 23, 2004 by
David Bronaugh
Last modified by
Hiroshi Miura
印刷用 | export OPML
I just found that the brightness can be restored after S3 by appending "acpi_sleep=s3_bios" to the kernel parameter.
ctk