SABRE tablet camera

rijurekha at ...71... rijurekha at ...71...
Mon Sep 12 18:35:45 CEST 2016


Currently, I am browsing the android source code folders, to find "camera
device driver" related code. What is a more systematic way to understand
what happens at the systems level between "pressing a camera button" --
"pressing the capture button" -- "saving the picture" in an android
phone/tablet?

Can something like systrace 
(http://www.vogella.com/tutorials/AndroidTools/article.html#systrace), be
used to see what kernel functions are invoked? Is such tracing supported
on android 2.3.7, on which the demo is based? Did you use any such tool to
understand the necessary code related to touchscreen/display/capacitive
sensors, which you then moved to the secure world?

Thanks!
Riju

> I can run the SABRE tablet Genode demo:
> https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README.
> The demo is on SD card, and the android is on e-mmc. According to
> https://sourceforge.net/p/genode/mailman/message/33919618/, I changed the
> e-mmc android to imx-android-r10.4_bundle_BSP.tar.gz, so that it matches
> the android kernel in the genode demo.
>
> I can use the front camera of the SABRE tablet to take pictures, when
> android is started directly from emmc (sw26 and sw28 reconfigured). But
> when I boot the genode demo and then start android from within it,
> pressing the camera icon says “Cannot connect to camera”.
>
> Question 1: I understand that the genode demo needed the display,
> touchscreen and capacitive sensors kernel code to be moved to secure
> world. Did that screw up the camera functionality of the android in the
> normal world? Maybe the camera needs the display for preview, which it
> cannot get? Did your secure-world implementation of the
> display/touchscreen/capacitive sensor drivers come with some APIs, that
> the normal world should call to access forbidden resources? Are those APIs
> part of the normal world kernel and uses the smc() functionality to
> request forbidden resources? Does that mean that the camera is failing, as
> it is not calling the proper API to request the display?
>
> Question 2: My goal is to move the camera device driver to the secure
> world. At http://genode.org/documentation/articles/trustzone, under the
> section “Additional Device Driver”, you say that “The task of CREATING the
> drivers…”. I understand that the android in e-mmc already supported the
> display, touchscreen and capacitive sensors. So couldn’t you look at the
> android source and see where these drivers are, instead of creating these
> drivers using the documentation? Since I need to repeat the process of
> moving the camera device drivers from the normal to the secure world, some
> more details of how you approached the problem for
> touchscreen/display/capacitive sensor will be super useful. For example,
> looking at the source code of imx-android-r10.4_bundle_BSP.tar.gz, I can
> see
>
> $ls ~/myandroid/hardware/mx5x/libcamera/
> Android.mk     Camera_pmem.cpp  CaptureDeviceInterface.cpp
> JpegEncoderInterface.h   PostProcessDeviceInterface.cpp  PP_ipulib.h
>      V4l2CsiDevice.cpp
> CameraHal.cpp  Camera_pmem.h    CaptureDeviceInterface.h
> JpegEncoderSoftware.cpp  PostProcessDeviceInterface.h
> V4l2CapDeviceBase.cpp  V4l2CsiDevice.h
> CameraHal.h    Camera_utils.h   JpegEncoderInterface.cpp
> JpegEncoderSoftware.h    PP_ipulib.cpp
> V4l2CapDeviceBase.h    V4l2UVCDevice.h
>
> Do some of those needed to be moved to the secure world kernel, or do we
> need to write a camera device driver from scratch?
>
> Thanks!
> Riju
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
>





More information about the users mailing list