[Buildroot] initramfs doesn't need root to create an image

Nigel Kukard nkukard at lbsd.net
Sat Mar 29 14:12:02 UTC 2008


> > Attached a patch which removes the requirement on fakeroot & makedevs
> > and prevents files from being created in /dev instead of devices when
> > one builds buildroot as a non-priv user.
> 
> Why? Was there a problem with fakeroot?

Not fakeroot itself, but you cannot create a device if you're a non-priv
user. So ... nothing fails, makedevs generates lovely zero size files
instead of devices & fakeroot appears to hide the errors.

My patch is initramfs specific and doesn't touch, remove or alter any of
the other target root filesystem types. It removes the requirement for
both fakeroot and makedevs for initramfs image generation. Real devices
aren't created, the cpio manifest is modified in such a way that the
result cpio archive contains the devices. The manifest is normally
generated from the actual files/devices found. My patch takes the
manifest (minus the devices as makedevs isn't run) parses the device
table and outputs the manifest with what makedevs would of generated,
with the uid/gid defaulting to 0 if not overridden by makedevs.

> The ext2 and jffs2 targets both use fakeroot, although the generator
> tools can do privilege squashing and handle device tables themselves.
> Next week I need to add ubifs support, and currently the generator tool
> does not have device table support fwiw.

I only touched initramfs image generation. If you see something I
missed, or error in my perl script, feel free to let me know so I can
fix it  :)  I've tested it with both the generic device list, my own
device list, as root and as a non-priv user with no errors, the
resulting initramfs image when booted contains all the devices
specified.

-N

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20080329/bd44a0d2/attachment.asc>


More information about the buildroot mailing list