Hello ...When i try to build the 'u-boot.img' i get always the error message '../u-boot-04.06.00.03/am335x/tools/mkimage: cannot execute binary file' and the file 'u-boot.img' will not build.Did someone knows what's happen here?I start the 'u-boot' make in 'Ubuntu 10.4 LT' in a VMWare ....
Can you attach the log ?
I have attached the mkimage tool rename it to mkimage and try replacing this.
Did you source the environment-setup script before doing the make. You should not do that. If your prompt says linux-devkit then you have sourced the script and should open a new terminal window to do this build.
If you add all your variables in a file/script then you have to source the file
$ source script.sh
Mostly environment variables we place in ~/.bashrc file, which will automatically exported while restarting the terminal/shell.
Please mark this Forum post as answered via the Verify Answer button below if it helps answer your question. Thanks!
Thx for your answer.
When i try your 'mkimage' i was able to start this file onthe linux host system. When i build the 'U-Boot' there will also build a new 'mkimage' and this 'mkimage' is not startable on the linux host sytem. When i try to start 'mkimage' i got the messsage 'bash: ./mkimage: cannot execute binary file'
It look like that the build mkimage is a arm programm and not for the linux host system ...
Here is the 'build.log' ...
Did you do
sudo apt-get install uboot-mkimage? The setup.sh script installs that package for you.
Yes ...'uboot-mkimage' is installed (Version: 0.4build1) ...
Have you created any folders or files in side u-boot source, apart from the release package?
Have you modified any makefiles/scripts?
Can you try building the u-boot from u-boot source folder (release package)?
Another option is to go to the top-level of the SDK and type "make u-boot". That should build u-boot and has been verified in system test.
copy the mkimage executable to a folder say bin in your home directory,
and in your .bashrc file add the statement export PATH=$PATH:<directory>/bin
and restart your machine and try building later, this should solve your issue.
Hi Lad ,
i have now change the entrys like '$(obj)tools/makimage' in the makefiles with 'mkimage'. In this case the 'mkimage' under '/usr/bin/mkimage' will be take for build the 'u-boot'.
The following files will build now : u-boot.bin, u-boot.img, u-boot.lds, u-boot.map, uboot.srec
But now i got this message:
gcc/arm-arago-linux-gnueabi/4.5.3 -lgcc -Map u-boot-spl.map -o u-boot-splarm-arago-linux-gnueabi-objcopy --gap-fill=0xff -O binary /home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/am335x/spl/u-boot-spl /home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/am335x/spl/u-boot-spl.binmkimage -T omapimage \ -a 0x402F0400 -d /home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/am335x/spl/u-boot-spl.bin /home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/am335x/MLOInvalid Image Type - valid names are: filesystem, firmware, kernel, multi, ramdisk, script, standalone, flat_dtUsage: mkimage -l image -l ==> list image header information mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image -A ==> set architecture to 'arch' -O ==> set operating system to 'os' -T ==> set image type to 'type' -C ==> set compression type 'comp' -a ==> set load address to 'addr' (hex) -e ==> set entry point to 'ep' (hex) -n ==> set image name to 'name' -d ==> use image data from 'datafile' -x ==> set XIP (execute in place)make: *** [/home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/am335x/MLO] Error 1make: Leaving directory `/home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/spl'make: *** [/home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/am335x/spl/u-boot-spl.bin] Error 2make: Leaving directory `/home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03'make: *** [am335x_evm] Error 2
What's wrong ? I do all the steps like describe to build the u-boot but without success ....
You don't need to change the Makefile, this mkimage tool gets build every time you build the u-boot. Once its build you just copy it to your /usr/bin.
Are you trying to build the SPL ? I got it succesfully built..
here are the following commands what i did.
$> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- clean distclean
$> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am335x_evm_config
$> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
And this created a SPL and u-boot for me I have used the upstream denx branch for building it.
Can you reply to this post?
I think you have modified the makefile inside the u-boot folder.
My build log shows
tools/mkimage -A arm -T firmware -C none \
But in your boot log shows extra "am335x"
/home/user/AM335X-LINUX-PSP-04.06.00.03/src/u-boot/u-boot-04.06.00.03/am335x/tools/mkimage -A arm -T firmware -C none \
Better use the release package instead of modified one.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.