griffin powermate
use griffin powermate on linux X11 to control volume
configuring the kernel and hotplug
This guide is for gentoo. If using another distro, it is likely your kernel has powermate support built in and you might be able to skip the kernel config.
kernel config (2.6.21 and newer)
Device Drivers ---> Input device support ---> [*] Miscellaneous devices ---> <M> Griffin PowerMate and Contour Jog support
compile and install the kernel
create /etc/udev/rules.d/45-powermate.rules
SUBSYSTEM=="input", ATTRS{idVendor}=="077d", ATTRS{idProduct}=="0410", SYMLINK+="powermate", MODE="660", GROUP="users"
After configuring the udev rules, unplug and then plug in your powermate. Run dmesg and look for lines similar to below
Sep 1 13:58:37 localhost kernel: usb 2-1.1: Product: Griffin PowerMate Sep 1 13:58:37 localhost kernel: input: Griffin PowerMate as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input18
device file
udev should create a /dev/powermate device file. Check to see if it exists.
# ls /dev/powermate /var/log /dev/powermate@
If you move your powermate, you should see weird characters on the screen.
# cat /dev/powermate /var/log æø%Rä ÿÿÿÿæø%Rä æø%RhPÿÿÿÿæø%RhPçø%RóSçø%RóSçø%Rfçø%Rfçø%R´¥çø%R´¥
If you get output similar to the above... then your powermate kernel driver is working and the device is being properly recognized and setup for use.
followed portions of this guide
- note *** gizmod appears to no longer be maintained.
at this point, /dev/powermate is created and working check by cat /dev/powermate and rotating wheel on the powermate
configuring evrouter
1. install evrouter & xmodmap
# emerge -av --quiet sys-apps/evrouter x11-apps/xmodmap
2. Run evrouter dump to gather config lines
Here I ran the command below then I operated by powermate wheel. First, I rotated the wheel counter-clockwise, then clockwise, then a wheel press down. You should receive output similar to below.
$ evrouter -d /dev/powermate ~ device 0: /dev/powermate: Griffin PowerMate Display name: :0
Window "jsmith : evrouter ? Konsole": # Window title # Window "konsole": # Resource name # Window "Konsole": # Class name "Griffin PowerMate" "/dev/powermate" none rel/7/-1 "fill this in!" . . "Griffin PowerMate" "/dev/powermate" none rel/7/-1 "fill this in!" . . "Griffin PowerMate" "/dev/powermate" none key/256 "fill this in!"
3. Get your xkey names
$ xmodmap -pk|grep -i -E "volume|mute" ~ 121 0x1008ff12 (XF86AudioMute) 0x0000 (NoSymbol) 0x1008ff12 (XF86AudioMute) 122 0x1008ff11 (XF86AudioLowerVolume) 0x0000 (NoSymbol) 0x1008ff11 (XF86AudioLowerVolume) 123 0x1008ff13 (XF86AudioRaiseVolume) 0x0000 (NoSymbol) 0x1008ff13 (XF86AudioRaiseVolume) 198 0x1008ffb2 (XF86AudioMicMute) 0x0000 (NoSymbol) 0x1008ffb2 (XF86AudioMicMute)
The 1st and 3rd fields between paranthesis are the XKey names.
4. Configure .evrouterrc
Next, we combine the output from the previous 2 steps into our .evrouterrc configuration file. We do this by copying and pasting the lines from step 2 into the config. Then, where it say "fill this in!", we do as specified and replace the text there with the name of the desirec xkey names as output by xmodmap in step 3.
add these 3 lines to .evrouterrc in your home directory
"Griffin PowerMate" "/dev/powermate" none rel/7/-1 "XKey/XF86AudioLowerVolume" "Griffin PowerMate" "/dev/powermate" none rel/7/1 "XKey/XF86AudioRaiseVolume" "Griffin PowerMate" "/dev/powermate" none key/256 "Xkey/XF86AudioMute"
5. Test
$ evrouter -f /dev/powermate -c /home/jsmith/.evrouterrc ~ device 0: /dev/powermate: Griffin PowerMate Display name: :0 Parsed 3 rules, 216 bytes
at this point, if you get no errors... your Powermate wheel should work to control volume up/down and mute.