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 | 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" | ... | ... |