当前位置: 技术问答>linux和unix
我的lkm程序,insmod时提示内核版本不对,怎样才能成功升级内核?
来源: 互联网 发布时间:2016-10-05
本文导语: 首先声明,我是纯正的linux菜鸟,到目前为止,使用ubuntu的时间不超过一个星期。之所以做这个lkm程序是因为作业。 好吧,下面开始倒苦水。 我的ubuntu的版本是2.6.32.21的,/usr/src下只有linux-2.6.32.21-generic文件夹 我的...
首先声明,我是纯正的linux菜鸟,到目前为止,使用ubuntu的时间不超过一个星期。之所以做这个lkm程序是因为作业。
好吧,下面开始倒苦水。
我的ubuntu的版本是2.6.32.21的,/usr/src下只有linux-2.6.32.21-generic文件夹
我的程序编译用的source是从kernal.org上下的2.6.32.21版本的,版本明明一样,但是insmod时提示我“Invalid module format”,dmesg后发现是“disagrees about version of symbol struct_module”。搜索一气后,都说是版本号不对。好吧,那就升级内核。
网上流传的升级内核的方法真多,但是要么不完全正确,让我功亏一篑,要么太过古老,让我摸不着头脑。我只能硬着头皮尝试,目前总共尝试编译内核次数不低于5次,纠结时间超过3天,我不想在这么漫无目的地尝试了,但是时间又不允许我按部就班地学习ubuntu,所以我只能来这里求救
我的问题就是这样:我的lkm程序能正确编译成.ko,但是insmod时提示版本不对,该怎么解决?如果是升级内核,我该怎么一步一步去做才能成功升级,然后成功地让我的lkm程序insmod。
好吧,下面开始倒苦水。
我的ubuntu的版本是2.6.32.21的,/usr/src下只有linux-2.6.32.21-generic文件夹
我的程序编译用的source是从kernal.org上下的2.6.32.21版本的,版本明明一样,但是insmod时提示我“Invalid module format”,dmesg后发现是“disagrees about version of symbol struct_module”。搜索一气后,都说是版本号不对。好吧,那就升级内核。
网上流传的升级内核的方法真多,但是要么不完全正确,让我功亏一篑,要么太过古老,让我摸不着头脑。我只能硬着头皮尝试,目前总共尝试编译内核次数不低于5次,纠结时间超过3天,我不想在这么漫无目的地尝试了,但是时间又不允许我按部就班地学习ubuntu,所以我只能来这里求救
我的问题就是这样:我的lkm程序能正确编译成.ko,但是insmod时提示版本不对,该怎么解决?如果是升级内核,我该怎么一步一步去做才能成功升级,然后成功地让我的lkm程序insmod。
|
我的程序编译用的source是从kernal.org上下的2.6.32.21版本的,版本明明一样,但是insmod时提示我“Invalid module format”
---------------------
又见这种问题,你下的内核和当前使用的内核的版本区别在于一个是linux-2.6.32.21-generic,一个是linux-2.6.32.21
自己从kernel.org下的源码,必须使用跟当前内核一样的config编译过之后才能拿来编译内核模块
可以安装一个内核头文件包,但是我没用ubuntu,不知道是什么名字,就是编译你当前内核使用的内核头文件
最简单的办法,去装一个fc8,安装时尽可能勾选多的开发库,附带kde开发
里面的kdevelop能建立内核工程,更高版本的fc居然去掉kdevelop的内核工程,气人
ubuntu其实最不适合新手用,要手动装一堆包,足够把新手玩死
---------------------
又见这种问题,你下的内核和当前使用的内核的版本区别在于一个是linux-2.6.32.21-generic,一个是linux-2.6.32.21
自己从kernel.org下的源码,必须使用跟当前内核一样的config编译过之后才能拿来编译内核模块
可以安装一个内核头文件包,但是我没用ubuntu,不知道是什么名字,就是编译你当前内核使用的内核头文件
最简单的办法,去装一个fc8,安装时尽可能勾选多的开发库,附带kde开发
里面的kdevelop能建立内核工程,更高版本的fc居然去掉kdevelop的内核工程,气人
ubuntu其实最不适合新手用,要手动装一堆包,足够把新手玩死
|
2.6系内核升级步骤
1.make mrproper
2.make oldconfig
3.make config/make menuconfig(推荐)/make xconfig/make gconfig
4.make
5.make modules_install
6.mkinitrd
7.installkernel
1.make mrproper
2.make oldconfig
3.make config/make menuconfig(推荐)/make xconfig/make gconfig
4.make
5.make modules_install
6.mkinitrd
7.installkernel
|
我使用FC9升级到某个版本(按楼上几位的方法),编写驱动没有出现insmod问题。
要确保你当前正在使用的系统的版本跟你写驱动所用的版本是一致(你升级后再进到新内核这个“系统”),其它没什么问题了,因为驱动编译过程中要用到内核的头文件。
————
ubuntu是给新手玩玩的,不适合搞开发。——那些个gcc、g++、bison、flex,等等,慢慢升级吧。
要确保你当前正在使用的系统的版本跟你写驱动所用的版本是一致(你升级后再进到新内核这个“系统”),其它没什么问题了,因为驱动编译过程中要用到内核的头文件。
————
ubuntu是给新手玩玩的,不适合搞开发。——那些个gcc、g++、bison、flex,等等,慢慢升级吧。
|
你还是试试装ubuntu带的头文件包吧
我不知道具体的名称,你多尝试
apt-get install kernel-headers-*
apt-get install kernel-headers-linux-2.6.32.21-generic
我不知道具体的名称,你多尝试
apt-get install kernel-headers-*
apt-get install kernel-headers-linux-2.6.32.21-generic
|
以fedora 9 download关键字google来的:
http://download.chinaunix.net/download/0013000/12384.shtml
注:其实搞开发这东东,许多软件、系统不一定要最新的,一定新且能够适合自己使用即可。
|
我没用过ubuntu
在rhel5.4下可以用一下方式编译通过
make mrproper
make menuconfig
make bzImage
make modules
make modules_install
make install
在rhel5.4下可以用一下方式编译通过
make mrproper
make menuconfig
make bzImage
make modules
make modules_install
make install
|
verycd 应该有fc8
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。