On Sat, Oct 15, 2011 at 2:42 AM, Philip Anil-QBW348 <anil.philip@motorolasolutions.com> wrote:
I am calling the driver from an Android program (OMAP4/Blaze). It calls a c++ program via JNI which then calls the device driver. Someone suggested it might be a permissions problem - the program is running in user mode.
on Blaze board, /system/bin # ls -l -rwxrwxrwx system system 7636 2011-09-30 03:53 mydriver
Will strace still be useful? In general, in Linux, how does one enable a user program to call a custom device driver?
Please don't top post! :) strace will be useful to check the parameters for open, write system calls. EBADF fd is not a valid file descriptor or is not open for writing. Ok, so either open fails, or you don't have the permission to write into /dev/mydriver file. Another thing that I can think of, is that your driver's write function is wrong, and returns -EBADF in some case ? Can you give us a pointer to your driver? thanks, Daniel.