Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: sani.broyeur <sani.broyeur@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] Annoying... nothing work at all :-(
Date: Sun, 13 Jun 2010 17:19:08 +0200	[thread overview]
Message-ID: <1276442348.14503.5.camel@localhost> (raw)
In-Reply-To: <20100613111949.358df33a@surf>

OK thanks Thomas, let's be more accurate, step by step:

0) My experience is not an "insult", juste a "result" :-)

1) tar -xvzf buildroot-2010.05.tar.gz --> OK.

2) cd buildroot-2010.05 --> OK.

3) make menuconfig
- no changes at all made to default options
- save on exit

4) make --> OK. rootfs.ext2 created in output/images

5) make menuconfig again to ask for a kernel
- kernel type -> advanced configuration
        linux kernel version -> latest
        patch -> no
        linux kernel configuration -> Run make ARCH=$(ARCH) [xconfig|
menuconfig] before build
        kernel binary -> bZimage
        destination -> copy kernel to root file
- save on exit

6) make

make[1]: *** [insmod.static] Erreur 1
make[1]: *** Attente des t?ches non termin?es....
make[1]: quittant le r?pertoire
? /devel/buildroot-2010.05/output/toolchain/module-init-tools-3.2.2 ?
make: ***
[/devel/buildroot-2010.05/output/toolchain/module-init-tools-3.2.2/depmod] Erreur 2
[root at hercules buildroot-2010.05]# 

-> Message means "waiting for unfinished tasks": the "-j 2" option in
make invocation (defaut = 2) is perhaps the cause. Relaunch!

7) make again

rm -rf /devel/buildroot-2010.05/output/build/buildroot-config
mkdir -p /devel/buildroot-2010.05/output/build
cp -dpRf
package/config/buildroot-config /devel/buildroot-2010.05/output/build/buildroot-config
/usr/bin/make -j2
-C /devel/buildroot-2010.05/output/toolchain/module-init-tools-3.2.2
make[1]: entrant dans le r?pertoire
? /devel/buildroot-2010.05/output/toolchain/module-init-tools-3.2.2 ?
/usr/lib64/ccache/gcc  -g -O2 -Wunused -Wall   -o lsmod  lsmod.o  
/usr/lib64/ccache/gcc  -g -O2 -Wunused -Wall   -o insmod  insmod.o  
/usr/lib64/ccache/gcc  -g -O2 -Wunused -Wall   -o rmmod  rmmod.o  
/usr/lib64/ccache/gcc  -g -O2 -Wunused -Wall   -o modprobe  modprobe.o
zlibsupport.o  
/usr/lib64/ccache/gcc  -g -O2 -Wunused -Wall   -o depmod  depmod.o
moduleops.o tables.o zlibsupport.o  
/usr/lib64/ccache/gcc  -g -O2 -Wunused -Wall   -o modinfo  modinfo.o
zlibsupport.o  
/usr/lib64/ccache/gcc  -g -O2 -Wunused -Wall   -o insmod.static -static
insmod.o  
/usr/bin/ld: cannot find -lc
collect2: ld a retourn? 1 code d'?tat d'ex?cution
make[1]: *** [insmod.static] Erreur 1
make[1]: quittant le r?pertoire
? /devel/buildroot-2010.05/output/toolchain/module-init-tools-3.2.2 ?
make: ***
[/devel/buildroot-2010.05/output/toolchain/module-init-tools-3.2.2/depmod] Erreur 2

-> ld perhaps invoked with an empty variable leading to syntax mismatch,
option taken for parameter or missing one, or something alike. Relaunch!

8) make again

