[Info] CHDK-Shell - Erstellung eigener CHDK-Versionen

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

CHDK-Shell - Erstellung eigener CHDK-Versionen

Beitragvon msl » 26.12.2008, 12:38

Wie kann ich mein eigenes CHDK erstellen?

Ganz einfach - Dank Whim aus dem internationalen Forum gibt ein installationsfreies Programm zu Compilieren von CHDK. Das Programm heißt CHDK-Shell. Diese Programm organisiert die Umwandlung des Quellcodes zur fertigen bootdisk.bin, also das Compilieren.

Das Programm ist in der Lage, den aktuellen Quellcode herunterzuladen, zu entpacken und zu organisieren. Es bietet die Möglichkeit, individuelle Einstellungen vorzunehmen. So können nicht benötigte Funktionen wie der Kalender, die Spiele, der Textreader us.w. weggelassen werden. Das Programm beinhaltet das bekannte Cardtricks.

Selbstverständlich kann der Quellcode mit einem externen Editor bearbeitet werden. Dazu sind aber Programmierkenntnisse nötig.

Aktuelle Versionsinfos und Downladmöglichkeiten sind hier zu finden.

Weiterhin wird die eigentliche Compiler-Software benötigt. CHDK-Shell kann dies selbstständig organisieren. Empfehlenswert ist aber der Download einer neueren aktuellen Compiler-Software auf dieser Seite. Es wird die Datei gcc432_env_for_chdk benötigt.

Die genannte Datei ist ein 7z-Paket. Dieses muss mit einem entsprechenden Programmm entpackt werden, z. B. 7-Zip.

Damit alles miteinander funktioniert, sollte man sich eine entsprechende Umgebung auf dem Rechner erstellen:

Einen Hauptordner anlegen, z.B. D:\CHDK\Compiling

In dieses Verzeichnis kopiert man die Daten aus dem CHDK-Shell-Paket. Außerdem legt man einen Ordner "gcc" an. In diesem Ordner kopiert man den Inhalt aus dem 7z-Paket.

------------------------------------------------------------------------------------
optional für weitere Compilier-Anwendungen wie z. B. mit Batch-Dateien ohne Nutzung der CHDK-Shell:

Nun müssen noch die Umgebungsvariablen für den Compiler angepasst werden. Dazu ruft man unter Systemsteuerung "System" auf (gilt für Win-XP). Hier wird dan "Erweitert" aufgerufen. Dann klickt man auf "Umgebungsvariablen". Im unteren Fenster "Systemvariablen" wählt man "Path" aus und dann bearbeiten.

Hier gibt man den vollständigen Pfad zum "bin"-Verzeichnis ein, welches sich im "gcc"-Verzeichnis befindet, z.B. D:\CHDK\Compiling\gcc\bin. Sollten schon Pfade unter Path enthalten sein, hängt man einfach den neuen Pfad am Ende an, in dem man mit einem Semikolon und Leerzeichen trennt. Die Eingaben werden nun bestätigt.

optional Ende
-----------------------------------------------------------------------------------

Jetzt kann man CHDK-Shell durch Doppelklick starten. Das Programm ist eigentlich selbsterklärend, setzt aber einfache Englisch-Kenntnisse voraus.

Bitte vor Installation weiterführende Beiträge lesen!

Hinweis: Wer sich nicht sicher im Umgang mit seinem Rechner ist, sollte auf CHDK-Shell verzichten.
Zuletzt geändert von msl am 04.09.2009, 13:07, insgesamt 3-mal geändert.
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 TheSmartGerman » 26.12.2008, 13:54

Hallo msl,

das kommt ja wie gerufen hab erst heute morgen eine alte Version von der CHDK-Shell von der Platte geschmissen. Konnte dann aber keine neuere Version finden...

Aber jetzt weiß ich ja wo's die gibt ;)

THX
Ixus 50 101b @ CHDK aktuelle Version
Ixus 30 still waiting for Ixus 30 port.
TheSmartGerman
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 17.07.2008, 20:30
Wohnort: BW, z.Z. Singapur

