Клавиатурный перехватчик Logkeys, не работающий над полем Ubuntu в Бродяге; кажется, не видит события клавиатуры

Я пытаюсь заставить 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.

1
задан 23 May 2017 в 15:39

1 ответ

Ответ на мой вопрос для потомства, в случае, если любой когда-либо делает что-то подобное, которое очень маловероятно!

В моих тестах, я только соединялся с полем с vagrant ssh и вводил в своем исходном окне терминала. Я изменил свой Бродячий файл для включения gui, с config.vm.provider "virtualbox" { |v| v.gui = true }, и бродяга запустила окно CLI с гостем. Ввод в , что терминал работал, и отладка, был произведен к исходному терминалу.

, К сожалению, у меня нет времени для исследования точно, почему нажатия клавиш на поле хоста не разоблачали в госте..., вероятно, что-то очевидное, которое я пропускаю. Если у кого-либо есть хорошая идея, отправьте, поскольку мне интересно.

1
ответ дан 7 December 2019 в 16:02

Другие вопросы по тегам:

Похожие вопросы: