Entropy Key being zapped on boot.
Joshua Newton
newton.joshua.x at gmail.com
Mon Oct 8 19:53:22 BST 2012
On 2012-10-08 06:45, Paul Martin wrote:
> Which kernel is in Ubuntu 12.04?
I'm using a backported kernel (this will be the release kernel for 12.10
or close to it). EK communication / ekeyd detection of the EK also
failed on the official kernel, which is 3.2.0-something.
localhost ~ [0]# uname -a
Linux localhost 3.5.0-17-generic #26-Ubuntu SMP Thu Oct 4 16:00:30 UTC
2012 x86_64 x86_64 x86_64 GNU/Linux
> Yes, it was a faulty USB port/motherboard.
All other devices connected to any of the USB buses on the motherboard
work without fail, and are detected on boot and kernel IPL. So far, this
includes mice, keyboards, USB flash drives, 2.0 and 3.0 hubs, a webcam,
an XBox 360 controller, a "USB video adapter" (VGA output), and several
USB 2.0 and 3.0 flash card readers. And a UPS management port.
(No, they're not all connected right now. I was testing. Servers don't
need gamepads.)
What's going on reminds me distinctly of using Razer products, which are
sort of renowned for their abuse of USB buses. (Which is too bad,
because I really liked typing on the Lycosa keyboard. But when it
prevents a system from booting when plugged in, and the replacement eats
itself after a few days? Not so likeable.)
Since posting to the list, I've found the source for an old utility
called "usbreset.c", which forces something akin to a "replug event".
This does cause the EK to begin communicating with ekeyd within a few
seconds.
However. That's a lousy workaround.
http://marc.info/?l=linux-usb&m=121459435621262&w=2 :
/* usbreset -- send a USB port reset to a USB device */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <linux/usbdevice_fs.h>
int main(int argc, char **argv)
{
const char *filename;
int fd;
int rc;
if (argc != 2) {
fprintf(stderr, "Usage: usbreset device-filename\n");
return 1;
}
filename = argv[1];
fd = open(filename, O_WRONLY);
if (fd < 0) {
perror("Error opening output file");
return 1;
}
printf("Resetting USB device %s\n", filename);
rc = ioctl(fd, USBDEVFS_RESET, 0);
if (rc < 0) {
perror("Error in ioctl");
return 1;
}
printf("Reset successful\n");
close(fd);
return 0;
}
More information about the EntropyKey-users
mailing list