【问题标题】:Permission denied in character device字符设备中的权限被拒绝
【发布时间】:2014-01-27 03:00:47
【问题描述】:

我正在为充当 FIFO 设备的 debian 6 内核编写设备驱动模块,编译显然是正确的,我使用以下代码创建它:

Major = register_chrdev(0, DEVICE_NAME, &fops); //Major is an integer value
if (Major < 0) {
  printk(KERN_ALERT "Registering char device failed with %d\n", Major);
  return -Major;
}
/*
 * Creation of buffer;
 */
if( (buf = create_cbuffer_t(MAX_BUFFER_SIZE)) == NULL){
    printk(KERN_ALERT "Error when creating the FIFO device.");
    return -EINVAL;
}
    printk(KERN_INFO "Buffer created without error.\n");

分配的主要号码是 251,我使用这个创建它的文件:

sudo mknod /dev/fifodev c 251 0

它工作正常,但是当我尝试在终端中访问时,这是结果

dsouser@debian:~/Escritorio/Prac3/ParteB$ echo whatever > /dev/fifodev 
bash: /dev/fifodev: Permiso denegado **This means:Permission denied**

这也发生了:

dsouser@debian:~/Escritorio/Prac3/ParteB$ cat /dev/fifodev
cat: /dev/fifodev: Argumento inválido

其中有什么问题或让它运行的正确方法是什么?

非常感谢

【问题讨论】:

    标签: c terminal kernel debian linux-device-driver


    【解决方案1】:

    更改/dev/fifodev的权限

     sudo chmod 666 /dev/fifodev
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-15
      • 2018-06-11
      • 2018-12-26
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多