diff options
author | pancake <pancake@dazo> | 2008-12-14 03:05:19 +0100 |
---|---|---|
committer | pancake <pancake@dazo> | 2008-12-14 03:05:19 +0100 |
commit | 3a1053b29e5fb8109463259ee9dff3d8f4e4be5b (patch) | |
tree | 6814a8b3bb1e4e1c1cb585b48f2a530052e8a5da | |
parent | fc3a613276f147c73214f67839e362f08664c7b1 (diff) | |
download | 0xFFFF-3a1053b29e5fb8109463259ee9dff3d8f4e4be5b.tar.bz2 |
* Oops missing up0.4
* Added fixups for make install/deinstall
* HAVE_GUI is now enabled by default
* New 'stop' button for goxf GUI
* Fix lil bug in squeue.c
* Initial .desktop icon for freedesktop environments (GNOME)
-rw-r--r-- | 0xFFFF.desktop | 9 | ||||
-rw-r--r-- | Makefile | 17 | ||||
-rw-r--r-- | README | 9 | ||||
-rw-r--r-- | config.mk | 4 | ||||
-rw-r--r-- | logotool/Makefile | 5 | ||||
-rw-r--r-- | src/Makefile | 2 | ||||
-rw-r--r-- | src/flash.c | 7 | ||||
-rw-r--r-- | src/fpid.c | 12 | ||||
-rw-r--r-- | src/gui/gui.gtkaml | 30 | ||||
-rw-r--r-- | src/main.c | 2 | ||||
-rw-r--r-- | src/main.h | 1 | ||||
-rw-r--r-- | src/qmode.c | 2 |
12 files changed, 67 insertions, 33 deletions
diff --git a/0xFFFF.desktop b/0xFFFF.desktop new file mode 100644 index 0000000..03a3d0e --- /dev/null +++ b/0xFFFF.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=0xFFFF +Comment=Free flasher for the Nokia internet tablets +Exec=gnome-terminal -e goxf +Icon=gnome-terminal.png +Terminal=false +Type=Application +Categories=GTK;Application;Utility; @@ -1,5 +1,6 @@ include config.mk PREFIX?=/usr/local +DESTDIR?= all: logot frontend cd src && ${MAKE} all @@ -10,6 +11,7 @@ frontend: static: logot cd libusb && ${MAKE} all cd src && ${MAKE} static + cd logotool && ${MAKE} static allusb: logot cd libusb && ${MAKE} all @@ -23,10 +25,15 @@ clean: cd logotool && ${MAKE} clean install: - cp src/0xFFFF ${PREFIX}/bin - -cp src/gui/goxf ${PREFIX}/bin - cp logotool/logotool ${PREFIX}/bin + mkdir -p ${DESTDIR}${PREFIX}/bin + mkdir -p ${DESTDIR}${PREFIX}/share/applications/ + cp src/0xFFFF ${DESTDIR}${PREFIX}/bin + -cp src/gui/goxf ${DESTDIR}${PREFIX}/bin + cp logotool/logotool ${DESTDIR}${PREFIX}/bin + cp 0xFFFF.desktop ${DESTDIR}${PREFIX}/share/applications/ deinstall: - rm -f ${PREFIX}/bin/0xFFFF - rm -f ${PREFIX}/bin/logotool + rm -f ${DESTDIR}${PREFIX}/bin/0xFFFF + rm -f ${DESTDIR}${PREFIX}/bin/logotool + rm -f ${DESTDIR}${PREFIX}/bin/goxf + rm ${DESTDIR}${PREFIX}/share/applications/0xFFFF.desktop @@ -27,8 +27,15 @@ Feel free to join to the mailing list and visit the homepage for more info: 0xffff@lists.nopcode.org http://www.nopcode.org/0xFFFF +-----------8<--------------------------------------------------------------- -Have phun! +Build: + $ make + +To install: (by default is /usr/local) + $ make install PREFIX=/usr DESTDIR=/ + +Have phun! --pancake @@ -3,8 +3,8 @@ PREFIX=/usr # NetBSD stuff -CFLAGS+=-I/usr/pkg/include +CFLAGS+=-I/usr/pkg/include -O2 LDFLAGS+=-L/usr/pkg/lib -Wl,-R/usr/pkg/lib HAVE_USB=1 -HAVE_GUI=0 +HAVE_GUI=1 diff --git a/logotool/Makefile b/logotool/Makefile index 1c5d08d..a12d145 100644 --- a/logotool/Makefile +++ b/logotool/Makefile @@ -1,5 +1,5 @@ OBJ=logotool.o compress.o uncompress.o rgb2yuv.o -CFLAGS=-Wall -g +#CFLAGS=-Wall -g BIN=logotool all: ${BIN} @@ -7,5 +7,8 @@ all: ${BIN} ${BIN}: ${OBJ} ${CC} ${OBJ} -o logotool +static: ${BIN} + ${CC} -static ${OBJ} -o logotool + clean: rm -f ${OBJ} logotool diff --git a/src/Makefile b/src/Makefile index e8dbffa..2e8990d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -5,7 +5,7 @@ OBJ+=squeue/squeue.o BIN=0xFFFF #LIBS=`${HAVE_USB} && echo -- '-lusb'` LIBS=`if [ "${HAVE_USB}" = 1 ]; then echo '-lusb'; fi` -CFLAGS+=-DVERSION=\"${VERSION}\" -Wall -g -I . +CFLAGS+=-DVERSION=\"${VERSION}\" -Wall -I . CFLAGS+=-pedantic -std=c99 -DHAVE_USB=${HAVE_USB} USBOBJ=../libusb/error.o ../libusb/usb.o ../libusb/descriptors.o USBOBJ+=../libusb/linux.o ## XXX not portable diff --git a/src/flash.c b/src/flash.c index 94c7f29..43c79bb 100644 --- a/src/flash.c +++ b/src/flash.c @@ -96,6 +96,13 @@ void flash_image(const char *filename, const char *piece, const char *version) printf("Piece type: %s\n", piece); } + if (piece != NULL) { + if (!strcmp(piece, "fiasco")) { + fiasco_flash(filename); + return; + } + } + if (version) vlen = strlen(version)+1; @@ -48,7 +48,6 @@ const char *fpid_file(const char *filename) FILE *fd; char buf[512]; unsigned char *b = (unsigned char *)&buf; - char *piece = NULL; long size; // 2nd : +0x34 = 2NDAPE @@ -80,10 +79,15 @@ const char *fpid_file(const char *filename) if (!memcmp(b+0x14, "X-LOADER", 8)) return pieces[PIECE_XLOADER]; else - if (!memcmp(b+0x0c, "NOLOXldr", 8)) // TODO: this is xloader800, not valid on 770? + if (!memcmp(b+0x0c, "NOLOXldr", 8)) return pieces[PIECE_XLOADER]; else - if (!memcmp(b+0x00, "\x00\x00\xa0\xe1\x00\x00\xa0\xe1", 8)) + if (!memcmp(b+4,"NOLOXldr",8)) + // TODO: this is xloader800, not valid on 770? + return pieces[PIECE_2ND]; + else + if (!memcmp(b+0x00, "\x00\x00\xa0\xe1\x00\x00\xa0\xe1", 8) + || (!memcmp(b, "\x21\x01\x01", 3))) return pieces[PIECE_KERNEL]; else // JFFS2 MAGIC @@ -94,5 +98,5 @@ const char *fpid_file(const char *filename) return pieces[PIECE_ROOTFS]; } - return piece; + return NULL; } diff --git a/src/gui/gui.gtkaml b/src/gui/gui.gtkaml index 43ba5ca..e5c9e97 100644 --- a/src/gui/gui.gtkaml +++ b/src/gui/gui.gtkaml @@ -12,8 +12,8 @@ xmlns:SQueues="SQueues" xmlns:class="http://gtkaml.org/0.2" class:name="MainWindow" - title="0xFFFF GUI" - delete-event="{OnWindow1DeleteEvent}"> + title="0xFFFF GUI"> + <!-- delete-event="{OnWindow1DeleteEvent}" --> <VBox> <MenuBar expand="false"> <MenuItem label="_File" with-mnemonic="true"> @@ -32,6 +32,7 @@ <submenu> <Menu> <ImageMenuItem stock-id="gtk-connect" activate="{OnConnect}"/> + <ImageMenuItem stock-id="gtk-stop" activate="{OnStop}"/> <ImageMenuItem stock-id="gtk-info" activate="{OnGetInformation}"/> <ImageMenuItem label="Reset" activate="{OnReset}"/> </Menu> @@ -58,6 +59,7 @@ </VBox> <VBox expand="false" border-width="3" spacing="3"> <Button label="gtk-connect" use-stock="true" expand="false" clicked="{OnConnect}"/> + <Button label="gtk-stop" use-stock="true" expand="false" clicked="{OnStop}"/> <Button label="gtk-info" use-stock="true" expand="false" clicked="{OnGetInformation}"/> <Label label="" /> <!-- <Button label="Options" use-stock="false" expand="false"/> @@ -85,11 +87,6 @@ <![CDATA[ -private void OnWindow1DeleteEvent () -{ - doCloseApplication (); -} - private void doCloseApplication () { Gtk.main_quit (); @@ -202,7 +199,6 @@ private void OnFileNewEvent () private void OnQuitEvent () { doCloseApplication(); - External.system("sudo pkill 0xFFFF"); // TODO: send message to gracefully kill 0xFFFF // TODO: handle ^C when flashing } @@ -216,19 +212,13 @@ public void list_del() { TreeIter iter; TreeModel model; - weak string str = ""; TreeSelection sel = tv.get_selection(); if (sel.count_selected_rows() == 1) { sel.get_selected(out model, out iter); - //((ListStore)tv.model)).get(ref iter, 2, out str, -1); - - //stdout.printf("NAME IS: "+str); ((ListStore)tv.model).remove(iter); } - - //return str; } public void add_file(string type, string size, string file) @@ -304,13 +294,18 @@ private void OnGetInformation() private void OnConnect() { //msg("connect:device"); - External.system("sudo pkill 0xFFFF"); - External.system("sudo ../0xFFFF -Q &"); + OnStop(); + External.system("sudo 0xFFFF -Q &"); p->close(); q->close(); p = q = null; } +private void OnStop() +{ + External.system("sudo pkill 0xFFFF"); +} + private bool chk_queues() { @@ -348,9 +343,10 @@ static int main (string[] args) viewer.loadFile (args[1]); viewer.resize(600,400); viewer.set_position(WindowPosition.CENTER); + viewer.delete_event += (x,y) => { Gtk.main_quit(); }; setup_treeview(viewer.tv); viewer.show_all (); - viewer.showMessage("This software is beta and does not guaranties correct functionality", MessageType.WARNING); +// viewer.showMessage("This software is beta and does not guaranties correct functionality", MessageType.WARNING); Timeout.add(200, (SourceFunc)(readFunc)); Gtk.main (); return 0; @@ -161,7 +161,7 @@ void unpack_fiasco_image(char *file) openfiasco(file, NULL ,1); } -int fiasco_flash(char *file) +int fiasco_flash(const char *file) { char *p; char version[64]; @@ -33,6 +33,7 @@ void eprintf(const char *format, ...); #if HAVE_USB #include <usb.h> +int fiasco_flash(const char *file); extern struct usb_device *device; extern struct usb_dev_handle *dev; int is_valid_device(struct usb_device_descriptor *udd); diff --git a/src/qmode.c b/src/qmode.c index 5bfa765..d8c22db 100644 --- a/src/qmode.c +++ b/src/qmode.c @@ -43,7 +43,7 @@ void process_message(char *msg) { char *str; char *arg; - int c; + int c=1; if (msg == NULL) return; printf("[x] (%s)\n", msg); |