One other idea is to just build debian's fakeroot as part of our build
system, use it to do the mknods and any other root stuff we need, but
not actually include it in any of the packages.

   http://fakeroot.alioth.debian.org/
   wget 
http://mirror.mcs.anl.gov/ubuntu/pool/main/f/fakeroot/fakeroot_1.5.6ubuntu2.tar.gz

-Brian


Thus spake A Righi ([EMAIL PROTECTED]):
Bernard Li wrote:
Was trying to build SystemImager trunk as a non-root user, can got the
following error:

cd
/home/bli/rpmbuild/BUILD/systemimager-3.7.2r3474M_bli/initrd_source/buil
d_dir/dev && mknod -m 660 console c 5 1
mknod: `console': Operation not permitted
make: ***
[/home/bli/rpmbuild/BUILD/systemimager-3.7.2r3474M_bli/initrd_source/bui
ld_dir.prep] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.31264 (%build)

Would it be possible to tar up the special files (console, null) and
just copy them over as needed?

Cheers,

Bernard

Another way could be to let the kernel to create the devices (the patch
is very very simple - see the attachment), but to do that the initrd fs
would be writeable and at the moment this is not our case (cramfs is a
read-only fs)... To obviate this problem we could start to consider to
use cpio ramdisk, also the most part of the latest distro seem to move
in this direction... I did some tests trying to create a gzipped cpio
initrd and that was very nice! 4.2MB instead of 5MB with a gzipped
cramfs ramdisk.

Unfortunately there are some incompatibilities with pivot_root and cpio
rootfs (see
/usr/src/linux/Documentation/filesystems/ramfs-rootfs-initramfs.txt), so
I've not spent other time to check if there's a workaround, or better
the workaround should be to use switch_root (already present in the
recent busybox 1.1.1), but the behaviour of switch_root is quite
different than pivot_root...

Cheers,
-Andrea

--- linux-2.6.16/init/main.c.orig       2006-03-20 06:53:29.000000000 +0100
+++ linux-2.6.16/init/main.c    2006-03-25 10:14:45.000000000 +0100
@@ -710,6 +710,17 @@
        system_state = SYSTEM_RUNNING;
        numa_default_policy();

+       /* Special devices needed by BOEL */
+       if (sys_mknod((const char __user *) "/dev/console", S_IFCHR | 0600,
+               new_encode_dev(MKDEV(5, 1))) < 0)
+               printk(KERN_WARNING "Warning: unable to create special file 
/dev/console.\n");
+       if (sys_mknod((const char __user *) "/dev/null", S_IFCHR | 0666,
+               new_encode_dev(MKDEV(1, 3))) < 0)
+               printk(KERN_WARNING "Warning: unable to create special file 
/dev/null.\n");
+
        if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
                printk(KERN_WARNING "Warning: unable to open an initial 
console.\n");



--
Brian Elliott Finley
Mobile:  630.631.6621


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Sisuite-devel mailing list
Sisuite-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sisuite-devel

Reply via email to