Howto compile uClinux tool chain under Cygwin (latest tool chain version of 20060615)

I just compiled the m68k-elf-tools (for M68K/Coldfire tools) under Cygwin, but it should also work for the ARM platform!

make sure the following tools are installed in Cygwin: gcc-core, gcc-g++, binutils, cpio, make, patch, tar, vim, gettext, libintl

open the Cygwin Bash Shell mkdir /uClinux cd /uClinux

download the sources from:

formatting link
and save it to the uClinux directory

tar xvzf uClinux-dist-20060803.tar.gz

remove /uClinux/uClinux-dist/linux-2.6.x/scripts/basic/docproc remove /uClinux/uClinux-dist/linux-2.6.x/scripts/basic/fixdep remove /uClinux/uClinux-dist/linux-2.6.x/scripts/basic/split-include remove /uClinux/uClinux-dist/linux-2.6.x/scripts/kconfig/conf

download the following M68K/ColdFire/ARM tool chain sources from:

formatting link
and save it to the uClinux directory: build-uclinux-tools.sh binutils-2.16.tar.gz elf2flt-20060608.tar.gz gcc-4.1.1.tar.bz2 genromfs-0.5.1.tar.gz

save

formatting link
to /uClinux/

vim build-uclinux-tools.sh change line 57 and 58 when ARM platform make comments of line 66-67 #LINUXVERS="2.6.16" #UCLIBCVERS="20060608" change line 72 into ROOTDIR="${BASEDIR}/uClinux-dist" change line 86-87 into KERNEL="${BASEDIR}/uClinux-dist/linux-2.6.x" UCLIBC="${BASEDIR}/uClinux-dist/uClibc" make comments of line 171-172 #rm -rf ${KERNEL} #rm -rf ${UCLIBC} make comments of line 275-276 #extract linux-${LINUXVERS}.tar* #extract uClibc-${UCLIBCVERS}.tar* change line 877 into UCLIBC_CONFIG="${BASEDIR}/uClinux-dist/uClibc-${_CPU}.config"

A small patch needs to be applied to the linux kernel, so the following error doesn't occur: HOSTLD scripts/kconfig/conf scripts/kconfig/conf.o:conf.c:(.text+0x91): undefined reference to `_libintl_gettext'

Get this patch from

formatting link
Save the patch to /uClinux/uClinux-dist/linux-2.6.x/support_cygwin_cross.patch cd /uClinux/uClinux-dist/linux-2.6.x/ patch -p1 < support_cygwin_cross.patch

copy the file /uClinux-dist/uClibc/.config from a binary distribution to the file /uClinux/uClinux-dist/uClibc/extra/Configs/Config.${_CPU}.default (where ${_CPU} is for example m86k) or run /uClinux/uClinux-dist/uClibc/make config to make one yourself and save /uClinux/uClinux-dist/uClibc/.config to the file /uClinux/uClinux-dist/uClibc/extra/Configs/Config.${_CPU}.default (where ${_CPU} is for example m86k)

./build-uclinux-tools.sh continue 2>&1 | tee errs.txt

during STAGE1 all files are extracted

before STAGE3 I had to make a comment (because of linking errors) of line 31 (LIBS := -lcygwin $(LIBS)) in the file /uClinux/elf2flt-20060608/Makefile.in

mkdir /tftpboot cd /uClinux/uClinux-dist/uClibc make clean cd .. make config make dep make

last but not least, build a binary archive for distribution. cd /uClinux ./build-uclinux-tools.sh dist

Reply to
Harro Haan
Loading thread data ...

I heard that µCLinux now is included in the standard 2.6 Kernel distribution and can be selected in the Kernel configuration. So why is it necessary to set up a tool chain especially with µC in mind ?

Thanks, Michael

Reply to
Michael Schnell

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.