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