编译Linux内核2.6.35.6实践

2014-11-24 10:24:33 · 作者: · 浏览: 0

然后将其解压


3. 编译源码


cd/usr/src/linux-2.6.35.6这个目录,键入命令:



据说这个是清除原先此目录下残留的.config.oobject文件),如果我们是刚下载的源码,那么这一步您就可以省了,但是如果您已经编译过多次内核的话,这一步可是一定要的。


我打了没啥情况。下一步:


报错:


原来在刚刚安装好的ubuntu中,建一个最简单的helloworldc代码,然后用gcc去编译是不能用的,因为ubuntu中并没有所需要的库。所以上面的错误说sys/types.h找不到也是缺少库的原因。


解决方法:安装lib6-dev


后来发现安装build-essential库也可以解决。


继续make menuconfig,又报错:


这次报错说的是缺少ncurses这个库,然后安装ncurses-dev这个库。原先安装了ncursesncurses-base这两个东西都没用,后来百度了才发现是要ncurses-dev这个库。


make menuconfig,这次终于可以了,弹出一个框框,如下图:





make时间差不多一个小时把。make完了看看boot目录下面新增了什么东西,见下图:




然后




好像make了一会,然后告诉你说要重启,说grub已经install了云云。不管它,继续make



貌似这个make的时间长一点,然后说的和上面的一样,这两个命令搞的还不是很清楚。


然后跟这百度的文档,用制作initrd,听说IDE硬盘的不需要这一步,SCSI硬盘并且采用的是ext3分区格式需要。(注意文件名字)


然后在/boot目录下面新增了这个文件。


4. 修改menu.list


menu.list位于/boot/grub下面,这个就是开机系统选择菜单。修改就是添加进自己的kernel选项。具体添加可以仿照原来的。


基本上


title 标题,这个可以随便写,只要你能识别


root 启动盘,跟着原来的写就OK


kernel 指定内核文件,照原来的写,不过把文件改为新生成的vmlinuz-2.6.35.6


initrd 初始化文件,照原来的写,不过把文件改成新生成的intrd.img-2.6.35.6文件


我把自己的新内核写在最上面了,然后开机重启,没有选择菜单,然后进入了系统,用


输出系统内核版本是2.6.35.6,貌似默认的就是启动menu.list中定义的第一个内核。