低内核编译的高内核可以用吗
‘壹’ 在高版本内核上编译的程序在低版本内核运行会崩溃
glibc主版本号。
而且编译的时候如果CGFLAGS和CXXFLAGS如果没有-g选项的话用gdb调试无法看到变量名,默认是提示有问题。
‘贰’ linux内核可从高版本往低版本编译不例如现在我内核是3.2,想编译为2.6,按照常规内核编译方法可行么
应该可以。
唯一可能有问题的是,gcc的版本,如果有问题的话,建议安装低版本的gcc
‘叁’ linux编译模块的内核版本和现在使用的内核版本不一致的话,怎么将现在使用的内核版本配成编译所要的
修改Makefile中的KDIR参数,你现在的Makefile是怎样写的?
参考Makefile:
obj-m := moles.o
moles-objs := mymod.o
KDIR=/lib/moles/`uname -r`/build
PWD =$(shell pwd)
default:
make -C $(KDIR) M=$(PWD) moles
clean:
rm -rf *.o .* .cmd *.ko *.mod.c .tmp_version
‘肆’ linux内核编译问题
根据你的警告是提示,找不到这些驱动模块,应该是没有编译驱动模块或者没有安装驱动模块造成的。
1、要确保你的内核包是完整的,而且是centos配套版本(因为各大发行版都会针对自己的情况对内核进行配置和改动,直接用kernel.org的原版内核可能会有些故障)
2、编译前要 先make clean一下,把以前编译剩下的东西清掉,重头再来。
3、编译时顺序执行如下命令
make bzImage 生成内核映像
make moles 生成驱动模块
make moles_install 安装驱动模块
make install 安装内核
‘伍’ 在内核版本为高版本的linux系统中编译的软件能否在内核版本为低版本的linux系统中运行
不能吧!软件都是向前兼容的。新的兼容旧的,但旧的一般不兼容新的
‘陆’ ARM linux设备驱动,写的驱动必须在编译内核的时候添加到内核才能用吗比如led驱动,我生成
linux2.6以后的内核在加载驱动的时候是可以动态添加的,不用每次添加之后都make zImage,
你只用先编译一边,然后就可以一直用这个做驱动的开发喽,
只要生成了led.ko,然后insmod led.ko,就可以了,至于是不是用应用层,我觉得你还是先学一下应用层的东西吧,比如nuix系统高级编程之内的书,
‘柒’ linux内核编译问题:我用redhat9.0 编译过2.6.2的内核现在想编译2.6.28的内核 可以直接编译吗
可以!!!
http://..com/question/308930641.html
‘捌’ 其它Linux版本的内核,可以拿来就用吗
我已经把这个专门的Linux版本的内核提取出来,想把它直接放到移动硬盘上的那个Linux里用,不知是否可行?
这个肯定不行的,你可以试试
怎么装,难度较大,我真帮不了
‘玖’ linux内核模块设计时,选用的内核版本需要与现在用的linux系统版本相同吗
看你开发目标是什么版本,这个版本要对应。
假设你学习开发 2.4.2 的内核模块,你却用 3.2.2 的内核源代码肯定是不通用的。再假设你未来要给一个运行着 2.6.18 内核的设备开发一个驱动,你却用 3.2.11 内核,开发出来的东西肯定也不行。
不过这个也两说,有的地方其实还是有通用可能的。但有的地方轻微的版本不同就有兼容问题。
这主要看内核接口的变化情况了。有一段时间 ATI 的显卡驱动就比较坑。因为总是跟不上内核的开发进度,老是不能兼容最新的内核……现在内核接口好很多,不需要每个版本都有变化了,但这个也很难说什么时候又变了。所以最好还是你的目标是什么版本,你就用什么版本。一点都不差最好。
这里主要牵扯着测试的问题。你如果熟练了,那么目标是什么你就直接写好了不用测试直接就能用也行。
‘拾’ linux不同内核版本驱动编译的问题
楼主你好。
首先你把你的***.ko的包放到/proc/sys/对应目录
然后执行insmod 输入绝对路径 加载内核驱动
然后lsmod 查看一下有没有这个内核模块!如果能用的话 放到/etc/rc.local/配置文件即可!!!