Я пытаюсь написать драйвер с модулем ядра Linux. Я создал специальный файл с mknod, который называется «newfile». Я выполнил команду chmod для этого файла, чтобы включить разрешение на запись, и я установил 777. Я пытаюсь записать в этот файл эту команду из терминала: echo «Запись в файл»> newfile, но я получил ошибку, и из моегоДрайвер я получил -EINVAL в vfs_write. Это мой код:
static ssize_t device_write(struct file *flip, const char *buffer, size_t len, loff_t *offset) {
printk(KERN_INFO "writing on file; buffer is: %s len is: %d offest is: %lld \n",buffer,len,offset);
return file_write(flip, offset,buffer,len);
}
int file_write(struct file *file, unsigned long long offset, unsigned char *data, unsigned int size)
{
//mm_segment_t oldfs;
int ret;
//oldfs = get_fs();
//set_fs(get_ds());
ret = vfs_write(file, data, size, &offset);
if(ret == -EINVAL)
printk(KERN_INFO "is EINVAL!");
else
printk(KERN_INFO "not EINVAL!");
return ret;
}
В чем проблема? Я не могу понять