Kirjoittaja Aihe: [(purkka)ratkaisu]Kuinka asennetaan (open)Hantek USB-skooppi ?  (Luettu 11294 kertaa)

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Tällaisen löysin googlaamalla, mutta kyseinen taitaa olla DOS-ohjelma. Vähän winellä kokeilin kyseistä, mutta näyttäisi antavan hivenen erinäköistä dataa kuin firware-kansiossa olevat tiedostot. (Eroaa siinä, että yhdelle riville tulee oletuksena heksaa enemmän kuin normaaliin firmware.ihex-tiedostoon.)

http://www.ht-lab.com/freeutils/bin2hex/bin2hex.html

Löytyykös vastaavanlainen ohjelma ihan pakettivarastosta ?

(En vielä pääse kokeilemaan todellisessa maailmassa, kun en omista vielä laitetta, mutta piakkoin sekin korjaantuu.)

Edit - Taas joutuu arpomaan oikean alueen (Laitealue ?, Peruskäyttöä ?, vai tämä edistyneempi käyttö ? ) 
« Viimeksi muokattu: 13.08.15 - klo:14.58 kirjoittanut kamara »

joonas60

  • Käyttäjä
  • Viestejä: 255
  • Tietotekniikan kanssa puuhastelua yli 30 vuotta
    • Profiili
Jäi minulle epäselväksi se, mitä oikein olet tekemässä...

Joten pitääpi sitten olettaa: Olet jollakin konstilla saanut (asennuslevy, Internet) Windows ajurin, josta löytyy sys-tiedosto. Tästä tiedostosta olet sitten kaivannut firmware-osan erilleen omaksi bin-tiedostoksi. Nyt sinun pitäisi saada tämä tiedosto sitten muutettua sitten Intelin HEX-muotoon ja mielelään jollain Linux-ohjelmalla.

GNU:n ohjelmistosta löytyy objcopy-niminen apuohjelma, jolla homma voisi onnistua:
Koodia: [Valitse]
objcopy -I binary -O ihex firmware.bin firmware.ihex
Ko. ohjelma tulee käsittääkseni vakiona Ubuntuun gcc-kääntäjän kylkiäisenä  binutils-paketin mukana.


terv. joonas60
Asus X4909F, Windows 10, WSL2-Ubuntu

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Jäi minulle epäselväksi se, mitä oikein olet tekemässä...

Joten pitääpi sitten olettaa: Olet jollakin konstilla saanut (asennuslevy, Internet) Windows ajurin, josta löytyy sys-tiedosto. Tästä tiedostosta olet sitten kaivannut firmware-osan erilleen omaksi bin-tiedostoksi. Nyt sinun pitäisi saada tämä tiedosto sitten muutettua sitten Intelin HEX-muotoon ja mielelään jollain Linux-ohjelmalla.

GNU:n ohjelmistosta löytyy objcopy-niminen apuohjelma, jolla homma voisi onnistua:
Koodia: [Valitse]
objcopy -I binary -O ihex firmware.bin firmware.ihex
Ko. ohjelma tulee käsittääkseni vakiona Ubuntuun gcc-kääntäjän kylkiäisenä  binutils-paketin mukana.

Joo jotain sinne päin...
Kyseessä on USB-oskilloskooppi, joka toimineen Linuxissa, kunhan muuttaa .sys-tiedoston hex-tiedostoksi (ainakin näin olin lukevinani).

Kyseessä siis tämä projekti:
http://sourceforge.net/projects/hantekdso/

ReadMe:stä bonkattu:
Lainaus
You need to find the firmware for the oscilloscope (usually in the folder
/Driver on CD), convert it to .hex files, and make sure they get loaded
into the oscilloscope when it is connected.
Locate one of the following files, depending on the model of
your scope: DSO20901.SYS, DSO21001.SYS, DSO21501.SYS, DSO22501.SYS,
DSO520A1.SYS and put it in the folder with dsoextractfw utility.
All characters in the file name MUST be uppercase. Please, rename the file
to uppercase letters if need. Run the program dsoextractfw. It searches
for the files listed above in the current directory. If it finds any of
them, it creates two files named "DSOxxxx_firmware.hex" and "DSOxxxx_loader.hex". Move these files to /usr/share/HantekDSO/ .
Copy the file HantekDSO.rules to /etc/udev/rules.d/ .

