配置并编译内核[更新到linux-2.6.34][增加自动精简]
- syrano
- 帖子: 4313
- 注册时间: 2007-10-06 18:40
- xeon00
- 帖子: 87
- 注册时间: 2009-02-27 2:11
Re: 配置并编译内核[更新到linux-2.6.29]
好帖收藏,开始实验 

——菜鸟之心,黑客之路
CPU:AMD sempron 2800 (Single Core)
内存:Corsair 512M DDR2 675
主板:ONDA n61v
显卡:Geforce 6100 400集成显卡
硬盘:Westdata 80G
系统:Centos 5.3+windows 2003
CPU:AMD sempron 2800 (Single Core)
内存:Corsair 512M DDR2 675
主板:ONDA n61v
显卡:Geforce 6100 400集成显卡
硬盘:Westdata 80G
系统:Centos 5.3+windows 2003
- petrele.chen
- 帖子: 261
- 注册时间: 2008-09-11 17:41
Re:
经过几次试验,我现在的内核大小为1.5M,模块总大小为16M。当然,这还是比较大的。bjsm 写了:我的内核2.3M,GENTOO论坛有个变态的家伙1.4M。你们的多大,贴出来看看。
对于各位DIYers,在精简时推荐以下步骤:
1、使用系统自带内核启动,并用lsmod记录相关模块。
2、结合lshw及lsmod的内容对内核进行精简。此时请尽量选择M,可能编译出来的模块数会较多,但有助于帮助你查看系统是否真需要这一些项。
3、启动新内核,再次lsmod,查看相对原内核缺少的模块,并将不需要的模块去除,将需要的模块选择性的编译进内核
- ioiomi
- 帖子: 380
- 注册时间: 2007-06-01 10:49
Re: 配置并编译内核[更新到linux-2.6.29]
代码: 全选
fakeroot make-kpkg -initrd --initrd --append-to-version=david0.68 kernel_image
- syrano
- 帖子: 4313
- 注册时间: 2007-10-06 18:40
Re: 配置并编译内核[更新到linux-2.6.29]
No idea.ioiomi 写了:换新电脑了 这个命令不能利用双核 想充分发挥下cpu好编译的快点代码: 全选
fakeroot make-kpkg -initrd --initrd --append-to-version=david0.68 kernel_image
E=m c^2
- ioiomi
- 帖子: 380
- 注册时间: 2007-06-01 10:49
Re: 配置并编译内核[更新到linux-2.6.29]
还有个问题很多时候 编译好内核都是安装失败 编译是成功的 有没有办法
-
- 帖子: 23
- 注册时间: 2009-03-13 15:24
Re: 配置并编译内核[更新到linux-2.6.29]
终于在自制内核上安装成功Ati的9.3驱动了。。。。
之前的各种方法(module-assisant,LZ提到的直接安装deb包,直接sh ati-*.run的方法等等)都失败的情况下,终于安装成功了,泪流满面啊。。。。
其实是自制内核(官方内核下也偶尔有这种问题)下安装fglrx-kernel-source-*.deb包的时候,安装完之后没有自动执行编译,导致根本就没有生成fglrx.ko,必须自己进入/usr/src/fglrx-*/然后执行sudo sh make.sh,2.6.x内核的话会在/usr/src/fglrx-*/2.6.x/下生成所需的fglrx.ko。
然后把fglrx.ko移到/lib/modules/{uname -r}/kernel/drivers/char/drm(自制内核基本上drm文件夹是不可能存在的,要用mkdir自己创建)。
然后用modprobe加载模块(必须在/etc/X11/xorg.conf里面有模块调用到fglrx,若提示没有的话,用aticonfig --initial自动生成,然后再modprobe),并且在用文本编辑器修改/etc/modules 使fglrx在一开始就被载入,然后就能sudo reboot了。。。。
之前的各种方法(module-assisant,LZ提到的直接安装deb包,直接sh ati-*.run的方法等等)都失败的情况下,终于安装成功了,泪流满面啊。。。。
其实是自制内核(官方内核下也偶尔有这种问题)下安装fglrx-kernel-source-*.deb包的时候,安装完之后没有自动执行编译,导致根本就没有生成fglrx.ko,必须自己进入/usr/src/fglrx-*/然后执行sudo sh make.sh,2.6.x内核的话会在/usr/src/fglrx-*/2.6.x/下生成所需的fglrx.ko。
然后把fglrx.ko移到/lib/modules/{uname -r}/kernel/drivers/char/drm(自制内核基本上drm文件夹是不可能存在的,要用mkdir自己创建)。
然后用modprobe加载模块(必须在/etc/X11/xorg.conf里面有模块调用到fglrx,若提示没有的话,用aticonfig --initial自动生成,然后再modprobe),并且在用文本编辑器修改/etc/modules 使fglrx在一开始就被载入,然后就能sudo reboot了。。。。
-
- 帖子: 4
- 注册时间: 2009-04-27 0:01
Re: 配置并编译内核[更新到linux-2.6.29]
楼主你好,我为了一事儿都快折腾疯了
:用的是debian 5的操作系统,按照楼主的方法用apt-get安装了编译环境并且编译成功了linux-2.6.29的内核,用的命令是make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,在开始几次的编译过程中都能顺利产生initrd文件,并能正常启动,但后来不知为何原因我重复如上步骤怎么都不能产生initrd文件了,安装新内核也无法正常启动。我今天查了下关于initrd的软件安装了initramfs-tool以及yaird.
以下是在linuxsir上的提问,无解:
debian 5.0, 刚开始的几次编译都是成功的,命令为make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,完成后直接安装即可,如下:
Unpacking linux-image-2.6.29.1sid-1.1.3 (from linux-image-2.6.29.1sid-1.1.3_2.6.29.1sid-1.1.3-10.00.Custom_i386.deb) ...
Done.
Setting up linux-image-2.6.29.1sid-1.1.3 (2.6.29.1sid-1.1.3-10.00.Custom) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Running postinst hook script update-grub.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.4
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.3
Found kernel: /boot/vmlinuz-2.6.26-1-686
Updating /boot/grub/menu.lst ... done
然而最近几次的编译后却无法产生initrd,没有“Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.”语句,而mkinitramfs命令是有效的,我也尝试过用之前成功过的一个.config文件再编译,仍然无法产生initrd,我不知道这是什么缘故,请大家赐教!

