LINUX学习笔记20—内核配置与编译
2011-12-13 14:22
501 查看
1. 清除临时文件,中间文件和配置文件:在顶层目录下执行
a) Make clean:删除产生文件,保存配置文件
b) Make mrproper:删除产生文件和配置文件
c) Make distclean:删除mrproper+编辑文件和补丁文件
2. 确定目标系统的软硬件配置情况:比如CPU的类型、网卡的型号,所需支持的网络协议等
3. 配置内核方式:会生成.config文件,保存配置文件
a) Make config:基于文本模式的交互式配置,问答形式
b) Make menuconfig:基于文本模式的菜单型配置(推荐)
i. *:对应Y:在编译的基础上,进行连接
ii. m:对应m:进行编译不连接,将该功能编译成可以在需要时动态插入到内核中的模块。
iii. 空:对应N:不进行编译
c) Make oldconfig:要求回答的配置项比较少,大部分默认
d) Make xconfig:图形化的配置
4. 内核配置项选择方法:参考内核配置文档
a) 方法:利用已有的内核配置参考文件,在这基础上进行配置
b) 找到配置文件:
i. 如arm开发板的:进入arch—arm—config目录中有很多
ii. 如红帽企业版5的内核:/boot/
c) 拷贝文件到.CONFIG所在的目录层次
d) 再进行上一步的配置内核,修改自己需要的内容,
5. 编译内核:这步编译的是内核核心文件
a) Make zImage(大写i):在X86平台,只能用于小于512K的内核
b) Make bzlmage:
c) Make zlmage V=1:能获取详细的编译信息,便于查错
d) 编译好的内核位于:arch/<cpu>/boot/目录下
e) 需要的时间挺久的
6. 编译内核模块:make modules :这步编译的是刚才配置的内核模块
7. 安装内核模块:make modules_install
a) 作用:将编译好的内核模块从内核源代码目录copy至/lib/modules下
8. 制作Init ramdisk 内存盘
a) Mkinitrd initrd-$version $version 前一个变量可自己取,后一个变量是/lib/modules下的目录名,这个目录是安装内核时产生的
b) 例:Mkinitrd initrd-2.6.29 2.6.29 当前使用的内核版本号
9. 虚拟机中安装内核
a) Cp arch/x86/boot/bzlmage /boot/vmlinuz-$version版本号
b) Cp $initrd /boot/
c) 修改/etc/grub.conf或者/etc/lilo.conf
i. 注意是否多系统启动:
ii. 注意拷贝后修改TITLE后面的内容,一个TITLE代表一个启动项
iii. TITLE后面的是名字,可以改
iv. 修改/vmlinuz-2.6.29
修改/initrd-2.6.29
a) Make clean:删除产生文件,保存配置文件
b) Make mrproper:删除产生文件和配置文件
c) Make distclean:删除mrproper+编辑文件和补丁文件
2. 确定目标系统的软硬件配置情况:比如CPU的类型、网卡的型号,所需支持的网络协议等
3. 配置内核方式:会生成.config文件,保存配置文件
a) Make config:基于文本模式的交互式配置,问答形式
b) Make menuconfig:基于文本模式的菜单型配置(推荐)
i. *:对应Y:在编译的基础上,进行连接
ii. m:对应m:进行编译不连接,将该功能编译成可以在需要时动态插入到内核中的模块。
iii. 空:对应N:不进行编译
c) Make oldconfig:要求回答的配置项比较少,大部分默认
d) Make xconfig:图形化的配置
4. 内核配置项选择方法:参考内核配置文档
a) 方法:利用已有的内核配置参考文件,在这基础上进行配置
b) 找到配置文件:
i. 如arm开发板的:进入arch—arm—config目录中有很多
ii. 如红帽企业版5的内核:/boot/
c) 拷贝文件到.CONFIG所在的目录层次
d) 再进行上一步的配置内核,修改自己需要的内容,
5. 编译内核:这步编译的是内核核心文件
a) Make zImage(大写i):在X86平台,只能用于小于512K的内核
b) Make bzlmage:
c) Make zlmage V=1:能获取详细的编译信息,便于查错
d) 编译好的内核位于:arch/<cpu>/boot/目录下
e) 需要的时间挺久的
6. 编译内核模块:make modules :这步编译的是刚才配置的内核模块
7. 安装内核模块:make modules_install
a) 作用:将编译好的内核模块从内核源代码目录copy至/lib/modules下
8. 制作Init ramdisk 内存盘
a) Mkinitrd initrd-$version $version 前一个变量可自己取,后一个变量是/lib/modules下的目录名,这个目录是安装内核时产生的
b) 例:Mkinitrd initrd-2.6.29 2.6.29 当前使用的内核版本号
9. 虚拟机中安装内核
a) Cp arch/x86/boot/bzlmage /boot/vmlinuz-$version版本号
b) Cp $initrd /boot/
c) 修改/etc/grub.conf或者/etc/lilo.conf
i. 注意是否多系统启动:
ii. 注意拷贝后修改TITLE后面的内容,一个TITLE代表一个启动项
iii. TITLE后面的是名字,可以改
iv. 修改/vmlinuz-2.6.29
修改/initrd-2.6.29
相关文章推荐
- 学习笔记 --- LINUX内核的配置与编译分析
- 学习笔记----linux下编译环境的配置
- Linux 内核学习(2)——内核配置与编译
- 【学习笔记】编译Linux内核(上)--编译基于x86平台的Linux内核的过程
- 【转老迈】linux内核编译学习笔记
- Linux学习日志(9)- Linux 编译内核配置(001-键盘操作)
- linux 学习- 编程基础之内核配置与编译
- Linux学习笔记--内核编译
- Linux内核驱动学习(一)----内核简介 | 配置 | 编译| 安装(PC平台下)
- Linux内核驱动学习(一)----内核简介 | 配置 | 编译| 安装(PC平台下)
- linux 驱动学习笔记01--Linux 内核的编译
- 【TINY4412】LINUX学习笔记:(2)内核模块编译、安装、加载、卸载
- Linux内核编译学习
- Linux 内核配置和编译(Ubuntu 10.4下操作)
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程
- solr学习笔记-linux下配置solr
- linux一般的权限配置,学习笔记
- Linux学习笔记之Centos 6.3下NFS的安装配置
- 戴文的Linux内核专题:24 配置内核 (20)
- Linux 2.6.19.x 内核编译配置选项简介