配置并编译内核[更新到linux-2.6.34][增加自动精简]

内核编译和嵌入式产品的设计与开发
回复
zhcxc
帖子: 32
注册时间: 2008-11-02 17:35

Re: 配置并编译内核[更新到linux-2.6.28]

#286

帖子 zhcxc » 2009-01-03 16:07

谢谢了!可以通过了,就是make mrproper这个命令要加sudo的,但有很多Y N M的选择,make xconfig我都选择过了,不知道为什么!!! :em20
rocky22
帖子: 684
注册时间: 2008-02-17 22:29
来自: 江苏

Re: 配置并编译内核[更新到linux-2.6.28]

#287

帖子 rocky22 » 2009-01-03 20:52

make mrproper会把你的.config给一起清理掉。最好先保存一下已经配置好的.config文件。
其实,像楼上的这种情况,在编译前执行一下make clean就行了。这个不会清理掉.config的。
zhcxc
帖子: 32
注册时间: 2008-11-02 17:35

Re: 配置并编译内核[更新到linux-2.6.28]

#288

帖子 zhcxc » 2009-01-03 22:08

不行的!我sudo make mrproper后把我把备份的.config复制回去又会出现

代码: 全选

exec make -f /usr/share/kernel-package/ruleset/minimal.mk debian APPEND_TO_VERSION=david0.64  INITRD=YES
====== making target minimal_debian [new prereqs: ]======
This is kernel package version .
test -d debian || mkdir debian
test ! -e stamp-building || rm -f stamp-building
test -f debian/control || sed         -e 's/=V/2.6.28david0.64/g'        \
                -e 's/=D/2.6.28david0.64-10.00.Custom/g'         -e 's/=A/amd64/g'  \
           -e 's/=SA//g'   -e 's/=L/ /g' \
                -e 's/=I//g'                                    \
                -e 's/=CV/2.6/g'                       \
                -e 's/=M/Unknown Kernel Package Maintainer <[email protected]>/g'                        \
                -e 's/=ST/linux/g'      -e 's/=B/xen/g'    \
               /usr/share/kernel-package/Control > debian/control
test -f debian/changelog ||  sed -e 's/=V/2.6.28david0.64/g'             \
       -e 's/=D/2.6.28david0.64-10.00.Custom/g'        -e 's/=A/amd64/g'       \
            -e 's/=ST/linux/g'     -e 's/=B/xen/g'         \
       -e 's/=M/Unknown Kernel Package Maintainer <[email protected]>/g'                        \
             /usr/share/kernel-package/changelog > debian/changelog
install -p -m 755 /usr/share/kernel-package/rules debian/rules
for file in ChangeLog  Control  Control.bin86 config templates.in rules; do                                      \
            cp -f  /usr/share/kernel-package/$file ./debian/;                               \
        done
for dir  in Config docs examples ruleset scripts pkg po;  do                                      \
          cp -af /usr/share/kernel-package/$dir  ./debian/;                                 \
        done
test -d ./debian/stamps || mkdir debian/stamps
exec debian/rules  APPEND_TO_VERSION=david0.64  INITRD=YES  kernel_image
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 3: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator

====== making target CONFIG-common [new prereqs: testdir]======

====== making target debian/stamp-conf [new prereqs: ]======
The changelog says we are creating 2.6.28david0.64.
However, I thought the version is ..david0.64
exit 3
make: *** [debian/stamp-conf] 错误 3
只能在终端下一项一项的改,改了我一个晚上,现在在编译不知道装了行不行!
搞了一个晚上还是编译不了!没办法了! :em20 :em20 :em20 :em20
上次由 zhcxc 在 2009-01-03 22:26,总共编辑 1 次。
a0147520
帖子: 147
注册时间: 2007-10-04 15:23

Re: 配置并编译内核[更新到linux-2.6.28]

#289

帖子 a0147520 » 2009-01-03 22:10

在启动的时候出现下列信息:
setting kernel variables..
error: "kernel.maps_protect" is an unknown key
failed

请问是什么意思,原来的内核没这问题
zhcxc
帖子: 32
注册时间: 2008-11-02 17:35

Re: 配置并编译内核[更新到linux-2.6.28]

#290

帖子 zhcxc » 2009-01-03 22:13

是不是LZ打错了?!?!
不是:

代码: 全选

sudo make-kpkg clean
而是:

代码: 全选

make clean
???
用哪个命令都不行!我真的搞不懂了!放弃吧!
rocky22
帖子: 684
注册时间: 2008-02-17 22:29
来自: 江苏

Re: 配置并编译内核[更新到linux-2.6.28]

#291

帖子 rocky22 » 2009-01-04 13:27

楼上的这个问题我也遇见过。
我的解决办法比较暴力:直接把原来解压的文件夹删掉,再重新解压一个,把备份的.config复制回去,再次编译就没那个问题了。

289楼的问题我也遇见过,奇怪的是,在P4D的台式机上编译2.6.28时没有这个问题;但在T2400的笔记本上编译时就出现了。
两个的区别:台式机上编译安装过2.6.27.5,笔记本上以前没编译过,内核是2.6.24.23。
zhcxc
帖子: 32
注册时间: 2008-11-02 17:35

Re: 配置并编译内核[更新到linux-2.6.28]

#292

帖子 zhcxc » 2009-01-04 14:15

我所知的什么都试过了!包括你说的那方法,就是不行,一会说arch/xen/Makefile的文件找不到,一会说
====== making target debian/stamp-conf [new prereqs: ]======
The changelog says we are creating 2.6.28david0.64.
However, I thought the version is ..david0.64
exit 3
make: *** [debian/stamp-conf] 错误 3
真的没它办法
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

Re: 配置并编译内核[更新到linux-2.6.28]