Now, the firmware should be loaded automatically when the DSO is connected
to an USB port. Once the firmware is loaded, the LED on the DSO starts to
flash red. You can now run the program hantekdso. The LED will blink green.
Make sure you have sufficient privilegies on the USB device or run as root
(probably not recommended in the long run).

Thanks to:
- Fredrik Jansson

Eli, jos ymmärsin, niin SYS-tiedostosta pitäisi saada ongittua firmis. Aika lyhyesti kerrottu, mutta pitäisi firmis saada ladattua heksaksi. Veikkaukseni on että pitäisi saada muutettua ihex:ksi, vaikkei siitä kästittääkseni mainitakkaan.

Tämä on nyt vähän ennenaikaista, kun en vielä omista kyseistä laitetta. Vain valmistaudun sen saamiseksi.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Eli, jos ymmärsin, niin SYS-tiedostosta pitäisi saada ongittua firmis. Aika lyhyesti kerrottu, mutta pitäisi firmis saada ladattua heksaksi. Veikkaukseni on että pitäisi saada muutettua ihex:ksi, vaikkei siitä kästittääkseni mainitakkaan.

Lainaamassasi asennusohjeessa neuvotaan käyttämään hantekdso:n mukana tulevaa ohjelmaa dsoextractfw. Se muuntaa sys-tiedostoista ongitun firmwaren oikeanlaisiksi hex-tiedostoiksi.

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Eli, jos ymmärsin, niin SYS-tiedostosta pitäisi saada ongittua firmis. Aika lyhyesti kerrottu, mutta pitäisi firmis saada ladattua heksaksi. Veikkaukseni on että pitäisi saada muutettua ihex:ksi, vaikkei siitä kästittääkseni mainitakkaan.

Lainaamassasi asennusohjeessa neuvotaan käyttämään hantekdso:n mukana tulevaa ohjelmaa dsoextractfw. Se muuntaa sys-tiedostoista ongitun firmwaren oikeanlaisiksi hex-tiedostoiksi.

Ahaa... Niinhän siinä taidetaan kertoakin. Kiitoksia.

Asia alkaa jo valjeta. Pitäneen kuitenkin odotella laitteen ja ohjelmien tuloa ennen kuin merkkaan ratkaistuksi.

Kiitoksia jälleen kerran nm.

joonas60

  • Käyttäjä
  • Viestejä: 255
  • Tietotekniikan kanssa puuhastelua yli 30 vuotta
    • Profiili
