CHDK mit Linux compilieren

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

CHDK mit Linux compilieren

Beitragvon silas » 14.02.2010, 15:09

Hallo!

Ich habe ein Programm um chdk auf linux zu kompilieren geschrieben.

Einfach herunterladen und mit
Code: Alles auswählen
python chdk_linux_compiling_gui.py
starten.

Bitte Posten sie Probleme und andere Ideen.

Die Dateien liegen jetzt auf dropbox:
http://dl.dropbox.com/u/4997718/testing.zip
http://dl.dropbox.com/u/4997718/chdk-linux-compiler-v10.zip
http://dl.dropbox.com/u/4997718/chdk-linux-compiler-v8.py.zip
http://dl.dropbox.com/u/4997718/chdk-linux-compiler-v7.py.zip
http://dl.dropbox.com/u/4997718/chdk-linux-compiler-v6.py.zip
http://dl.dropbox.com/u/4997718/chdk-linux-compiler-v5.py.zip

Changelog v10-14
Neues web gui
Verändertes normales GUI.

Changelog v8-10:
Alle einstellungen und mitteilungen liegen jetzt in einem conf Ordner.
Sprachen können eingestellt werden, (will jemand übersetzten?).
Zuletzt geändert von silas am 27.05.2010, 06:57, insgesamt 7-mal geändert.
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

CHDK compiling GUI

Beitragvon TaiJiGong » 18.04.2010, 21:20

Hallo Zusammen,

CHDK compiling GUI

habe ich versucht zu installieren.

SVN Source wird herunter geladen

Aber dann kommt der Error:


Code: Alles auswählen
A    trunk-international/Makefile
 U   trunk-international
Checked out revision 885.
Checked out revision 885.
international
Traceback (most recent call last):
  File "chdk-linux-compiler-v2.py", line 41, in <module>
    print trunk
NameError: name 'trunk' is not defined

Das gilt sowohl für die internationale als auch die de Version.

Ein erneutes starten des scripts ergibt:



Code: Alles auswählen
didi@linux-uf24:~/chdk> python chdk-linux-compiler-v2.py
de
Traceback (most recent call last):
  File "chdk-linux-compiler-v2.py", line 41, in <module>
    print trunk
NameError: name 'trunk' is not defined

Um alle Daten wieder von der Platte zu entfernen muss folgendens gelöscht werden bevor das script erneut gestartet werden kann.

compiled_files
trunk-de
easygui.py
trunk-international
easygui.py
settings

Um den obigen Fehler zu umgehen habe ich:

if settingsfileread=="chdk-de":
trunk="trunk-de"
if settingsfileread=="chdk-international":
trunk="trunk-international"
trunk="trunk-de" <-- Diese Zeile eingefügt.
print trunk

Jetzt läuft das script weiter bis zu folgendem Fehler.

Code: Alles auswählen
trunk-de
Traceback (most recent call last):
  File "chdk-linux-compiler-v2.py", line 44, in <module>
    urllib.urlretrieve("http://silas.heliohost.org/chdk/chdk.gif", "chdk.gif")
  File "/usr/lib64/python2.6/urllib.py", line 94, in urlretrieve
    return _urlopener.retrieve(url, filename, reporthook, data)
  File "/usr/lib64/python2.6/urllib.py", line 235, in retrieve
    fp = self.open(url, data)
  File "/usr/lib64/python2.6/urllib.py", line 203, in open
    return getattr(self, name)(url)
  File "/usr/lib64/python2.6/urllib.py", line 342, in open_http
    h.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 888, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 760, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.6/httplib.py", line 719, in send
    self.connect()
  File "/usr/lib64/python2.6/httplib.py", line 701, in connect
    self.timeout)
  File "/usr/lib64/python2.6/socket.py", line 512, in create_connection
    raise error, msg
IOError: [Errno socket error] [Errno 110] Connection timed out



Das Laden von "http://silas.heliohost.org/chdk/chdk.gif" habe ich dann auch noch unterdrückt, dann erscheint das GUI.

Meine Kammera IXUS100 gibt es nicht, dewegen habe ich eine andere gewählt.

