diff --git a/repos/dde_linux/src/include/lx_emul/usb.h b/repos/dde_linux/src/include/lx_emul/usb.h
new file mode 100644
index 0000000000..38d9245ed6
--- /dev/null
+++ b/repos/dde_linux/src/include/lx_emul/usb.h
@@ -0,0 +1,27 @@
+/*
+ * \brief Lx_emul support for USB
+ * \author Stefan Kalkowski
+ * \date 2022-03-08
+ */
+
+/*
+ * Copyright (C) 2022 Genode Labs GmbH
+ *
+ * This file is distributed under the terms of the GNU General Public License
+ * version 2.
+ */
+
+#ifndef _LX_EMUL__USB_H_
+#define _LX_EMUL__USB_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct genode_usb_rpc_callbacks lx_emul_usb_rpc_callbacks;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LX_EMUL__USB_H_ */
diff --git a/repos/pc/src/drivers/usb_host/pc/usb.c b/repos/dde_linux/src/lib/lx_emul/usb.c
similarity index 99%
rename from repos/pc/src/drivers/usb_host/pc/usb.c
rename to repos/dde_linux/src/lib/lx_emul/usb.c
index 66ffb99d60..496951aa26 100644
--- a/repos/pc/src/drivers/usb_host/pc/usb.c
+++ b/repos/dde_linux/src/lib/lx_emul/usb.c
@@ -155,7 +155,7 @@ static int endpoint_descriptor(genode_usb_bus_num_t bus,
}
-struct genode_usb_rpc_callbacks genode_usb_rpc_callbacks_obj = {
+struct genode_usb_rpc_callbacks lx_emul_usb_rpc_callbacks = {
.alloc_fn = lx_emul_shared_dma_buffer_allocate,
.free_fn = lx_emul_shared_dma_buffer_free,
.cfg_desc_fn = config_descriptor,
diff --git a/repos/pc/src/drivers/usb_host/pc/main.cc b/repos/pc/src/drivers/usb_host/pc/main.cc
index f80934e55f..705340b00a 100644
--- a/repos/pc/src/drivers/usb_host/pc/main.cc
+++ b/repos/pc/src/drivers/usb_host/pc/main.cc
@@ -16,6 +16,7 @@
#include
#include
+#include
#include
#include
#include
@@ -27,8 +28,6 @@ using namespace Genode;
static bool _bios_handoff;
-extern struct genode_usb_rpc_callbacks genode_usb_rpc_callbacks_obj;
-
extern "C" int inhibit_pci_fixup(char const *name)
{
@@ -76,7 +75,7 @@ struct Main : private Entrypoint::Io_progress_handler
genode_usb_init(genode_env_ptr(env),
genode_allocator_ptr(sliced_heap),
genode_signal_handler_ptr(signal_handler),
- &genode_usb_rpc_callbacks_obj);
+ &lx_emul_usb_rpc_callbacks);
lx_emul_start_kernel(nullptr);
diff --git a/repos/pc/src/drivers/usb_host/pc/target.inc b/repos/pc/src/drivers/usb_host/pc/target.inc
index f908710215..534657f2a0 100644
--- a/repos/pc/src/drivers/usb_host/pc/target.inc
+++ b/repos/pc/src/drivers/usb_host/pc/target.inc
@@ -12,10 +12,10 @@ SRC_CC += time.cc
SRC_CC += lx_emul/shared_dma_buffer.cc
SRC_C += dummies.c
SRC_C += lx_emul.c
-SRC_C += usb.c
SRC_C += $(notdir $(wildcard $(REL_PRG_DIR)/generated_dummies.c))
SRC_C += common_dummies.c
SRC_C += lx_emul/spec/x86/pci.c
+SRC_C += lx_emul/usb.c
vpath %.c $(REL_PRG_DIR)
vpath %.cc $(REL_PRG_DIR)