I needed to get a PSC Powercan to work (scan a barcode and enter text) a little while ago, but it wasn’t being recognized as a keyboard device (the expected behavior). I did some searching, but most of the information I found applied only to barcode scanners that send ASCII over serial. Putting serio0 into serio_raw mode and hexdumping the data coming from the scanner, it was obvious that it was sending scancodes.
The solution I eventually found was a kernel parameter. The atkbd driver supports “dumb” keyboards, but apparently looks for a smart keyboard by default, putting the following on the kernel boot line made everything work fine: “atkbd.dumbkbd=1”
In ubuntu, adding it to /etc/default/grub makes it a permanent solution.