I am trying to learn how to compile a BeagleBoard kernel so that I can use Xenomai for realtime work. I installed 64 bit Ubuntu 12.04 on a new drive and got the 64bit crosscompiler for ARM from www.kernel.org/pub/tools/crostool. Then I expanded the tar file under a directory. I downloaded the latest kernel (3.6.2) from kernel.org and the corresponding defconfig file from Robert Nelson (http://rcn-ee.net/deb/precise-armhf/v3.6.2-x3/defconfig). I copied his defconfig to my .config file. Then I executed this command: make ARCH=“arm” CROSS_COMPILE="…/…/toolchains/gcc-4.6.3-nolibc/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-" -j4 uImage
Now I am not sure about the last part of the CROSS_COMPILE parameter because my own bin directory has no other directory called “arm-unknown-linux-gnueabi-” under it, just a bunch of executables which match this up to the final dash character. But I was following the instructions outlined in an article by Jon Masters (www.linuxuser.co.uk/features/an-introduction-to-embedded-linux-beagleboard-its-linux-kernel-port)
When I removed the multi-processor flag -j4, I just got the error messages sooner.
The solution that I found was to remove the -Werror-implicit-function-declaration line from KBUILD_CFLAGS
Thanks.
Ahmet
14 Ekim 2012 Pazar 00:15:22 UTC+3 tarihinde Flavio Alves yazdı:
I found uImage under arch/arm/boot and copied it to the FAT32 partition of my sdcard. I booted up my BeagleBoard-XM with this sdcard. Guess what happened? I am STILL running the old kernel, Angstrom’s 2.6.32 and not the 3.6.2 kernel that I have just built.
What is going on? Is there a special procedure for setting up the boot partition? I didn’t touch MLO and U-Boot files assuming that they had to be on specific sectors but why can’t I boot with my newly copied kernel having the correct name?
Ahmet
14 Ekim 2012 Pazar 13:17:25 UTC+3 tarihinde dos360 yazdı:
I had this problem myself some time ago. If you replaced uImage on the boot-partition and you’re still booting the old kernel try to look for uImage on the rootfs partition.
There may be a link on the boot partition that links to another uImage on the rootfs.
Yes, the FAT partition kernel is the fallback; if one is found on the rootfs under /boot (IIRC) then that will be used before the one on the fat boot partition.
In: serial Out: serial Err: serial Beagle xM Rev C No EEPROM on expansion board Die ID #50fc00029ff800000168301016030018 Hit any key to stop autoboot: 0 The user button is currently NOT pressed. SD/MMC found on device 0 reading uEnv.txt
150 bytes read Loaded environment from uEnv.txt Importing environment from mmc … Loading file “/boot/uImage” from mmc device 0:2 (xxa2) 2685936 bytes read Booting from mmc … ## Booting kernel from Legacy Image at 80200000 … Image Name: Linux-3.6.2 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2685872 Bytes = 2.6 MiB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum … OK Loading Kernel Image …
Should I have changed u-Boot-img or MLO to match the kernel?
Or is does this look like ap problem within the kernel itself?
Ahmet
15 Ekim 2012 Pazartesi 10:38:42 UTC+3 tarihinde ChrisSchuku yazdı:
I'm really no expert on this but at a guess it may be an issue with your environment and the serial console that it is outputting to. What does your uEnv.txt file contain?
The serial console was minicom using ttyUSB0 and it works with the other kernel. The green leds were supposed to be blinking but they were were switched on and then froze.
Ahmet
15 Ekim 2012 Pazartesi 12:42:01 UTC+3 tarihinde Jack Mitchell yazdı: