if_else 发表于 2012-10-24 17:36:00

gentoo 更新内核,make 时报错

今天升级系统后,最后升级 kernel 时遇到了问题:

我参照 wiki :
http://www.gentoo.org/doc/en/kernel-upgrade.xml

更新内核源码,用 eselect 更新软链接# emerge -u gentoo-sources

# ll /usr/src
total 8.0K
drwxr-xr-x 17 root root 4.0K Oct 24 16:56 linux-3.5.7-gentoo
lrwxrwxrwx1 root root   18 Oct 24 16:33 linux -> linux-3.5.7-gentoo
drwxr-xr-x 24 root root 4.0K Sep 13 16:36 linux-3.3.8-gentoo
复制 linux-3.3.8-gentoo 的 .config 文件到 /usr/src/linux 进入该目录下
准备编译内核,报如下错误:
gentoo linux # make oldconfig
scripts/kconfig/conf --oldconfig Kconfig
init/Kconfig:1111: can't open file "usr/Kconfig"
make: *** Error 1
make: *** Error 2

gentoo linux # make menuconfig
scripts/kconfig/mconf Kconfig
init/Kconfig:1111: can't open file "usr/Kconfig"
make: *** Error 1
make: *** Error 2


[ 本帖最后由 if_else 于 2012-10-24 17:39 编辑 ]

jiangtao9999 发表于 2012-10-24 19:52:53

检查内核文件是否完整

if_else 发表于 2012-10-24 23:06:24

我重新 emerge ,仔细查看,输出发现是 failed 了>>> Failed to install sys-kernel/gentoo-sources-3.5.7, Log file:
>>>'/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/temp/build.log'
* GNU info directory index is up-to-date.
/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/temp/build.log 部分输出放在这里了:

http://bpaste.net/show/53273/

谢谢!

zy_sunshine 发表于 2012-10-25 10:29:28

这个包安装失败,所以内核文件在 /usr/src 中的不完整,所以你编译会提示没有找到某些文件。
sys-kernel/gentoo-sources-3.5.7

其实内核的实际配置文件是
/usr/portage/sys-kernel/gentoo-sources/*.ebuild
里面会inherit
/usr/portage/eclass/kernel-2.eclass

so,这里面做的操作大体是,下载kernel,解压kernel到
/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/work
在这里面要对源码打补丁啦,configure 和 编译(当然kernel在这里的编译几乎是没有操作)

然后会把这写准备好的文件(如果是其他包,那么这写文件应该已经编译成了二进制,不过这是source包,所以都是源文件)安装到
/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/image/

那看你的log,上面的这几个步骤都是正常的,
最后将
/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/image/
里面的文件安装到系统的
/usr/src
里面出现了collision 冲突。
你之前是不是拷贝 kernel文件到 /usr/src 中过,你把那里的文件删除后再安装。

jiangtao9999 发表于 2012-10-25 13:27:17

之前的内核源代码怎么装的?

if_else 发表于 2012-10-25 16:53:09

我移除 /usr/src 下的源码:

# ll
total 12K
drwxr-xr-x 17 root root 4.0K Oct 24 22:16 bak.linux-3.5.7-gentoo

重新 # emerge -u gentoo-sources 还是失败了。这是没有提示,文件冲突:
安装日志信息贴在这里:

http://bpaste.net/show/53478

编译时提示下面的错误: # make oldconfig
HOSTCCscripts/basic/fixdep
HOSTCCscripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCCscripts/kconfig/zconf.tab.o
HOSTLDscripts/kconfig/conf
scripts/kconfig/conf --oldconfig Kconfig
init/Kconfig:1111: can't open file "usr/Kconfig"
make: *** Error 1
make: *** Error 2

[ 本帖最后由 if_else 于 2012-10-25 16:57 编辑 ]

if_else 发表于 2012-10-25 17:07:04

原帖由 jiangtao9999 于 2012-10-25 13:27 发表 http://forum.linuxfans.org/images/common/back.gif
之前的内核源代码怎么装的?

开始是通过升级方式安装的,安装 kernel 报错后换用 emerge -u gentoo-sources
# time emerge -aDjNuv @world
sys-kernel/gentoo-sources-3.5.7 USE="-build -deblob -symlink" 0 kB

zy_sunshine 发表于 2012-10-25 17:07:09

>>> Installing (1 of 1) sys-kernel/gentoo-sources-3.5.7

>>> Failed to install sys-kernel/gentoo-sources-3.5.7, Log file:

>>>'/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/temp/build.log'
看你的log,还是安装 gentoo-sources 失败了,把/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/temp/build.log贴上来看..

if_else 发表于 2012-10-25 17:09:08

原帖由 zy_sunshine 于 2012-10-25 17:07 发表 http://forum.linuxfans.org/images/common/back.gif
>>> Installing (1 of 1) sys-kernel/gentoo-sources-3.5.7

>>> Failed to install sys-kernel/gentoo-sources-3.5.7, Log file:

>>>'/var/tmp/portage/sys-kernel/gentoo-sources-3.5.7/temp/build.log'
看你的 ...

log 里面和我上面贴的输出一样,下面是原始 log:
http://bpaste.net/show/53475/

zy_sunshine 发表于 2012-10-25 17:22:18

if_else 同学, 错误已经很明显了...
包没安装好..你能解决的。只要包安装正确,编译肯定没问题。

jiangtao9999 发表于 2012-10-25 18:27:44

原帖由 if_else 于 2012-10-25 05:07 PM 发表 http://forum.linuxfans.org/images/common/back.gif


开始是通过升级方式安装的,安装 kernel 报错后换用 emerge -u gentoo-sources
# time emerge -aDjNuv @world
sys-kernel/gentoo-sources-3.5.7 USE="-build -deblob -symlink" 0 kB ...
以前这个源代码没有存入 portage 的数据库,导致 emerge 提示出现已存在文件的问题而报错。
按理上说如果你用 emerge 安装的,不应该出现这个错误信息。

zy_sunshine 发表于 2012-10-25 19:31:30

taotao,我和他连线对话了,这个问题是emerge的bug,可悲的emerge终于遭遇bug了。
我们把这个bug绕过去了。

[ 本帖最后由 zy_sunshine 于 2012-10-25 19:32 编辑 ]

jiangtao9999 发表于 2012-10-25 21:58:06

这个 bug 我没遇到过。

zy_sunshine 发表于 2012-10-26 00:19:00

emerge 在生成最后安装文件的时候,对每一个文件做检查的时候突然退出了,log里面也没有错误记录。
我直接用ebuild而没有用emerge把这个问题绕过去了。

jiangtao9999 发表于 2012-10-26 09:04:10

:roll:
删了内核源代码目录之后重新 emerge 就行了。
页: [1] 2
查看完整版本: gentoo 更新内核,make 时报错