在Fedora9中搭建驱动开发环境

2019-07-12 18:25发布

    小菜刚刚开始学习驱动开发,啥都不会,就知道hello world…… 本来以为写个helloworld很容易吧~的确容易~你要是懒的话直接抄书本上就可以了~ 于是helloworld写出来了,在写makefile的时候才发现,fedora 9本身没安装源码~好吧,那就安装源码吧。于是到fedora官网下了个源码的rpm包~ 按照网上说明的方法安装了一下~过程顺利,没啥问题 把配置文件从boot那里cp过来改名成.config,这样做是为了确保这个内核跟系统的内核有一致的配置,不然出现啥问题就杯具了。然后我直接就编译内核了,make oldconfig ,make dep make,,花了N久的时间,期间我还看了一部非诚勿扰………… 于是看完之后发现还没编译完……崩溃…… 吃完饭回来发现终于编译完了,- -!于是满心欢喜的试着编译一下我的helloworld模块,编译成功! 不过insmod的时候出现了让人无法理解的错误:invalid module format google了一下,原来在驱动装载失败的时候会在/var/log/message这个文件里面记录下失败的原因,于是去看了一下,发现是描述内核版本的那个字符串不对~~就是,我的驱动里面描述内核版本的字符串跟我的fedora内核描述版本的字符串不一样~于是内核就拒绝我了~ 又google了一下解决办法,原来很简单,修改主makefile文件里面的EXTRAVERSION这个变量的值,就在最上面,很好找的。改到跟message提示的那个格式一摸一样就行了。 然后我发现貌似我又得编译一次内核………… - -! 事实上不必完全编译完内核,当然完全编译完的话会好点。一般看见CC出现的话按下Ctrl+C直接终止编译,因为我们需要的文件已经出来了,不必再费事去编译。 然后这个时候再去编译驱动,成功,insmod 成功! 好了,记录就先写到这~