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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 14:11 | Komunita

Už jenom do pondělí 3. října lze přihlásit přednášku nebo workshop, nebo také navrhnout zajímavé téma nebo osobu, na brněnskou open source, open mind a open hardware konferenci OpenAlt 2016, jež navazuje na konference LinuxAlt a Openmobility a proběhne 5. a 6. listopadu 2016. Inspirovat se lze loňským ročníkem.

Ladislav Hagara | Komentářů: 0
včera 13:33 | Nová verze

Po šesti týdnech od vydání verze 5.1.0 (zprávička) byla vydána verze 5.2.0 správce digitálních fotografií digiKam (digiKam Software Collection). Kromě oprav chyb, v Bugzille bylo uzavřeno 42 záznamů, přináší nejnovější digiKam také nový nástroj pro potlačení efektu červených očí vytvořený v rámci letošního Google Summer of Code 2016.

Ladislav Hagara | Komentářů: 0
včera 12:55 | Bezpečnostní upozornění

Americká společnost Yahoo, provozující stejnojmenný internetový portál, oficiálně potvrdila bezpečnostní incident z konce roku 2014. Dle tiskové zprávy ukradl státem podporovaný útočník údaje o 500 milionech uživatelích. Jedná se o jejich jména, emailové adresy, telefonní čísla, data narození, haše hesel (bcrypt) a v některých případech také bezpečnostní otázky a odpovědi na ně.

Ladislav Hagara | Komentářů: 0
23.9. 16:46 | Nová verze

Po třech týdnech od vydání wattOS R10 LXDE oznámili vývojáři odlehčené linuxové distribuce wattOS také vydání wattOS R10 Microwatt. Obě vydání vycházejí z Ubuntu 16.04.1 LTS. Výchozím správcem oken v Microwattu je dlaždicový (tiling) i3, webovým prohlížečem Surf, správcem souborů PCManFM a pdf prohlížečem Mupdf. Ukázka prostředí na YouTube.

Ladislav Hagara | Komentářů: 4
23.9. 01:01 | Zajímavý projekt

Vidar Holen aktualizoval svůj přehled s počty (sprostých) slov (Internet Archive) obsažených ve zdrojových kódech Linuxu. Nejedná se pouze o přidání zdrojových kódů nových verzí Linuxu. Přidána byla především možnost definování si vlastních slov.

Ladislav Hagara | Komentářů: 25
22.9. 15:29 | Bezpečnostní upozornění

Byly vydány verze 1.1.0a, 1.0.2i a 1.0.1u kryptografické knihovny OpenSSL. Dle bezpečnostního upozornění bylo opraveno několik bezpečnostních chyb. Nejvážnější z nich je CVE-2016-6304 (Debian) v OCSP rozšíření.

Ladislav Hagara | Komentářů: 0
22.9. 14:46 | Pozvánky

Chceš se podílet na zajímavém projektu, spolupracovat s vývojáři z praxe a získat cenné zkušenosti? Přijď se podívat na nabídku otevřených projektů (některé z nich mohou vést i k BP/DP), promluvit si s vedoucími a zjistit, jestli tě některé z nich zaujmou. Akce je zaměřená na prezentování aktuálně běžících open source projektů v Red Hatu, do kterých se mohou zapojit studenti vysokých, ale i středních škol. … více »

mjedlick | Komentářů: 12
22.9. 14:22 | Nová verze

Bryce Harrington (Samsung) oznámil vydání verze 1.12.0 Waylandu a Westonu. Podrobnosti v oznámení o vydání Waylandu a v oznámení o vydání Westonu.

Ladislav Hagara | Komentářů: 0
22.9. 14:08 | Nová verze

Po téměř 6 měsících vývoje od vydání verze 1.14 (zprávička) byla vydána verze 1.16 grafického prostředí MATE (Wikipedie). Přehled nových vlastností a vylepšení v poznámkách k vydání.

Ladislav Hagara | Komentářů: 1
22.9. 13:51 | Nová verze

Po půl roce od vydání verze 3.20 (zprávička) bylo vydáno GNOME 3.22 s kódovým názvem Karlsruhe. Součástí jsou nové hlavní funkce a vlastnosti, stejně jako řada menších vylepšení a oprav chyb. Z novinek lze zdůraznit podporu pro Flatpak. Vydání obsahuje 22 983 změn od přibližně 775 přispěvatelů. Podrobnosti i s náhledy v poznámkách k vydání a v novinkách pro vývojáře a správce systémů. Přehled novinek také na oficiálním videu.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (25%)
 (29%)
 (34%)
 (7%)
 (5%)
 (0%)
Celkem 107 hlasů
 Komentářů: 2, poslední 23.9. 14:22
    Rozcestník
    Reklama

    Oprava Yakumo QuickStick DVB-T pod linuxem

    26.9.2010 14:26 | Přečteno: 1221× | 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: 31 | 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.
    Chuck Norris řekl babičce, že si dá jen 3 knedlíky. A dostal 3 knedlíky. | 帮帮我,我被锁在中国房
    Jendа avatar 26.9.2010 15:18 Jendа | skóre: 72 | 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?
    We don't need no education, we don't need no flow control!
    Petr Tomášek avatar 26.9.2010 15:39 Petr Tomášek | skóre: 36 | 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: 31 | 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.
    Chuck Norris řekl babičce, že si dá jen 3 knedlíky. A dostal 3 knedlíky. | 帮帮我,我被锁在中国房
    Petr Tomášek avatar 26.9.2010 16:50 Petr Tomášek | skóre: 36 | 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: 20 | 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-2015 Nitemedia s. r. o. Všechna práva vyhrazena.