以下是在linuxsir上的提问,无解:
debian 5.0, 刚开始的几次编译都是成功的,命令为make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,完成后直接安装即可,如下:
Unpacking linux-image-2.6.29.1sid-1.1.3 (from linux-image-2.6.29.1sid-1.1.3_2.6.29.1sid-1.1.3-10.00.Custom_i386.deb) ...
Done.
Setting up linux-image-2.6.29.1sid-1.1.3 (2.6.29.1sid-1.1.3-10.00.Custom) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Running postinst hook script update-grub.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.4
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.3
Found kernel: /boot/vmlinuz-2.6.26-1-686
Updating /boot/grub/menu.lst ... done
然而最近几次的编译后却无法产生initrd,没有“Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.”语句,而mkinitramfs命令是有效的,我也尝试过用之前成功过的一个.config文件再编译,仍然无法产生initrd,我不知道这是什么缘故,请大家赐教!
- ioiomi
- 帖子: 380
- 注册时间: 2007-06-01 10:49
Re:
我也遇到这个问题了bingyuan 写了:补充一下,/lib/modules/2.6.26/modules.dep的确是存在的,但是系统说找不到,很奇怪,我以前bingyuan 写了:syrano
LZ
安装新内核以后,以新内核开机,结果:怎么回事?网上说是mkinitramfs……的问题,但我始终没有找到解决的办法。modprobe: FATAL: Could not load /lib/modules/2.6.26/modules.dep, no such file or directory
在这个系统里编译两次内核都成功了,但是近几天连续的相同的错误,到朋友新装的8.04.1上编译安装
也是一样的问题,到ubuntuforum里也看过相同问题的帖子,还是06年的,可惜好像没有解决方案,
楼主也是8.04.1吗?

