LinuxSir.cn,穿越时空的Linuxsir!

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

何如重新编译内核

[复制链接]
发表于 2007-12-14 14:38:38 | 显示全部楼层 |阅读模式
我原来编译内核的时候使用如下命令:
fakeroot make-kpkg --append_to_version -686 --initrd --revision=marvel.1.1 kernel_image modules_image

现在想重新编译内核,我将revision改为marvel.1.2,如下
fakeroot make-kpkg --append_to_version -686 --initrd --revision=marvel.1.2 kernel_image modules_image

但是系统提示:
I note that you are using the --revision flag with the value
   marvel.1.2.
However, the ./debian/changelog file exists, and has a different value
   marvel.1.1.
I am confused by this discrepancy, and am halting.

是否应该修改revision?
发表于 2007-12-15 00:19:36 | 显示全部楼层
Post by marvel;1795628
我原来编译内核的时候使用如下命令:
fakeroot make-kpkg [color="Red"]--append_to_version -686 --initrd --revision=marvel.1.1 kernel_image modules_image

现在想重新编译内核,我将revision改为marvel.1.2,如下
fakeroot make-kpkg [color="Red"]--append_to_version -686 --initrd --revision=marvel.1.2 kernel_image modules_image

但是系统提示:
I note that you are using the --revision flag with the value
   marvel.1.2.
However, the ./debian/changelog file exists, and has a different value
   marvel.1.1.
I am confused by this discrepancy, and am halting.

是否应该修改revision?

--append-to-version?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-15 09:49:38 | 显示全部楼层
man make-kpkg
      --append-to-version foo

       --append_to_version foo
              This  argument  ( foo ) is appended to the value of the  EXTRAVERSION variable present in the kernel Make‐
              file. Since EXTRAVERSION is a component of the kernel version, it is also  added  to  the  Debian  package
              name,  and, as such must obey the policy governing the package name. That means it may contain only lower‐
              case alphanumerics and the characters ~ - + . (tilde, full stop, hyphen, and plus). Uppercase letters  are
              not permitted under the Policy for a new package.  If the environment variable IGNORE_UPPERCASE_VERSION is
              set, make-kpkg shall lower case version numbers set in the Makefile or in  the  localversion  file.   This
              option  over  rides the environment variable APPEND_TO_VERSION Please  note  that you must run a make-kpkg
              clean  after  configuring  the  kernel  using  make  (x|menu)?config,  since   that   creates   the   file
              include/linux/version.h  without  the  append_to_version  data  (foo).  This  file won’t be updated by the
              make-kpkg run (make-kpkg creates version.h if it doesn’t exist, but doesn’t touch if exists), so the final
              kernel  will _not_ have the append_to_version data in its version number it shall look for the modules and
              symbols in all the wrong places. The simplest solution is either to remove  include/linux/version.h  after
              configuring  and  before  compiling, or running make-kpkg clean after configuring, before compiling.  Note
              also that once you use --append_to_version foo for configuring, or building the kernel-image, you need  to
              also  use  the same option in any later invocation of make-kpkg (say, for building stand alone modules, or
              something).  make-kpkg does not remember the argument foo in between invocations (this is  different  from
              the  behavior of --revision, which we do remember in between invocations). If you are annoyed by make-kpkg
              whining about using --append_to_version and there already being a version.h file from before, you can  set
              the environment variable VERSION_H_OK which shall shut off the warning.
回复 支持 反对

使用道具 举报

发表于 2007-12-15 22:05:40 | 显示全部楼层
是不是还要做make-kpkg clean?
回复 支持 反对

使用道具 举报

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

本版积分规则

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