Board logo

标题: 2.6.X核心编译建议 [打印本页]

作者: Axin    时间: 2004-10-12 11:27     标题: 2.6.X核心编译建议

把解压目录放到/usr/src后执行如下编译步骤:

[code:1]make menuconfig
make
make modules_install install[/code:1]

这时候可以到/boot目录下看到编译好的核心已经躺在那了。

建议制作initrd.img,制作方法如下:
制作之前,你要确定你的核心version,确定方法如下:
[code:1]ls /lib/modules/[/code:1]

看到的就是你的核心的型号,比如为2.6.8,运行命令
[code:1]mkinitrd -o /boot/initrd.img-2.6.8      2.6.8[/code:1]

然后把引导加入grub,比如我的:
[code:1]title           Debian GNU/Linux, kernel 2.6.8
root            (hd0,8)
kernel          /boot/vmlinuz-2.6.8 root=/dev/hda9 ro
initrd          /boot/initrd.img-2.6.8
savedefault
boot[/code:1]
作者: thinker007    时间: 2004-10-12 21:00

make install不是就能制作initrd.img,并且把内核导入grub.conf了么?
作者: Axin    时间: 2004-10-13 09:23

[quote:611bf79ccd="thinker007"]make install不是就能制作initrd.img,并且把内核导入grub.conf了么?[/quote]

我用的Debian,据我的经验,make install 并没有制作initrd.img,也没有加入到grub。

具体的,你可以试试~~
作者: thinker007    时间: 2004-10-13 11:30

呵呵,我的是RH9,我编译的时候就用了如下:
make mrproper
make menuconfig
make
make modules
make modules_install
make install
然后就可以在/boot里面看到initrd-2.×××.img了
grub.conf里面也也增加了新的启动项
可能是Debian与RH不一样吧
不过好像2.6的内核说明里也提到了就用这几个命令就够了
作者: Benbenshi    时间: 2004-10-13 12:16

具体的还是按README来,如果系统不能自动制作initrd.img,就自己 动手制作一个。如果不能写进Grub,那也就自己写。

2.6的核心在的编译的时候是方便了很多,"自动"了许多。

具体的编译之前要了解自己的相关芯片信息,比如声卡。还要了解文件文件系统,USB设置等~~刚开始的时候可能很难取舍,但试几次以后就会清楚了,最关系的是要编译的核心能跑起来:)
作者: dukeduan    时间: 2004-10-13 17:29

initrd.img是干什么用的?
作者: tsaogj    时间: 2004-10-15 13:32

make install的过程应该主要就是建立initrd.img,然后修改Grub.conf文件的过程。
编译过程中,make modules这一步也是不要的。直接:make;make modules_install;make install就行了。
作者: ldh2002    时间: 2004-10-18 16:03

学习了!
作者: zhwlyfx    时间: 2004-10-18 19:25

我是rh9
在运行make modules_install install
出现:
depmod:unresolved symbol in /lib/modules/2.6.8.1/kerne/...:intel_i810.ko
请问怎么回事
作者: hew    时间: 2004-10-24 12:53

debian 下 make install 默认是没有init.img ,其实deiban 有一套自己的编译方法。如果按我们的常规方法需要自己 mkinitrd
作者: suowei1979    时间: 2004-10-27 15:50

make mrproper
make menuconfig
make
make modules_install
make install

只需要上面5步即可
作者: chen1960    时间: 2004-11-2 12:00

我用FC2,如thinker007所说,直接make xconfig/menuconfig/gconfig make make module_install make install,有编译initrd.img,大概DEBIAN不一样吧,我太菜还没有用过DEBIAN
作者: p33190440    时间: 2004-11-10 11:30     标题: make mrproper

/usr/src/linux-2.6.9/scripts/gcc-version.sh: line 1: gcc: command not found
/usr/src/linux-2.6.9/scripts/gcc-version.sh: line 1: gcc: command not found

why?
作者: hew    时间: 2004-11-17 16:05

没有gcc 啊
作者: bing    时间: 2004-11-19 00:55

还不如说说内核里的配置吧。
作者: latam_2008    时间: 2004-11-20 22:22