Beitragvon silas » 27.12.2008, 21:21

Funktioniert das unter vista?
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 » 27.12.2008, 21:55

Ich glaube ja.

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 silas » 27.12.2008, 23:00

Ich glaube nein. :(
Der sagt "sh.exe has stopped working" 2 mal und geht aus.
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 » 27.12.2008, 23:16

Frag doch mal Whim im internationalen Forum: http://chdk.setepontos.com/index.php/to ... l#msg25775

Der kann Dir da sicherlich weiterhelfen. GCC 4 soll eigentlich unter Vista laufen. Ich benutze kein Vista und kann es deshalb auch nicht testen.

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

CHDK-Shell

Beitragvon fe50 » 28.12.2008, 01:05

Ein paar Anmerkungen noch zum Compilieren mit CHDK-Shell:

Die 'alte' GCC 3.4 Umgebung ist derzeit noch die "offizielle" Umgebung für Windows, seit langer Zeit erfolgreich im Einsatz und recht robust; läuft aber vermutlich nicht unter Vista (hab's zumindest noch nicht getestet).

Die 'neue' GCC 4.3 Umgebung ist noch sehr neu, sie basiert auf Cygwin anstelle von MingW

Beim Einsatz der 4.3 Umgebung müssen deshalb u.U. vorhandene Cygwin Mounts vorher gelöscht werden (nur relevant, wenn andere Cygwin-basierende Programme installiert sind oder verwendet werden)

Das Compilieren mit GCC 4.3 dauert ca. 20-30% länger, der erzeugte Code ist ca. 8-10 kB kleiner

Wird die CHDK-Shell verwendet, ist eine Anpassung der Windows-Umgebung (path) nicht nötig, das macht die Shell selbst. Das ist wichtig, wenn noch andere gcc Versionen auf dem Rechner verwendet werden - die CHDK-Shell hängt deshalb temporär "ihren" gcc - Pfad an den Anfang der path Variablen.

Im Pfad zu der CHDK-Shell und allen Bestandteilen dürfen keine Leerzeichen/Sonderzeichen (ausser _ ) enthalten sein, als 'sicher' können DOS-kompatible 8.3 Ordnernamen angesehen werden...
◄"The grass was greener, The light was brighter"►  ◄fe50 home►  ◄TRAIL-Magazin►  ◄RTFM !►
Benutzeravatar
fe50
CHDK-Legende
CHDK-Legende
 
Beiträge: 1106
Registriert: 25.04.2008, 14:28
Wohnort: B'Württemberg
Kamera(s): Ixus50 101b, Ixus860 100c, SX10 101a

Beitragvon antonb » 29.12.2008, 01:55

Hallo,

auf Grund des Postings von msl habe ich, seiner Anleitung folgend, alle benötigten Sachen (CHDK-Shell und gcc432_env_for_chdk.7z) heruntergeladen. Das mit dem Pfad habe ich auch befolgt - CHKD mit darunterliegendem Compiling.
Leider ist beim Starten der CHDK-Shell folgender Fehler aufgetaucht :(:

Line -1:
Error: Array variable subscript badly formatted

http://chdk.setepontos.com/index.php?PHPSESSID=fe0c0717e822ebec2b26319503216bc4&action=dlattach;topic=845.0;attach=2401

Bei der weiteren Suche im Englischen Forum bin ich dann auf folgenden Eintrag mit einer Erklärung von fe50 gestoßen http://chdk.setepontos.com/index.php?PHPSESSID=fe0c0717e822ebec2b26319503216bc4&topic=845.msg23841#msg23841 der erklärt warum die Fehlermeldung kommt.

Da ich beim Stöbern im Forum wo gelesen habe dass es mit einer älteren Version funktionieren soll, habe ich die folgende Version http://drop.io/chdksoft/asset/chdk-shell-v188 heruntergeladen.

Mit dieser ist die CHDK-Shell fehlerfrei gestartet und hat erst mal den aktuellen Sourcecode heruntergeladen und entpackt .
Nachdem das erledigt war, habe ich wieder die neueste Version (http://drop.io/chdksoft/asset/chdk-shell-v192) gestartet und alles läuft fehlerfrei :D.

Mein OS ist WinXP mit SP2, CHDK\Compiling ist auf einer externen USB-Platte und die Pfad-Variable von WinXP ist nicht modifiziert.

Keine Ahnung ob sonst noch jemand diese Fehlermeldung bekommen hat - wenn ja, hoffe ich mit meiner Lösung geholfen zu haben

Liebe Grüße
antonb
Powershot G7 / g7-100j-1.1.0_rev_626
Powershot A590 IS / a590-101b-1.0.1-DE_rev_209
EOS 500D
Benutzeravatar
antonb
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 99
Registriert: 19.08.2008, 14:40
Wohnort: Nord-Östliches Weinviertel/Österreich
Kamera(s): PS G7 - PS A590 - EOS 500D

Beitragvon fe50 » 29.12.2008, 03:50

Hallo antonb, schön, dass es letztlich noch geklappt hat.

Im Download der CHDK-Shell ist ein zip-Archiv namens "t001.zip", dies enthält einen "Dummy-Sourcecode - Ordner", wenn alles in einen Ordner entpackt wurde sollte das Programm beim ersten Start automatisch den Ordner trunk + dem darunterliegenden \trunk001 anlegen - die 1.92 entpackt aber die Unterordner nicht, deshalb die Fehlermeldung.

Um die Sache für andere etwas zu vereinfachen eine kurze Anleitung:
:arrow: "CHDK-Shell-v192.zip" herunterladen, in einen Ordner (ohne Leerzeichen) entpacken
:arrow: "t001.zip" in diesen Ordner ebenfalls entpacken
:arrow: die 3.4 oder 4.3 gcc Umgebung herunterladen und im Unterordner gcc entpacken (man kann auch beide Umgebungen bereitlegen, z.B. als 'gcc3' und 'gcc4' und dann einfach den gewünschten Compiler durch umbenennen des jeweiligen Ordners in 'gcc' aktivieren).
:arrow: nun erst das Programm starten & den Sourcecode herunterladen lassen

Wer will kann die Quelltexte auch als einzelne ZIP-Datei direkt herunterladen: CHDK trunk, am unteren Bildschirmrand "Zip Archive" anklicken - die CHDK-Shell macht eigentlich nichts anderes...
Die .zip datei muss nun im Ordner mit der CHDK-Shell unterhalb von \trunk mit einem Namen nach dem Muster trunkXXX entpackt werden.

PS: Man kann so jede bisherige Version herunterladen: oben hinter "View revision:" die gewünschte Versionsnummer (z.B. 650) eintragen & mit Enter bestätigen, dann bekommt man den gewünschten Stand angezeigt und kann diese Version als ZIP herunterladen...

Die korrekte Verzeichnisstruktur sieht dann so aus:
Bild
◄"The grass was greener, The light was brighter"►  ◄fe50 home►  ◄TRAIL-Magazin►  ◄RTFM !►
Benutzeravatar
fe50
CHDK-Legende
CHDK-Legende
 
Beiträge: 1106
Registriert: 25.04.2008, 14:28
Wohnort: B'Württemberg
Kamera(s): Ixus50 101b, Ixus860 100c, SX10 101a

Beitragvon antonb » 29.12.2008, 17:26

Hallo fe50

auf das mit dem zip-file im zip-file muss man(n) erst mal draufkommen :).
Dass die Lösung so simpel ist hätte ich nicht gedacht.
Ich hab mir den File CHDK-Shell-v192.zip noch einmal angeschaut und da ist doch tatsächlich der von dir angesprochene zip-file drinnen. Und wenn man den enpackt wird auch der Ordner trunk richtig angelegt -
tja - gewusst wie und schon läuft alles bestens
Auf jedenfall danke für deine Erklärung, damit wirds für alle anderen Nachahmungstäter wesentlich einfacher als mit dem von mir gegangenen Weg :D

antonb
Powershot G7 / g7-100j-1.1.0_rev_626
Powershot A590 IS / a590-101b-1.0.1-DE_rev_209
EOS 500D
Benutzeravatar
antonb
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 99
Registriert: 19.08.2008, 14:40
Wohnort: Nord-Östliches Weinviertel/Österreich
Kamera(s): PS G7 - PS A590 - EOS 500D

Beitragvon DrMaex » 09.01.2009, 02:37

Habe versucht eine ältere Revision(657) für meine IXUS 80 Is zu kompilieren. CHDK-Shell tut es anscheinend auch, doch irgendwie läuft da was schief. Es zeigt zwar als Status "Ready" an aber die markierte Version auf der linken Seite ist gelb und in der Error-Log steht folgendes:

Code: Alles auswählen
========== C:\CHDK\COMPILING\TRUNK\TRUNK657\BIN\LOGS\ERR-IXUS80_SD1100-101A.TXT ==========

C%u3a\DOKUME~1\XXXX\LOKALE~1\Temp/ccmQFkbd.s%u3a Assembler messages%u3a
C%u3a\DOKUME~1\XXXX\LOKALE~1\Temp/ccmQFkbd.s%u3a123%u3a Error%u3a selected processor does not support `strd r0,[sp,#32]'
C%u3a\DOKUME~1\XXXX\LOKALE~1\Temp/ccmQFkbd.s%u3a125%u3a Error%u3a selected processor does not support `strd r0,[sp,#40]'
C%u3a\CHDK\Compiling\gcc\bin\gmake[4]%u3a *** [boot.o] Error 1
C%u3a\CHDK\Compiling\gcc\bin\gmake[3]%u3a *** [all-recursive] Error 1
C%u3a\CHDK\Compiling\gcc\bin\gmake[2]%u3a *** [all-recursive] Error 1
C%u3a\CHDK\Compiling\gcc\bin\gmake[1]%u3a *** [all-recursive] Error 1
gmake%u3a *** [all-recursive] Error 1



hier ist die Log vom kompilieren:

Code: Alles auswählen
**** BUILDING CHDK-CHDK, #0.9.0 FOR ixus80_sd1100-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 platform
>> Cleaning in platform/ixus80_sd1100
>> Cleaning in platform/ixus80_sd1100/sub
>> Cleaning in platform/ixus80_sd1100/sub/101a
>> Cleaning in core
>> Cleaning in loader
>> Cleaning in loader/ixus80_sd1100
>> Cleaning in loader/ixus80_sd1100/resetcode
>> Cleaning in CHDK
>> Entering to tools
pakwif.c -> pakwif.o
pakwif.o -> pakwif.exe
gensig.c -> gensig.o
gensig.o -> gensig.exe
-> 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.exe
dancingbits.c -> dancingbits.o
dancingbits.o -> dancingbits.exe
<< Leaving tools
>> Entering to lib
>> Entering to lib/font
font_8x16.c -> font_8x16.o
rbf_font.c -> rbf_font.o
font_8x16.o rbf_font.o -> libfont.a
<< Leaving lib/font
>> Entering to lib/math
d2d.c -> d2d.o
wrapper.c -> wrapper.o
d2d.o wrapper.o -> libmath.a
<< Leaving lib/math
>> Entering to lib/ubasic
camera_functions.c -> camera_functions.o
tokenizer.c -> tokenizer.o
ubasic.c -> ubasic.o
camera_functions.o tokenizer.o ubasic.o -> libubasic.a
<< Leaving lib/ubasic
>> Entering to lib/lang
lang.c -> lang.o
lang.o -> liblang.a
<< Leaving lib/lang
>> Entering to lib/lua
setjmp.S -> setjmp.o
lapi.c -> lapi.o
lcode.c -> lcode.o
ldebug.c -> ldebug.o
ldo.c -> ldo.o
ldump.c -> ldump.o
lfunc.c -> lfunc.o
lgc.c -> lgc.o
llex.c -> llex.o
lmem.c -> lmem.o
lobject.c -> lobject.o
lopcodes.c -> lopcodes.o
lparser.c -> lparser.o
lstate.c -> lstate.o
lstring.c -> lstring.o
ltable.c -> ltable.o
ltm.c -> ltm.o
lundump.c -> lundump.o
lvm.c -> lvm.o
lzio.c -> lzio.o
lauxlib.c -> lauxlib.o
lbaselib.c -> lbaselib.o
ldblib.c -> ldblib.o
ltablib.c -> ltablib.o
lmathlib.c -> lmathlib.o
liolib.c -> liolib.o
loslib.c -> loslib.o
lstrlib.c -> lstrlib.o
loadlib.c -> loadlib.o
linit.c -> linit.o
setjmp.o lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o ldblib.o ltablib.o lmathlib.o liolib.o loslib.o lstrlib.o loadlib.o linit.o -> liblua.a
<< Leaving lib/lua
<< Leaving lib
>> Entering to platform
>> Entering to platform/ixus80_sd1100
>> Entering to platform/ixus80_sd1100/sub
>> Entering to platform/ixus80_sd1100/sub/101a
boot.c -> boot.o
>> 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 platform
>> Cleaning in platform/ixus80_sd1100
>> Cleaning in platform/ixus80_sd1100/sub
>> Cleaning in platform/ixus80_sd1100/sub/101a
>> Cleaning in core
>> Cleaning in loader
>> Cleaning in loader/ixus80_sd1100
>> Cleaning in loader/ixus80_sd1100/resetcode
>> Cleaning in CHDK


was ist da schief gegangen, wo soll sich denn nach dem kompilieren die diskboot.bin befinden?


Danke
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon CHDKLover » 09.01.2009, 08:32

Hallo DrMaex,
hab deinen Fehler nachvollziehen können!
Das Problem hängt mit dem neuen Compiler (gcc_432) zusammen. Dort scheint ein falscher Prozessor eingestellt zu sein, da er den ARM typischen Befehl strd (Speichere doubleword) nicht kennt. Eine vorerst schnelle Lösung ist wenn du dir den älteren stabilen Compiler runterlädst (gcc_env_for_hdk-3.4.6 von hier). Und ihn in das Verzeichnis entpackst indem sich zur Zeit dein gcc_432 befindet (ersetzt).
Die fertige BIN findest du (in deinem Beipiel) in dem Archiv unter dem Verzeichnis "C:\chdk\compiling\trunk\trunk657\bin\CHDK-ixus80_sd1100-101a-0.9.0.zip".

Viel Erfolg, 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

Beitragvon DrMaex » 09.01.2009, 13:02

Danke für die schnelle Hilfe, hat geklappt. Die Zip Datei wurde zwar erstellt und alles scheint zu funktionieren aber beim Kompilieren gab es immernoch einen Fehler (zumindest Steht es in errors.txt)

debug.c: In function `assert_hook':
debug.c:50: warning: implicit declaration of function `_OpLog_WriteToSD'

Wie gravierend ist das? Kann man sagen, dass solange die Zip datei richtig erstellt wurde alles ok ist?

Ah und natürlich wäre es auch interessant zu sehen wie man den richtigen Prozessor einstellt :-)
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon msl » 09.01.2009, 15:57

Die Fehlermeldung (Warnmeldung) kannst Du erstmal vernachlässigen.

Wenn das Zip-Paket erstellt wurde, gab es keine gravierende Probleme.

Ich habe jetzt mal alle Kameratypen mit gcc4 durchlaufen lassen. Die Ixus80 war wirklich die einzige mit einem Totalausfall. Das war ein Volltreffer. :shock: Wieso funktioniert da das Autobuild?

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 CHDKLover » 09.01.2009, 16:27

msl hat geschrieben:Wieso funktioniert da das Autobuild?

Ich denke, dass der Autobuildserver auf Linux aufsetzt und somit ein anderer Compiler der gleichen Generation ist.
Kann auch sein das der Befehlssatz nicht vollständig ist.

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

Nächste

Zurück zu Installation (Integration)

Wer ist online?

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

cron