It seems that with the update from 4.6.4 to 4.7.0 kernel, my system is no longer creating /dev/input/by-id and /dev/input/by-path links to i8042/PS/2 devices. Specifically, I previously was able to statically access my PS/2 keyboard through /dev/input/by-path/platform-i8042-serio-0-event-kbd which no longer exists/created with updated kernel. USB devices seem to be unchanged.
I'm running 4.7.1 and also seeing this problem of no keyboard in my ../by-path directory (on a Yoga 2 Pro) which is breaking a userspace app. This seems like a regression. I was able to create a manual link (sudo ln -s ../event0 platform-event-kbd) so it was easy to work around.
dtor@dtor-glaptop:~/kernel/work$ uname -r 4.7.0+ dtor@dtor-glaptop:~/kernel/work$ ls -la /dev/input/by-path/ total 0 drwxr-xr-x 2 root root 200 Aug 24 09:17 . drwxr-xr-x 4 root root 500 Aug 24 09:17 .. lrwxrwxrwx 1 root root 9 Aug 23 09:30 pci-0000:00:14.0-usb-0:1.3.1:1.0-event-mouse -> ../event8 lrwxrwxrwx 1 root root 9 Aug 23 09:30 pci-0000:00:14.0-usb-0:1.3.1:1.0-mouse -> ../mouse1 lrwxrwxrwx 1 root root 9 Aug 23 09:30 pci-0000:00:14.0-usb-0:1.3.2:1.0-event-kbd -> ../event6 lrwxrwxrwx 1 root root 9 Aug 23 09:30 pci-0000:00:14.0-usb-0:1.3.2:1.1-event -> ../event7 lrwxrwxrwx 1 root root 10 Aug 24 09:17 pci-0000:00:14.0-usb-0:7:1.0-event -> ../event10 lrwxrwxrwx 1 root root 9 Aug 23 09:30 platform-i8042-serio-0-event-kbd -> ../event3 lrwxrwxrwx 1 root root 9 Aug 23 09:30 platform-i8042-serio-3-event-mouse -> ../event5 lrwxrwxrwx 1 root root 9 Aug 23 09:30 platform-i8042-serio-3-mouse -> ../mouse0 I'd start looking at your userspace (udev, systemd?) as well.
Could it be possible that this problem only happens with some keyboards? I don't know how to look into what udev and systemd are doing. I checked the systemd logs and didn't see anything suspicious.