abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 02:34 | Nová verze
Vyšla verze 0.91 multiplatformního vektorového grafického editoru Inkscape. Přehled nových vlastností i s náhledy v poznámkách k vydání.
Ladislav Hagara | Komentářů: 7
dnes 01:23 | Komunita
Nadace pro svobodný software (FSF) udělila certifikát RYF (Respects Your Freedom, Respektuje vaši svobodu) notebooku Libreboot X200, což je repasovaný Lenovo ThinkPad X200. Proprietární BIOS byl nahrazen Librebootem (zprávička). Podpora Intel AMT (Active Management Technology) byla odstraněna. Certifikace RYF byla představena v říjnu 2012 (zprávička). V prosinci 2013 získal certifikaci RYF notebook LibreBoot X60 (původně Gluglug X60) (zprávička).
Ladislav Hagara | Komentářů: 9
včera 23:23 | Komunita
Mozilla na svém blogu oznámila, že u příležitosti mezinárodního Dne ochrany osobních údajů (Data Privacy Day) mimo jiné připojila do sítě Tor 14 uzlů. V oznámení je zmíněna také stránka s tipy na chytřejší ochranu soukromí. [Mozilla.cz]
Ladislav Hagara | Komentářů: 6
včera 15:40 | Nová verze
The Document Foundation oznámila vydání verze 4.4 svobodného kancelářského balíku LibreOffice. Z novinek je v oznámení zdůrazněno vylepšené uživatelské rozhraní, lepší podpora OOXML a kvalita zdrojových kódů (Coverity Scan). Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání.
Ladislav Hagara | Komentářů: 20
včera 10:09 | Nová verze
Laboratoře CZ.NIC vydaly další verzi (4.1.0) desktopové aplikace Datovka 4. Tato verze zahrnuje kromě oprav chyb i některé novinky a vylepšení. Mezi ně patří dokonalejší mechanizmus odesílání zpráv více příjemcům, lepší způsob označovaní nově přijatých zpráv, rychlejší stahování zpráv a ukládání do databáze či vylepšená nabídka kontaktů. Z novinek stojí za zmínku možnost importovat ZFO soubory zpět do lokální databáze, podpora … více »
Vilem Sladek | Komentářů: 24
27.1. 23:23 | Bezpečnostní upozornění
V knihovně glibc byla nalezena kritická zranitelnost CVE-2015-0235, jež dostala jméno GHOST. Jedná se o přetečení zásobníku ve funkci __nss_hostname_digits_dots(). Útočník může v nejhorším případě vzdáleně spustit libovolný kód. [CSIRT.CZ]
Ladislav Hagara | Komentářů: 29
27.1. 21:29 | Zajímavý software
Jon von Tetzchner, jenž v roce 1994 založil společnost Opera, do roku 2010 byl jejím CEO a v roce 2011 ji zcela opustil, představil se svým týmem nový webový prohlížeč Vivaldi. Technologické demo je k dispozici také pro Linux. Diskuse na Vivaldi.net.
Ladislav Hagara | Komentářů: 86
27.1. 21:28 | Nová verze
Bylo oznámeno vydání verze 5.2 prostředí KDE Plasma. Nejnovější Plasma přináší nové komponenty (BlueDevil, KSSHAskPass, Muon, ...), funkce a samozřejmě řeší řadu chyb obsažených ve verzi 5.1 (zprávička). Podrobnosti v úplném seznamu změn. Videoukázka prostředí na YouTube.
Ladislav Hagara | Komentářů: 3
27.1. 21:28 | Pozvánky
Až do pátku 30. ledna můžete hlasovat o programu konference InstallFest 2015. Témata jsou různorodá, od embedded po servery, a na výběr je též z několika workshopů. Program konference je ve vašich rukou.
Jendа | Komentářů: 0
27.1. 01:01 | Nasazení Linuxu
LinuxGizmos.com představuje výškově nastavitelný pracovní stůl Stir Kinetic Desk M1. Stůl poháněný Linuxem je dodáván s WiFi, Bluetooth a dotykovým displejem o velikosti 5 palců. Jedná se o novější a levnější model stolu od společnosti Stir. Cena modelu M1 je 2990 dolarů a lze si vybrat mezi bílým a černým provedením. Model F1 je k dispozici za 4190 dolarů. Představení vlastností stolu na YouTube.
Ladislav Hagara | Komentářů: 20
Disketu jsem naposledy použil během
 (41%)
 (3%)
 (12%)
 (41%)
 (3%)
