のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

ERROR: Can't open device, errorno from open = 2

09-14 16:26:18.750 D/DOMX ( 127): ERROR: Can't open device, errorno from open = 2
09-14 16:26:18.750 D/DOMX ( 127): ERROR: DOMX Write failed 0xffffffff -1
09-14 16:26:18.750 D/DOMX ( 127): ERROR: failed check:status >= 0 - returning error: 0x81001 - Write failed
09-14 16:26:18.750 D/DOMX ( 127): ERROR: RPC function returned error 0x81001
09-14 16:26:18.750 D/DOMX ( 127): ERROR: Close failed on omx fd
09-14 16:26:18.750 D/DOMX ( 127): ERROR: error in Initializing Proxy

/hardware/ti/omap4xxx/domx/domx/omx_rpc/src/omx_rpc.c

    103 RPC_OMX_ERRORTYPE RPC_InstanceInit(OMX_STRING cComponentName,
    104     OMX_HANDLETYPE * phRPCCtx)
    105 {
    106 	RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
    107 	RPC_OMX_CONTEXT *pRPCCtx = NULL;
    108 	OMX_S32 status = 0;
    109 	struct omx_conn_req sReq = { .name = "OMX" };
    110 	TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
    111 	OMX_U32 i = 0, nAttempts = 0;
    112 
    113 	*(RPC_OMX_CONTEXT **) phRPCCtx = NULL;
    114 
    115 	//pthread_t cbThread;
    116 
    117 //	sReq.name = "OMX";
    118 
    119 	/*pRPCCtx contains context information for each instance */
    120 	pRPCCtx =
    121 	    (RPC_OMX_CONTEXT *) TIMM_OSAL_Malloc(sizeof(RPC_OMX_CONTEXT),
    122 	    TIMM_OSAL_TRUE, 0, TIMMOSAL_MEM_SEGMENT_INT);
    123 	RPC_assert(pRPCCtx != NULL, RPC_OMX_ErrorInsufficientResources,
    124 	    "Malloc failed");
    125 	TIMM_OSAL_Memset(pRPCCtx, 0, sizeof(RPC_OMX_CONTEXT));
    126 
    127 	/*Assuming that open maintains an internal count for multi instance */
    128 	DOMX_DEBUG("Calling open on the device");
    129 	while (1)
    130 	{
    131 		pRPCCtx->fd_omx = open("/dev/rpmsg-omx1", O_RDWR);
    132 		if(pRPCCtx->fd_omx >= 0 || errno != ENOENT || nAttempts == 15)
    133 			break;
    134 		DOMX_DEBUG("errno from open= %d, REATTEMPTING OPEN!!!!",errno);
    135 		nAttempts++;
    136 		usleep(1000000);
    137 	}
    138 	if(pRPCCtx->fd_omx < 0)
    139 	{
    140 		DOMX_ERROR("Can't open device, errorno from open = %d",errno); <==
    141 		eError = RPC_OMX_ErrorInsufficientResources;
    142 		goto EXIT;
    143 	}
    144 	DOMX_DEBUG("Open was successful, pRPCCtx->fd_omx = %d",
    145 	    pRPCCtx->fd_omx);
 (略)

ducati-m3.bin under system/vendor/firmwareをコピーするといいようだ。
[http://grokbase.com/t/gg/android-building/127q9ww0mr/using-hw-codec-on-jellybean-galaxy-nexus:title=[android-building] Using HW Codec on JellyBean + Galaxy Nexus - Grokbase]

Using HW Codec on JellyBean + Galaxy Nexus