[uClibc] problem with SiS board and buildroot-built uclibc/busybox init process

Seb James seb at hypercubesystems.co.uk
Mon Jun 14 09:56:32 UTC 2004


Dear List,

After much experimentation I'm still up against a brick wall.

I have used buildroot to create a uclibc/busybox based system for a
board which uses an SiS integrated chip; an SiS550.

Initially I built the system using the following options in the
buildroot Makefile (comments removed):

ARCH:=i586
GCC_2_95_TOOLCHAIN:=false
USE_UCLIBC_SNAPSHOT:=false
USE_BUSYBOX_SNAPSHOT:=false
BUILD_WITH_LARGEFILE:=true
WGET:=wget --passive-ftp
OPTIMIZE_FOR_CPU=i686
SOFT_FLOAT:=false
TARGET_OPTIMIZATION=-Os
GCC_USE_SJLJ_EXCEPTIONS:=--enable-sjlj-exceptions
EXTRA_GCC_CONFIG_OPTIONS:=
ENABLE_LOCALE:=false
MULTILIB:=--enable-multilib
INSTALL_LIBSTDCPP:=true
INSTALL_LIBGCJ:=false

and the following Targets:

TARGETS:=host-sed
ifeq ($(GCC_2_95_TOOLCHAIN),true)
TARGETS+=uclibc-configured binutils gcc2_95 ccache
else
TARGETS+=uclibc-configured binutils gcc3_3 ccache
endif
TARGETS+=kernel-headers
#TARGETS+=linux
TARGETS+=busybox tinylogin
TARGETS+=jpeg
TARGETS+=ext2root

To summarise, a minimal system to get me started, using known
functioning kernel headers to build the components against.

I also used a 2.6.4 kernel which I had built separately.

This worked fine, except that I couldn't mount nfs filesystems. I
discovered that this is because of the mismatch between the 2.6.4 kernel
and the 2.4.x kernel headers used to build the uclibc/busybox system.

I also found that 2.6.4 and uclibc isn't a match made in heaven. So I
decided to re-run the buildroot process but this time with
TARGETS+=linux instead of TARGETS+=kernel-headers and using the
2.4.26-pre5-erik kernel which is currently the buildroot process's
default. I modified the buildroot/sources/linux.config to support my
board.

Unfortunately this system won't give me a login prompt. I can boot this
root filesystem with the previous 2.6.4 kernel and all is as before, of
course with the same problem mounting nfs directories.

Back to the 2.4.26-pre5-erik kernel.

I've played with the inittab file to try to work out what is causing the
system to stop responding: If I insert commands to output echos during
the sysinit process, then they duly get output.

Something like this:

::sysinit:/etc/info.sh sometext

goes into /etc/inittab and info.sh is:

#!/bin/sh
echo "The inittab file is at: $1"

I did this because to begin with it looked like the network script in
/etc/init.d was causing the hang. In fact, the files in /etc/init.d all
get run and my server shows that the SiS board gets an IP number ok via
dhcp.

I also tried putting in a respawned program in the inittab file:

tty1::respawn:/etc/app.sh

where /etc/app.sh is:

#!/bin/sh
echo "a program which sleeps for 20s"
sleep 20

Now, this runs correctly when the system is booted with 2.6.4, but
doesn't run when booted with 2.4.26-pre5-erik.

Does this give a clue as to what is failing to work when using the 2.4
kernel?

Oh, I also tried a 2.4.24 vanilla kernel, but this has the same problem
as the 2.4.26-pre5-erik kernel.

Does this sound like a kernel mis-configuration issue? 

Has anyone built a uclibc/busybox system to run on the SiS550 chipset?

Any suggestions for new approaches to find out what this problem is
would be greatly appreciated!

best regards,

Seb James.




More information about the uClibc mailing list