06-24-2016, 11:30 PM
(This post was last modified: 06-24-2016, 11:54 PM by pfeerick.
Edit Reason: added on how I made the power button come to life
)
(06-24-2016, 02:15 PM)xalius Wrote: You can test if your powerbutton sends a keycode with evtest, the driver basically registers the button like another keyboard:
Code:ubuntu@pine64:~$ sudo apt-get install evtest
Reading package lists... Done
Building dependency tree
Reading state information... Done
evtest is already the newest version (1:1.33-1).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
ubuntu@pine64:~$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: sunxi-keyboard
/dev/input/event1: axp81x-supplyer
/dev/input/event2: sunxi-ths
/dev/input/event3: audiocodec sunxi Audio Jack
/dev/input/event4: sunxi_ir_recv
/dev/input/event5: MCE IR Keyboard/Mouse (sunxi-rc-recv)
Select the device event number [0-5]: 1
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "axp81x-supplyer"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 116 (KEY_POWER)
Event type 2 (EV_REL)
Properties:
Testing ... (interrupt to exit)
Event: time 1466799328.888825, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 1466799328.888825, -------------- SYN_REPORT ------------
Event: time 1466799328.999256, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 1466799328.999256, -------------- SYN_REPORT ------------
Event: time 1466799329.630542, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 1466799329.630542, -------------- SYN_REPORT ------------
Event: time 1466799329.798206, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 1466799329.798206, -------------- SYN_REPORT ------------
ubuntu@pine64:~$
Thanks for that! Now I know my button is working!
So, next my next question is : Do you know any (simple!) way to get the pine64 to respond to it? I'm using debian, and would like to make it trigger a shutdown. I keeps seeing mention of xbindkeys seeming to be able to do this, but I want a headless machine to be able to do this, not one with X11.
Edit: So, after a little more digging, and coming across a wiki page about udev and sleep buttons, I sort of followed the instructions and ended up with this for a udev rule, and it works!
Code:
pfeerick@pine64:~$ more /etc/udev/rules.d/70-power-switch-my.rules
ACTION=="remove", GOTO="power_switch_my_end"
SUBSYSTEM=="input", KERNEL=="event1", ATTRS{name}=="axp81x-supplyer", TAG+="power-switch"
LABEL="power_switch_my_end"
I then executed the following commands to freshen things up, and voila... pressing the power button causes the pine64 to instantly start shutting down! Now to see if I can make it trigger a delayed shutdown - say with 1 minutes grace...
Code:
sudo systemctl restart systemd-udevd
sudo udevadm trigger
sudo systemctl restart systemd-logind
As a side-note, connecting the battery can be annoying - when the battery is connected, when I tell the pine64 to poweroff / halt, it powers itself back up again.