1

I am cross compiling the Raspbian kernel since it will take about 12 hours for the Pi to do (Raspberry Pi 1).

I have the build tools for ARM and the kernel in two separate folders in /home/gray/Desktop/tmp/.

I am following this guide: Raspberry Pi Kernel Compilation - eLinux.org

My issue is that when I go to compile, it can't find arm-linux-gnueabihf-gcc-4.8.3 which is clearly in the folder I linked when I did export CCPREFIX. Here is what I did:

gray@Rava-Xubuntu:~/Desktop/tmp/linux$ export CCPREFIX=/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-

And it returns when I try to build:

gray@Rava-Xubuntu:~/Desktop/tmp/linux$ make ARCH=arm CROSS_COMPILE=${CCPREFIX}
/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: 1: /home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: arm-linux-gnueabihf-gcc-4.8.3: not found
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
  CC      kernel/bounds.s
/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: 1: /home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: arm-linux-gnueabihf-gcc-4.8.3: not found
Kbuild:43: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 127
Makefile:990: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2

Even though the file is clearly in there:

Even though the file is clearly in there

Thanks.

5
  • Try adding /home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin to PATH: export PATH=/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin:$PATH
    – user140866
    Dec 2, 2015 at 4:09
  • Same result. :(
    – Gray
    Dec 2, 2015 at 4:36
  • This is strange. Either there is a typo somewhere in this long path, or you'd hit a bug. For me alien kernel compilation always worked as make ARCH=arch CROSS_COMPILE=/path/to/toolchain/bin/toolchain-triplet-. Double check everything, and if still no go, try strace -f -eexecve -v -s150 -o log make ... and then post result (file log) on pastebin.com.
    – user140866
    Dec 2, 2015 at 7:03
  • Is the toolchain complete? You seem not to be able to compile an asm file, not a C file. Dec 2, 2015 at 7:20
  • I had to truncate it a bit @siblynx pastebin.com/ZdGfP3Qg That is the last bit of the log.
    – Gray
    Dec 2, 2015 at 8:53

2 Answers 2

1

So I figured it out.

I just grabbed the crossbuild version of gcc (I think that is what it is)

sudo apt-get install crossbuild-essential-armhf

And then my new path is:

export CCPREFIX=/usr/bin/arm-linux-gnueabihf-

And the build works perfectly!

0

I did not able to find where arm-linux-gnueabihf-gcc-4.8.3 is failing from your provided http://pastebin.com/ZdGfP3Qg, but your PATH environment variable contains weird characters:

PATH=/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-ras\342\200\214\342\200\213pbian/bin:/home/gray/bin:/usr/local/sbin:/usr/local/bin:/usr/sbi" ...

Those \342\200\214\342\200\213 in raspbian part should not be there.

Recheck your scripts and set PATH appropriately.

Your CROSS_COMPILE however appears to be intact. Most probably gcc tries to run things from PATH or you have a broken toolchain/dangling symlink somewhere.

Use this strace to debug deeply:

strace -f -v -s150 -o log -eexecve,stat,stat64 (make command) and then do fgrep ENOENT log. Then filter out nonexistent items from your PATH and try to locate and fix remaining items to be on place.

2
  • Thanks for the help. I was able to dig through the log and see it was looking for files in a lot of different places. I posted my solution.
    – Gray
    Dec 2, 2015 at 18:09
  • Nice. So next time using distro provided items is more helpful than messing with own ones. Except the cases when you need your own setup. But in that cases you're already know what to do :-)
    – user140866
    Dec 2, 2015 at 18:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .