Re: ioctl call fails with unknown command



hi janaka, i am using 2.6.x...and yes the open command is succesfful.
i can even invoke my read/write method.
i have registered my command using magic number
0x81 and also tried magic number 0x82, etc..
so far still havent' been able to do ioctl call in the driver.
the vendor says there's no problem with the kernel.
do you have any more suggestions?

thank you in advance.

On Feb 19, 10:10 pm, Janaka <jana...@xxxxxxxxxxxx> wrote:
On Feb 20, 1:18 pm, mcha...@xxxxxxxxx wrote:





hi, when trying to doioctlcallto my driver, i keep getting an error
message:unknowncommandfd(3).  it seems that theioctl

callis not invoking my driver ioctal method because the debug message
inside myioctlmethod never get printed out.
although this may seems like i am using incorrect file descriptor,
since myioctlmethod is not even being called, i know i am

using the correct file descriptor because my 'read' method gets
invoked fine.
And using the same code and driver, i was able to get it to work on a
486 target machine but it doesn't seem to work with this

particular linux version.

how can i debug this code? where in the kernel code can i begin to
trace to see what is happening?  which file/function gets

called whenioctlfunction is fisrt called?
(i don't have a debugger and i am not able to gdb the code so i need
to resort to printing out debug messages in the source

code.)

thank you in advance.
ioctlcallfailswithunknowncomma

I am assuming that you are using 2.6.x kernel.  If so use one of the
macros provided by the kernel to specify IOCTLs such as:
_IO( 'k', 0)
_IOR( 'k', 2)
_IOW( 'k', 4)
_IOWR( 'k', 5)

etc.

Make sure the file open succeeds before attempting tocallits IOCTLs.
Eg:
myfile = open("/dev/mydevice0", O_RDWR |  O_SYNC);

ioctl( myfile, 4, 1234);- Hide quoted text -

- Show quoted text -

.



Relevant Pages