Hallo, Ich habe hier eine Voltcraft DSO-Vorsatz mit USB- Anschluss und möchte das gern unter Linux betreiben. Dazu soll OpenHantek eingesetzt werden. Das müsste mit dem Gerät funktionieren, da Voltcraft/ Conrad die Hantek DSO's, wie so viele, nur unter anderem Namen verkaufen. Das Kompilieren der Software geht problemlos. Allerdings wird Fimware für das Gerät benötigt, die aus dem Winstone- Treiber extrahiert werden muss. Dazu gibt es ein Zusatzprogramm namens "openhantek-extractfw". Da lässt sich leider nicht unter OpenSuSE kompilieren (Probleme mit "binutils"). Egal, da man das nur einmal benötigt, habe ich das auf einem anderen Rechner mit Ubuntu gemacht. Nun noch die Dateien gemäss folgender Anweisungen kopieren: -------------------INSTALL------------------- SNR@dorsy:~/Downloads/openHantek/openhantek-extractfw> cat INSTALL To build dsoextractfw from source, you need bfd. Under Debian or Ubuntu you can just install the package libbfd-dev. I don't know the package names for other distributions but they may be similar. After you've installed the requirements run the following commands inside the directory of this package: $ ./configure $ make Now place the DSO*1.SYS file that came with the windows driver for your oscilloscope into the same directory and run: $ ./dsoextractfw <driver file> This should create two .hex files. Copy them to /usr/local/share/hantekdso/ and copy the 90-hantek-dso.rules file to /etc/udev/rules.d/. To load the firmware you have to install fxload. After restarting udev your oscilloscope should be initialized automatically after connecting it to the computer (You have to reconnect it after installing this package). If you can't run OpenHantek as normal user, you have too add your user to the plugdev group. SNR@dorsy:~/Downloads/openHantek/openhantek-extractfw> -------------------INSTALL------------------- Die Firmware- Dateien: ------------------------------------------------- SNR@dorsy:/usr/local/share/hantek> l insgesamt 108 drwxr-xr-x 2 root root 4096 28. Aug 23:19 ./ drwxr-xr-x 7 root root 4096 4. Sep 12:48 ../ -rw-r--r-- 1 root root 13704 28. Aug 23:19 dso2090-firmware.hex -rw-r--r-- 1 root root 2304 28. Aug 23:19 dso2090-loader.hex -rw-r--r-- 1 root root 13704 28. Aug 23:19 dso2150-firmware.hex -rw-r--r-- 1 root root 2304 28. Aug 23:19 dso2150-loader.hex -rw-r--r-- 1 root root 13704 28. Aug 23:19 dso2250-firmware.hex -rw-r--r-- 1 root root 2304 28. Aug 23:19 dso2250-loader.hex -rw-r--r-- 1 root root 13904 28. Aug 23:19 dso5200-firmware.hex -rw-r--r-- 1 root root 2304 28. Aug 23:19 dso5200-loader.hex -rw-r--r-- 1 root root 13904 28. Aug 23:19 dso520a-firmware.hex -rw-r--r-- 1 root root 2304 28. Aug 23:19 dso520a-loader.hex SNR@dorsy:/usr/local/share/hantek> ------------------------------------------------- Vorsichtshalber gibt es auch noch Links: ------------------------------------------------- SNR@dorsy:/usr/local/share> l insgesamt 28 drwxr-xr-x 7 root root 4096 4. Sep 12:48 ./ drwxr-xr-x 13 root root 4096 9. Jun 22:07 ../ drwxr-xr-x 3 root root 4096 25. Aug 15:18 apps/ drwxr-xr-x 2 root root 4096 28. Aug 23:19 hantek/ lrwxrwxrwx 1 root root 6 4. Sep 12:48 hantekdso -> hantek/ drwxr-xr-x 21 root root 4096 9. Jun 22:07 locale/ drwxr-xr-x 6 root root 4096 9. Jun 22:07 man/ lrwxrwxrwx 1 root root 6 4. Sep 12:48 openhantek -> hantek/ drwxr-xr-x 6 root root 4096 9. Jun 22:07 sane/ SNR@dorsy:/usr/local/share> ------------------------------------------------- Warum die Links? Ganz einfach: Die geben verschiedene Pfade an. Einmal "hantek", dann "hantekdso". Ich habe mich vor allem an die udev- Datei gehalten: --------------------- 90-hantek.rules---------------------------- SNR@dorsy:/etc/udev/rules.d> cat 90-hantek.rules # Hantek DSO-2090 SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2090/*", RUN+="/sbin/fxload -t fx2 -I /usr/local/share/hantek/dso2090-firmware.hex -s /usr/local/share/hantek/dso2090-loader.hex -D $env{DEVNAME}" SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2090", MODE="0660", GROUP="plugdev" # Hantek DSO-2100 SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="547/1006/*", RUN+="/sbin/fxload -t an21 -I /usr/local/share/hantek/dso2100-firmware.hex -s /usr/local/share/hantek/dso2100-loader.hex -D $env{DEVNAME}" SYSFS{idVendor}=="0547", SYSFS{idProduct}=="1002", MODE="0660", GROUP="plugdev" # Hantek DSO-2150 SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2150/*", RUN+="/sbin/fxload -t fx2 -I /usr/local/share/hantek/dso2150-firmware.hex -s /usr/local/share/hantek/dso2150-loader.hex -D $env{DEVNAME}" SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2150", MODE="0660", GROUP="plugdev" # Hantek DSO-2250 SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/2250/*", RUN+="/sbin/fxload -t fx2 -I /usr/local/share/hantek/dso2250-firmware.hex -s /usr/local/share/hantek/dso2250-loader.hex -D $env{DEVNAME}" SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="2250", MODE="0660", GROUP="plugdev" # Hantek DSO-5200 SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/5200/*", RUN+="/sbin/fxload -t fx2 -I /usr/local/share/hantek/dso5200-firmware.hex -s /usr/local/share/hantek/dso5200-loader.hex -D $env{DEVNAME}" SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="5200", MODE="0660", GROUP="plugdev" # Hantek DSO-5200A SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/520A/*", RUN+="/sbin/fxload -t fx2 -I /usr/local/share/hantek/dso520a-firmware.hex -s /usr/local/share/hantek/dso520a-loader.hex -D $env{DEVNAME}" SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="520A", MODE="0660", GROUP="plugdev" SNR@dorsy:/etc/udev/rules.d> --------------------- 90-hantek.rules---------------------------- Nun das Problem: Die Firmware wird nicht geladen! Das Gerät wird erkannt, fxload ist installiert, die Firmwaredateien sind da, aber keine Reaktion. Auch meldet "openHantek", das kein DSO gefunden wurde. ---------------------- messages---------------------------------- Sep 4 14:41:58 dorsy kernel: [16921.086509] usb 1-1.1.4: new high-speed USB device number 16 using ehci_hcd Sep 4 14:41:58 dorsy kernel: [16921.162609] usb 1-1.1.4: New USB device found, idVendor=04b4, idProduct=520a Sep 4 14:41:58 dorsy kernel: [16921.162614] usb 1-1.1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 ---------------------- messages---------------------------------- Es wird aber auch nicht gemeckert, dass irgendwas nicht gefunden wird, o.ä.. Was stimmt nicht? Reicht es nicht aus die Rules-Datei ins Verzeichnis "/etc/udev/rules.d/" zu kopieren und den Rechner neu zu starten? Wie kann ich "fxload" manuell testen (mir fehlt da das "Device")? -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Ich bin etwas weiter. Wenn ich das DSO einstecke und per Hand die Firmware lade, dann funktioniert das DSO und openHantek! Der Befehl lautet: /sbin/fxload -t fx2 -I /usr/local/share/hantek/dso520a-firmware.hex -s /usr/local/share/hantek/dso520a-loader.hex -D /dev/bus/usb/001/016 Aber warum funktioniert das nicht automatisch? Hier der Auszug aus der "udev-rules-Datei": --------------------- 90-hantek.rules---------------------------- # Hantek DSO-5200A SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="4b4/520A/*", RUN+="/sbin/fxload -t fx2 -I /usr/local/share/hantek/dso520a-firmware.hex -s /usr/local/share/hantek/dso520a-loader.hex -D $env{DEVNAME}" SYSFS{idVendor}=="04b5", SYSFS{idProduct}=="520A", MODE="0660", GROUP="users" --------------------- 90-hantek.rules---------------------------- Ich habe auch bereits die falsche Gruppe "plugdev" (gibt es ja unter openSUSE nicht) durch "users" ersetzt. Wie bekomme ich eine Fehlerausgabe beim automatischen Laden der Firmware? In den üblichen Quellen (dmesg oder messages) konnte ich nichts finden.... -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Ich habe es gefunden! Wen es interessiert: |SYSFS{idProduct}=="520A"| muss |SYSFS{idProduct}=="520a"| heißen! Es war also nur statt des großen "A" ein kleines "a" zu setzen! Nun bleiben noch die Zugriffsrechte für "Normaluser" statt nur für "root". Ich dachte zwar, dass die Gruppe "users" das schon richten würde, aber diese Kleinigkeit bekomme ich sicher auch noch hin! -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 23.09.2012 22:41, schrieb Sebastian Reinhardt:
Ich habe es gefunden! Wen es interessiert: |SYSFS{idProduct}=="520A"| muss |SYSFS{idProduct}=="520a"| heißen! Es war also nur statt des großen "A" ein kleines "a" zu setzen! Nun bleiben noch die Zugriffsrechte für "Normaluser" statt nur für "root". Ich dachte zwar, dass die Gruppe "users" das schon richten würde, aber diese Kleinigkeit bekomme ich sicher auch noch hin!
Sorry, da hab ich doch glatt was falsches geschrieben: nicht die SYSFS- Einstellungen, sondern der ENV- Eintrag: ENV{PRODUCT}=="4b4/520A/*" muss in: ENV{PRODUCT}=="4b4/520a/*" geändert werden. SYSFS mit "A"! Jetzt stimmt es aber! -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (1)
-
Sebastian Reinhardt