#293

帖子 alpha.gu » 2009-01-04 18:53

不玩编译内核了,个人用户真的是没必要这么做,如果想搞点研究则例外。
头像
ssfjhh
帖子: 1289
注册时间: 2007-11-08 21:23
来自: 中国

Re: 配置并编译内核[更新到linux-2.6.28]

#294

帖子 ssfjhh » 2009-01-04 20:35

rocky22 写了:楼上的这个问题我也遇见过。
我的解决办法比较暴力:直接把原来解压的文件夹删掉,再重新解压一个,把备份的.config复制回去,再次编译就没那个问题了。

289楼的问题我也遇见过,奇怪的是,在P4D的台式机上编译2.6.28时没有这个问题;但在T2400的笔记本上编译时就出现了。
两个的区别:台式机上编译安装过2.6.27.5,笔记本上以前没编译过,内核是2.6.24.23。
这确实是一个好办法。
这个功能如何实现?
http://yufanyufan.spaces.live.com/blog/ ... !149.entry
要实现的功能为,若当前标签页为空白页,则在当前页打开,否则新建一个标签页。
zhcxc
帖子: 32
注册时间: 2008-11-02 17:35

Re: 配置并编译内核[更新到linux-2.6.28]

#295

帖子 zhcxc » 2009-01-04 22:34

294楼的朋友你编译成功了吗?我就一直过不了 !我用过最暴力的方法:不加.config直接在终端上每项的对着选,几百个选项每选一次就要四五个小时,能编译过去但到最后就显示什么内核没有事情可做,大概是这样吧,deb包也出不来,真郁闷!!这个方法我用了两次都不行,眼睛都给搞模糊了!嗨!真没办法 :em20 :em20 :em20
rocky22
帖子: 684
注册时间: 2008-02-17 22:29
来自: 江苏

Re: 配置并编译内核[更新到linux-2.6.28]

#296

帖子 rocky22 » 2009-01-04 23:05

zhcxc 写了:294楼的朋友你编译成功了吗?我就一直过不了 !我用过最暴力的方法:不加.config直接在终端上每项的对着选,几百个选项每选一次就要四五个小时,能编译过去但到最后就显示什么内核没有事情可做,大概是这样吧,deb包也出不来,真郁闷!!这个方法我用了两次都不行,眼睛都给搞模糊了!嗨!真没办法 :em20 :em20 :em20
说实话,你说的这种极端的情况我没碰到。我遇见过你说的那种因为改了附加名字而导致不成功的情况,最后就是把源码文件夹删掉重新解压,然后编译通过的。
我还遇见过另外一种特别的情况:编译后的包安装,启动不成功或不理想,在新立得里把新安装的内核包删掉,结果在update-initramfs时,它还是去找那个已经被删掉的内核,当然结果是出错,说是找不到那个内核(已经删了当然找不到)。搞了好久也不得要领,最后用了一个同样比较另类的办法解决了:随便复制一个小文件到/boot下,名字改为被删掉的内核的名字,然后运行

代码: 全选

update-initramfs -d -k [color=#FF0000]2.6.28-rocky[/color]
2.6.28-rocky是我编译的内核的版本号,文件全名是 inited.img-2.6.28-rocky。
如此后,update-initramfs就能成功了。

楼上的注意查一下配置里哪儿有xen的选项,去掉试试,前面有人说要把xen去掉才行的。我在我的配置里没找到关于xen的选项。
头像
pcbird
帖子: 2337
注册时间: 2008-12-19 13:44
来自: 东8区

Re: 配置并编译内核[更新到linux-2.6.28]

#297

帖子 pcbird » 2009-01-08 1:28

{standard input}: Assembler messages:
{standard input}:9306: Fatal error: can't close net/sched/sch_teql.mod.o: No space left on device
make[2]: *** [net/sched/sch_teql.mod.o] 错误 1
make[1]: *** [modules] 错误 2
make[1]:正在离开目录 `/home/pcbird/beta/linux-2.6.28'
make: *** [debian/stamp-build-kernel] 错误 2
:em20 该怎么办阿???

代码: 全选

 
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *  
 
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40

Re: 配置并编译内核[更新到linux-2.6.28]

#298

帖子 syrano » 2009-01-08 11:29

pcbird 写了:{standard input}: Assembler messages:
{standard input}:9306: Fatal error: can't close net/sched/sch_teql.mod.o: No space left on device
make[2]: *** [net/sched/sch_teql.mod.o] 错误 1
make[1]: *** [modules] 错误 2
make[1]:正在离开目录 `/home/pcbird/beta/linux-2.6.28'
make: *** [debian/stamp-build-kernel] 错误 2
:em20 该怎么办阿???
分区满了!
E=m c^2
头像
pcbird
帖子: 2337
注册时间: 2008-12-19 13:44
来自: 东8区

Re: 配置并编译内核[更新到linux-2.6.28]

#299

帖子 pcbird » 2009-01-08 11:38

我后来把他给删掉了。 :em06
lz用30分钟编译,我怎么用很久阿

代码: 全选

 
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *  
 
SquallATF
帖子: 13
注册时间: 2007-08-05 12:30

Re: 配置并编译内核[更新到linux-2.6.28]

#300

帖子 SquallATF » 2009-01-12 12:44

xen错误相关
如果用make-kpkg来编译2.6.28的内核要用新版(ubuntu 9.04 jaunty)的kernel-package才不会出错
http://packages.ubuntu.com/jaunty/kernel-package
还需要
http://packages.ubuntu.com/jaunty/debianutils
8.04的kernel-package 貌似指定ARCH或者去掉虚拟化的支持貌似也不会出错。

编译去掉不必要的模块用的时间就会减少
回复