LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1073|回复: 7

debain下简易编译内核方法。

[复制链接]
发表于 2009-4-5 23:13:16 | 显示全部楼层 |阅读模式
更新源
apt-get update
安装一些配置需要的软件包
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential udev
cd  /usr/src
使用wget 到 http://www.kernel.org/pub/linux/kernel/v2.6/ 下载最新的内核
Wget   http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.gz
在/usr/src目录下tar xvf  linux-2.6.29.tar.gz       
cd  linux-2.6.29
执行以下命令从现有内核中获得配置
make oldconfig
输入这条命令按回车后会有些问题其实是问你内核配置(yex/no)不用管一直按住回车直到你看见#符号为止

以上步骤完成后,执行内核配置程序

make menuconfig

进行配置,其实上面make oldconfig已经按照你已有的内核配置进行配置了,运行make menuconfig 是为了配置新内核的新特性,以及你计算机一些关键硬件部分你可以参考金步国的
《Linux 2.6.19.x 内核编译配置选项简介》
http://lamp.linux.gov.cn/Linux/kernel_options.html
配置一下
配置完后保存配置文件
然后执行命令:
make  && make install
来编译安装内核 ,一般会编译好内核后会自动将内核复制到/boot中
执行make modules 编译内核模块
执行make modules_install安装编译好的模块
执行depmod -a 生成模块间的依赖关系
执行mkinitramfs -o  /boot/initrd-2.6.29.img 2.6.29
生成initrd

然后手动修改/boot/grub/menu.lst 文件
如下

## ## End Default Options ##

title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,6)
kernel          /vmlinuz-2.6.26-1-686 root=/dev/sda8 ro splash  vga=791 quiet
initrd          /initrd.img-2.6.26-1-686

title           Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
root            (hd0,6)
kernel          /vmlinuz-2.6.26-1-686 root=/dev/sda8 ro single
initrd          /initrd.img-2.6.26-1-686

### END DEBIAN AUTOMAGIC KERNELS LIST
title           Debian GNU/Linux, kernel 2.6.29
root            (hd0,6)
kernel          /vmlinuz-2.6.29 root=/dev/sda8 ro   vga=791 quiet
initrd          /initrd-2.6.29.ing

### END DEBIAN AUTOMAGIC KERNELS LIST

kernel 2.6.29
就是我新编译的内核,记得查看/boot 下是否有 config-2.6.29         System.map-2.6.29
  vmlinuz-2.6.29  initrd-2.6.29.ing  这几个文件,没有的话需要手工复制到/boot.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2009-4-5 23:36:20 | 显示全部楼层
Debian Way:
tar xvf linux-sources-2.6.29.tar.bz2 && ln -sf linux-sources-2.6.29 linux && cd linux
make menuconfig && make-kpkg --append-to-version="-1-core2" --revision="2.6.29-2" --initrd --bzimage linux_image modules
cd .. && dpkg -i *.deb
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-6 00:55:13 | 显示全部楼层
Post by yangzhe1990;1970307
Debian Way:
tar xvf linux-sources-2.6.29.tar.bz2 && ln -sf linux-sources-2.6.29 linux && cd linux
make menuconfig && make-kpkg --append-to-version="-1-core2" --revision="2.6.29-2" --initrd --bzimage linux_image modules
cd .. && dpkg -i *.deb


恩一样的没区别。
回复 支持 反对

使用道具 举报

发表于 2009-4-6 19:10:52 | 显示全部楼层
如果只是make oldconfig,这样和从源升级内核有不同吗?因为一般装系统第一个内核就是官方源上的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-6 21:07:30 | 显示全部楼层
Post by chenzhen;1970578
如果只是make oldconfig,这样和从源升级内核有不同吗?因为一般装系统第一个内核就是官方源上的。



你运行完make oldconfig命令后再运行make menuconfig进行配置,运行make oldconfig 只是为了减少你配置的工作量而已这样配置起来就简单的多了,还有这样给些不是很会配置内核的朋友配置安装最新内核的一个思路罢了,抛砖引玉用的。
回复 支持 反对

使用道具 举报

发表于 2009-4-6 22:09:07 | 显示全部楼层
其实内核编译最烦,最有用的一步也就是配置。其它的都只是例行公式,没什么技术含量。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-7 08:30:04 | 显示全部楼层
Post by 老李飞刀;1970673
其实内核编译最烦,最有用的一步也就是配置。其它的都只是例行公式,没什么技术含量。。


恩,配置需要对内核与自己的硬件比较了解,问题是大家机器硬件基本不同所以配置要靠自己摸索,没办法
回复 支持 反对

使用道具 举报

发表于 2009-4-7 11:35:30 | 显示全部楼层
Post by chenhaolost;1970759
恩,配置需要对内核与自己的硬件比较了解,问题是大家机器硬件基本不同所以配置要靠自己摸索,没办法


呵呵,是这样一点点玩过来的了,像我这种电脑文盲,是碰巧搞出一个合适自己的,就不敢再乱改了,还到处都保留了一份。万一不见了,用官方的编太长时间了,现在编出来的也就是2M,可以接受了。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表