This time, "linux26-menuconfig" is automagically invoked as expected.
- Just changed: SMP support [disable] / CPU type [ATOM]
- No optimization nor kernel tayloring for the embedded x86 target.
Let's make it simple :-)
- save changes on exit
make goes on, generating all the regular stuff.
[...] MODPOST 1975 modules
[...]
Root device is (8, 2)
Setup is 13516 bytes (padded to 13824 bytes).
System is 3183 kB
CRC f8992a55
Kernel: arch/x86/boot/bzImage is ready  (#1)
[...]
/devel/buildroot-2010.05/output/target/boot/bzImage -> OK a kernel is
generated.
[...]
>>>   Generating root filesystem image rootfs.ext2
rm -f /devel/buildroot-2010.05/output/build/_fakeroot.fs
touch /devel/buildroot-2010.05/output/build/.fakeroot.00000
cat /devel/buildroot-2010.05/output/build/.fakeroot*
> /devel/buildroot-2010.05/output/build/_fakeroot.fs
echo "chown -R 0:0 /devel/buildroot-2010.05/output/target"
>> /devel/buildroot-2010.05/output/build/_fakeroot.fs
echo "/devel/buildroot-2010.05/output/host/usr/bin/makedevs -d
target/generic/device_table.txt /devel/buildroot-2010.05/output/target"
>> /devel/buildroot-2010.05/output/build/_fakeroot.fs
echo "
PATH="/devel/buildroot-2010.05/output/toolchain/bin:/devel/buildroot-2010.05/output/host/bin:/devel/buildroot-2010.05/output/host/usr/bin:/devel/buildroot-2010.05/output/host/usr/sbin/:/devel/buildroot-2010.05/output/staging/bin:/devel/buildroot-2010.05/output/staging/usr/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" fs/ext2/genext2fs.sh -d /devel/buildroot-2010.05/output/target  -U /devel/buildroot-2010.05/output/images/rootfs.ext2" >> /devel/buildroot-2010.05/output/build/_fakeroot.fs
chmod a+x /devel/buildroot-2010.05/output/build/_fakeroot.fs
/devel/buildroot-2010.05/output/host/usr/bin/fakeroot
-- /devel/buildroot-2010.05/output/build/_fakeroot.fs
rootdir=/devel/buildroot-2010.05/output/target
table='target/generic/device_table.txt'
genext2fs: couldn't allocate a block (no free space)
make: *** [/devel/buildroot-2010.05/output/images/rootfs.ext2] Erreur 1 

-> KO the ext2 fs is NOT generated.

Of course, there is plenty of Gb available on disk, this error is
surprising.

9) trying to generate something else, i.e cramfs, squashfs and
initramfs:
- make menuconfig -> target filesystem option
        ENABLED cramfs
        ENABLED squashfs
        ENABLED initramfs
        DISABLED ext2
- save on exit

10) make again
- building of cramfs
[...]
>>>   Generating root filesystem image rootfs.cramfs
warning: estimate of required size (upper bound) is 661MB, but maximum
image size is 272MB, we might die prematurely
mkcramfs: filesystem too big
make: *** [/devel/buildroot-2010.05/output/images/rootfs.cramfs] Erreur
8

11) let see what we got after attempting to generate either a root fs
and the corresponding kernel:

[root at hercules buildroot-2010.05]# ll output/images/
total 7156
-rw-r--r-- 1 root root 3272576 juin  13 15:50 bzImage
-rw-r--r-- 1 root root       0 juin  13 15:50 rootfs.cramfs
-rw-r--r-- 1 root root 3645440 juin  13 14:08 rootfs.ext2
-rw-r--r-- 1 root root  394744 juin  13 15:49 rootfs.initramfs

- kernel seems to be generated (no evidence it will load at this time)
- rootfs.cramfs isn't generated
- rootfs.ext2 seems to be generated BUT is not (error above at point 8)
- rootfs.initramfs is only a text file without any CPIO content:

[root at hercules buildroot-2010.05]# head output/images/rootfs.initramfs 

#####################
# /devel/buildroot-2010.05/output/target
# Last modified: 1276436908.0000000000

dir /bin 775 0 0
slink /bin/dmesg busybox 777 0 0
slink /bin/tar busybox 777 0 0
slink /bin/watch busybox 777 0 0
slink /bin/zcat busybox 777 0 0

[root at hercules buildroot-2010.05]# tail output/images/rootfs.initramfs
slink /usr/sbin/rdate ../../bin/busybox 777 0 0
slink /usr/sbin/readprofile ../../bin/busybox 777 0 0
slink /usr/sbin/setlogcons ../../bin/busybox 777 0 0
slink /usr/sbin/dnsd ../../bin/busybox 777 0 0
slink /usr/sbin/chroot ../../bin/busybox 777 0 0
dir /usr/share 775 0 0
dir /usr/share/udhcpc 775 0 0
file /usr/share/udhcpc/default.script /devel/buildroot-2010.05/output/target/usr/share/udhcpc/default.script 755 0 0
dir /home 775 0 0
dir /home/default 2755 1000 1000
[root at hercules buildroot-2010.05]# 

This "rootfs.initramfs" is NOT an initramfs as expected but something
else I cannot state on.

12) additional investigations:
- asking for a bootloader without kernel prevent errors in target
filesystems generation, since the size issue is avoided.
- asking a bootloader in make menuconfig lead to strange things:
        -> grub only create a /boot/grub subdir in target, but doesn't
create
menu.lst nor invoque root (hd0,0) nor setup (hd0,0). Doing it manually
afterwards is refused.
        -> sysconfig is an external bootloader, your're right, so
including it
in menuconfig could be understood as "prepare a subdir in output/image
with all the relevant stuff configured, that is: bzImage+ldlinux.sys
+rootfs.cramfs+syslinux.cfg. Nothing this way is done. What means
"syslinux" in menuconfig?

