Commit ed72f34be5c4be7080fdc0588ba771e30d16a0aa
1 parent
08da7395
Final extractfw 0.7.0 release, changed name to openhantek-extractfw and added fwget.sh script.
Showing
6 changed files
with
61 additions
and
15 deletions
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" |