不是意见的意见!!!!我没升级的内核,不过我装过!本人喜欢用的是多内核的!到时候不爽又有删的机会!(注:本人水平不高吧!?)因为有一次升级进不了系统,打那时候起我就不升级了!宁可有多内核系统!一个挂了!还有一个顶上!编辑能力不是我的强项!!唉!-_-!本人用的是RedHat Enterprise Linux.小生愚见!大伙见笑了!!!
作者: Lincom    时间: 2004-12-18 16:09

[quote:bed07d38e1="suowei1979"]make mrproper
make menuconfig
make
make modules_install
make install

只需要上面5步即可[/quote]
可是我试了几次还是不行啊·!
作者: latam_2008    时间: 2004-12-18 18:24

下个rpm包!直接装就可以了!!!
作者: enetwell    时间: 2004-12-26 06:11

good good very good
作者: Yazy    时间: 2005-1-8 00:57

对啊,内核配置有什么应该注意的地方吗?
作者: superfang    时间: 2005-1-8 09:30

我是都编译好了,结果重新启动的时候,
出现了:config.. kerner parameters.....
然后就事漫长的等待,然后就事黑屏,比CS还恐怖,呵呵
这该怎么办呢
我用的是FC3,内核是2.9.6.7x x
作者: jackie-h    时间: 2005-1-10 19:05

我这超级菜也看到那个界面了,可惜不知道哪些模块做什么,所以也就看看而已。谢谢大家了。
作者: shekinah    时间: 2005-1-24 01:28

好晕啊,我的是2.4.??,我也想.....但,怕
作者: superfang    时间: 2005-1-30 14:38

怕什么啊!不试永远不止到,呵呵后
作者: leichangsong    时间: 2005-2-1 00:12

http://www.fedoranews.org 说的更清楚!

http://fedoranews.org/contributors/vitor_domingos/ntfs/
作者: swatch123    时间: 2005-3-9 23:19     标题: debian 2.6.8 kernel upgrade 求助

debian 2.6.8 kernel upgrade 求助   
作者: swatch123    时间: 2005-3-9 23:27     标题: Re: 2.6.X核心编译建议

[quote:519914843b="Axin"]把解压目录放到/usr/src后执行如下编译步骤:

[code:1]make menuconfig
make
make modules_install install[/code:1]

这时候可以到/boot目录下看到编译好的核心已经躺在那了。

建议制作initrd.img,制作方法如下:
制作之前,你要确定你的核心version,确定方法如下:
[code:1]ls /lib/modules/[/code:1]

看到的就是你的核心的型号,比如为2.6.8,运行命令
[code:1]mkinitrd -o /boot/initrd.img-2.6.8      2.6.8[/code:1]

然后把引导加入grub,比如我的:
[code:1]title           Debian GNU/Linux, kernel 2.6.8
root            (hd0,8)
kernel          /boot/vmlinuz-2.6.8 root=/dev/hda9 ro
initrd          /boot/initrd.img-2.6.8
savedefault
boot[/code:1][/quote]
按老兄帖子,舞了一番,重起死机.
  /lib/modules/2.6.8/modules.dep 明明有,为何报错?
作者: halake    时间: 2005-3-23 15:52

能再详细点吗?
作者: halake    时间: 2005-3-23 15:57

想升级2.6的,却老不成功
作者: zctcheng    时间: 2005-3-26 20:05

