Linux内核配置与编译
2015-08-28 21:21
330 查看
在开发板上安装Linux系统,要安装三个文件:
①bootloader
②内核映像
③文件系统映像
Linux内核代码要经过一系列操作才能成为内核映像。
对下载下来的Linux内核代码进行解压,进入该目录后,可以看到在该目录下除了arch等代码文件夹外,还存在一些文件,其中有一个Makefile文件,上图显示的make config等操作都是基于该Makefile文件,因此这些操作都需要在Linux内核代码目录下进行。
配置内核的指令有两条
make config:基于文本模式的交互式配置
make menuconfig:基于文本模式的菜单式配置
一般使用的是make menuconfig指令。在make menuconfig显示的菜单中,processor types and features用于配置处理器类型,networking support用于配置网络协议,device support用于配置驱动,file system配置文件系统。每一项前都有标志,其中
<*>表示文件被编译链接成为内核映像,并会在内存中运行;
< >表示不编译
配置的结果会存放在.config文件中(通过修改该文件也可以实现配置)
但一般在一个已有的配置文件的基础上进行配置。配置文件可以在内核代码目录下找到,如arch/arm/config下有许多关于arm平台的配置文件。
①编译内核映像,即将<*>编译成zImage;
②编译内核模块,即将
③制作ramdisk,将
编译内核映像有两个指令:make zImage和make bzImage,区别在于在X86平台,zImage只能用于小于512K的内核,如果想获得编译时详细的信息,可添加V=1选项,如make zImage V=1.这两条指令会打印显示编译后生成的zImage文件存放的路径。
将
制作ramdisk可以使用:
①
②
③修改/etc/grub.conf
①make clean,该指令清理.o文件
②make distclean,该指令清理.o文件和配置文件.config
①bootloader
②内核映像
③文件系统映像
Linux内核代码要经过一系列操作才能成为内核映像。
对下载下来的Linux内核代码进行解压,进入该目录后,可以看到在该目录下除了arch等代码文件夹外,还存在一些文件,其中有一个Makefile文件,上图显示的make config等操作都是基于该Makefile文件,因此这些操作都需要在Linux内核代码目录下进行。
配置内核
配置内核:根据具体的硬件和软件需求,选出需要的代码或功能,去掉不需要的代码或功能。配置内核的指令有两条
make config:基于文本模式的交互式配置
make menuconfig:基于文本模式的菜单式配置
一般使用的是make menuconfig指令。在make menuconfig显示的菜单中,processor types and features用于配置处理器类型,networking support用于配置网络协议,device support用于配置驱动,file system配置文件系统。每一项前都有标志,其中
<*>表示文件被编译链接成为内核映像,并会在内存中运行;
<M>表示内核模块,文件会被编译,然后统一存放在硬盘中,当需要用到时从硬盘取出放到内存中运行
< >表示不编译
配置的结果会存放在.config文件中(通过修改该文件也可以实现配置)
但一般在一个已有的配置文件的基础上进行配置。配置文件可以在内核代码目录下找到,如arch/arm/config下有许多关于arm平台的配置文件。
编译内核
内核编译分为三步①编译内核映像,即将<*>编译成zImage;
②编译内核模块,即将
<M>编译成以ko为后缀的文件;
③制作ramdisk,将
<M>编译成以ko为后缀的文件后,需要将这些文件打包合成一个文件,也就是制作ramdisk。
编译内核映像有两个指令:make zImage和make bzImage,区别在于在X86平台,zImage只能用于小于512K的内核,如果想获得编译时详细的信息,可添加V=1选项,如make zImage V=1.这两条指令会打印显示编译后生成的zImage文件存放的路径。
将
<M>编译成以ko为后缀的文件,运行的指令是make modules,产生的这些文件零落地存放在内核代码的各个文件夹中,运行make modules_install从内核源代码目录复制至/lib/modules下的一个文件夹(该文件夹会自动创建,通常为Linux版本号),为打包做好准备。
制作ramdisk可以使用:
mkinitrd initrd-$version $version,其中initrd可以任意取名,
$version是版本号,可以通过查询/lib/modules下的目录得到,例:mkinitrd rd-2.6.32 2.6.32
安装内核
配置并编译好后,可以安装内核了,这里所说的安装内核是指在Linux上安装内核,分三步:①
cp arch/x86/boot/bzImage /boot/vmlinuz-$version
②
cp initrd-$version /boot/
③修改/etc/grub.conf
内核清理
最后说的是清理在配置与编译过程中产生的过程文件。可以用到的指令有①make clean,该指令清理.o文件
②make distclean,该指令清理.o文件和配置文件.config
相关文章推荐
- Linux kernel的中断子系统之:IRQ Domain介绍
- Linux kernel的中断子系统之综述
- linux 底层驱动中断分析和一般使用(顶半部与底半部)
- linux 远程gui管理 webmin
- linux下定时执行任务方法
- Linux多线程机制(生产者和消费者实例 )
- linux下给php安装pdo_mysql和zlib以及测试模式的选择(禅道安装过程中遇到的问题)
- linux下mysql无法启动
- centos6的安装与配置
- linux下搭建java环境
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法 + Linux启动/停止/重启Mysql数据库的方法
- 新手用Linux做代理服务器 三招搞定
- 解决Linux中文乱码
- linux之nohup命令
- CentOS 删除自带jdk 配置自己的jdk 以及windows下安装 jdk 操作
- Linux中的用户切换(root授权)
- Linux mount-挂载移动硬盘
- Linux目录结构
- CentOS 安装中文输入法
- linux用户和用户组管理