[ELDK] Rebuilding busybox in ELDK 4.1 for arm platforms

Wolfgang Denk wd at denx.de
Tue Aug 5 12:59:29 CEST 2008


In message <48983572.29495.924119 at g.modugno.elettronika.it> you wrote:
> 
> I want to rebuild busybox to use ash shell instead of msh shell (the 
> shell compiled in busybox of SELF ramdisk).
> 
> The first strange thing.
> ---
> user at ubuntu704desktop:~/eldk41arm$ arm-linux-rpm -i 
> /mnt/target/SRPMS/busybox-1.3.0-1.src.rpm 
> user at ubuntu704desktop:~/eldk41arm$ arm-linux-rpm -qa | grep busybox
> user at ubuntu704desktop:~/eldk41arm$ arm-linux-rpm -e busyboxerror: 
> package busybox is not installed
> user at ubuntu704desktop:~/eldk41arm$ arm-linux-rpm -e busybox-13.0-1
> error: package busybox-13.0-1 is not installed
> ---
> It seems the package isn't added in the local database of installed 
> packages. So I can't remove it. But I think it is really installed 
> because:

This is not strange at all, but the way how RPM works.  Only  binary
packages   get   "installed"  in  the  stricter  sense,  i.  e.  with
registering them in the  package  database.  Source  RPMs  don't  get
registered anywhere.

If you try the same commands in any other  Linux  distribution  using
the native RPM command you willl see the same behaviour.

> The second strange thing:
> ---
> user at ubuntu704desktop:~/eldk41arm/usr/src/denx/SPECS$ grep ppc 
> busybox.spec 
> make  HOSTCC="/usr/bin/gcc -B/usr/bin/" ARCH=ppc oldconfig
> make  HOSTCC="/usr/bin/gcc -B/usr/bin/" ARCH=ppc CC="gcc 
> $RPM_OPT_FLAGS"
> make  HOSTCC="/usr/bin/gcc -B/usr/bin/" ARCH=ppc CC="gcc 
> $RPM_OPT_FLAGS" doc busybox.links
> - bump again for double-long bug on ppc(64)
> ---
> I think make is wrongly called with ARCH=ppc parameter, so I changed 
> them in ARCH=arm.

I think you found a bug here. I registered it in the bug database,
see http://bugs.denx.de/databases/eldk/prs/5

> Now the third strange thing:
...
> user at ubuntu704desktop:~/eldk41arm/usr/src/denx/SPECS$ arm-linux-
> rpmbuild -ba busybox.spec 
...
> So I changed "make" in busybox.spec to use arm-linux-gcc and not gcc:

You should not do that. Please carefully read the manual, section
"3.7.2. Rebuilding Target Packages" at
http://www.denx.de/wiki/view/DULG/ELDKRebuildingComponents#Section_3.7.2.

Pay special attention to the two bullets at the end of this  section.
I   guess   you  forgot  to  set  your  PATH  correctly  and/or  left
CROSS_COMPILE defined.

> How can I solve these problems to build busybox again? After that, 
> how can I modify the configuration of busybox to use ash shell?

Actually ash *is* enabled in ELDK 4.2:

	-> grep ASH busybox-1.7.1-eldk-config
	CONFIG_FEATURE_SH_IS_ASH=y
	# CONFIG_FEATURE_SH_IS_LASH is not set
	CONFIG_ASH=y
	CONFIG_ASH_JOB_CONTROL=y
	# CONFIG_ASH_READ_NCHARS is not set
	# CONFIG_ASH_READ_TIMEOUT is not set
	CONFIG_ASH_ALIAS=y
	CONFIG_ASH_MATH_SUPPORT=y
	# CONFIG_ASH_MATH_SUPPORT_64 is not set
	CONFIG_ASH_GETOPTS=y
	CONFIG_ASH_BUILTIN_ECHO=y
	CONFIG_ASH_BUILTIN_TEST=y
	# CONFIG_ASH_CMDCMD is not set
	CONFIG_ASH_MAIL=y
	CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
	# CONFIG_ASH_RANDOM_SUPPORT is not set
	# CONFIG_ASH_EXPAND_PRMT is not set
	# CONFIG_LASH is not set


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
The light at the end of the tunnel is usually a "No Exit" sign.


More information about the eldk mailing list