kernel 2.6.11.4 compilation
Brent Cook
bcook at bpointsys.com
Fri Mar 24 19:03:05 UTC 2006
On Friday 24 March 2006 09:27, Andrea Paterniani wrote:
> Hi all!
>
> I'm working on a Cogent CSB536FS dev-board (iMXL based) with precompiled
> linux distribution.
>
> The original kernel (2.6.11.4) was compiled with gcc 3.3.1 and
> binutils-v2.15.
> I tried and succeded compiling Cogent kernel source tree with my buildroot
> toolchain using mx1ads_defconfig and simply specifyng CSB536FS as targeg
> platform (via make menuconfig).
> Unfortunately booting the system with the new zImage fails: after
> uncompressing the image the kernel doesn't output any text to the terminal
> and the system needs reset to restart micromonitor.
I've run into the same issue before, and the problem with getting a kernel to
run was never the compiler, libc or binutils. Your problem is likely one of:
- You are not supplying the bootloader the correct kernel image. I have 3
boards with the same CPU, chipset, etc. but they all have different
bootloaders and want the kernel in a different format. For instance, u-boot
requires you to preprocess the image with its 'mkimage' command. Other
loaders might require you to use objcopy -Obinary on the vmlinux image, or
use one of the various images under arch/ppc/boot/images. Try to determine if
you are using the correct kernel format. Compare 'file' results on your image
and their binary image as a starting point.
- Make sure you know whether to enable or disable cache coherency for your
board. Use the vendor's .config first if it is available.
- You don't have the right support in your tree for the particular rev of
hardware. Try turning on 'early boot messages' in the kernel debugging menu
(not really useful with u-boot I believe.) Try to find the earliest entry
into your code (platform_init perhaps) where you can create some sort of
output.
I would probably mail the linuxppc-embedded mailing list for further help,
though, as this is likely a kernel than a uclibc/buildroot issue.
- Brent
PS - If by 'professional', you mean that you need to buy MontaVista's package,
I have found that I can build a toolchain that works with the 'standard'
MontaVista Hardhat linux using crosstool, which is based on glibc. Just watch
your gcc versions if you are using C++ code, as there are a number of
incompatibilities between binary code on 3.3 and 3.4, esp. with regards to
STL stuff. C should work fine though.
More information about the uClibc
mailing list