* [Buildroot] Illegal instruction with buildroot busybox for ARM DNS323
@ 2009-05-28 7:19 Barney Barumba
2009-05-28 14:19 ` Peter Korsgaard
0 siblings, 1 reply; 3+ messages in thread
From: Barney Barumba @ 2009-05-28 7:19 UTC (permalink / raw)
To: buildroot
Hi,
I'm trying to build a buildroot/busybox system for a DLink DNS323 (1), and
I'm getting an "Illegal instruction" error when I run busybox.
For my first attempt I:
- downloaded buildroot-2009.05-rc3
- configured this for a generic ARM EABI
- built the toolchain and busybox with the default busybox configuration
- ran "make busybox-menuconfig" to build busybox as a static library
- rebuilt busybox
- built an initramfs image of the root file system
- downloaded a Debian ARM netboot image (2)
- extracted the kernel .config file
- downloaded the vanilla 2.6.30-rc7 kernel source
- built a kernel using the buildroot toolchain
- converted both the initramfs and kernel to uboot images
- sent them to the DNS323 over a serial line
- booted it
At this point, the kernel would fire up and dump it's startup messages to
the console attached to the serial line, but when it attempted to run the
init script on the initramfs (which just dropped to a busybox shell) it
would fail with the "Attempting to kill init" message.
So then I:
- expanded the initramfs from the Debian netboot image
- fixed the init script to drop to a shell using the Debian built busybox
- added the buildroot built busybox (busybox-br) alongside the Debian one
- rebuilt the initramfs and uboot image
- sent this to the DNS323 and boted with the same kernel as before
This then dropped into a working shell, provided by the Debian busybox
(built with glibc, if that matters). From there, I could run the buildroot
busybox to see what was going on.
For simple commands, such as "/bin/busybox-br ls" this worked perfectly, but
trying more complicated commands, such as "/bin/busybox-br sh" failed with
the "Illegal instruction" error.
I also get exactly the same problem with buildroot-2009.02.
So I'm hoping this is as simple as a problem with my toolchain config files
for the DNS323. Has anyone built a target system for this platform, and have
a config file they could share? Or is there some other point I'm missing
here somewhere?
Any help is much appreciated, as I've been trying to get this working for
quite some time now, and it looks like there's just this final hurdle to
getting it all working.
Cheers,
Barney
(1) http://wiki.dns323.info/
(2) http://www.cyrius.com/debian/orion/d-link/dns-323/install.html
--
Be Yourself @ mail.com!
Choose From 200+ Email Addresses
Get a Free Account at www.mail.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] Illegal instruction with buildroot busybox for ARM DNS323
2009-05-28 7:19 [Buildroot] Illegal instruction with buildroot busybox for ARM DNS323 Barney Barumba
@ 2009-05-28 14:19 ` Peter Korsgaard
0 siblings, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2009-05-28 14:19 UTC (permalink / raw)
To: buildroot
>>>>> "Barney" == Barney Barumba <barney.b@iname.com> writes:
Hi,
Barney> For simple commands, such as "/bin/busybox-br ls" this worked
Barney> perfectly, but trying more complicated commands, such as
Barney> "/bin/busybox-br sh" failed with the "Illegal instruction"
Barney> error.
Quick quess - Did you configure BR for hardware floating point and
didn't enable floating point emulation in the kernel?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] Illegal instruction with buildroot busybox for ARM DNS323
@ 2009-05-28 21:25 Barney Barumba
0 siblings, 0 replies; 3+ messages in thread
From: Barney Barumba @ 2009-05-28 21:25 UTC (permalink / raw)
To: buildroot
Hi Peter,
> Quick quess - Did you configure BR for hardware floating point and
> didn't enable floating point emulation in the kernel?
Yes, I think the floating point was the problem. I had BR configured for
hardware floating point and the kernel configured for NWFPE. Investigating
this a bit more, this article (1) seems to suggest that this configuration
should work, so I'm not sure why I still got the exception.
There's another article here (2) that seems to suggest that using the EABI
improves the situation somewhat, but I'm not really sure how that affects
things.
Anyway, configuring BR for software floating point has fixed the problem
and, if I understand it correctly, should be faster anyway for this CPU.
Thanks for the pointer - much appreciated.
Barney
(1) http://linux-7110.sourceforge.net/howtos/netbook_new/x1114.htm
(2) http://wiki.debian.org/ArmEabiPort#ARMfloatingpoints
--
Be Yourself @ mail.com!
Choose From 200+ Email Addresses
Get a Free Account at www.mail.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-05-28 21:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-28 7:19 [Buildroot] Illegal instruction with buildroot busybox for ARM DNS323 Barney Barumba
2009-05-28 14:19 ` Peter Korsgaard
-- strict thread matches above, loose matches on Subject: below --
2009-05-28 21:25 Barney Barumba
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox