Я пытаюсь заставить logkeys работать над полем "ubuntu/precise64" Vagrant для проекта работы, но ничто не становится зарегистрированным. Я провел несколько часов, читая и пытаясь разыскать проблему.
Код logkeys находит правильное устройство "/dev/input/event2" и fopens это:
input_fd = open(args.device.c_str(), O_RDONLY);
Код, как затем предполагается, вводит некоторое время цикл, когда он читает вход:
while (read(input_fd, &event, sizeof(struct input_event)) > 0) {
Цикл с условием продолжения на самом деле не вводится (подтвержденный с операторами отладки). Кажется, что никаких событий клавиатуры на самом деле не происходит. Это могло все быть то, потому что я работаю, это - VM, но я не уверен, поскольку некоторые другие вещи проверяют. Например, на несколько сообщений, таких как этот, кажется, что event2 является на самом деле правильным устройством в моем VM Ubuntu:
cat /proc/bus/input/devices
...
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input2
...
B: EV=120013
...
Я подтвердил, что logkeys на самом деле принял решение слушать event2 через операторы отладки к консоли, добавленной к коду.
Когда я cat /dev/input/event2
, и введите, нажатия клавиш показывают на консоли. Я думал, что это было точным тестом определения корректного события для слушания; однако, когда я cat /dev/input/event4
, который, как предполагается, является мышью, то же самое происходит - нажатия клавиш, отраженные на консоли.
У меня нет машины Ubuntu для тестирования на. Я мог попробовать его на машине VirtualBox с ISO Ubuntu, но не следую, как это отличалось бы, чем, что я делаю теперь. Я попробовал другие поля Vagrant Ubuntu также (человечность/надежный человек и другой) без изменения. Мне действительно нравятся скорость и удобство выполнения моего dev на поле Vagrant. Ну, это обычно довольно быстро и удобно, но не в данный момент.
У кого-либо есть понимание на том, что могло бы продолжаться, и что я пропускаю?
Спасибо очень, jz.
Ответ на мой вопрос для потомства, в случае, если любой когда-либо делает что-то подобное, которое очень маловероятно!
В моих тестах, я только соединялся с полем с vagrant ssh
и вводил в своем исходном окне терминала. Я изменил свой Бродячий файл для включения gui, с config.vm.provider "virtualbox" { |v| v.gui = true }
, и бродяга запустила окно CLI с гостем. Ввод в , что терминал работал, и отладка, был произведен к исходному терминалу.
, К сожалению, у меня нет времени для исследования точно, почему нажатия клавиш на поле хоста не разоблачали в госте..., вероятно, что-то очевидное, которое я пропускаю. Если у кого-либо есть хорошая идея, отправьте, поскольку мне интересно.