简单设备驱动程序问题:cat:/dev/chardev:没有这样的设备或地址
我正在尝试学习设备驱动程序并尝试编译代码,但收到以下错误消息。如果您能给我解决这个问题的指示,我将不胜感激 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-generic
我正在使用以下站点的代码“http://tldp.org/LDP/lkmpg/2.6/html/x569.html”
I am trying to learn Device Drivers and tried to compile a code, but I get the below error messages. I would appreciate if you give me pointers to resolve this issue
cat: /dev/chardev: No such device or address
Below are the logs:
@ubuntu:~/Desktop/C_code$ lsmod
Module Size Used by
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-generic
I am using the code from the following site "http://tldp.org/LDP/lkmpg/2.6/html/x569.html"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试:
cat ~/Desktop/C_code/dev/chardev
。该文件不一定位于/dev
中,但您可以将其复制到那里。Try:
cat ~/Desktop/C_code/dev/chardev
. That file isn't necessarily in/dev
yet, but you could copy it there.问题基本上是设备节点 /dev/chardev 代表的主设备号和次设备号不代表设备。在您的源代码中,在“ye”分配之后输入一个主要和次要编号的 printk 。
检查内核日志中的数字是否与设备节点声明的 77 0 匹配。
如果没有,删除设备节点,并写入以下命令,
当然主要和次要是您打印到内核日志中的命令。
祝你好运。
the problem is basically that the major and minor number represented by the device node /dev/chardev don't represent a device. put in your source code a printk of the major and minor number just after the'ye assignment.
check if the numbers in the kernel log match 77 0 as the device node declare.
if not, delete the device node, and write the following command
of course the major and minor are the ones you printed to the kernel log.
good luck.
http://tldp.org/LDP/lkmpg/2.6/html/x569.html
,在这里chardev
是在当前工作目录中创建的。因此您应该在当前目录中 cat
chardev
而不是/dev/
中。或者在
/dev/
目录中创建chardev
。http://tldp.org/LDP/lkmpg/2.6/html/x569.html
, herechardev
is created in current working directory.So you should cat
chardev
in your current directory not in/dev/
.Or create
chardev
in/dev/
directory instead.