- ioiomi
- 帖子: 380
- 注册时间: 2007-06-01 10:49
Re: 配置并编译内核[更新到linux-2.6.29]
hpcq45 写了:楼主你好,我为了一事儿都快折腾疯了:用的是debian 5的操作系统,按照楼主的方法用apt-get安装了编译环境并且编译成功了linux-2.6.29的内核,用的命令是make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,在开始几次的编译过程中都能顺利产生initrd文件,并能正常启动,但后来不知为何原因我重复如上步骤怎么都不能产生initrd文件了,安装新内核也无法正常启动。我今天查了下关于initrd的软件安装了initramfs-tool以及yaird.
以下是在linuxsir上的提问,无解:
debian 5.0, 刚开始的几次编译都是成功的,命令为make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,完成后直接安装即可,如下:
Unpacking linux-image-2.6.29.1sid-1.1.3 (from linux-image-2.6.29.1sid-1.1.3_2.6.29.1sid-1.1.3-10.00.Custom_i386.deb) ...
Done.
Setting up linux-image-2.6.29.1sid-1.1.3 (2.6.29.1sid-1.1.3-10.00.Custom) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Running postinst hook script update-grub.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.4
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.3
Found kernel: /boot/vmlinuz-2.6.26-1-686
Updating /boot/grub/menu.lst ... done
然而最近几次的编译后却无法产生initrd,没有“Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.”语句,而mkinitramfs命令是有效的,我也尝试过用之前成功过的一个.config文件再编译,仍然无法产生initrd,我不知道这是什么缘故,请大家赐教!
#update-initramfs –c –k 2.6.29.1
-
- 帖子: 4
- 注册时间: 2009-04-27 0:01
Re: 配置并编译内核[更新到linux-2.6.29]
感谢回复!我试用了该方法,生成了initrd.img文件,然而仍无法引导成功,貌似是因为没把驱动编进去,说是找不到"hda-codec"啥啥的,然后死机……ioiomi 写了:hpcq45 写了:楼主你好,我为了一事儿都快折腾疯了:用的是debian 5的操作系统,按照楼主的方法用apt-get安装了编译环境并且编译成功了linux-2.6.29的内核,用的命令是make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,在开始几次的编译过程中都能顺利产生initrd文件,并能正常启动,但后来不知为何原因我重复如上步骤怎么都不能产生initrd文件了,安装新内核也无法正常启动。我今天查了下关于initrd的软件安装了initramfs-tool以及yaird.
以下是在linuxsir上的提问,无解:
debian 5.0, 刚开始的几次编译都是成功的,命令为make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,完成后直接安装即可,如下:
Unpacking linux-image-2.6.29.1sid-1.1.3 (from linux-image-2.6.29.1sid-1.1.3_2.6.29.1sid-1.1.3-10.00.Custom_i386.deb) ...
Done.
Setting up linux-image-2.6.29.1sid-1.1.3 (2.6.29.1sid-1.1.3-10.00.Custom) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Running postinst hook script update-grub.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.4
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.3
Found kernel: /boot/vmlinuz-2.6.26-1-686
Updating /boot/grub/menu.lst ... done
然而最近几次的编译后却无法产生initrd,没有“Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.”语句,而mkinitramfs命令是有效的,我也尝试过用之前成功过的一个.config文件再编译,仍然无法产生initrd,我不知道这是什么缘故,请大家赐教!
#update-initramfs –c –k 2.6.29.1
其实我觉得最郁闷的事是为什么原本好好的自动生成现在却不行了呢?

- 961707077
- 帖子: 19
- 注册时间: 2008-06-07 18:34
-
- 帖子: 2
- 注册时间: 2008-10-18 21:26
Re: 配置并编译内核[更新到linux-2.6.29]

-
- 帖子: 22
- 注册时间: 2009-04-23 10:54
Re: 配置并编译内核[更新到linux-2.6.29]
编译出来有200多兆!我的神阿!2.6.29.1
-
- 帖子: 4
- 注册时间: 2009-04-27 0:01
Re: 配置并编译内核[更新到linux-2.6.29]
有人能帮下忙不?hpcq45 写了:感谢回复!我试用了该方法,生成了initrd.img文件,然而仍无法引导成功,貌似是因为没把驱动编进去,说是找不到"hda-codec"啥啥的,然后死机……ioiomi 写了:hpcq45 写了:楼主你好,我为了一事儿都快折腾疯了:用的是debian 5的操作系统,按照楼主的方法用apt-get安装了编译环境并且编译成功了linux-2.6.29的内核,用的命令是make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,在开始几次的编译过程中都能顺利产生initrd文件,并能正常启动,但后来不知为何原因我重复如上步骤怎么都不能产生initrd文件了,安装新内核也无法正常启动。我今天查了下关于initrd的软件安装了initramfs-tool以及yaird.
以下是在linuxsir上的提问,无解:
debian 5.0, 刚开始的几次编译都是成功的,命令为make-kpkg -initrd --initrd --append-to-version=XXX kernel_image,完成后直接安装即可,如下:
Unpacking linux-image-2.6.29.1sid-1.1.3 (from linux-image-2.6.29.1sid-1.1.3_2.6.29.1sid-1.1.3-10.00.Custom_i386.deb) ...
Done.
Setting up linux-image-2.6.29.1sid-1.1.3 (2.6.29.1sid-1.1.3-10.00.Custom) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.29.1sid-1.1.3-10.00.Custom was configured last, according to dpkg)
Running postinst hook script update-grub.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.4
Found kernel: /boot/vmlinuz-2.6.29.1sid-1.1.3
Found kernel: /boot/vmlinuz-2.6.26-1-686
Updating /boot/grub/menu.lst ... done
然而最近几次的编译后却无法产生initrd,没有“Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.”语句,而mkinitramfs命令是有效的,我也尝试过用之前成功过的一个.config文件再编译,仍然无法产生initrd,我不知道这是什么缘故,请大家赐教!
#update-initramfs –c –k 2.6.29.1
其实我觉得最郁闷的事是为什么原本好好的自动生成现在却不行了呢?