hi! thanks for stefan,norman and matthias's help. i use pandapoard to run l4android,when i insert usb mouse,it worked. i wonder who creates the device node for the usb mouse,the code in dde-linux or l4android?can you tell me which file does the thing? there is another question,how can i create a device node to communication with Android? thanks!
Hello,
i use pandapoard to run l4android,when i insert usb mouse,it worked. i wonder who creates the device node for the usb mouse,the code in dde-linux or l4android?can you tell me which file does the thing? there is another question,how can i create a device node to communication with Android?
there are no device nodes in Genode. Devices are connected to processes by using sessions. A device driver provides a session interface, which, in turn, can be used by another process acting as a client. The policy of which session of a process gets connected to which server is expressed in the configuration of the init process as described here:
http://genode.org/documentation/developer-resources/init
In short, you need to make sure that you route 'Input' session requests of the nitpicker GUI server to your touch screen driver, which provides this session interface. From Genode's perspective, Android is just a client of the 'Input' session interface (among other interfaces). From the Linux kernel's perspective, an 'Input' session is looks like a physical device. (i.e., there exists a special device driver for it, compiled in the Linux kernel)
The session-routing concept is pretty powerful. Just by changing the routing, you could connect Android directly to the input driver, leaving the nitpicker GUI server out of the picture. Maybe this would be a good exercise after revisiting the documentation mentioned above? ;-)
Btw, I wonder how the USB mouse worked for you when executing the l4android.run script for the Pandaboard. The run script does not start the USB driver that would be needed for that. Have you used a modified version?
Regards Norman
hi! thanks to feske for helping.finally i implement the touch srceen driver.i let the ft5406 provide Input service,and make the nitpicker use Input service and route to ft5406_drv.then it worked.but it still have some problems that i should do some further research.
Btw, I wonder how the USB mouse worked for you when executing the >l4android.run script for the Pandaboard. The run script does not start >the USB driver that would be needed for that. Have you used a modified >version?
i used dde_linux to provide usb driver,it has hid, storage,etc.the hid can provide Input service, and nitpicker can use it. now i am going to do some work on usb serial,then the usb modem can work.i think it should be implemented in dde linux like usb hid or usb storage.and in l4android,i should use the genode_serial.c file.am i right?do you have any ideas?or have you done any work about this?
Hello,
thanks to feske for helping.finally i implement the touch srceen
driver.i let the ft5406 provide Input service,and make the nitpicker use Input service and route to ft5406_drv.then it worked.
excellent!
i used dde_linux to provide usb driver,it has hid, storage,etc.the
hid can provide Input service, and nitpicker can use it. now i am going to do some work on usb serial,then the usb modem can work.i think it should be implemented in dde linux like usb hid or usb storage.and in l4android,i should use the genode_serial.c file.am i right?do you have any ideas?or have you done any work about this?
you are spot-on about enhancing dde_linux. USB serial should certainly be provided as a 'Terminal' service, which implements a fairly simple subset of the 'Uart' interface. (provided by Genode's the real UART drivers)
On the L4Linux side, you have identified the right stub driver. The 'genode_serial.c' stub driver uses the 'genode_terminal_*' function interface as backend. In the implementation of the backend (see 'ports-foc/src/lib/l4lx/genode_terminal.cc'), you will see that the backend uses a single 'Terminal' session. Maybe it would be useful to extend it with the ability to provide multiple terminal sessions according to the L4Linux configuration? So you could have multiple serial-device nodes in Linux connected to different 'Terminal' services. If you like to explore that path together, please go ahead and create a corresponding topic in our issue tracker:
https://github.com/genodelabs/genode/issues
Cheers Norman