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 # Hantek DSO-2090 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 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2090", MODE="0660", GROUP="plugdev" 3 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2090", MODE="0660", GROUP="plugdev"
4 4
5 # Hantek DSO-2100 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 SYSFS{idVendor}=="0547", SYSFS{idProduct}=="1002", MODE="0660", GROUP="plugdev" 7 SYSFS{idVendor}=="0547", SYSFS{idProduct}=="1002", MODE="0660", GROUP="plugdev"
8 8
9 # Hantek DSO-2150 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 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2150", MODE="0660", GROUP="plugdev" 11 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2150", MODE="0660", GROUP="plugdev"
12 12
13 # Hantek DSO-2250 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 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2250", MODE="0660", GROUP="plugdev" 15 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2250", MODE="0660", GROUP="plugdev"
16 16
17 # Hantek DSO-5200 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 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="5200", MODE="0660", GROUP="plugdev" 19 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="5200", MODE="0660", GROUP="plugdev"
20 20
21 # Hantek DSO-5200A 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 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="520A", MODE="0660", GROUP="plugdev" 23 SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="520A", MODE="0660", GROUP="plugdev"
openhantek-extractfw/ChangeLog
@@ -27,3 +27,8 @@ @@ -27,3 +27,8 @@
27 2011-02-03 Oliver Haag <oliver.haag@gmail.com> 27 2011-02-03 Oliver Haag <oliver.haag@gmail.com>
28 * Input files are given as commandline parameters (Not hardcoded anymore) 28 * Input files are given as commandline parameters (Not hardcoded anymore)
29 * Cleaned up the code 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 METASOURCES = AUTO 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 # Generates a config.h 4 # Generates a config.h
5 #AC_CONFIG_HEADERS([config.h]) 5 #AC_CONFIG_HEADERS([config.h])
@@ -32,12 +32,12 @@ AC_ARG_WITH( [firmware-dir], @@ -32,12 +32,12 @@ AC_ARG_WITH( [firmware-dir],
32 [with_firmware_dir="/usr/local/share"], 32 [with_firmware_dir="/usr/local/share"],
33 ) 33 )
34 34
35 -hantekfirmwaredir="$with_firmware_dir/hantekdso" 35 +hantekfirmwaredir="$with_firmware_dir/hantek"
36 AC_SUBST(hantekfirmwaredir) 36 AC_SUBST(hantekfirmwaredir)
37 37
38 AC_CONFIG_FILES( 38 AC_CONFIG_FILES(
39 [Makefile] 39 [Makefile]
40 - [90-hantek-dso.rules] 40 + [90-hantek.rules]
41 ) 41 )
42 42
43 AC_OUTPUT 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"