Itseasiassa tuossa Kamaran linkin takan olevassa paketissa on C-kielinen lähdekoodi tuosta dsoextractfw-ohjelmasta ja jossa on lisäksi vakava bugi, joka estää kokonaan firmware-tiedoston synnyn. Näin ainakin kävi niille sys-tiedostoille, jotka löysin Hantekin kotisivulta (http://www.hantek.com/en/ProductDetail_2_44.html).

Syynä bugiin lienee se, että vanhemmissa sys-tiedostoissa on ollut käytössä eri tiedostoformaatti kuin nykyisissä, mene ja tiedä.

Tämän linkin takaa löytyy tuoreempi lähdekoodiversio, jolla syntyi firmaware-tiedosto. Tämä versio ei vaadi sys-tiedoston nimen olevan isoilla kirjaimilla, vaan sille kelpaa tiedosto sellaisenaan:
Koodia: [Valitse]
wget http://sourceforge.net/projects/openhantek/files/openhantek-extractfw/openhantek-extractfw-0.7.0.tar.bz2
Lisäksi löysin tuoreemman käyttöliittymän lähdekoodit:
Koodia: [Valitse]
wget http://sourceforge.net/projects/openhantek/files/openhantek/openhantek-0.2.0.tar.bz2
Kamaran linkistä löytynyt käyttöliittymänkoodi vaati Qt:sta versio kolmosta, tämä tuoreempi Qt4:sen ja kääntyi kitisemättä Ubuntu 15.04:ssa, kunhan riippuvuudet oli kohdillaan.

terv. joonas60
Asus X4909F, Windows 10, WSL2-Ubuntu

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Kamaran linkistä löytynyt käyttöliittymänkoodi vaati Qt:sta versio kolmosta, tämä tuoreempi Qt4:sen ja kääntyi kitisemättä Ubuntu 15.04:ssa, kunhan riippuvuudet oli kohdillaan.

Kiitoksia oikein paljon. Ajattelinkin, että saattaa olla vaikeaa (nykykielellä haasteellista) kääntää Qt3-pohjaisia ohjelmia. Kiva että löytyi tuoreempi Qt4-version.

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Lelu tuli tänään...

...ja ilmeisesti firmiksen luonti onnistui... ???
Koodia: [Valitse]
$ ./openhantek-extractfw DSO21501.SYS DSO21502.sys
BFD: DSO21501.SYS: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .text
BFD: DSO21501.SYS: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .data
Section .data found (starting at 0x08a0, 9504 bytes)
Symbol _firmware found (offset 0x0000, 8184 bytes)
Symbol _loader found (offset 0x1ff8, 1320 bytes)
Saving firmware as DSO21502.sys
Saving loader as dso2150-loader.hex

joonas60

  • Käyttäjä
  • Viestejä: 255
  • Tietotekniikan kanssa puuhastelua yli 30 vuotta
    • Profiili
Näytäisi luoneen vain tuosta jälkimmäisestä SYS-tiedostosta (DSO21502.sys) sekä firmwaren että loaderi. Käsittääkseni pitäisi tuosta ensimmäisestä (DSO21501.sys) tehdä firmis (sekä loader)? Mutta kokeilemallahan sen näkee mitä lelu syö kakomatta...

Latasithan noissa ohjeissa mainitun fxload-ohjelman, löytyy Ubuntun pakettivarastoista?
terv. joonas60
Asus X4909F, Windows 10, WSL2-Ubuntu

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Näyttää lukevan oikean tiedoston DSO21501.SYS, mutta komentorivillä annettu ylimääräinen tiedosto DSO21502.SYS tulkittiin luotavan firmwaren tallennussijainniksi. Oikea komento lienee pelkkä:

Koodia: [Valitse]
./openhantek-extractfw DSO21501.SYS

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Tuli samat tiedostot ylimääräisilläkin parametreilla.

En tosin tiedä toimiiko kyseiset 64-bittisellä linuxilla.

dmesg näyttää seuraavaa, kun kytken skoopin koneeseen... (Punainen ledi rupeaa vilkkumaan...)
Koodia: [Valitse]
$ dmesg
....
[ 4892.370715] usb 1-2: new high-speed USB device number 13 using ehci-pci
[ 4892.502943] usb 1-2: New USB device found, idVendor=04b4, idProduct=2150
[ 4892.502948] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 4892.516078] usb 1-2: USB disconnect, device number 13
[ 4894.289969] usb 1-2: new high-speed USB device number 14 using ehci-pci
[ 4894.423168] usb 1-2: New USB device found, idVendor=04b5, idProduct=2150
[ 4894.423172] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4894.423175] usb 1-2: Product: DSO-2150
[ 4894.423178] usb 1-2: Manufacturer: ODM   

Skooppi-ohjelma aukeaa, muttei tule mitään arvoja.

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Nyt toimii, mutta vain rootilla. johonkin ryhmään pitäisi liittää itseni. ???

joonas60

  • Käyttäjä
  • Viestejä: 255
  • Tietotekniikan kanssa puuhastelua yli 30 vuotta
    • Profiili
Nyt toimii, mutta vain rootilla. johonkin ryhmään pitäisi liittää itseni. ???

