2022-08-01 10:42:17 +00:00
---
title: Input devices
description: How to share input devices with a virtual machine
published: true
2022-08-02 09:59:33 +00:00
date: 2022-08-02T09:59:31.526Z
2022-08-01 10:42:17 +00:00
tags:
editor: markdown
dateCreated: 2022-08-01T10:42:14.864Z
---
# Input devices
Input devices such as keyboards and mice are a must to directly interact with a virtual machine. There are multiple ways to share an input device with your virtual machine.
## Summary
* *to-be done. Add table here*.
## Methods
### Evdev
Event devices (evdev) is a generic input event interface available in the [Linux ](https://www.kernel.org/doc/Documentation/input/input.txt ) and FreeBDS kernels.
* Identify available input devices under `/dev/input/by-path/` or `/dev/input/by-id/` and look for devices that contains the string *event* in their name.
```
ls /dev/input/*
```
```
/dev/input/by-path:
pci-0000:07:00.0-event-mouse
pci-0000:09:00.0-mouse
pci-0000:07:00.0-mouse platform-i8042-serio-0-event-kbd
pci-0000:08:00.0-event-kbd platform-i8042-serio-1-event-mouse
pci-0000:09:00.0-event-mouse platform-i8042-serio-1-mouse
```
* Check if it's the correct device using the following command and typing or clicking on your device
```
sudo cat /dev/input/by-path/pci-0000:08:00.0-event-kbd
```
2022-08-02 09:59:33 +00:00
* If gibberish symbols appear on your console as you type, it means that the device has been correctly identified, and that you can < kbd > Ctrl+Z</ kbd >
2022-08-01 10:42:17 +00:00
```
<EFBFBD> <EFBFBD> b<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> b<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> b<EFBFBD> !<21> <> b<EFBFBD> <62> <EFBFBD> b<EFBFBD> <62> <20> <> b<EFBFBD> <62> <EFBFBD> <EFBFBD> b<EFBFBD> <62> <EFBFBD> <EFBFBD> b<EFBFBD> <62> <EFBFBD> <EFBFBD> b<EFBFBD> <62> <EFBFBD> <EFBFBD> b<EFBFBD> <62> fdsa<73> <61> b<EFBFBD> ( <20> <> b<EFBFBD> (<28> <> b!<21> <> b<EFBFBD> <62> bR<62> <52> bR<62> <52> bW<62> <57> bW<62> <57> b<EFBFBD> !<21> <> b<EFBFBD> f<EFBFBD> <66> b4 <20> <> b4<62> <34> bV<62> <56> bV<62> <56> bX<62> <58> bXdsa<73> <61> b!: !<21> <> b!: <09> <> b>: <20> <> b>: <09> <> b<EFBFBD>
<EFBFBD> <EFBFBD> b<EFBFBD>
<EFBFBD> <EFBFBD> b<EFBFBD> y
<EFBFBD> <EFBFBD> b<EFBFBD> y
```
Edit the virtual machine's definition and replace `MOUSE_NAME` and `KEYBOARD_NAME` with the previously identified devices.
```
< input type = "evdev" >
< source dev = "/dev/input/by-path/MOUSE_NAME" / >
< / input >
< input type = "evdev" >
< source dev = "/dev/input/by-path/KEYBOARD_NAME" grab = "all" repeat = "on" / >
< / input >
```
* In-depth [Passthrough Post article ](https://passthroughpo.st/using-evdev-passthrough-seamless-vm-input/ ) about evdev.
2023-05-27 19:34:15 +00:00
---
2022-08-01 10:42:17 +00:00
2023-05-27 19:34:15 +00:00
*[**Go to parent page**](https://wiki.phyllo.me/)*