drivers/scsi/qla2xxx/qla_os.c: In function `qla2x00_queuecommand':
drivers/scsi/qla2xxx/qla_os.c:315: sorry, unimplemented: inlining failed in call to 'qla2x00_callback': function not considered for inlining
drivers/scsi/qla2xxx/qla_os.c:269: sorry, unimplemented: called from here
drivers/scsi/qla2xxx/qla_os.c:315: sorry, unimplemented: inlining failed in call to 'qla2x00_callback': function not considered for inlining
drivers/scsi/qla2xxx/qla_os.c:269: sorry, unimplemented: called from here
make[3]: *** [drivers/scsi/qla2xxx/qla_os.o] 错误 1
make[2]: *** [drivers/scsi/qla2xxx] 错误 2
make[1]: *** [drivers/scsi] 错误 2
make: *** [drivers] 错误 2


到最后的出错信息
帮忙看看什么问题好吗?
FC3下编译的
作者: SN-1987A    时间: 2005-3-28 16:58

如果你没有 scsi 硬盘 去掉drivers/scsi分支就可以了
作者: woodgood    时间: 2005-4-9 10:01

升级后我的红旗4.1没有声音了,是不是要配置什么???

我的声卡是集成的AC97(华硕PB-533)
作者: zhenli1981    时间: 2005-4-19 22:23

我编译到最后一步了,就是不能生成initrd-2.6.11.4.img文件
使用老兄的方法,发现如下错误,哪位能帮忙解决?
[powerli@powerli powerli]$ sudo /sbin/mkinitrd /boot/initrd-2.6.11.4.img  2.6.11.4
/dev/mapper/control: open failed: No such file or directory
Is device-mapper driver missing from kernel?
Command failed
All of your loopback devices are in use.
作者: betatoy    时间: 2005-5-1 23:12

關注ing
作者: zing    时间: 2005-7-1 07:57

suowei1979班主说的是正确的,我就试验过。
如果不用make modules_install,不会在/lib/modules下建立相应的模块。
而即使手动建立目录,然后make install,可以通过,但会留下隐患。

然后make modules是不需要的,注意观察编译过程,在make的最后步骤,就是building modules ,如果还自己make modules,只是重复。 请大家编译的时候注意编译过程的提示,并不是一make就泡杯茶或者咖啡干别的去了。有些信息提示还是有价值的。
作者: goshawk168    时间: 2005-7-20 00:05

[quote:4fa41018f3="bing"]还不如说说内核里的配置吧。[/quote]
作者: noni    时间: 2005-7-26 11:28

[quote:6202f76d66="zhenli1981"]我编译到最后一步了,就是不能生成initrd-2.6.11.4.img文件[/quote]
我也是~~我也遇到同樣的困擾~~~
使用老兄的方法,发现如下错误,哪位能帮忙解决?
[quote:6202f76d66="zhenli1981"][powerli@powerli powerli]$ sudo /sbin/mkinitrd /boot/initrd-2.6.11.4.img  2.6.11.4
/dev/mapper/control: open failed: No such file or directory
Is device-mapper driver missing from kernel?
Command failed
All of your loopback devices are in use.[/quote]

請問最後一行是什麼意思??一直出現,讓我很困擾~~
請各位好手們幫忙解釋一下~謝謝您~~
作者: cnhnln    时间: 2005-7-26 13:09

loopback 设备都用完了
作者: noni    时间: 2005-7-26 13:24

[quote:c32178bd7a="cnhnln"]loopback 设备都用完了[/quote]
是的  我知道從字面上解釋是這樣的.
但是我不懂這代表什麼意義??
為何這樣mkinitrd 就會failed??
如此一來,我的升級一直不能算是百分之百的成功,
是否在過程中我遺漏了什麼步驟,或是哪裡沒注意到呢?
作者: cnhnln    时间: 2005-7-26 13:37

ls /dev | grep loop
作者: noni    时间: 2005-7-26 17:51

[quote:ca0e5a18fb="cnhnln"]ls /dev | grep loop[/quote]

我發現在新的內核下mkinitrd會產生all loopback devices are in use的信息

所以我用舊內核開機然後就可以產生了

但是仍舊  新內核開機後  模組都無法載入  所以我的升級仍然不成功

有人告訴我  從內核2.4直接升級到2.6是不可能成功的  因為兩者的架構不同  請問這是真的嗎??   有人成功過嗎??
作者: cnhnln    时间: 2005-7-26 21:34

当前所用内核在编译时需要在块设备里打开loop支持
引用:
#
# Block devices
#
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
把使用2.4的发行版升级到2.6不是不可能,但是会很麻烦

2.6的内核模块名由.o变成了.ko,以区别普通模块,所以要修改加载模块的脚本。当然这只是第一步,要做的工作还很多,你可以看看精华区,我记得好像有相关文章
作者: geqwang    时间: 2005-8-8 23:47

学习!
作者: 爱国人士    时间: 2005-8-18 09:19

不用安装module-init-tools工具吗?
作者: yuyulvxian    时间: 2005-8-19 15:30

我装了新内核 但现在不能上网了
作者: jiangn    时间: 2005-8-19 20:08

配置内核是种乐趣
作者: cnhnln    时间: 2005-8-19 20:33

我以前也觉得是,不过现在没兴趣了,只用发行版官方的内核
作者: alvin612    时间: 2005-8-23 10:20     标题: 我在mkinitrd的时候有这样的提示,怎么办啊?

cp: stat‘(0xffffe000)’失败: 没有那个文件或目录
run-parts: /usr/share/initrd-tools/scripts/e2fsprogs exited with return code 1
作者: liguihe    时间: 2005-8-25 16:45

drivers/scsi/qla2xxx/qla_os.c:315

编辑qla_os.c文件
把要调用的inline函数向上挪,挪到文件上部
作者: liguihe    时间: 2005-8-25 16:57

[quote:d0ea94f05b="zctcheng"]drivers/scsi/qla2xxx/qla_os.c: In function `qla2x00_queuecommand':
drivers/scsi/qla2xxx/qla_os.c:315: sorry, unimplemented: inlining failed in call to 'qla2x00_callback': function not considered for inlining
drivers/scsi/qla2xxx/qla_os.c:269: sorry, unimplemented: called from here
drivers/scsi/qla2xxx/qla_os.c:315: sorry, unimplemented: inlining failed in call to 'qla2x00_callback': function not considered for inlining
drivers/scsi/qla2xxx/qla_os.c:269: sorry, unimplemented: called from here
make[3]: *** [drivers/scsi/qla2xxx/qla_os.o] 错误 1
make[2]: *** [drivers/scsi/qla2xxx] 错误 2
make[1]: *** [drivers/scsi] 错误 2
make: *** [drivers] 错误 2