Lisää itsesi plugdev-ryhmään, lainaus openhantek-extractfw-paketin INSTALL-tiedostosta:
Lainaus
If you can't run OpenHantek as normal user, you have too add your user to the plugdev group.
terv. joonas60
Asus X4909F, Windows 10, WSL2-Ubuntu

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Lisää itsesi plugdev-ryhmään, lainaus openhantek-extractfw-paketin INSTALL-tiedostosta:
Lainaus
If you can't run OpenHantek as normal user, you have too add your user to the plugdev group.

Juu huomasin senkin, mutta  sekään ei riitä - valitettavasti.

Todisteena seuraava...
Koodia: [Valitse]
$ groups
sami adm tty cdrom sudo dip plugdev lpadmin sambashare

Kun yritin tarkastella laitteita, niin ainoa laite, jonka näin lisääntyneen skoopin kytkemisen jälkeen oli
Koodia: [Valitse]
lrwxrwxrwx 1 root root 18 elo   11 21:10 189:3 -> ../bus/usb/001/004

Joka siis kuuluu root-ryhmään, joten sitä joutuu ajamaan roottina. (Onkohan mulla jotain vielä pielessä?)

Ohjelma siis herjaa...
Lainaus
Couldn't open device 001:004: Access denied (insufficient permissions)

Sudolla samassa statusrivissä lukee...
Lainaus
Device found: Hantek DSO-2150 (001:004)
.. ja tulee näkyviin punainen jännitekäyrä.
« Viimeksi muokattu: 12.08.15 - klo:12.05 kirjoittanut kamara »

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Mitä sinulla on tiedostossa /etc/udev/rules.d/90-hantek.rules:

Koodia: [Valitse]
cat /etc/udev/rules.d/90-hantek.rules

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Jep.
Koodia: [Valitse]
$ cat /etc/udev/rules.d/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"

Ehkä kaipaatte myös seuraavaa...
Koodia: [Valitse]
$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 046d:c051 Logitech, Inc. G3 (MX518) Optical Mouse
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 1307:0330 Transcend Information, Inc. 63-in-1 Multi-Card Reader/Writer
Bus 001 Device 006: ID 04b5:2150 ROHM LSI Systems USA, LLC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ja seuraavaa...
Koodia: [Valitse]
dmesg
...
[ 5739.310088] usb 1-2: new high-speed USB device number 5 using ehci-pci
[ 5739.442315] usb 1-2: New USB device found, idVendor=04b4, idProduct=2150
[ 5739.442321] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5739.477887] usb 1-2: USB disconnect, device number 5
[ 5741.253382] usb 1-2: new high-speed USB device number 6 using ehci-pci
[ 5741.386254] usb 1-2: New USB device found, idVendor=04b5, idProduct=2150
[ 5741.386257] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5741.386259] usb 1-2: Product: DSO-2150
[ 5741.386261] usb 1-2: Manufacturer: ODM   

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
rules-tiedosto näyttää olevan kunnossa. Tarkista vielä laitetiedoston oikeudet:

Koodia: [Valitse]
ls -l /dev/bus/usb/001/006
(tai mikä tuo oikea polku onkaan tällä hetkellä)

Näytit aiemmin jonkun linkin tiedot, mutta ne eivät kerro, millä oikeuksilla varsinaiseen laitetiedostoon pääsee käsiksi.

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Koodia: [Valitse]
$ ls -l /dev/bus/usb/001/009
crw-rw-r-- 1 root root 189, 8 elo   12 17:52 /dev/bus/usb/001/009
$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 046d:c051 Logitech, Inc. G3 (MX518) Optical Mouse
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 1307:0330 Transcend Information, Inc. 63-in-1 Multi-Card Reader/Writer
Bus 001 Device 009: ID 04b5:2150 ROHM LSI Systems USA, LLC

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Myös 32-bittisessä Lubuntu 14.04:ssä toimii sudolla (siis samoin kuin 64 bittisessä).

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Ohjelma toimii ilman sudoa, kun muuttaa kyseisen usb-laitteen udev:ksi.

eli jotenkin näin...
Koodia: [Valitse]
sudo chown root:plugdev /dev/bus/usb/001/006

Ja sen jälkeen...
Koodia: [Valitse]
openhantek