Hi everyone, I am trying to compile the kernel and am having some problems. This is my first kernel compile so it is very possible that I am missing something, although I have followed the instructions exactly. Looking through the UDOO manual (under Downloads > Documentation) I execute the below commands: Code: curl http://download.udoo.org/files/crosscompiler/arm-fsl-linux-gnueabi.tar.gz | tar -xzv sudo apt-get install build-essential ncurses-dev uboot-mkimage git git clone http://github.com/UDOOboard/Kernel_Unico kernel cd kernel make ARCH=arm UDOO_defconfig make ARCH=arm menuconfig make -j4 CROSS_COMPILE=../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi- ARCH=arm uImage modules Up until the actual compilation (last command) all is well. But when I execute the last command I get these errors. Code: root@udoo:/usr/src/kernel# sudo make -j4 CROSS_COMPILE=../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi- ARCH=arm uImage modules ../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc: 1: ../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc: Syntax error: "(" unexpected make: execvp: /usr/src/kernel/scripts/setsecoversion: Permission denied CHK include/linux/version.h CC scripts/mod/empty.o ../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc: 1: ../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc: Syntax error: "(" unexpected make: *** [scripts/mod/empty.o] Error 2 make: *** [scripts/mod] Error 2 make: *** [scripts] Error 2 make: *** Waiting for unfinished jobs.... Just to confirm. Up until that error, everything was fine. I downloaded the cross-compiler and did a git clone just fine. No issues there. I even deleted the files (the compiler and the kernel) and did it all again because I thought there may have been a corruption. The point of this exercise is to build the kernel with the TUN driver installed, so I also tried configuring the TUN driver on and then I also tried just compiling it at vanilla defaults. Same issue still. From what I can gather file ../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc is a C++ executable. Which would explain why I can't open it up and see any source code to see where the syntax error is... When I do a 'file' of it I get Code: ../arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.0, stripped I am very noob here and probably in over my head. So any assistance would be greatly appreciated. Thanks! ======= EDIT: SUCCESS! It's working now. All details below. Firstly, the reason why I was getting that error is because I was attempting to cross-compile the kernel on the UDOO itself. Cross-compiler is used to compile a kernel for a different architecture. However, the my OS is already running on the arch that I want to compile so, so removing that option resolved the issue and I was able to make successfully. For posterity, all steps I had taken are below. Pre-reqs: 1) You are attempting to compile on the UDOO itself 2) You are able to boot successfully on a stock SD image and you wish to install the new kernel on the same SD card 3) You are doing all this on a Quad-core UDOO 4) The whole point of this exercise (for me) was to enable the TUN/TAP module so I could use Openvpn 5) Using documentation as a guide: http://www.udoo.org/downloads/ Boot in to your OS (in my case Linaro Ubuntu 12.04 LTS): sudo su mkdir -p /usr/src cd /usr/src curl http://download.udoo.org/files/crosscom ... abi.tar.gz | tar -xzv sudo apt-get install build-essential ncurses-dev uboot-mkimage git u-boot-tools git clone http://github.com/UDOOboard/Kernel_Unico kernel wget http://download.udoo.org/files/UDOO_Uni ... boot-q.imx cd kernel make ARCH=arm UDOO_defconfig make ARCH=arm menuconfig In menuconfig go to DEVICE DRIVERS > NETWORK DEVICE SUPPORT > UNIVERSAL TUN/TAP DEVICE DRIVER. Press space. Be sure it has <M> beside it. Exit and save config. (Note: You could also just edit .config and change "# CONFIG_TUN is not set" to "CONFIG_TUN=m"). make -j4 ARCH=arm uImage modules make modules_install INSTALL_MOD_PATH=.. ARCH=arm cp arch/arm/boot/uImage /boot # (you may want to rename your old kernel, if it is in there. It wasn't for me) cd .. cp -r lib/modules /lib/ # Find the /dev name for your SDcard. Mine was /dev/mmcblk0. Be sure to use the card itself (mmcblk0) and not the partition on the card (mmcblk0p1) dd if=u-boot-q.imx of=/dev/mmcblk0 bs=512 seek=2 urname -r shutdown -r now Once booted do another uname -r. You should be running new kernel. `modprobe tun` to load the TUN driver. Done!