Commit ed72f34be5c4be7080fdc0588ba771e30d16a0aa

Authored by oliverhaag
1 parent 08da7395

Final extractfw 0.7.0 release, changed name to openhantek-extractfw and added fwget.sh script.

openhantek-extractfw/90-hantek-dso.rules.in renamed to openhantek-extractfw/90-hantek.rules.in
1 1 # Hantek DSO-2090
2   -SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2090/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/DSO2090_firmware.hex -s @hantekfirmwaredir@/DSO2090_loader.hex -D $env{DEVNAME}"
  2 +SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2090/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/dso2090-firmware.hex -s @hantekfirmwaredir@/dso2090-loader.hex -D $env{DEVNAME}"
3 3 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2090", MODE="0660", GROUP="plugdev"
4 4  
5 5 # Hantek DSO-2100
6   -SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="547/1006/*", RUN+="/sbin/fxload -t an21 -I @hantekfirmwaredir@/DSO2100_firmware.hex -s @hantekfirmwaredir@/DSO2100_loader.hex -D $env{DEVNAME}"
  6 +SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="547/1006/*", RUN+="/sbin/fxload -t an21 -I @hantekfirmwaredir@/dso2100-firmware.hex -s @hantekfirmwaredir@/dso2100-loader.hex -D $env{DEVNAME}"
7 7 SYSFS{idVendor}=="0547", SYSFS{idProduct}=="1002", MODE="0660", GROUP="plugdev"
8 8  
9 9 # Hantek DSO-2150
10   -SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2150/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/DSO2150_firmware.hex -s @hantekfirmwaredir@/DSO2150_loader.hex -D $env{DEVNAME}"
  10 +SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2150/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/dso2150-firmware.hex -s @hantekfirmwaredir@/dso2150-loader.hex -D $env{DEVNAME}"
11 11 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2150", MODE="0660", GROUP="plugdev"
12 12  
13 13 # Hantek DSO-2250
14   -SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2250/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/DSO2250_firmware.hex -s @hantekfirmwaredir@/DSO2250_loader.hex -D $env{DEVNAME}"
  14 +SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2250/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/dso2250-firmware.hex -s @hantekfirmwaredir@/dso2250-loader.hex -D $env{DEVNAME}"
15 15 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2250", MODE="0660", GROUP="plugdev"
16 16  
17 17 # Hantek DSO-5200
18   -SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/5200/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/DSO5200_firmware.hex -s @hantekfirmwaredir@/DSO5200_loader.hex -D $env{DEVNAME}"
  18 +SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/5200/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/dso5200-firmware.hex -s @hantekfirmwaredir@/dso5200-loader.hex -D $env{DEVNAME}"
19 19 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="5200", MODE="0660", GROUP="plugdev"
20 20  
21 21 # Hantek DSO-5200A
22   -SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/520A/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/DSO520A_firmware.hex -s @hantekfirmwaredir@/DSO520A_loader.hex -D $env{DEVNAME}"
  22 +SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/520A/*", RUN+="/sbin/fxload -t fx2 -I @hantekfirmwaredir@/dso520a-firmware.hex -s @hantekfirmwaredir@/dso520a-loader.hex -D $env{DEVNAME}"
23 23 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="520A", MODE="0660", GROUP="plugdev"
... ...
openhantek-extractfw/ChangeLog
... ... @@ -27,3 +27,8 @@
27 27 2011-02-03 Oliver Haag <oliver.haag@gmail.com>
28 28 * Input files are given as commandline parameters (Not hardcoded anymore)
29 29 * Cleaned up the code
  30 +
  31 +2011-02-08 Oliver Haag <oliver.haag@gmail.com>
  32 +* Version 0.7.0:
  33 +* Renamed this extraction tool to openhantek-extractfw
  34 +* Added fwget.sh for automatic driver download and firmware extraction
... ...
openhantek-extractfw/Makefile.am
1 1 METASOURCES = AUTO
2   -dsoextractfw_LDFLAGS = $(all_libraries)
3   -bin_PROGRAMS = dsoextractfw
4   -dsoextractfw_LDADD = -lbfd
5   -dsoextractfw_SOURCES = dsoextractfw.c
6   -noinst_DATA = 90-hantek-dso.rules
  2 +bin_PROGRAMS = openhantek-extractfw
  3 +openhantek_extractfw_LDFLAGS = $(all_libraries)
  4 +openhantek_extractfw_LDADD = -lbfd
  5 +openhantek_extractfw_SOURCES = extractfw.c
  6 +noinst_DATA = 90-hantek.rules
... ...
openhantek-extractfw/configure.in
1   -AC_INIT([dsoextract], [0.6.2], [oliver.haag@gmail.com])
2   -AC_CONFIG_SRCDIR([dsoextractfw.c])
  1 +AC_INIT([openhantek-extractfw], [0.7.0], [oliver.haag@gmail.com])
  2 +AC_CONFIG_SRCDIR([extractfw.c])
3 3  
4 4 # Generates a config.h
5 5 #AC_CONFIG_HEADERS([config.h])
... ... @@ -32,12 +32,12 @@ AC_ARG_WITH( [firmware-dir],
32 32 [with_firmware_dir="/usr/local/share"],
33 33 )
34 34  
35   -hantekfirmwaredir="$with_firmware_dir/hantekdso"
  35 +hantekfirmwaredir="$with_firmware_dir/hantek"
36 36 AC_SUBST(hantekfirmwaredir)
37 37  
38 38 AC_CONFIG_FILES(
39 39 [Makefile]
40   - [90-hantek-dso.rules]
  40 + [90-hantek.rules]
41 41 )
42 42  
43 43 AC_OUTPUT
... ...
openhantek-extractfw/dsoextractfw.c renamed to openhantek-extractfw/extractfw.c
openhantek-extractfw/fwget.sh 0 → 100755
  1 +#!/bin/bash
  2 +
  3 +BASEURL="http://www.hantek.com.cn/Product/32Driver"
  4 +TARGETDIR="./firmware"
  5 +ARCHIVE="Driver.rar"
  6 +EXTRACTFW="openhantek-extractfw"
  7 +
  8 +if [ -x "./$EXTRACTFW" ]; then
  9 + EXTRACTFW="./$EXTRACTFW"
  10 +fi
  11 +
  12 +if [ $# -ge 1 ]; then
  13 + TARGETDIR="$1"
  14 +fi
  15 +
  16 +if [ ! -d "$TARGETDIR" ]; then
  17 + mkdir -p "$TARGETDIR"
  18 +fi
  19 +
  20 +for MODEL in "2090" "2150" "2250" "5200" "5200A"; do
  21 + echo "Downloading official drivers for DSO$MODEL..."
  22 + wget -O "$ARCHIVE" -q "$BASEURL/$MODEL/$ARCHIVE"
  23 +
  24 + echo "Extracting useful parts from driver archive..."
  25 + unrar e -inul -n"Driver/*1.*" -y "Driver.rar" "$TARGETDIR"
  26 +done
  27 +
  28 +if [ -e "$ARCHIVE" ]; then
  29 + rm "$ARCHIVE"
  30 +fi
  31 +
  32 +ORIGINALIFS="$IFS"
  33 +IFS="
  34 +"
  35 +for FILENAME in $(find "$TARGETDIR" -iname "*.sys"); do
  36 + echo ""
  37 + echo "Extracting firmware from $FILENAME..."
  38 + "$EXTRACTFW" "$FILENAME" 2>&1 | grep -v "^BFD:.*IMAGE_SCN_MEM_NOT_PAGED"
  39 + rm "$FILENAME"
  40 +done
  41 +IFS="$ORIGINALIFS"
... ...