Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52292
  • 博文数量: 16
  • 博客积分: 631
  • 博客等级: 上士
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-13 10:52
文章分类

全部博文(16)

文章存档

2010年(16)

我的朋友

分类: LINUX

2010-04-13 17:10:50

编译内核的基本步骤:
make menuconfig   //或者是make xconfig ;make config都可以
make
make moudles_install
make install
 
一般都知道这四个过程,但不知道这四个过程的原理。我在这抛砖引玉:
 
1. make menuconfig : 这个就是去进行选择,内核中的哪些部分你想要,哪些你不想要。这样编译器就可以根据你的选择在你make的时候去对你选了的进行编译,那些没选的,编译器自然就不管了哦。
 
但这个选择过程要引起你的足够重视,原因有二:(1)一些选项是必须选择的,否则系统将不能正常运行或者根本不能运行;(2)因为内核中很多模块是有依赖的,如果你选择了一个模块,而它依赖的模块你没选,那么在接下来make的时候会出错,你又得重新来选。而且make的时间的相当长的。所以如果你不想把时间浪费的话,那么就静下心来好好的进行选择吧!
 
像如果出现一些undefined reference to '***'的错误就是因为没有选一些东东。
如果是make menuconfig 就出错,先看ncurses-devel是否已经安装
 
网上有一些标准的选择过程,以下两个网址可能对你有用:
 
2. make :  这个就是gcc在编译的过程了,一般都知道编译一个c文件用gcc -o **.c **.o ,而这是一个系统了,用那个肯定是不可能的,所以就有了makefile的诞生。
 
makefile很强大,要很好学习,网上有一个很不错的:
 
所以如果你编译的时候出现的一些undefined ……或unrecognized……等等的错误就可能是makefile文件造成的。你可以根据错误的提示去修改makefile
 
Configure: error:no acceptable C compiler found in $PATH 这个错误发生的原因是因为没有装gcc
 
3. make modules_install : 这一步就是把当前编译好的模块copy到 /lib/modules/下对应的内核版本的文件夹中去。
 
4. make install : 这一步就是把bzimage拷贝到/boot目录下去
阅读(1134) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~