Я хочу добавить устройство char к /devices
в моем каталоге Linux с помощью кода C. Поскольку я создаю фиктивные драйверы, которые должны существовать только тогда, когда я insmod my_module.ko
, я хочу, чтобы мой модуль создал для меня устройство. Ниже приведена часть моего кода, которая должна добавить устройство, но я только инициализирую свой cdev struct
и сообщаю об этом ядру.
int start_mod(void){
//Because we are dealing with a fictitious device, I want
//the driver to create my two devices with arbitrarly
//assigned major numbers.
alloc_chrdev_region(&dev_num, FIRST_MINOR, COUNT, DEVICE_NAME); // This assigns my device name
// as well as asign Major # my driver uses
cdev_init(&(my_dev->my_cdev), &fops);// This initializes my cdev struct that the kernel uses to keep track of my device
my_dev->my_cdev.owner = THIS_MODULE;
my_dev->my_cdev.ops = &fops;// fops is my file operations struct
int err = cdev_add(&(my_dev->my_cdev), dev_num, COUNT);// this in theory should give a pointer to the kernel
// to my cdev struct that I have setup to exist in my other structure.
// Now I need to officially add my device to /devices folder.
return 0;
}
Я не уверен, что мне нужно сделать, чтобы официально добавить устройство char в ядро.