CHDK mit Linux compilieren

Welche Kameras werden unterstützt, Einrichtung der SD-Karte mit CHDK.

Beitragvon TaiJiGong » 13.05.2010, 21:07

Install TAB

soll natürlich nicht leer bleiben. Das GUI war erst mal nur eine erster Entwurf von mir.

Bei dem Install TAB dachte ich an Funktionen wie

- copieren der firmware auf die SD-Card
- SD-Card bootbar machen
- ??? Was ist da noch sinnvoll/gewünscht ???

Jetzt werden wir erst mal die einfachten (selection, compile, update) Funktionen zu realisieren.

Dazu fehlt uns nicht mehr viel damit das geht mit:

- LINUX ubunto und openSuse
- Windows (da ist wohl Silas dabei)

Dann haben wir vielleicht ein Tool das auch mehre Nutzer interressert die dann auch mithelfen das weiter auszubauen.

Viele Grüße, TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

Beitragvon silas » 27.05.2010, 07:07

Hallo!
Wieder mal ein update:
Das gui von Tajigong geht jetzt einigermaßen, nur patch fehlt noch.
Um Kamera und trunk auszuwählen auf den Knopf drücken (rot/grün hat noch nichts zu sagen)

Der server wird aus dem normalen Programm gestartet, eventuell muss noch JAVA_HOME definiert werden (für die die nicht Ubuntu oder OpenSuse benutzten).

http://dl.dropbox.com/u/4997718/testing.zip

Noch ein paar Demobilder:
Bild
Bild

Silas
a550,IXUS 80IS (1.01a)
aktuelle version
Flickr
Benutzeravatar
silas
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 150
Registriert: 23.04.2008, 13:11
Wohnort: Schweden

Beitragvon TaiJiGong » 27.05.2010, 22:30

Danke Silas für diene Arbeit, es funktioniert schon ganz gut. Auf anhieb habe ich keine groben Fehler gefunden.

Bei der neusten OpenSuse Version 11.2 muss wohl die Umgebungs Variable:

JRE_HOME=/usr/lib64/jvm/java

(bei einem 64-Bit-System) gesetzt werden, bei älteren Versionen ist das wohl nicht nötig.

Um das Web-Gui aufzurufen, in einem Browser die url:

http://127.0.0.1:8080/CHDK_WEB_GUI/chdk/

aufrufen. Vorher den Server starten, "Other" --> "start server"

Als nächstes wirst du von mir die Erweiterung für "Options" bekommen.

Viele Grüße, TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

Beitragvon silas » 05.06.2010, 07:32

Jetzt ist die Windows Version fast fertig, das meiste sollte ohne Probleme gehen.
Das wo noch fehlt ist das web-gui und der "Patch einfügen".

Heruntergeladen wird hier:
http://dl.dropbox.com/u/4997718/chdk-windows.zip
Ich hoffe das irgendjemand testen kann.

Silas
a550,IXUS 80IS (1.01a)
aktuelle version
Flickr
Benutzeravatar
silas
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 150
Registriert: 23.04.2008, 13:11
Wohnort: Schweden

Beitragvon msl » 14.06.2010, 15:11

Klasse, dass du so intensiv an dem Projekt dran bleibst.

Ich habe die Windows-Version jetzt nicht getestet, gehe aber davon aus, dass sie genauso gut wie die Linux-Version funktioniert. Vielleicht sollte noch erwähnt werden, dass eine Windows-Version von Python notwendig ist.

Für alle, die sich unter Python nichts vorstellen können. Es handelt sich dabei um eine Programmier/Skript-Sprache ähnlich wie Lua.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon TaiJiGong » 08.07.2010, 20:23

Hallo Silas,

ich habe mich die letze Zeit mit dem gcc Envirorment für CHDK etwas beschäftigt. Wollte eigendlich eins für gcc 4.5.0 erzeugen, habe ich aber noch nicht geschafft. Immerhin habe ich jetzt eines für den gcc-4.4.4