Code: Alles auswählen
didi@linux-uf24:~/chdk> python chdk-linux-compiler-v2.py
chdk-de                                                 
trunk-de
**** GCC 4.3.2 : BUILDING CHDK-CHDK, #1.1.0-DE FOR ixus870_sd880-101a
>> Cleaning in tools
>> Cleaning in lib
>> Cleaning in lib/font
>> Cleaning in lib/math
>> Cleaning in lib/ubasic
>> Cleaning in lib/lang
>> Cleaning in lib/lua
>> Cleaning in lib/armutil
>> Cleaning in platform
>> Cleaning in platform/ixus870_sd880
>> Cleaning in platform/ixus870_sd880/sub
>> Cleaning in platform/ixus870_sd880/sub/101a
>> Cleaning in core
>> Cleaning in loader
>> Cleaning in loader/ixus870_sd880
>> Cleaning in loader/ixus870_sd880/resetcode
>> Cleaning in CHDK
>> Entering to tools
pakwif.c -> pakwif.o
pakwif.o -> pakwif
gensig.c -> gensig.o
gensig.o -> gensig
-> signatures_dryos.h
CAUTION! 'signatures_dryos.h' is not updated due to 'sig_ref_dryos_1.bin` is empty!
finsig.c -> finsig.o
finsig.o -> finsig
dancingbits.c -> dancingbits.o
dancingbits.o -> dancingbits
<< Leaving tools
>> Entering to lib
>> Entering to lib/font
font_8x16.c -> font_8x16.o
/home/didi/chdk/newenv/arm-elf/bin/../libexec/gcc/arm-elf/4.3.2/cc1: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
make[2]: *** [font_8x16.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
mv: cannot stat `trunk-de/bin/*': No such file or directory


Die Auswahl "ixus100_sd780,100c" habe ich in dem script Zeile 50 der variablen choices hinzugefüht, leider ohne Erfolg. Erscheint nicht in der Auswahl.

Die LIB:

/usr/lib64/libgmp.so.3
/usr/lib64/libgmp.so.3.5.0

gibt es auf meinem System.

Aber vielleicht muss die auch unter "newenv" irgendwo verfügbar sein.


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 msl » 19.04.2010, 08:14

Hallo,

in der Tat sind da ein paar kleine Fehler in dem Python-Skript von silas.

Zeile 37 und 39 stimmten nicht. Das Logo habe ich entfernt. Die Ixus100 muss 2x ergänzt werden (Zeile 51 und 69).

Außerdem habe ich die Schalter verständlicher bezeichnet.

Das Skript läuft bei mir unter Ubuntu auf einem 32Bit-System. Bei Erstausführung wird ein angepasster Compiler heruntergeladen und in "newenv" entpackt. Dieser kommt dann zur Anwendung. Je nach Auswahl wird der Quellcode der deutschen oder internationalen Version heruntergeladen.

Danach steht eine Bedienoberfläche zur Auswahl der Funktionen bereit.

Auswahl kompilieren(Update): Auswahl einer Kamera und Compilieren dieser ohne zusätzliche Dateien.
Auswahl kompilieren(voll): Auswahl einer Kamera und Compilieren dieser mit zusätzliche Dateien.
alle Kameras kompilieren: Alle verfügbaren Kameras compilieren.

Die fertigen compilierten Daten befinden sich im Ordner "compiled_files"

Das ganze funktioniert eigentlich genau so einfach wie mit der CHDK-Shell unter Windows.

Danke an silas für das Skript.

Gruß msl
Dateianhänge
chdk-linux-compiler-v2.py.zip
Python-Skript zum Compilieren von CHDK unter Linux (angepasste Version)
(1.79 KiB) 952-mal heruntergeladen
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 » 19.04.2010, 10:38

Danke msl !

Der download ist OK.

Aber das entpacken geht nicht:

> tar --lzma -xf linux_env_gcc_4.3.1_binutils_2.18.tar.lzma
tar: unrecognized option `--lzma'

Das entpacken geht mit:

~/test> lzcat <linux_env_gcc_4.3.1_binutils_2.18.tar.lzma >linux_env_gcc_4.3.1_binutils_2.18.tar
~/test> tar -xf linux_env_gcc_4.3.1_binutils_2.18.tar

Hallo,

komme nun so weit wie gestern:

Code: Alles auswählen
iinternational
trunk-international
**** Build: 0.9.9
**** GCC 4.3.2 : BUILDING CHDK-CHDK, #0.9.9 FOR sx100is-100c
>> Cleaning in tools
>> Cleaning in lib
>> Cleaning in lib/font
>> Cleaning in lib/math
>> Cleaning in lib/ubasic
>> Cleaning in lib/lang
>> Cleaning in lib/lua
>> Cleaning in lib/armutil
>> Cleaning in platform
>> Cleaning in platform/sx100is
>> Cleaning in platform/sx100is/sub
>> Cleaning in platform/sx100is/sub/100c
>> Cleaning in core
>> Cleaning in loader
>> Cleaning in loader/sx100is
>> Cleaning in loader/sx100is/resetcode
>> Cleaning in CHDK
>> Entering to tools
pakwif.c -> pakwif.o
pakwif.o -> pakwif
gensig.c -> gensig.o
gensig.o -> gensig
-> signatures_dryos.h
CAUTION! 'signatures_dryos.h' is not updated due to 'sig_ref_dryos_1.bin` is empty!
finsig.c -> finsig.o
finsig.o -> finsig
dancingbits.c -> dancingbits.o
dancingbits.o -> dancingbits
<< Leaving tools
>> Entering to lib
>> Entering to lib/font
font_8x16.c -> font_8x16.o
/home/didi/test/newenv/arm-elf/bin/../libexec/gcc/arm-elf/4.3.2/cc1: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
make[2]: *** [font_8x16.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
mv: cannot stat `trunk-international/bin/*': No such file or directory



Das Problem ist in dem newenv directory.

ich habe ein selbst erzeugtes "arm-elf" (nach: http://chdk.wikia.com/wiki/Gcc433) da hinein kopiert, damit geht das GUI.

**** Firmware creation completed successfully
-> CHDK-sx100is-100c-0.9.9.zip


Das selbst erzeugte "arm-elf" läst sich auch gut mit der freien Entwicklungsumgebung NetBeans nutzen.

Dazu startet man NetBeans (htpl://www.Netbeans.org) und wählt in der Menüleiste Tools, Options aus. Im Options-Fenster wahlt man die Konfiguration für C/C++ aus. Der erste Listenreiter enthält Angaben zu den Build-Tools. Hier kann man sogennannte Tool-Collections zusammenstellen. Mit dem Button Add lässt sich eine neue Collection erstellen. Dann noch die Pfade anpassen:

z.Bsp.

Base directory: /home/didi/arm-elf/bin
C compiler: /home/didi/arm-elf/bin/arm-elf-gcc
C++ compiler: /home/didi/arm-elf/bin/arm-elf-cpp
Assembler: /home/didi/arm-elf/bin/arm-elf-as


Dann bei den CHDK sourcen:

In makefile.inc am Anfang den PATH anpasen.

Bspl.: PATH=/home/didi/arm-elf/bin:/usr/bin:/home/didi/bin:/usr/local/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib/qt3/bin:/opt/kde3/bin

und die Kommentarzeichen vor der gewünschten Kammera entfernen.

Benutzt man als Target für das makefile: firzipsubcomplete wird alles wie erwartet erzeugt.

**** Firmware creation completed successfully
-> sx100is-100c-1.1.0-DE-full.zip
-> sx100is-100c-1.1.0-DE.zip
MAKE SUCCESSFUL (total time: 18s)




Viele Grüße,

TaiJiGong

edit by mod: 3 Postings innerhalb von 10 Minuten zusammengefasst.
Zuletzt geändert von TaiJiGong am 19.04.2010, 22:06, insgesamt 1-mal geändert.
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 » 19.04.2010, 17:13

Ich habe noch einen Fehler gefunden, Programm ist im Anhang.


PS. An admin, warum ist .py nicht erlaubt?
Dateianhänge
chdk-linux-compiler-v3.py.zip
(1.79 KiB) 953-mal heruntergeladen
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 » 19.04.2010, 21:13

Hallo silas,

Habe es erneut getestet:

/home/didi/test/newenv/arm-elf/bin/../libexec/gcc/arm-elf/4.3.2/cc1: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory


Ich denke das Problem ist das der gcc bereits kompiliert ist.

Ich habe ein openSUSE 64 Bit System, Du und msl wohl Ubuntu (32Bit)

( Anbei mein envirorment, .. geht leider nicht ca. 30 MB. Kann ich Euch per email schicken, oder einen ftp-server )

Dann könnte man testen ob das auch bei euch läuft. Oder evtl. eine Auswahl bei der installation machen.


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 » 20.04.2010, 06:46

Das enviroment ist das gleiche wie das auf dem autobuild server (http://mighty-hoernsche.de/), kann bestimmt sein das es nur auf 32-bit funktioniert.
Zuletzt geändert von silas am 21.04.2010, 14:26, insgesamt 1-mal geändert.
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 » 20.04.2010, 08:53

Anregung: Bei der Auswahl für den download der SVN version könnte man noch
"trunk-de und trunk-international" hinzufügen.

Dann gibt es keine Verwirrung wenn der "chdk-de/chdk" switch benutzt wird.

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 » 21.04.2010, 08:19

Das stecht jetzt auf der todo liste, danke.

Kannst du dein enviroment irgendwo raufladen (rapidshare oder andere) und den link posten?
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 » 21.04.2010, 08:48

Enviroment für openSUSE Version 11.0 64 Bit (Intel)

http://rapidshare.com/files/378325138/a ... 4.tgz.html

MD5: DE04CE6C26469CF9708009791AB768BB

Interressant ist ob das auch auf anderen LINUX-(intel)Systemen lauffähig ist.
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 » 21.04.2010, 14:45

Lauft anscheinend nicht:
Code: Alles auswählen
>> Entering to lib
/home/silas/programming/chdk/newenv/arm-elf/bin/arm-elf-gcc: 1: Syntax error: "(" unexpected
/home/silas/programming/chdk/newenv/arm-elf/bin/arm-elf-gcc: 1: Syntax error: "(" unexpected
>> Entering to lib/font
/home/silas/programming/chdk/newenv/arm-elf/bin/arm-elf-gcc: 1: Syntax error: "(" unexpected
/home/silas/programming/chdk/newenv/arm-elf/bin/arm-elf-gcc: 1: Syntax error: "(" unexpected
font_8x16.c -> font_8x16.o
/home/silas/programming/chdk/newenv/arm-elf/bin/arm-elf-gcc: 1: Syntax error: "(" unexpected
make[2]: *** [font_8x16.o] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1


Könntest du mal folgendes im python shell laufen:
Code: Alles auswählen
import platform
print platform.machine()

und mir die antwort schicken?

Dann werde ich das für 64-bit irgendwo raufladen, und einen check einbauen.
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 » 21.04.2010, 15:18

Code: Alles auswählen
Python 2.5.2 (r252:60911, Dec  1 2008, 18:10:01)
[GCC 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> print platform.machine()
x86_64
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 » 21.04.2010, 15:43

Wieder mal ein update :)
Jetzt soll die richtige Version vom Enviroment heruntergeladen werden.

Edit: Oje, schon wieder mal nicht auf "Anhang hinzufügen" gedrückt.
Dateianhänge
chdk-linux-compiler-v4.py.zip
(1.97 KiB) 969-mal heruntergeladen
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 » 21.04.2010, 15:56

Wie erwartet: OK
Code: Alles auswählen
**** Firmware creation completed successfully
-> CHDK-ixus100_sd780-100c-1.1.0-DE.zip


Auswahl "Alle Kameras" geht nicht. Da wird nichts erzeugt.

Ich werde mal schauen ob ich noch ein 32-Bit System habe, und wenn das auch testen.

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 » 21.04.2010, 16:05

Problem mit "Alle Kameras" gelöst (hoffentlich)!
Dateianhänge
chdk-linux-compiler-v5.py.zip
(1.96 KiB) 957-mal heruntergeladen
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

Nächste

Zurück zu Installation (Integration)

Wer ist online?

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