Ubuntu8.04下编译linux内核
今天看到师兄工位上有本Linux Kernel In a Nutshell,还是全英的影印版,所以就借过来看看,发现现在看英文的书渐渐适应了,还是比较容易的,书中开始介绍如何编译Linux内核,Linux内核大三的时候也学过编译过,但是当时编译比较简单,这次决定再重头到尾好好编译一下,首先下载linux kernel,再用secureCRT上传到Ubuntu 8.04中,接着开始编译。
1,tar -xzvf linux-2.6.***
2,cd linux-2.6.***
3,make menuconfig
执行这条命令时,出现了问题,后来上网查,查到了问题,答案如下:
hi.
It's your distribution. Ubuntu doesn't come with the gcc headers installed. You can't even compile the simplest c application.
All you have to do is to download the headers from the internet. The easisest way would be to use synaptic and to download
the build-essential package.
bye
http://forum.kernelnewbies.org/read.php?10,18,528
原来必须安装build-essential,安装好后,问题解决。
4,执行 make 命令,源代码进行编译
5,make modules_install install
6,
相关文档:
我为什么发表不了文章呢?
1. 在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
3. Linux文件系统中每个文件用 i节点 来标识。
4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。
5. 链接分为: 硬链接 和 符号链接 。
6. 超 ......
所需文件hello.c, main.c, hello.h, Makefile,在同一个目录下
hello.c:
#include <stdio.h>
void hello(char name[])
{
printf("Hello %s!\n", name);
}
main.c:
#include "stdio.h"
#include "hello.h"
// The second
int main()
{
hello("GCC");
printf("Haha Linux Ubuntu!\n");
......
包含3个文件夹,和一个文件Makefile
目录组织结构如下:
Makefile
inc/hello.h
main/main.c
src/hello.c
Makefile文件在外面,这样生成的.o和可执行文件都在外面,clean之后会很干净,结构清晰
文件内容如下:
Makefile(之所以用大写,因为make可以识别Makefile和makefile,用大写可以鲜明一些)::
# String declar ......
首先,服务器GCC要有,不然什么都不能做.能够用gcc -v来查看是否安装了GCC,
#gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--enable-shared --enable-threads=posix --disable-checki ......