mirror of
https://github.com/containers/podman.git
synced 2025-06-22 18:08:11 +08:00
machine: qemu: add usb host passthrough
QEMU usb-host driver which is the one for passthrough, supports two options for selecting an USB devices in the host to provide it to the VM: - Bus and Device number the device is plugged - Vendor and Product information of the USB devices https://qemu-project.gitlab.io/qemu/system/devices/usb.html This commit allows a user to configure podman machine with either of options, with new --usb command line option for podman machine init. Examples podman machine init tosovm4 --usb vendor=13d3,product=5406 podman machine init tosovm3 --usb bus=1,devnum=4 --usb bus=1,devnum=3 This commit also allows a user to change the USBs configured with --usb command line option for podman machine set. Note that this commit does not handle host device permissions nor verify that the USB devices exists. Signed-off-by: Victor Toso <victortoso@redhat.com>
This commit is contained in:
@ -39,6 +39,7 @@ type InitOptions struct {
|
||||
Rootful bool
|
||||
UID string // uid of the user that called machine
|
||||
UserModeNetworking *bool // nil = use backend/system default, false = disable, true = enable
|
||||
USBs []string
|
||||
}
|
||||
|
||||
type Status = string
|
||||
@ -106,6 +107,7 @@ type SetOptions struct {
|
||||
Memory *uint64
|
||||
Rootful *bool
|
||||
UserModeNetworking *bool
|
||||
USBs *[]string
|
||||
}
|
||||
|
||||
type SSHOptions struct {
|
||||
@ -271,6 +273,13 @@ func ConfDirPrefix() (string, error) {
|
||||
return confDir, nil
|
||||
}
|
||||
|
||||
type USBConfig struct {
|
||||
Bus string
|
||||
DevNumber string
|
||||
Vendor int
|
||||
Product int
|
||||
}
|
||||
|
||||
// ResourceConfig describes physical attributes of the machine
|
||||
type ResourceConfig struct {
|
||||
// CPUs to be assigned to the VM
|
||||
@ -279,6 +288,8 @@ type ResourceConfig struct {
|
||||
DiskSize uint64
|
||||
// Memory in megabytes assigned to the vm
|
||||
Memory uint64
|
||||
// Usbs
|
||||
USBs []USBConfig
|
||||
}
|
||||
|
||||
type Mount struct {
|
||||
|
Reference in New Issue
Block a user