mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-23 23:42:32 +00:00
134 lines
3.5 KiB
Plaintext
134 lines
3.5 KiB
Plaintext
Device drivers ported from the Linux kernel
|
|
|
|
USB
|
|
###
|
|
|
|
Controller configuration
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The driver can be started using different or all USB controller types a platform
|
|
offers (USB 1.0/2.0/3.0). Note that not all controllers are supported by all
|
|
platforms. Controllers can be enabled as attribute in the config node of the
|
|
driver. Supported attributes are: 'uhci', 'ehci', and 'xhci'.
|
|
|
|
|
|
Configuration snippet to enable UHCI and EHCI
|
|
|
|
! <config uhci="yes" ehci="yes">
|
|
|
|
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 uhci="yes" ehci="yes" xhci="yes">
|
|
! <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.
|
|
|
|
HID - Touchscreen support
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Touchscreen absolute coordinates must be calibrated (e.g. re-calculated) to
|
|
screen absolute coordinates. The screen resolution is not determined
|
|
automatically by the USB driver, but can be configured as sub node of the
|
|
hid xml tag:
|
|
|
|
!...
|
|
!<hid>
|
|
! <screen x="1024" y="768"/>
|
|
!<hid/>
|
|
!...
|
|
|
|
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 uhci="yes">
|
|
|
|
|
|
Network (Nic)
|
|
~~~~~~~~~~~~~
|
|
|
|
Configuration snippet:
|
|
|
|
!<start name="usb_drv">
|
|
! <resource name="RAM" quantum="3M"/>
|
|
! <provides>
|
|
! <service name="Nic"/>
|
|
! <service name="Input"/>
|
|
! </provides>
|
|
! <config ehci="yes" xhci="yes">
|
|
! <nic mac="2e:60:90:0c:4e:01" />
|
|
! <hid/>
|
|
! </config>
|
|
!</start>
|
|
|
|
Please observe that this setup starts the HID and Nic service at the same time.
|
|
Also there is the 'mac' attribute where one can specify the hardware address of
|
|
the network interface. This is necessary in case the EEPROM of the network card
|
|
cannot be accessed via the host controller making it impossible to retrieve the
|
|
devices hardware address. If this is the case and no 'mac' attribute is given a
|
|
fallback address will be assigned to the network device. Note that the fallback
|
|
address will always be the same.
|
|
|
|
LXIP
|
|
####
|
|
|
|
LXIP is a port of the Linux TCP/IP stack to Genode. It is build as a shared
|
|
library named 'lxip.lib.so'. The IP stack can be interfaced using Genode's
|
|
version of 'libc' by linking your application to 'lxip_libc' plugin in your
|
|
'target.mk' file.
|
|
|
|
WIFI
|
|
####
|
|
|
|
The wifi_drv component is a port of the Linux mac802.11 stack, including the
|
|
iwlwifi driver as well as libnl and wpa_supplicant, to Genode.
|
|
|
|
Configuration snippet:
|
|
|
|
!<start name="wifi_drv">
|
|
! <resource name="RAM" quantum="32M"/>
|
|
! <provides><service name="Nic"/></provides>
|
|
! <config>
|
|
! <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc">
|
|
! <vfs>
|
|
! <dir name="dev"> <log/> <rtc/>
|
|
! <jitterentropy name="random"/>
|
|
! <jitterentropy name="urandom"/>
|
|
! </dir>
|
|
! <inline name="wpa_supplicant.conf">
|
|
!network={
|
|
! id_str="foobar"
|
|
! ssid="foobar"
|
|
! key_mgmt=WPA-PSK
|
|
! psk="foobarfoobar"
|
|
!}
|
|
! </inline>
|
|
! </vfs>
|
|
! </libc>
|
|
! </config>
|
|
! <route>
|
|
! <service name="Rtc"> <any-child /> </service>
|
|
! <any-service> <parent/> <any-child /> </any-service>
|
|
! </route>
|
|
!</start
|