Hier das script, ich denke das sollte auch bei dir zur erzeugung der 32-Bit Version gehen.

!!! Vorsicht !!! Directory "~/wa" und "~/arm-elf" werden benutzt. ggf. vorher sichern oder umbenennen.

Code: Alles auswählen
#!/bin/bash
#
#
USE_BINUTILS_VERSION="binutils-2.18"
USE_GCC_VERSION="gcc-4.4.4"
USE_GMP_VERSION="gmp-5.0.1"
USE_MPFR_VERSION="mpfr-3.0.0"
#
mkdir ~/wa
cd ~/wa
#
mkdir down
cd down
#
# Download
#
wget ftp://ftp.nluug.nl/mirror/languages/gcc/releases/${USE_GCC_VERSION}/${USE_GCC_VERSION}.tar.bz2
wget http://ftp.sunet.se/pub/gnu/gmp/${USE_GMP_VERSION}.tar.bz2
wget http://www.mpfr.org/mpfr-current/${USE_MPFR_VERSION}.tar.bz2
#
# //binutils-2.18 geht, neuere warscheinlich nicht
#
wget http://ftp.download-by.net/gnu/gnu/binutils/${USE_BINUTILS_VERSION}.tar.bz2
#
# unpack
#
cd ..
for zipped in down/* ; do tar xjf $zipped ; done
ln -s $(pwd)/${USE_GMP_VERSION} ${USE_GCC_VERSION}/gmp
ln -s $(pwd)/${USE_MPFR_VERSION} ${USE_GCC_VERSION}/mpfr
#
cd ${USE_BINUTILS_VERSION}/
./configure --srcdir=`pwd` --target=arm-elf --prefix=${HOME}/arm-elf --disable-werror
#-j X   X=anzahl der Cores + 1
make -j 3
make install
cd ..
#
ed ${USE_GCC_VERSION}/gcc/config/arm/t-arm-elf << EOF
/MULTILIB_OPTIONS/s/^M/# M/
/MULTILIB_DIRNAMES/s/^M/# M/
/mno-thumb-interwork/s/^# //
/normal interwork/s/^# //
wq
EOF
#
#
# !!! --with-cpu=arm9 weglassen !!! fuer SX10is,...
mkdir ${USE_GCC_VERSION}-arm-elf && cd ${USE_GCC_VERSION}-arm-elf
../${USE_GCC_VERSION}/configure --srcdir=../${USE_GCC_VERSION} --target=arm-elf \
 --enable-multilib --enable-languages=c --enable-clocale=gnu \
 --disable-libm --disable-libc --disable-threads \
 --disable-nls --disable-libssp --disable-intl \
 --with-newlib --prefix=${HOME}/arm-elf \
 --disable-zlib  --with-gmp-include=${PWD}/gmp --with-gmp-lib=${PWD}/gmp/.libs
#-j X   X=anzahl der Cores + 1
unset LIBRARY_PATH; unset CFLAGS; make -j 3 && make install



Viele Grüße, TaiJiGong.
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

LINUX toolchain mit GCC Version 4.5.1

Beitragvon TaiJiGong » 31.08.2010, 22:06

Hallo Zusammen,

Es hat einige Zeit und Nerven gekostet, aber nun geht auch der GCC 4.5.1 (opensuse 64 bit, andere hoffentlich auch)

Code: Alles auswählen
#!/bin/sh
# Builds a arm-elf cross compiler for use on linux
# host systems. This target has no file system or kernel.
#
TARGET="arm-elf"
BUILDDIR=`pwd`
BUILDDIR="${BUILDDIR}/build-dir"
mkdir ${BUILDDIR}
SRC="${BUILDDIR}/packages" # package directory
PREFIX="${BUILDDIR}/arm/toolchain" # final toolchain directory
PARALLEL="-j 2"
BINUTILS=binutils-2.18
GCC=gcc-4.5.1
GMP=gmp-5.0.1
MPFR=mpfr-3.0.0
MPC=mpc-0.8.2
NEWLIB=newlib-1.18.0
export PATH="$PATH:$PREFIX/bin"
# Before we do anything we need all the source files.
# We keep them in one place and we never need to
# download them twice if this build fails.
mkdir $SRC
cd $SRC
echo "Dounloading source packages. This may take a while."
echo
wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2
wget -c ftp://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.bz2
wget -c ftp://ftp.gmplib.org/pub/$GMP/$GMP.tar.bz2
wget -c http://www.mpfr.org/mpfr-current/$MPFR.tar.bz2
wget -c http://www.multiprecision.org/mpc/download/$MPC.tar.gz
wget -c ftp://sources.redhat.com/pub/newlib/$NEWLIB.tar.gz
cd ..
echo "Starting Build..."
echo
mkdir build
echo "Building binutils"
echo
tar xfj $SRC/$BINUTILS.tar.bz2
cd $BINUTILS
./configure --target=$TARGET --prefix=$PREFIX --disable-werror
# --enable-interwork --disable-multilib --with-gnu-as
# --with-gnu-ld --disable-nls --disable-werror
make $PARALLEL
make install
cd ..
rm -rf build/* $BINUTILS
echo "Building GCC pass 1"
tar xfj $SRC/$GCC.tar.bz2
# the compiler math prereqs
tar -jxf $SRC/$GMP.tar.bz2
tar -jxf $SRC/$MPFR.tar.bz2
tar -zxf $SRC/$MPC.tar.gz
cd $GCC
mv ../$GMP gmp
mv ../$MPFR mpfr
mv ../$MPC mpc
cd ../build
#
ed ../$GCC/gcc/config/arm/t-arm-elf << EOF
/MULTILIB_OPTIONS/s/^M/# M/
/MULTILIB_DIRNAMES/s/^M/# M/
/mno-thumb-interwork/s/^# //
/normal interwork/s/^# //
wq
EOF
#
../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \
--enable-multilib --enable-languages="c" --with-newlib \
--with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \
--without-headers --disable-shared --disable-nls --with-gnu-as --with-gnu-ld
make $PARALLEL all-gcc
make install-gcc
cd ..
rm -rf build/* # (We retain the GCC directory for pass 2)
echo "Building Newlib"
echo
tar xfz $SRC/$NEWLIB.tar.gz
cd build
../$NEWLIB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \
--enable-multilib --with-gnu-as --with-gnu-ld --disable-nls
make $PARALLEL
make install
cd ..
rm -rf build/* $NEWLIB
echo " Building GCC pass 2"
echo
cd build
../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \
--enable-multilib --enable-languages="c" --with-newlib \
--with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \
--without-headers --disable-libssp --disable-nls --disable-zlib --disable-libc --disable-libm --disable-intl \
--disable-hardfloat --disable-threads --with-gnu-as --with-gnu-ld
make $PARALLEL
make install
cd ..
rm -rf build/* $GCC
echo "Compiler Finished for "$TARGET



Viele Grüße, TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

LINUX toolchain mit GCC Version 4.5.2

Beitragvon TaiJiGong » 08.01.2011, 22:15

Hallo Zusammen,

LINUX toolchain mit GCC Version 4.5.2 läst sich mir folgenden script erzeugen: (Nur die GCC-Version wurde geändert)

Syntax: [ Download ] [ Verstecken ]
Benutze Bash Syntax Highlighting
#!/bin/sh
# Builds a arm-elf cross compiler for use on linux
# host systems. This target has no file system or kernel.
#
TARGET="arm-elf"
BUILDDIR=`pwd`
BUILDDIR="${BUILDDIR}/build-dir"
mkdir ${BUILDDIR}
SRC="${BUILDDIR}/packages" # package directory
PREFIX="${BUILDDIR}/arm/toolchain" # final toolchain directory
PARALLEL="-j 2"
BINUTILS=binutils-2.18
GCC=gcc-4.5.2
GMP=gmp-5.0.1
MPFR=mpfr-3.0.0
MPC=mpc-0.8.2
NEWLIB=newlib-1.18.0
export PATH="$PATH:$PREFIX/bin"
# Before we do anything we need all the source files.
# We keep them in one place and we never need to
# download them twice if this build fails.
mkdir $SRC
cd $SRC
echo "Dounloading source packages. This may take a while."
echo
wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2
wget -c ftp://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.bz2
wget -c ftp://ftp.gmplib.org/pub/$GMP/$GMP.tar.bz2
wget -c http://www.mpfr.org/mpfr-current/$MPFR.tar.bz2
wget -c http://www.multiprecision.org/mpc/download/$MPC.tar.gz
wget -c ftp://sources.redhat.com/pub/newlib/$NEWLIB.tar.gz
cd ..
echo "Starting Build..."
echo
mkdir build
echo "Building binutils"
echo
tar xfj $SRC/$BINUTILS.tar.bz2
cd $BINUTILS
./configure --target=$TARGET --prefix=$PREFIX --disable-werror
# --enable-interwork --disable-multilib --with-gnu-as
# --with-gnu-ld --disable-nls --disable-werror
make $PARALLEL
make install
cd ..
rm -rf build/* $BINUTILS
echo "Building GCC pass 1"
tar xfj $SRC/$GCC.tar.bz2
# the compiler math prereqs
tar -jxf $SRC/$GMP.tar.bz2
tar -jxf $SRC/$MPFR.tar.bz2
tar -zxf $SRC/$MPC.tar.gz
cd $GCC
mv ../$GMP gmp
mv ../$MPFR mpfr
mv ../$MPC mpc
cd ../build
#
ed ../$GCC/gcc/config/arm/t-arm-elf << EOF
/MULTILIB_OPTIONS/s/^M/# M/
/MULTILIB_DIRNAMES/s/^M/# M/
/mno-thumb-interwork/s/^# //
/normal interwork/s/^# //
wq
EOF

#
../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \
--enable-multilib --enable-languages="c" --with-newlib \
--with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \
--without-headers --disable-shared --disable-nls --with-gnu-as --with-gnu-ld
make $PARALLEL all-gcc
make install-gcc
cd ..
rm -rf build/* # (We retain the GCC directory for pass 2)
echo "Building Newlib"
echo
tar xfz $SRC/$NEWLIB.tar.gz
cd build
../$NEWLIB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \
--enable-multilib --with-gnu-as --with-gnu-ld --disable-nls
make $PARALLEL
make install
cd ..
rm -rf build/* $NEWLIB
echo " Building GCC pass 2"
echo
cd build
../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork \
--enable-multilib --enable-languages="c" --with-newlib \
--with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \
--without-headers --disable-libssp --disable-nls --disable-zlib --disable-libc --disable-libm --disable-intl \
--disable-hardfloat --disable-threads --with-gnu-as --with-gnu-ld
make $PARALLEL
make install
cd ..
rm -rf build/* $GCC
echo "Compiler Finished for "$TARGET
Erstellt in 0.030 Sekunden, mit GeSHi 1.0.8.9


Viele Grüße,

TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

Re: CHDK mit Linux compilieren

Beitragvon SirBlack » 28.03.2011, 21:48

Hallo,
ich hab mich an die Anleitung gehalten, bekomme aber immer folgenden Fehler.

Code: Alles auswählen
checking if gcc  -m32 supports -c -o file.o... (cached) yes
checking whether the gcc  -m32 linker (ld -m elf_x86_64 -m elf_i386) supports shared libraries... yes
checking dynamic linker characteristics... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
make: *** [configure-zlib] Fehler 1


Leider hab ich beim googeln keine Antwort gefunden. Was kann ich nun machen?

Viele Grüße
SirBlack
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 4
Registriert: 28.03.2011, 21:45
Kamera(s): Alpha 200

Re: CHDK mit Linux compilieren

Beitragvon CHDKLover » 29.03.2011, 09:24

Hallo SirBlack,
willkommen im Forum!
Ich hatte vor einiger Zeit einen ähnlichen Fehler. Damals konnte ihn meines Wissens dadurch beheben, indem ich auf parallele Erstellungsprozesse (-j 1) verzichtete.
(Das Skript von TaiJiGong funktionierte bei mir mit -j 5 für den gcc 4.6.0. Einzig die Optionen --start-group / --end-group in core/Makefile scheint es nicht mehr zu geben, aber ohne geht es bei mir auch.)

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Re: CHDK mit Linux compilieren

Beitragvon SirBlack » 29.03.2011, 20:03

Hallo,
danke.

Leider hat das nicht geholfen.
Gibt es bei dem ./configure Aufruf irgendwelche opens in deinem file?

Gruß
SirBlack
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 4
Registriert: 28.03.2011, 21:45
Kamera(s): Alpha 200

Re: CHDK mit Linux compilieren

Beitragvon CHDKLover » 30.03.2011, 08:01

Hallo SirBlack,
was meinst du mit opens in einem file?

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Re: CHDK mit Linux compilieren

Beitragvon SirBlack » 31.03.2011, 20:57

In meinem config.log steht folgender Fehler. Ich hab aber auch nicht raus gefunden wie ich das beseitigen kann. Ist das ggf. normal?

Config.log wird von dem configure Befehl geschrieben.

Code: Alles auswählen
configure:5795: gcc -c -g -O2  -I/home/sirblack/workspace/SAM7/Toolchain/build_gcc/gmp -I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr -I$$s/mpc/src   conftest.c >&5
conftest.c: In function 'main':
conftest.c:16: error: 'choke' undeclared (first use in this function)
conftest.c:16: error: (Each undeclared identifier is reported only once
conftest.c:16: error: for each function it appears in.)
conftest.c:16: error: expected ';' before 'me'
configure:5795: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include "ppl_c.h"
| int
| main ()
| {
|
|     #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
|     choke me
|     #endif
|
|   ;
|   return 0;
| }
configure:5799: result: no
SirBlack
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 4
Registriert: 28.03.2011, 21:45
Kamera(s): Alpha 200

Re: CHDK mit Linux compilieren

Beitragvon CHDKLover » 01.04.2011, 08:46

Hallo SirBlack,
es scheint so als währe deine PPL (Parma Polyhedra Library) zu alt. Wenn Sie älter als 0.11 ist, wird dieser Fehler erzwungen (choke me = abwürgen). Weitere Grundvoraussetzungen für die Bau des GCCs findest du hier.

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Re: CHDK mit Linux compilieren

Beitragvon SirBlack » 10.04.2011, 23:31

Hm danke erstmal.
Sieht so aus als hätte ich jetzt keine config Fehler mehr.

Der Make Schritt bricht immer noch ab.

Code: Alles auswählen
checking if gcc  -m32 supports -fno-rtti -fno-exceptions... no
checking for gcc  -m32 option to produce PIC... -fPIC -DPIC
checking if gcc  -m32 PIC flag -fPIC -DPIC works... yes
checking if gcc  -m32 static flag -static works... no
checking if gcc  -m32 supports -c -o file.o... yes
checking if gcc  -m32 supports -c -o file.o... (cached) yes
checking whether the gcc  -m32 linker (ld -m elf_x86_64 -m elf_i386) supports shared libraries... yes
checking dynamic linker characteristics... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
make[1]: *** [configure-zlib] Fehler 1
make[1]: Verlasse Verzeichnis '/home//workspace/SAM7/Toolchain/build_gcc'
make: *** [all] Fehler 2

Mit diesem Fehler.

Gibts noch weitere Ideen?

Gruß
SirBlack
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 4
Registriert: 28.03.2011, 21:45
Kamera(s): Alpha 200

VorherigeNächste

Zurück zu Installation (Integration)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste