[ELDK] rfsb missing directories

Wolfgang Denk wd at denx.de
Thu Apr 29 22:32:00 CEST 2010

Dear "Steven A. Falco",

In message <4BD99FDF.1080209 at harris.com> you wrote:
> I am trying out rfsb to build a cramfs.  I get the following:
> saf$ make
> Current target list is  /n/amana/proj/hydra/sw/sfalco/rfsb/build/images/image.cramfs
> Cleaning /n/amana/proj/hydra/sw/sfalco/rfsb/build
> Using CRAMFS skeleton from 'config/skeleton/cramfs' to populate file system
> 2 blocks
> 119 blocks
> Creating busybox symlinks
> ln: creating symbolic link `bin/busybox' to `/sbin/busybox': No such file or directory
> ln: creating symbolic link `.//usr/bin/[' to `/sbin/busybox': No such file or directory
> ln: creating symbolic link `.//usr/bin/[[' to `/sbin/busybox': No such file or directory
> I've appended the configuration file, as well as the complete build log.
> I notice that at line 192, the log file says "Populating /n/amana/proj/hydra/sw/sfalco/rfsb/build with directories"
> but this happens after the "ln -s" errors are reported.  Is
> something simply happening in the wrong order?  If I add the
> directories to the skeleton for cramfs (namely, bin, usr/sbin,
> usr/bin) then these "ln -s" error messages go away...

Seems this is a consequence of one of my patches:

commit db3060c86450d82847f194a79efb387b334ceff0
Author: Wolfgang Denk <wd at denx.de>
Date:   Thu Apr 29 12:35:04 2010 +0200

    Split POPULATE step into CLEAN and ADD_DIRS

My testing did not show it because I instealled some other packages in
addition to BusyBox, which created /bin and /sbin etc. on their way.

Can you please test if the following patch fixes the problem for you?

diff --git a/Makefile b/Makefile
index c1660d8..af529e4 100644
--- a/Makefile
+++ b/Makefile
@@ -191,15 +191,18 @@ $(STAMP_ELDK_PKGS):	$(STAMP_RFSB_SKEL)
 			echo "No 'busybox.links' file found, skipping busybox preparation." ;\
 		else \
 			cd $(BUILD_RFS) ;\
+			mkdir -p ./bin ;\
 			ln -sf /sbin/busybox bin/busybox ;\
 			while read lnk; do \
+				dname=`dirname $$lnk` ;\
 				if [ -r ./$$lnk ]; then \
-					dname=`dirname $$lnk`/bb ;\
+					dname=${dname}/bb ;\
 					fname=`basename $$lnk` ;\
 					echo "Warning: creating conflicting link as $$dname/$$fname" ;\
 					mkdir -p ./$$dname ;\
 					ln -s /sbin/busybox ./$$dname/$$fname ;\
 				else \
+					mkdir -p ./$$dname ;\
 					ln -s /sbin/busybox ./$$lnk ;\
 				fi ; \
 			done < $$bblinks ;\


Best regards,

Wolfgang Denk

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If you're not part of the solution, you're part of the problem.

More information about the eldk mailing list