嗨,我有几个问题。如果有人能回答:)我正在尝试为lcd 16X2模块编译linux驱动程序,我会很高兴。我试图在我的代码中使用结构体file_operations();1.从其他代码中我注意到他们添加了#ifdef KERNEL21来编译。我试着这样做,我得到的错误要少得多。为什么是这样的。我正在使用内核2.6.18-128.4.1.el5..所以我需要改成#ifdef KERNEL26吗?如果我尝试做soo,我会得到更多的错误。
2.一些file_operation参数是rtuen ssize_t的函数。这是什么意思?在其他代码示例中,也有"#ifdef KERNEL21“,但我仍然得到一个错误:"lcd_module.c:74: error: expected orג(גotherג{גtoken”
3.最后一个问题,我使用了一个Makfile示例,我得到的是.o文件,而不是im使用的.ko文件。如何使用.o文件运行模块?
提前感谢:)
发布于 2010-12-16 06:47:25
ssize_t基本上是一个带符号的size_t,在内核中被广泛使用,因为小于零的值用于在需要无符号大小的地方返回错误。例如,read文件操作应该返回读取的字节数,但是在内存不足的情况下,您可以返回-ENOMEM,并且将在用户空间程序中适当设置errno。
在2.6内核中,您应该使用kernel-headers包中的Makefile,而不是手工创建的Makefile,并且它生成的是.ko文件而不是.o。更多信息请点击这里:http://www.cyberciti.biz/tips/build-linux-kernel-module-against-installed-kernel-source-tree.html
https://stackoverflow.com/questions/4452207
复制相似问题