我正在尝试学习设备驱动程序并尝试编译代码,但我收到以下错误消息。如果你给我指点解决这个问题,我将不胜感激 cat:/ dev / chardev:没有这样的设备或地址
以下是日志: @ubuntu:〜/ Desktop / C_code $ lsmod
使用的模块大小 chardev 12767 0
@ubuntu:〜/ Desktop / C_code $ ls -l / dev
crw-rw-rw- 1 root root 77,0 2011-10-03 20:47 chardev
〜/ Desktop / C_code $ uname -r
2.6.38-8泛型
我正在使用以下网站中的代码“http://tldp.org/LDP/lkmpg/2.6/html/x569.html”
答案 0 :(得分:0)
尝试:cat ~/Desktop/C_code/dev/chardev
。该文件不一定在/dev
,但您可以将其复制到那里。
答案 1 :(得分:0)
问题基本上是设备节点/ dev / chardev所代表的主号和次号不代表设备。在'ye assignment
之后,在源代码中输入主要和次要编号的printk检查内核日志中的数字是否与设备节点声明的77 0匹配。 如果没有,删除设备节点,并写入以下命令
sudo mknod /dev/chardev c <MAJOR> <MINOR>
当然主要和次要是您打印到内核日志的那些。
祝你好运。答案 2 :(得分:0)
http://tldp.org/LDP/lkmpg/2.6/html/x569.html
,在这里
chardev
是在当前工作目录中创建的。
因此,您应该在当前目录中chardev
而不是/dev/
。
或者在chardev
目录中创建/dev/
。