I am attempting to develop Linux device drivers and as my first attempt I am trying to develop a char device driver that has the following file options,
struct file_operations fops{
.open=open_fun,
.release=release_fun,
.write=write_fun,
.read=read_fun,
};
When I load the driver using insmod, I see that /proc/devices lists the driver under char devices but I can't find it in /dev. A Google search suggested use of mknod to create a device in /dev and associate it with the driver's major and minor. However, an attempt to do so resulted in "Permission denied" error even when done as a super user.
What should I do to make the device appear in /dev when the kernel module is loaded? I tried both the older (register_chrdev) and the newer version (cdev_init & cdev_add) of registering the device but none of them works.