From: Luca R. <luc...@st...> - 2012-08-26 19:49:57
|
Hello, I have installed libfuse 2.9.1 under Linux. The version of the kernel is 3.2.0. If the "videodev" kernel module is present in memory, when I run the cusexmp example under fuse-2.9.1/example with the following options, the specified device node is never created, although from the output everything seems okay: # modprobe cuse (required) fuse-2.9.1/example$ ./cusexmp -d --maj=81 --min=0 -f --name=video0 FUSE library version: 2.9.1 unique: 1, opcode: CUSE_INIT (4096), nodeid: 0, insize: 56, pid: 8007 CUSE_INIT: 7.17 flags=0x00000001 CUSE_INIT: 7.19 flags=0x00000001 max_read=0x00020000 max_write=0x00020000 dev_major=81 dev_minor=0 dev_info: DEVNAME=video0 unique: 1, success, outsize: 103 While the output from the kernel is CUSE: failed to register chrdev region Note the "success" word at the end of the output from fuse, although no /dev/video0 is really created and the program does not exit with an error. I would like to know if that is a bug. Should not the program terminate with an error from fuse after intercepting the error from the kernel? No matter what names and minor numbers you specify, the problem will be still the same whenever the major number is 81: no device nodes will be created. It's likely that once the "videodev" kernel module is present in memory, it reserves all the possible minor numbers the video4linux subsystem can handle. In facts, to make the example work, first you have to unload the videodev module. Let me know if you need more informations. Thanks in advance. |