CHDK Wiki
Register
Advertisement

Компилиране на CHDK под Linux[]

Това е процедурата, използвана за компилиране на изходния код на CHDK под Linux (актуална към Април 2007).

  • Създайте директория, в която да сложите изходния код на CHDK.
 > mkdir ~/chdk && cd ~/chdk
  • Вземете кода на CHDK.
 > svn co https://tools.assembla.com/svn/chdk/trunk

или

 > svn co https://tools.assembla.com/svn/chdk/branches/grand
  • Или обновете изходния код
 > cd grand && svn up
  • Инсталирайте крос-компилатор
Вземете изходните кодове на gcc и binutils от хранилище на GNU (repository). За предпочитане е да използвате последните налични версии.
Определете място за крос-компилатора във вашия компютър.
 > mkdir ~/arm-elf
Инструктирайте компютъра, че ще стартирате програми от това място.
 > export PATH=${HOME}/arm-elf/bin:$PATH
Създайте работна област и компилирайте binutils и gcc.
 > mkdir ~/wa
 > cd ~/wa
 > tar xvfj ../src/rlx_dist/binutils-2.17.tar.bz2
 > tar xvfj ../src/rlx_dist/gcc-4.1.2.tar.bz2
 > cd binutils-2.17
 > ./configure --srcdir=../binutils-2.17 --target=arm-elf \
     --prefix=~/arm-elf
 > make
 > make install
 > cd ..
Редактирайте файла <gcc-4.1.2/gcc/config/arm/t-arm-elf>, за да включите следните линии, без знака "#" пред тях.
   MULTILIB_EXCEPTIONS += *mapcs-26/*mthumb-interwork
   MULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork
   MULTILIB_DIRNAMES   += normal interwork


 > mkdir gcc-4.1.2-arm-elf && cd gcc-4.1.2-arm-elf
 > ../gcc-4.1.2/configure --srcdir=../gcc-4.1.2 --target=arm-elf
     --with-cpu=arm9 --disable-libm --disable-libc --disable-threads
     --disable-nls --disable-libssp --disable-intl --disable-libiberty
     --enable-languages=c --with-softfloat-supp --with-float=soft
     --prefix=~/arm-elf
 > make
 > make install
С това приключва инсталацията на крос-компилатора.
  • Компилиране на CHDK. Влезте в директорията 'trunk' или 'grand'.
 > cd ~/chdk/grand
Редактирайте файла <makefile.inc>, за да изберете PLATFORM и PLATFORMSUB за вашата камера: просто махнете знака "#" където е нужно. Освен това, добавете следния ред в началото на файла <makefile.inc>, за да укажете местонахождението на крос-компилатора за ARM платформа,
 PATH := $(HOME)/arm-elf/bin:$(PATH)
Вече трябва да сте готови да компилирате всичко.
 > make fir
PS.FIR трябва да бъде създаден в директорията "bin".
Ако искате да компилирате CHDK за друга камера, просто изпълнете командата make с аргументи PLATFORM и PLATFORMSUB. Например:
 > make PLATFORM=a620 PLATFORMSUB=100f fir
За да компилирате CHDK за всички камери, напишете:
 > make batch-zip

Алтернативен метод с gcc-3.4.6[]

В CHDK е включен пач за компилиране с gcc-3.4.6. Той представлява проста инсталация, ако искате да ползвате тази версия на gcc. Този метод използва глобална интсалация на инструментите arm-elf.

Не забравяйте да изтриете всички стойности на променливата CFLAGS, които може да сте установили вече:

 > export CFLAGS=""

Компилиране и инсталиране на binutils[]

Разархивирайте изходния код, влезте в директорията където е той и напишете:

 > mkdir binutils-2.17-arm-elf
 > cd binutils-2.17-arm-elf/
 > ../configure --srcdir=../ --target=arm-elf && make && sudo make install

Компилиране и инсталиране на GCC-3.4.6[]

Изтеглете gcc-3.4.6, разархивирайте го и влезте в директорията му. Използвайте пача, който идва с CHDK:

 > patch -p0 < [path_to_hdk]/grand/tools/patches/gcc-3.4-arm.diff
Компилирайте кода:
 > mkdir gcc-arm-elf
 > cd gcc-arm-elf/ 
 > ../configure --srcdir=../ --target=arm-elf --with-cpu=arm9 \
   --with-newlib --enable-multilib  --enable-languages=c \
   && make && sudo make install

Вече можете да компилирате CHDK, както е описано по-горе.

Advertisement