Celkem 2036 hlasů
 Komentářů: 58, poslední 25.1. 18:11
    Rozcestník
    Reklama
    Autoškola testy online Levný benzín

    Oprava Yakumo QuickStick DVB-T pod linuxem

    26.9.2010 14:26 | Přečteno: 1165× | Hardware | poslední úprava: 26.9.2010 18:16

    Jak jste si možná někteří všimli, hledal jsem tu před pár dny pomoc ohledně svého chcíplého USB televizního adaptéru „Yakumo QuickStick DVB-T“. Na základě odpovědí v poradně, trochy googlování a kapky programování se mi podařilo zmíněný adaptér nakonec úspěšně přívést znovu k životu a to sice bez použití Windows. Zde je návod, co s tím.

    Problém

    Začněme s krátkým popisem toho, co se vlastně adaptéru stalo. Zřejmě při jeho vytahováni z USB portu došlo k poškození dat na EEPROM. Těmito daty přitom jsou VID/PID (Vendor ID/Product ID) pod kterými se USB stick hlásí počítači. Konkrétně mně se VID/PID změnilo z 14aa:0225 ⇒ 14ee:0225 (čili se nastavili - což se de fakto rovná u EEPROM vynulování - dva bity jednoho bajtu). Důsledek: OS nenašel k adaptéru správný ovladač a nic se tedy nedělo.

    Řešení

    Na řešení mě navedli diskutující v poradně, kteří mě odkázali na tento blog. Řešení spočívalo v tom, využít pod Windows speciální vývojové prostředí pro platformu, na které je USB stick založen, pomocí ní do něj nahrát speciální firmware, které umožňuje manipulaci s EEPROM a potom přes toto vývojové prostředí ručně poslat příslušné USB příkazy.

    Jelikož Windows momentálně nemám po ruce, rozhodl jsem se, že se pokusím o stejnou věc, ale čistěji a pod linuxem.

    Co budeme potřebovat

    K „odcihlení“ adaptéru budeme potřebovat a) onen speciální FW pro komunikaci s EEPROM, b) linuxový program, který jej do adaptéru nahraje, c) (náš) linuxový program, který bude s tímto FW komunikovat a pomocí něj korektně nastaví VID/PID v EEPROM adaptéru.

    Ad a): Firmware se jmenuje Vend_Ax.hex a stáhneme jej například odtud.

    Ad b): utilitka pro nahrání firmware se jmenuje cycfx2prog a najdeme ji této stránce. (Klasicky rozbalíme a skompilujeme pomocí 'make').

    Ad c): Vytvoříme adresář a v něm vytvoříme soubor yakumo-repair.c s následujícím obsahem:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <usb.h>
    
    void usage() {
      fprintf(stderr, "Usage: yakumo-repair <old_vid:old_pid> <new_vid:new_pid>\n");
      fprintf(stderr, "You have to download Vend_ax.hex (using e.g. cycfx2prog) first!\n");
      exit (-1);
    }
    
    unsigned int vid_o, pid_o, vid_n, pid_n;
    
    void repair (struct usb_device *dev, usb_dev_handle *h) {
      unsigned char buffer[256], b2[256];
      int i,n,ok;
    
      n=usb_control_msg(h, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
                               0xa2, 0, 0, (char *)buffer, sizeof(buffer), 5000);
    
      printf ("EEPROM READ: [%d]\t", n);
      if (n) for (i=0; i<n; i++)
      {
        printf(" %02x", buffer[i]);
      }
      printf ("\n");
    
      if (n!=256)
      {
        fprintf (stderr, "Error reading EEPROM!\n");
        return;
      }
    
      if (
          (buffer[1]==(vid_o%0x100)) &&
          (buffer[2]==(vid_o/0x100)) &&
          (buffer[3]==(pid_o%0x100)) &&
          (buffer[4]==(pid_o/0x100)) 
         )
      {
        printf ("... old VID/PID OK! Trying to overwrite VID/PID in EEPROM...\n");
    
        // set new VID/PID into the buffer!
        buffer[0]=0xc0;
        buffer[1]=(vid_n%0x100);
        buffer[2]=(vid_n/0x100);
        buffer[3]=(pid_n%0x100);
        buffer[4]=(pid_n/0x100);
    
        n=usb_control_msg(h, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT,
                               0xa2, 0, 0, (char *)buffer, 5, 5000);
    
        printf ("... written %d bytes...\n", n);
    
        printf ("Verifying...\n");
    
        n=usb_control_msg(h, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
                               0xa2, 0, 0, (char *)b2, sizeof(b2), 5000);
    
        if (n!=256) 
        {
          fprintf (stderr, "Error reading EEPROM!\n");
          return;
        }
    
        ok=1;
        for (i=0; i<n; i++)
          if (buffer[i]!=b2[i]) ok=0;
    
        printf (ok?"Verified, OK!\n":"Error occured!\n");
    
      }
      else
        fprintf (stderr, "VID/PID in EEPROM don't match! Skipping...");
    
    
    }
    
    
    int main (int argc, char **argv) {
    
      struct usb_bus      *bus;
      struct usb_device   *dev;
      usb_dev_handle      *handle = NULL;
    
      if (argc!=3) usage();
    
      sscanf(argv[1], "%x:%x", &vid_o, &pid_o);
      sscanf(argv[2], "%x:%x", &vid_n, &pid_n);
    
      if ((vid_o>0xffff) || (pid_o>0xffff) || (vid_n>0xffff) || (pid_n>0xffff)) usage();
    
      printf ("\nRepairing: [%04x:%04x] => [%04x:%04x]\n\n", vid_o, pid_o, vid_n, pid_n);
    
    
      usb_init();
      usb_find_busses();
      usb_find_devices();
      for (bus=usb_get_busses(); bus; bus=bus->next)
      {
        for (dev=bus->devices; dev; dev=dev->next)
        {
          if ((dev->descriptor.idVendor==vid_o) && (dev->descriptor.idProduct==pid_o))
          {
            handle=usb_open(dev);
            if (!handle)
              printf("Error opening [%04x:%04x]!\n", vid_o, pid_o); 
            else
            {
              printf("Found [%04x:%04x]: trying to repair ----------------\n", vid_o, pid_o); 
              repair(dev, handle);
            }
          }
        }
      }
    
    
      return 0;
     }
    
    
    V adresáři rovněž vytvoříme soubor Makefile a do něj dáme:
    
    BIN=/usr/bin
    
    USBFLAGS = `libusb-config --cflags`
    USBLIBS = `libusb-config --libs`
    
    CC		= gcc
    CFLAGS	= $(USBFLAGS) -O3 -Wall
    LIBS	= $(USBLIBS)
    
    PROGRAM=yakumo-repair
    
    all: $(PROGRAM)
    
    .c.o:
    	$(CC) $(CFLAGS) -c $<
    
    $(PROGRAM): $(PROGRAM).o
    	$(CC) -o $(PROGRAM) $(PROGRAM).o $(LIBS)
    
    strip: $(PROGRAM)
    	strip $(PROGRAM)
    
    install: strip
    	cp -f $(PROGRAM) $(BIN)
    
    clean:
    	rm -f *.o $(PROGRAM)
    
    Program zkompilujeme pomocí 'make'.

    Jak na to?

    Nejprve nahrajeme do adaptéru firmware pro práci s EEPROM (nyní spouštíme vše pod rootem!):
    ./cycfx2prog -id=14ee:0225 prg:Vend_ax.hex run
    
    Program vypíše něco jako:
    Using ID 14ee:0226 on 001.014.
    Putting 8051 into reset.
    Programming 8051 using "Vend_ax.hex".
    Putting 8051 out of reset.
    
    Poté spustíme náš program se dvěma parametry: prvním je současný (nekorektní) pár VID/PID, druhým je opravený VID/PID:
    ./yakumo-repair 14ee:0225 14aa:0225
    
    Program vypíše:
    Repairing: [14ee:0225] => [14aa:0225]
    
    Found [14ee:0225]: trying to repair ----------------
    EEPROM READ: [256]	 c0 ee 14 25 02 00 00 08 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    ... old VID/PID OK! Trying to overwrite VID/PID in EEPROM...
    ... written 5 bytes...
    Verifying...
    Verified, OK!
    
    Což znamená, že v tomto okamžiku by mělo být vše v pořádku, stačí adaptér odpojit a znovu zapojit a měl by znovu fungovat.        

    Hodnocení: 89 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    26.9.2010 14:31 pc2005 | skóre: 30 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Oprava Yakumo QuickStick DVB-T pod linuxem
    Wow tomu říkám podpora hardwaru, vývojové prostředí :-O. U některých hw by šlo tak maximálně změnit USB ID ve zdrojáku kernelu :-D.
    帮帮我,我被锁在中国房 | RoHS mrtvola
    Jendа avatar 26.9.2010 15:18 Jendа | skóre: 69 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Oprava Yakumo QuickStick DVB-T pod linuxem
    Nebylo by jednodušší říct ovladači, aby používal i zařízení s tím rozhozeným ID?
    Žiju ve městě, kde operuje mafie.
    Petr Tomášek avatar 26.9.2010 15:39 Petr Tomášek | skóre: 33 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Oprava Yakumo QuickStick DVB-T pod linuxem
    Jo a při dalším upgrade systému to budu muset dělat znova, že? (Navíc chci, aby mi stick fungoval na vícero počítačích)
    26.9.2010 15:30 pc2005 | skóre: 30 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Oprava Yakumo QuickStick DVB-T pod linuxem
    Rofl on mě přišel i mail z konference LinuxTV :-D.
    帮帮我,我被锁在中国房 | RoHS mrtvola
    Petr Tomášek avatar 26.9.2010 16:50 Petr Tomášek | skóre: 33 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Oprava Yakumo QuickStick DVB-T pod linuxem
    Předtím jsem se tam (byť bezúspěšně) ptal, tak mi přišlo slušné dát zprávu o tom, že jak jsem problém vyřešil...
    Grunt avatar 26.9.2010 18:58 Grunt | skóre: 19 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Oprava Yakumo QuickStick DVB-T pod linuxem
    No LOL teda. A to já si myslel, že snad i něco málo o odcihlení RDAA-81 pomocí JTAGu po těch peripetiích i napíšu, ale jak se dívám tak jsem pořád slabé máslo a ještě budu muset počkat na corovější zážitky.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!

    Založit nové vláknoNahoru

    ISSN 1214-1267   Powered by Hosting 90 Server hosting
    © 1999-2013 Argonit s. r. o. Všechna práva vyhrazena.