到最后的出错信息
帮忙看看什么问题好吗?
FC3下编译的[/quote]

编辑drivers/scsi/qla2xxx/qla_os.c文件
把315行所在函数向上提,放到文件靠前的地方
作者: liguihe    时间: 2005-8-25 17:10


可编辑drivers/scsi/qla2xxx/qla_os.c文件
将315行所在的inline函数向上前,提到文件靠前的地方
这是个声明函数,太靠后了,靠前的函数找不到它
这可能是编译器版本低造成的
作者: zefa    时间: 2005-9-3 16:58

你可以换一根内存条了,兄弟
作者: vincentyb    时间: 2005-10-9 21:56

都太经典了,学习了
作者: lgceo    时间: 2005-11-4 22:48

我是这样子在MAGIC 1.2下编译2.6.13.4内核滴:
  
解压linux-2.6.13.4.tar.bz2到/usr/src下
rm -r linux
ln -s linux-2.6.13.4 linux
cd linux
make oldconfig 之后一路回车到SHELL提示符$
make menuconfig  去掉不要滴选项,加入没有滴本机实际设置选项.然后保存退出.
make clean 清出产生滴杂乱文件
make
make modules_install
make install

重启之后,在启动init滴时候,提示 usb 滴FS(文件系统)的 usbdevfs没有存在于内核中.
但我在编译中明明把所有USB选项都选中了滴,,,,,,,,,,,,
  哪位大虾知道其中原因.............望告知.....

QQ:5885168
MSN:lgceo@msn.com
MAIL:lgceo@163.com
作者: npcomet    时间: 2005-11-24 21:32

就这样??
作者: arzon    时间: 2005-12-18 12:24

我觉得就不应该用make install,还是手动改启动配置比较放心。
你确定make install是改lilo还是grub?
作者: cnhnln    时间: 2005-12-19 23:58

引用:
你确定make install是改lilo还是grub?
程序会确定,而不是由我去确定

自从知道make install以后,就没有手动改过。而且没出过问题
作者: co63    时间: 2006-1-6 17:25     标题: Re: 2.6.X核心编译建议

