您的位置:首页 > 运维架构 > Linux

Invaild Module Format linux中hello world 程序编写

2014-08-12 15:53 267 查看
最近正在学习linux驱动,一般接触一个新领域都是从Hello World 开始的。但是就是这样的一个简单的Hello World 程序却涉及到很多问题。

网上的教程以及一些书籍都会介绍你怎么去写程序,却一般不介绍环境的搭建,殊不知环境的搭建对于初学者而言很重要。要是身边没有高手帮你搭环境,语法可能不会击垮你,但是环境就会让你不知所错。下面我介绍一下搭环境最简单的方法。

驱动的核心概念是模块,模块需要加载到内核中。通常书籍都是这样告诉我们的,我们的linux操作系统的内核是发行版本,都是经过厂商修改过的,容易出现问题。然后就是i让你去kernel.org中下载内核。然后进行编译升级。但是我问过驱动人员才明白一般不会出现问题。并且我升级后,系统和原来的是有差距的,也不好用,为什么不用原来的系统内核呢?

一般书籍都没告诉,但是我用的系统的内核真的很好用。在写Makefile时需要指明内核的路径,在/usr/var里面就有系统的内核源码。用uname -r 查看系统的系统的内核源码,然后选择就可以搞定。

当然也还有一种简单的方法就是 KERNELDIR ?= /lib/modules/$(shell uname -r)/build

在装载的时候通常还会遇到 Invaild Module Format 这也是由于内核与系统内核不一致所导致的。 建议:

1.按照上述办法,就不会出现这个问题。

2.不怕系统难看,不好用,下载一个新的内核升安装,也不会出现这个问题,当然路径要相应的改为你下载的源码路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: