1. 18 4月, 2011 1 次提交
  2. 21 1月, 2011 1 次提交
    • D
      kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT · 6a108a14
      David Rientjes 提交于
      The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
      is used to configure any non-standard kernel with a much larger scope than
      only small devices.
      
      This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
      references to the option throughout the kernel.  A new CONFIG_EMBEDDED
      option is added that automatically selects CONFIG_EXPERT when enabled and
      can be used in the future to isolate options that should only be
      considered for embedded systems (RISC architectures, SLOB, etc).
      
      Calling the option "EXPERT" more accurately represents its intention: only
      expert users who understand the impact of the configuration changes they
      are making should enable it.
      Reviewed-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NDavid Woodhouse <david.woodhouse@intel.com>
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: Greg KH <gregkh@suse.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Robin Holt <holt@sgi.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6a108a14
  3. 14 1月, 2011 1 次提交
    • L
      decompressors: add boot-time XZ support · 3ebe1243
      Lasse Collin 提交于
      This implements the API defined in <linux/decompress/generic.h> which is
      used for kernel, initramfs, and initrd decompression.  This patch together
      with the first patch is enough for XZ-compressed initramfs and initrd;
      XZ-compressed kernel will need arch-specific changes.
      
      The buffering requirements described in decompress_unxz.c are stricter
      than with gzip, so the relevant changes should be done to the
      arch-specific code when adding support for XZ-compressed kernel.
      Similarly, the heap size in arch-specific pre-boot code may need to be
      increased (30 KiB is enough).
      
      The XZ decompressor needs memmove(), memeq() (memcmp() == 0), and
      memzero() (memset(ptr, 0, size)), which aren't available in all
      arch-specific pre-boot environments.  I'm including simple versions in
      decompress_unxz.c, but a cleaner solution would naturally be nicer.
      Signed-off-by: NLasse Collin <lasse.collin@tukaani.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Alain Knaff <alain@knaff.lu>
      Cc: Albin Tonnerre <albin.tonnerre@free-electrons.com>
      Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3ebe1243
  4. 06 1月, 2011 1 次提交
  5. 29 12月, 2010 1 次提交
  6. 02 12月, 2010 1 次提交
    • T
      gen_init_cpio: remove leading `/' from file names · 43f901fb
      Thomas Chou 提交于
      When we extracted the generated cpio archive using "cpio -id" command,
      it complained,
      
      cpio: Removing leading `/' from member names
      var/run
      cpio: Removing leading `/' from member names
      var/lib
      cpio: Removing leading `/' from member names
      var/lib/misc
      
      It is worse with the latest "cpio" or "pax", which tries to overwrite
      the host file system with the leading '/'.
      
      So the leading '/' of file names should be removed. This is consistent
      with the initramfs come with major distributions such as Fedora or
      Debian, etc.
      Signed-off-by: NThomas Chou <thomas@wytron.com.tw>
      Acked-by: Mike Frysinger<vapier@gentoo.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      43f901fb
  7. 01 12月, 2010 1 次提交
  8. 31 10月, 2010 1 次提交
    • G
      initramfs: Fix initramfs size for 32-bit arches · 96f93593
      Geert Uytterhoeven 提交于
      Commit ffe8018c ("initramfs: fix initramfs size calculation") broke
      32-bit big-endian arches like (on ARAnyM):
      
          VFS: Cannot open root device "hda1" or unknown-block(3,1)
          Please append a correct "root=" boot option; here are the available partitions:
          fe80         1059408 nfhd8  (driver?)
            fe81          921600 nfhd8p1 00000000-0000-0000-0000-000000000nfhd8p1
            fe82          137807 nfhd8p2 00000000-0000-0000-0000-000000000nfhd8p2
          0200            3280 fd0  (driver?)
          0201            3280 fd1  (driver?)
          0300         1059408 hda  driver: ide-gd
            0301          921600 hda1 00000000-0000-0000-0000-000000000hda1
            0302          137807 hda2 00000000-0000-0000-0000-000000000hda2
          Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1)
      
      As pointed out by Kerstin Jonsson <kerstin.jonsson@ericsson.com>, this
      is due to CONFIG_32BIT not being defined, so the initramfs size field is
      done as a 64-bit quad.  On little-endian (like x86) this doesn matter,
      but on a big-endian machine the 32-bit reads will see the (zero) high
      bits.
      
      Only mips, s390, and score set CONFIG_32BIT for 32-bit builds, so fix it for
      all other 32-bit arches by inverting the logic and testing for CONFIG_64BIT,
      which should be defined on all 64-bit arches.
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      [ I think we should just make it "u64" on all architectures and get
        rid of the whole #ifdef CONFIG_xxBIT   - Linus ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      96f93593
  9. 29 9月, 2010 2 次提交
    • H
      initramfs: fix initramfs size calculation · ffe8018c
      Hendrik Brueckner 提交于
      The size of a built-in initramfs is calculated in init/initramfs.c by
      "__initramfs_end - __initramfs_start".  Those symbols are defined in the
      linker script include/asm-generic/vmlinux.lds.h:
      
      #define INIT_RAM_FS                                                     \
              . = ALIGN(PAGE_SIZE);                                           \
              VMLINUX_SYMBOL(__initramfs_start) = .;                          \
              *(.init.ramfs)                                                  \
              VMLINUX_SYMBOL(__initramfs_end) = .;
      
      If the initramfs file has an odd number of bytes, the "__initramfs_end"
      symbol points to an odd address, for example, the symbols in the
      System.map might look like:
      
          0000000000572000 T __initramfs_start
          00000000005bcd05 T __initramfs_end	  <-- odd address
      
      At least on s390 this causes a problem:
      
      Certain s390 instructions, especially instructions for loading addresses
      (larl) or branch addresses must be on even addresses.  The compiler loads
      the symbol addresses with the "larl" instruction.  This instruction sets
      the last bit to 0 and, therefore, for odd size files, the calculated size
      is one byte less than it should be:
      
          0000000000540a9c <populate_rootfs>:
            540a9c:     eb cf f0 78 00 24       stmg    %r12,%r15,120(%r15),
            540aa2:     c0 10 00 01 8a af       larl    %r1,572000 <__initramfs_start>
            540aa8:     c0 c0 00 03 e1 2e       larl    %r12,5bcd04 <initramfs_end>
                                                        (Instead of  5bcd05)
            ...
            540abe:     1b c1                   sr      %r12,%r1
      
      To fix the problem, this patch introduces the global variable
      __initramfs_size, which is calculated in the "usr/initramfs_data.S" file.
      The populate_rootfs() function can then use the start marker of the
      .init.ramfs section and the value of __initramfs_size for loading the
      initramfs.  Because the start marker and size is sufficient, the
      __initramfs_end symbol is no longer needed and is removed.
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Reviewed-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Acked-by: NMichal Marek <mmarek@suse.cz>
      Acked-by: N"H. Peter Anvin" <hpa@zytor.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      ffe8018c
    • H
      initramfs: generalize initramfs_data.xxx.S variants · 6ae64e42
      Hendrik Brueckner 提交于
      Remove initramfs_data.{lzo,lzma,gz,bz2}.S variants and use a common
      implementation in initramfs_data.S.  The common implementation expects the
      file name of the initramfs to be defined in INITRAMFS_IMAGE.
      
      Change the Makefile to set the INITRAMFS_IMAGE define symbol according
      to the selected compression method.
      Signed-off-by: NHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Cc: WANG Cong <xiyou.wangcong@gmail.com>
      Acked-by: NMichal Marek <mmarek@suse.cz>
      Acked-by: N"H. Peter Anvin" <hpa@zytor.com>
      Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      6ae64e42
  10. 23 8月, 2010 1 次提交
  11. 28 5月, 2010 1 次提交
  12. 12 1月, 2010 1 次提交
  13. 12 12月, 2009 1 次提交
  14. 23 9月, 2009 1 次提交
  15. 20 9月, 2009 2 次提交
  16. 01 4月, 2009 1 次提交
  17. 29 3月, 2009 4 次提交
  18. 20 2月, 2009 1 次提交
  19. 07 1月, 2009 2 次提交
    • A
      bzip2/lzma: fix built-in initramfs vs CONFIG_RD_GZIP · a26ee60f
      Alain Knaff 提交于
      Impact: Resolves build failures in some configurations
      
      Makes it possible to disable CONFIG_RD_GZIP . In that case, the
      built-in initramfs will be compressed by whatever compressor is
      available (bzip2 or lzma) or left uncompressed if none is available.
      
      It also removes a couple of warnings which occur when no ramdisk
      compression at all is chosen.
      
      It also restores the select ZLIB_INFLATE in drivers/block/Kconfig
      which somehow came missing. This is needed to activate compilation of
      the stuff in zlib_deflate.
      Signed-off-by: NAlain Knaff <alain@knaff.lu>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      a26ee60f
    • H
      bzip2/lzma: move initrd/ramfs options out of BLK_DEV · fb9a4ca9
      H. Peter Anvin 提交于
      Impact: Partial resolution of build failure
      
      Move the initrd/initramfs configuration options from
      drivers/block/Kconfig to usr/Kconfig, since they do not and should not
      depend on CONFIG_BLK_DEV.  This fixes builds when CONFIG_BLK_DEV=n.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      fb9a4ca9
  20. 04 12月, 2008 1 次提交
    • S
      kbuild: gen_init_cpio expands shell variables in file names · 3b1ec9fb
      Sally, Gene 提交于
      Modify gen_init_cpio so that lines that specify files can contain
      what looks like a shell variable that's expanded during processing.
      
      For example:
      
         file /sbin/kinit ${RFS_BASE}/usr/src/klibc/kinit/kinit 0755 0 0
      
      given RFS_BASE is "/some/directory" in the environment
      
      would be expanded to
      
         file /sbin/kinit /some/directory/usr/src/klibc/kinit/kinit 0755 0 0
      
      If several environment variables appear in a line, they are all expanded
      with processing happening from left to right.
      Undefined variables expand to a null string.
      Syntax errors stop processing, letting the existing error handling
      show the user offending line.
      
      This patch helps embedded folks who frequently create several
      RFS directories and then switch between them as they're tuning
      an initramfs.
      
      Signed-off-by: gene.sally@timesys.com
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      3b1ec9fb
  21. 17 7月, 2007 2 次提交
  22. 03 5月, 2007 1 次提交
  23. 12 2月, 2007 2 次提交
    • L
      [PATCH] usr/gen_init_cpio.c: support for hard links · 24fa5096
      Luciano Rocha 提交于
      Extend usr/gen_init_cpio.c "file" entry, adding support for hard links.
      
      Previous format:
      file <name> <location> <mode> <uid> <gid>
      
      New format:
      file <name> <location> <mode> <uid> <gid> [<hard links>]
      
      The hard links specification is optional, keeping the previous
      behaviour.
      
      All hard links are defined sequentially in the resulting cpio and the
      file data is present only in the last link. This is the behaviour of
      GNU's cpio and is supported by the kernel initramfs extractor.
      Signed-off-by: NLuciano Rocha <strange@nsk.no-ip.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      24fa5096
    • J
      [PATCH] disable init/initramfs.c · c33df4ea
      Jean-Paul Saman 提交于
      The file init/initramfs.c is always compiled and linked in the kernel
      vmlinux even when BLK_DEV_RAM and BLK_DEV_INITRD are disabled and the
      system isn't using any form of an initramfs or initrd.  In this situation
      the code is only used to unpack a (static) default initial rootfilesystem.
      The current init/initramfs.c code.  usr/initramfs_data.o compiles to a size
      of ~15 kbytes.  Disabling BLK_DEV_RAM and BLK_DEV_INTRD shrinks the kernel
      code size with ~60 Kbytes.
      
      This patch avoids compiling in the code and data for initramfs support if
      CONFIG_BLK_DEV_INITRD is not defined.  Instead of the initramfs code and
      data it uses a small routine in init/noinitramfs.c to setup an initial
      static default environment for mounting a rootfilesystem later on in the
      kernel initialisation process.  The new code is: 164 bytes of size.
      
      The patch is separated in two parts:
      1) doesn't compile initramfs code when CONFIG_BLK_DEV_INITRD is not set
      2) changing all plaforms vmlinux.lds.S files to not reserve an area of
      PAGE_SIZE when CONFIG_BLK_DEV_INITRD is not set.
      
      [deweerdt@free.fr: warning fix]
      Signed-off-by: NJean-Paul Saman <jean-paul.saman@nxp.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NFrederik Deweerdt <frederik.deweerdt@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c33df4ea
  24. 26 11月, 2006 1 次提交
  25. 25 9月, 2006 1 次提交
  26. 08 8月, 2006 1 次提交
    • S
      kbuild: do not try to build content of initramfs · 58a2f7d8
      Sam Ravnborg 提交于
      When a file supplied via CONFIG_INITRAMFS pointed to a file
      for which kbuild had a rule to compile it (foo.c => foo.o)
      then kbuild would compile the file before adding the
      file to the initramfs.
      
      Teach make that files included in initramfs shall not be updated by adding
      an 'empty command'. (See "Using Empty Commands" in info make).
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      58a2f7d8
  27. 10 6月, 2006 1 次提交
  28. 20 4月, 2006 1 次提交
  29. 11 4月, 2006 1 次提交
    • S
      kbuild: rebuild initramfs if content of initramfs changes · d39a206b
      Sam Ravnborg 提交于
      initramfs.cpio.gz being build in usr/ and included in the
      kernel was not rebuild when the included files changed.
      
      To fix this the following was done:
      - let gen_initramfs.sh generate a list of files and directories included
        in the initramfs
      - gen_initramfs generate the gzipped cpio archive so we could simplify
        the kbuild file (Makefile)
      - utilising the kbuild infrastructure so when uid/gid root mapping changes
        the initramfs will be rebuild
      
      With this change we have a much more robust initramfs generation.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      d39a206b
  30. 18 10月, 2005 1 次提交
  31. 11 8月, 2005 1 次提交
  32. 26 7月, 2005 1 次提交
    • S
      kbuild: introduce Kbuild.include · 8ec4b4ff
      Sam Ravnborg 提交于
      Kbuild.include is a placeholder for definitions originally present in
      both the top-level Makefile and scripts/Makefile.build.
      There were a slight difference in the filechk definition, so the most videly
      used version was kept and usr/Makefile was adopted for this syntax.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      ---
      8ec4b4ff