[quote:995566b49f="Axin"]
mkinitrd -o /boot/initrd.img-2.6.8      2.6.8
[/quote]

应该是mkinitrd -f ...
作者: blance2599    时间: 2006-2-21 10:40

升级有这么难么?
我觉得主要步骤就是
1,下载新内核源码并解压缩(千万不要放在FAT分区)
2,进入解压缩后的目录输入make menuconfig
3,看不懂里面配置的菜鸟就直接load你/boot下的默认配置文件config-2.*.*
4,按照你自己电脑的硬件配置设置下,反正看不懂的就别乱动,看得懂得就改,多多试就熟悉了撒
作者: daizw    时间: 2006-3-20 21:10

我的一切顺利!!


呵呵...
作者: yjd333    时间: 2006-7-4 08:39

:-( 这里说的是升级内核。。不是真正的自定内核编译吧。
好像都没见你们用那些参数啊。
作者: 林丽    时间: 2006-9-7 15:37

按标准步骤,make的时候出现许多警告,有关系吗?
作者: yruoke    时间: 2006-11-1 11:54

[quote:a30bff4f92="jiangn"]配置内核是种乐趣[/quote]

刚刚体会到,不过刚开始,感觉是魔鬼啊。^_^
作者: yruoke    时间: 2006-11-1 11:55

[quote:e054f229cd="林丽"]按标准步骤,make的时候出现许多警告,有关系吗?[/quote]
我的也是,不过可以进去,有没有关系,要重启后才可以知道。
作者: iamshiyu    时间: 2006-11-24 14:18

我是为了使用iptables里面的扩展模块,没办法想要去升级的……结果升级完居然网卡不好用了……郁闷
作者: 214754032    时间: 2006-12-8 07:19

我的用了make install后出现这种警告呀?
sh /usr/src/linux-2.6.18/arch/i386/boot/install.sh 2.6.18 arch/i386/boot/bzImage System.map "/boot"
WARNING: No module sata_nv found for kernel 2.6.18, continuing anyway
请问是为什么?
作者: cnhnln    时间: 2006-12-8 18:47

因为你把那东西直接编译进了内核,而不是编译为了模块。不用管他,警告而已,不报错就行
当然还有可能是你没编译他
作者: ssmarine    时间: 2007-5-30 15:05

我在CentOS4.4下内核为2.6.9-42.EL
升级到2.6.21最后使用make install生成了initrd文件,grub里也自动写入了。
是可行的。
作者: 自由狼-台风    时间: 2007-7-13 14:03

编内核新人报道。

在“http://apt.magiclinux.org/magiclinux/RPMS.updates/”下载到“ kernel-source-2.6.15.3-2mgc.i686.rpm”。不知道这个“2.6.15.3-2”和系统中原有的“2.6.15.3”有什么区别。

除此编译内核,不知道该做哪些设置,所以直接导入“/boot/config-2.6.15.3”,在“make xconfig”时把“i686”处理器修改为“Pentium M”,保存为“/usr/src/linux/.config”,“make>../1.txt 2>2.txt”、“make modules_install”、“mkinitrd xxx VER”后,重新启动成功。

在由init 1转为init 5时出现两处错误,但闪得太快,没看清除。反正稀里糊涂就起来了,正用此系统发帖。应该说,我是非常幸运了。
作者: qq425887742    时间: 2008-4-5 14:33

哪有CROSS-3.4.1.1下载的地址呀?帮忙给传一个
作者: cy_ttcm    时间: 2008-4-24 17:41

引用:
原帖由 suowei1979 于 2004-10-27 15:50 发表
make mrproper
make menuconfig
make
make modules_install
make install

只需要上面5步即可
make[3]: *** [net/ipv4/netfilter/ipt_TARPIT.o] Error 1
make[2]: *** [net/ipv4/netfilter] Error 2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2
[root@test linux]#

make后报错。。。。。

怎么回事???

系统是centos5.1




欢迎光临 中国Linux公社论坛 (http://forum.linuxfans.org/) Powered by Discuz! 6.1.0F