13) Pending questions...
- Is buildroot suitable at this time to create tiny x86 embedded
systems, either by regular filesystem on a disk (ext2) or ramdisk in a
flashcard (syslinux+initrd) ?
- Why is there so many unrecoverable errors as I used default presets ?
- Is there rock-solid examples of bootable x86 systems generated, or
only "I sware it works, I was aware of an alien CPU card using it long
time ago in a distant galaxy" :-)))

Please remember: this not an "insult", just a "result" ;-)

Best regards.



Le dimanche 13 juin 2010 ? 11:19 +0200, Thomas Petazzoni a ?crit :
> Hello,
> 
> On Sun, 13 Jun 2010 05:13:14 +0200
> "sani.broyeur" <sani.broyeur@free.fr> wrote:
> 
> > - When invoking "make menuconfig && make" an ext2 image is created. OK
> > but unbootable, without bootloader nor kernel.
> 
> We've made the choice by default to only build a toolchain + a simple
> root filesystem image with only Busybox in it. So that's expected.
> 
> > - When asking to add a bootloader, grub doesn't install properly on
> > target image, config is not done. This part is broken.
> 
> What do you expect exactly ? How would you want grub to be installed ?
> If you're not more specific about what you expect, it's going to be
> hard to help you.
> 
> (FYI: I'm currently doing a fairly big bootloader code cleanup, for
> which I've sent a 49 patches patch set yesterday on this list. At least
> with this patch set applied, Grub compiles properly. However, I'm not
> sure what to do with the resulting binaries.)
> 
> > - When asking to add a CF/FAT16 bootloader, syslinux doesn't install
> > at all on target image, this part is also broken since it does really
> > nothing on the image :-)
> 
> What do you call "target image" ? The ext2 filesystem ? Then it is
> expected that syslinux isn't installed *in* it. However, the syslinux
> image is supposed to be available in output/images/.
> 
> But again, I know syslinux builds properly with my bootloaders-cleanup
> branch applied. The bootloader code in Buildroot hasn't been
> unmaintained for quite some time, so he doesn't surprise me that you
> encounter issues.
> 
> Another thing is that Buildroot is used a lot for non-x86 architectures
> (ARM, PowerPC, etc.), and for these architectures, the bootloader is
> never *in* the root filesystem image. The fact the bootloader is *in*
> the root filesystem image is a x86-specific thing, and as we haven't
> had a lot of x86-related contributions lately, it may well be that
> we're not doing what should be done for this specific architecture.
> 
> > - When asking a kernel, attempts lead often to cryptic make errors and
> > the whole buildroot tree has to be recreated from .tar.gz without
> > kernel generation. The "kernel" menu in menuconfig is broken, and no
> > kernel config is invoked at build or within menuconfig.
> 
> Please provide detailed reproduction steps, because ? attemps lead
> often to cryptic make errors ? is by no means an useful description of
> what's happening.
> 
> FWIW :
> 
>  * I've built succesfully a kernel yesterday with Buildroot, both ARM
>    and PowerPC.
> 
>  * I'm working on a big cleanup of the linux compilation code in
>    Buildroot, because the current code is way too complicated.
> 
> > - When invoking linux26-menuconfig (I'v found that one time), either
> > nothing, or make errors, this one is also broken.
> 
> Be more specific ?
> 
> > All produced forms of "target" are either incomplete, or unusable, or
> > unbootable, when the commands are not ending with errors!
> 
> Be more specific ?
> 
> > Is there somewhere an USABLE documentation?
> 
> The only documentation we have so far is
> http://buildroot.org/downloads/buildroot.html. Patches welcome.
> 
> > I'm not a newbie to linux, but this "buildroot project" seems for sure
> > not usable before years of improvements...
> 
> We certainly have rough edges, particularly in the area of
> bootloader/kernel compilation, which haven't seen any
> cleanup/refactoring since a very, very long time.
> 
> I'm sorry, but your message is by no means useful :
> 
>  * You're not giving an appropriate level of precision that would give
>    us the opportunity to understand and solve the problems you're
>    facing. For each problem: the .config file that allows to produce
>    the issue, the behaviour that you see, and the behaviour that you
>    would expect Buildroot to have.
> 
>  * You're insulting the work done by the developers on the Buildroot
>    project, reducing their incentive to help you and to solve your
>    problems.
> 
> Thomas
> -- 
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 

  reply	other threads:[~2010-06-13 15:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-13  3:13 [Buildroot] Annoying... nothing work at all :-( sani.broyeur
2010-06-13  9:19 ` Thomas Petazzoni
2010-06-13 15:19   ` sani.broyeur [this message]
2010-06-13 16:41     ` Thomas Petazzoni
2010-06-14  8:42     ` Will Moore
2010-06-14 13:55 ` Jonathan dumaresq
2010-06-14 14:02   ` sani.broyeur at free.fr

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1276442348.14503.5.camel@localhost \
    --to=sani.broyeur@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox