mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-21 22:47:50 +00:00
9f73476b37
The new 'dde_linux' repository will host device drivers ported from the Linux kernel. In contrast to the original 'linux_drivers' repository, 'dde_linux' does not contain any 3rd-party source code. To download the Linux kernel source code and extract the drivers, execute the 'make prepare' rule of the top-level Makefile. The initial version of the 'dde_linux' repository comes with an USB driver. The porting methodology follows the path of the Intel GEM port. Instead of attempting to provide a generic Linux environment that works across drivers, each driver comes with a specially tailored DDE. The DDE consists of Genode-specific implementations of Linux API functions as declared in 'lx_emul.h'. Most of these functions are dummies that must merely be provided to resolve dependencies at the linking stage. They are called by unused code-paths. As of now, the USB driver support UHCI, EHCI on the x86_32 platform. I exposes USB HID devices and USB storage devices via Genode's input-session and block-session respectively. The USB driver is accompanied with two run scripts 'run/usb_hid.run' and 'run/usb_storage.run'. |
||
---|---|---|
.. | ||
patches | ||
run | ||
src/drivers/usb | ||
Makefile | ||
README |
Device drivers ported from the Linux kernel USB ### HID ~~~ Supports keyboard and mouse. A run script can be found under 'run/usb_hid.run'. Configuration snippet: !<start name="usb_drv"> ! <resource name="RAM" quantum="3M"/> ! <provides><service name="Input"/></provides> ! <config> ! <hid/> ! </config> !</start> Note: It has been observed that certain 1.0 versions of Qemu do not generate mouse interrupts. The mouse driver should work correctly on Qemu 1.0.93 and above. STORAGE ~~~~~~~ Currently supports one USB storage device. Hot plugging has not been tested. A run script can be found under 'run/usb_storage.run'. Configuration snippet: !<start name="usb_drv"> ! <resource name="RAM" quantum="2M"/> ! <provides> <service name="Block"/> </provides> ! <config><storage /></config> !</start>