如何给linux安装新内核 |
您所在的位置:网站首页 › ko框架 › 如何给linux安装新内核 |
第二步:清除垃圾(这一步:一般是在就内核重新编译时使用,在编译新的内核是不需要);make clean及make mrproper; 第三步:进行内核裁减配置; 内核裁减配置的原则: 从实际出发。 如:根据支持的硬件设备来决定需要选择的驱动模块,根据需要选择所支持的文件系统格式等; 具体配置命令为: make config :通过命令接口,依次要求你设定每个选项,如果.config文件存在,会根据该文件来设置默认值; make menuconfig :显示以curses为基础的、终端式的配置菜单。 make xconfig :图形界面,显示以Tk为基础X Window配置菜单。 最常用的为:make menuconfig(注:需要ncurses的rpm包)。 说明:这一步中选择为M模式的,编译到/lib/modules/下相关目录文件中;选择为*模式的,编译到内核中即/boot/vmlinuz中,启动时加载到内核中。 具体内核裁减配置参阅其它资料。 第四步:生成依赖关系(make dep) 内核源码树中大多数文件都会与一些头文件有依存关系,要想编译内核顺利,在正式编译前必须让内核源码树中的各个Makefile文件知道这些依存关系。 依存关系建立期间会在内核源码树中每个子目录里产生一个隐藏的.depend文件,此文件内含子目录里各个文件所依存的头文件清单。 第五步:建立内核映像和模块 2.4内核:make bzImage :在arch/YOUR_ARCH/boot/中生成在在zImage内核映像文件; make modules :在相应目录下生成内核模块(即驱动模块) 2.6内核:make :作用相当于make bzImage与make modules 第六步:安装模块(make modules_install) 让make modules或make 过程中产生的.o驱动模块拷入/lib/modules/下相应目录中; 第七步:安装内核 第一种情况:直接使用make install命令即可。 第二中情况:先采用cp arch/i386/boot/bzImage /boot/×××(×××表示自己随意的命名) mkinitrd /boot/×××.img 2.6.12.6(内核版本号) linux内核支持动态加载模块,内核模块以.ko为后缀,在Linux系统中,内核模块放在/lib/modulex/x.x.x目录中,其中x.x.x为linux版本号 加载模块 insmod xxx.ko 如果带参数 insmod xxx.ko a=1 卸载模块 rmmod xxx.ko 支持的数据类型 bool :布尔类型 invbool:颠倒了值的bool类型 charp :字符指针类型,内存为用户提供的字符串分配 int:整型 long :长整型 short :短整型 uint :无符号整型 ulong :无符号长整型 ushort :无符号短整型 内核模块源码Makefile编写格式和linux源码的格式一样 在OpenWrt系统中,内核模块编译和应用层的package编译类似 make package/模块名/compile V=s 比如: make package/hello_kernel/compile V=s 编译完成后会生成.ko文件,目录文件在build_dir中,但和应用层的build目录有点区别,内核模块的package放在linux目录,如(X86平台): build_dir/target-x86_64_musl/linux-x86_64/ 将编译完成的ko文件传输到OpenWrt系统中,注意编译平台和开发板平台的系统架构要一致。 不同发行版和不同版本的Linux略有不同,以CentOS7为例,需要在/etc/sysconfig/modules/目录中增加一个脚本,在此脚本中加载所需的模块。注意该脚本文件的权限为755。以uinput模块为例,脚本如下: #!/bin/sh if [ ! -c /dev/input/uinput ] then exec /sbin/modprobe uinput /dev/null 21 fi 欢迎分享,转载请注明来源:内存溢出 原文地址:https://outofmemory.cn/yw/7342223.html |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |