On Thu, 6 Dec 2007, Wolfgang Wegner wrote: > Hi David (and others), > > I finally found what causes the initramfs not to work: > > I have to have /init in the initramfs filesystem, else the kernel does > not use it. > > The Makefiles do install /bin/init and /linuxrc as a symbolic link to > /bin/init, but no /init and the kernel needs exactly this. > > I do not know if this a kernel or Makefile bug, but finally it is > somlved (for me).
i'm not sure if this addresses what you're talking about here, but in the kernel source tree, in Documentation/early-userspace/README, you can read: c) using initramfs. The call to prepare_namespace() must be skipped. This means that a binary must do all the work. Said binary can be stored into initramfs either via modifying usr/gen_init_cpio.c or via the new initrd format, an cpio archive. It must be called "/init". This binary is responsible to do all the things prepare_namespace() would do. To maintain backwards compatibility, the /init binary will only run if it comes via an initramfs cpio archive. If this is not the case, init/main.c:init() will run prepare_namespace() to mount the final root and exec one of the predefined init binaries. so, if i read that correctly, you can't supply /init via an external, filesystem-format initrd. was that what you were trying to do? or were you simply missing a /init entirely? rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://crashcourse.ca ======================================================================== _______________________________________________ uClinux-dev mailing list [email protected] http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by [email protected] To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
