您的位置:首页 > 运维架构 > Linux

Linux内核笔记(1) 编译内核

2011-05-22 16:29 555 查看
内核学习笔记,既然是笔记就记住关键的东西,杂七杂八的慢慢再说啦。下面介绍编译内核的几个简单步骤:



1。到www.kernel.org下载内核去

2。mkdir /usr/src/linux-2.6.37

cp 2.6.37.tar.bz2 /usr/src/linux-2.6.37 (刚出来的)

3。解压缩其他的情况不考虑了,具体问题具体分析

tar -jxvf
2.6.37.tar.bz2

/////////////////////////////////

下面的作用是更新头文件,防止今后你编写驱动的时候出现头文件和内核不一致的现象!!!

将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。

  # cd /usr/include

  # rm -Rf asm linux

  # ln -s /usr/src/linux/include/asm-i386 asm

  # ln -s /usr/src/linux/include/linux linux

  # ln -s /usr/src/linux/include/scsi scsi

/////////////////////////////////

4。
删除源代码目录中残留的.o文件和其它从属文件。

make mrproper

5。开始编译内核这里做一些配置

make menuconfig或make config或make xconfig

我用的是ubuntu 10.04需要用make menuconfig 需要安装点东西





<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->

sudo
apt-get install build-essential
sudo
apt-get install libncurses5
sudo
apt-get install libncurses5-dev
6。建立编译时所需的从属文件
make dep

7。
清除内核编译的目标文件
make clean
8。编译内核了
make zImage
这里默认情况是编译的内核大小在640kb以内,如果多了的话就要用 make bzImage
9。编译可加载模块

如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
make modules
make modelus_install
10。以上的步骤已经完成了内核的编译工作了,哈哈。下面的就是怎么把新的内核应用到你的系统上了
cp /usr/src/linux-2.4.22/System.map /boot/System.map


vmlinuz 改为编译好的那个 位于/usr/src/linux/arch/x86/bzImage

cp
/usr/src/linux/arch/x86/bzImage /boot/vmlinuz

启动项啥的也要修改

/boot/grub/grub.cfg

///////////////////////////////////////////////

menuentry 'Ubuntu, with Linux 2.6.37' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail

insmod ext2

set root='(hd0,10)'

search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720

linux /boot/vmlinuz-2.6.37 root=UUID=886aea56-c98a-4b80-a0e3-026900d0b720 ro quiet splash

initrd /boot/initrd.img-2.6.32-24-generic

}

///////////////////////////////////////////////

//make install 据说这样就完了,不过我不敢哦,内核坏了两次后我就很小心了,不敢乱搞了。咱还是按部就班吧,实在!

经过上面的操作估计得有一两个小时了,编译比较慢。。。

重启出问题了 启动的时候有两个错误,具体的还不是很清楚,基本上就那个问题initrd.img,

后续将继续学习吧



参考:
http://www.chinaunix.net/jh/4/208791.html http://blog.csdn.net/cdsnmdl/archive/2009/02/22/3922513.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: