Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97537
  • 博文数量: 24
  • 博客积分: 407
  • 博客等级: 一等列兵
  • 技术积分: 291
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 08:31
文章分类
文章存档

2012年(24)

我的朋友

分类: LINUX

2012-02-27 09:48:13

今天忽然看到自己的/lib/modules/?kernel/build的符号链接是内核代码头文件,不符合ldd3中所说:先前的内核只需要一套内核头文件就够了,而2.6的内核模块需要和内核源码树中的目标文件连接,通过这种方式可得到一个更加健壮的模块转载器。我简单介绍下自己构建内核源码树的过程。
首先,在终端执行:
apt-cache search linux-source (寻找相关内核)
可以看到结果:
linux-source - Linux kernel source with Ubuntu patches
linux-source-2.6.24 - Linux kernel source for version 2.6.24 with Ubuntu patches
然后:
sudo apt-get install linux-source-2.6.24(下载内核)
tar jxvf linux-source-2.6.24.tar.bz2
这是下载完成,并加压后的/usr/src目录中的内容。
linux (符号链接)                           linux-headers-2.6.24-29-generic
linux-headers-2.6.24-26          linux-source-2.6.24(解压后)
linux-headers-2.6.24-26-generic  linux-source-2.6.24.tar.bz2(下载得到)
linux-headers-2.6.24-29          rpm
然后进入新内核的目录,准备配置,编译。
在终端中以此执行如下命令:
make oldconfig  //从目前正在运行的系统中生成一份.config文件,以此替代make config后生成.config的工作。当然,也可手动从目前运行内核中拷贝.config到新内核目录中。
make menuconfig
make make bzImage
make modules
make modules_install  //安装外挂模块
make install  //安装新内核
这时/boot目录中存在:
initrd.img-2.6.24-26-generic      vmlinuz-2.6.24-26-generic
initrd.img-2.6.24-26-generic.bak  vmlinuz-2.6.24-29-generic
initrd.img-2.6.24-29-generic      vmlinuz-2.6.24.6
initrd.img-2.6.24-29-generic.bak
没有自动生成: initrd.img-2.6.24.6(后面制作的)
然后调用mkinitramfs命令制作initrd.img文件,mkintramfs /lib/modules/2.6.24.6 -o /boot/initrd.img-2.6.24.6
最后,我们需要更新menu.lst文件启动我们的新内核。进入此文件,遵照里面已有的内容写一个关于新内核的启动引导,我只进行了简单的替换,就不贴出了。
完成后重新启动, uname -r
2.6.24.6,新内核成功启动。
阅读(3644) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~