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[2]: *** [scripts/mod/empty.o] Error 2 make[1]: *** [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!
Re: Failed compile. Syntax error during make The setsecoversion is a permissions thing. I can't recall if it is because the file is owned by root, or if it needs the execute bit set. ls -l should make it obvious how it is different from the other files. The make command assumes that the cross-compiler is in the directory level below where you are issuing the "make" command. is it there? it doesn't take that long to compile the kernel actually on the Udoo. You might need to ununstall uboot tools and reinstall, the installation on the SD card image seems to be borked.
Re: Failed compile. Syntax error during make Thanks for your help. So I removed uboot tools and re-installed it. Code: root@udoo:/home/ubuntu# sudo apt-get install build-essential ncurses-dev uboot-mkimage git u-boot-tools Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'libncurses5-dev' instead of 'ncurses-dev' git is already the newest version. libncurses5-dev is already the newest version. u-boot-tools is already the newest version. uboot-mkimage is already the newest version. build-essential is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 19 not upgraded. root@udoo:/home/ubuntu# I then fixed the permissions on /usr/src/kernel/scripts/setsecoversion Code: root@udoo:/usr/src/kernel# /usr/src/kernel/scripts/setsecoversion bash: /usr/src/kernel/scripts/setsecoversion: Permission denied root@udoo:/usr/src/kernel# ls -l /usr/src/kernel/scripts/setsecoversion -rw-r--r-- 1 root root 561 Jan 13 23:56 /usr/src/kernel/scripts/setsecoversion root@udoo:/usr/src/kernel# chmod 777 /usr/src/kernel/scripts/setsecoversion root@udoo:/usr/src/kernel# /usr/src/kernel/scripts/setsecoversion Usage: /usr/src/kernel/scripts/setsecoversion [srctree] The cross-compiler is also in the correct location relative to the kernel source Code: root@udoo:/usr/src# lah total 24K drwxr-xr-x 6 root root 4.0K Jan 14 10:59 . drwxr-xr-x 12 root ubuntu 4.0K Jan 12 22:41 .. dr-xr-xr-x 7 root root 4.0K Jan 22 2013 arm-fsl-linux-gnueabi drwxr-xr-x 25 root root 4.0K Jan 14 10:54 kernel drwxr-xr-x 25 root root 4.0K Jan 14 10:59 kernel.old drwxr-xr-x 22 root root 4.0K Jan 13 16:00 uboot But when I try to make, I still get the same error about the syntax (albeit I no longer getting the permission error): Code: root@udoo:/usr/src/kernel# 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 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[2]: *** [scripts/mod/empty.o] Error 2 make[1]: *** [scripts/mod] Error 2 make: *** [scripts] Error 2 make: *** Waiting for unfinished jobs.... Any help would be appreciated.
Re: Failed compile. Syntax error during make Silly question... but because I am compiling this on the UDOO itself, does that mean I do not need to use the cross-compiler? Could I just remove that option when making?
Re: Failed compile. Syntax error during make Yes, absolutely. If compiling on the actual Udoo you can delete the cross-compiler and just: make -j4 ARCH=arm uImage modules
Re: Failed compile. Syntax error during make Excellent! And doing that compiled the kernel Thanks mate! Code: Image Name: Linux-3.0.35-g76d54f2-dirty Created: Tue Jan 14 11:46:52 2014 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4312996 Bytes = 4211.91 kB = 4.11 MB Load Address: 10008000 Entry Point: 10008000 Image arch/arm/boot/uImage is ready Now to boot in to the new kernel
Re: Failed compile. Syntax error during make SUCCESS!!! For posterity, I will be editing my initial post with all the steps i've taken. Thanks once again for your help Andy.
Hi all I really appreciate jaykudo's work. But following those steps, I'm incurring in this error while trying to install u-boot-tools: Code: root@udoo:/usr/src# apt-get install build-essential ncurses-dev uboot-mkimage git u-boot-tools Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'libncurses5-dev' instead of 'ncurses-dev' build-essential is already the newest version. build-essential set to manually installed. git is already the newest version. libncurses5-dev is already the newest version. uboot-mkimage is already the newest version. The following NEW packages will be installed: u-boot-tools 0 upgraded, 1 newly installed, 0 to remove and 24 not upgraded. 1 not fully installed or removed. Need to get 0 B/51.7 kB of archives. After this operation, 145 kB of additional disk space will be used. Do you want to continue [Y/n]? Y (Reading database ... 89614 files and directories currently installed.) Unpacking u-boot-tools (from .../u-boot-tools_2011.09-2_armel.deb) ... dpkg: error processing /var/cache/apt/archives/u-boot-tools_2011.09-2_armel.deb (--unpack): trying to overwrite '/usr/bin/fw_printenv', which is also in package u-boot-env 2013.11 Processing triggers for man-db ... Errors were encountered while processing: /var/cache/apt/archives/u-boot-tools_2011.09-2_armel.deb E: Sub-process /usr/bin/dpkg returned an error code (1) The error seems to depend on different versions of fw_printenv. Then , while building, I get this error: Code: UIMAGE arch/arm/boot/uImage "mkimage" command not found - U-Boot images will not be built make[1]: *** [arch/arm/boot/uImage] Error 1 make: *** [uImage] Error 2 Can anyone give me an hint? thanks in advance Luca
I had a similar (but not the same) error when initially installing u-boot-tools. From memory, I removed u-boot-env and either reinstalled it or tried to install u-boot-tools again without reinstalling u-boot-env. I suggest you mess around with that and remove the offending packages and then try to install u-boot-tools again.
Hi jaykudo you made my day! I removed u-boot-tools, uboot-mkimage and u-boot-env, then reinstalled u-boot-tools and uboot-mkimage. This let me rebuild the kernel and add the modules I need.
hallo, i have a last problem with this device TUN, when i try Code: dd if=u-boot-q.imx of=/dev/mmcblk0 bs=512 seek=2 i have this reply: Code: dd: opening `u-boot-q.imx': No such file or directory can you help me? sorry for english