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í
×
    včera 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Humor

    OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 03:00 | Nová verze

    Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    10.1. 03:00 | Komunita

    Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.

    Ladislav Hagara | Komentářů: 6
    9.1. 19:44 | Zajímavý software

    Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.

    Ladislav Hagara | Komentářů: 5
    9.1. 19:11 | IT novinky

    Firma Bose se po tlaku uživatelů rozhodla, že otevře API svých chytrých reproduktorů SoundTouch, což umožní pokračovat v jejich používání i po plánovaném ukončení podpory v letošním roce. Pro ovládání také bude stále možné využívat oficiální aplikaci, ale už pouze lokálně bez cloudových služeb. Dokumentace API dostupná zde (soubor PDF).

    NUKE GAZA! 🎆 | Komentářů: 2
    9.1. 14:22 | Zajímavý článek

    Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.

    Ladislav Hagara | Komentářů: 7
    9.1. 03:33 | Zajímavý software

    AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.

    Ladislav Hagara | Komentářů: 1
    9.1. 00:11 | Nová verze

    Byla vydána prosincová aktualizace aneb nová verze 1.108 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    8.1. 20:44 | IT novinky

    Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (8%)
     (4%)
     (0%)
     (9%)
     (20%)
     (3%)
     (5%)
     (3%)
     (10%)
     (50%)
    Celkem 374 hlasů
     Komentářů: 8, poslední 10.1. 23:18
    Rozcestník

    BurnApp - blokování

    14.6.2010 14:58 | Přečteno: 1176× | Jiné | poslední úprava: 14.6.2010 19:22

    Už mě to fakt deptá, proč to pořád blokuje? Ten udisks i HAL jsou tak podělaný, že po vložení DVD+RW pořád jebou a spouštěj si tu heuristickou analýzu média a blokuje mi to mojí vypalovací aplikaci. Proč? Manuálová stránka pro open() mi tvrdí, že mi open() blokovat nebude, když použiju O_NONBLOCK. Ale mně blokuje ... taky tvrdí, že open() může být přerušen signálem. No, asi těžko, když se mi nepřerušuje, a to ani SIGKILL signálem. A né, že se blokuje jen moje aplikace, ale ono to zablokuje i ostatní aplikace, jako např. Brasero, to se neobtěžuje ani zobrazením "Detekuji zařízení, čekejte" a vypadá, že se ani nespouští... navíc to udisks neotvírá s O_EXCL, takže aplikace klidně můžou začít pálit, ale HAL i udisk to vypalování podělá, protože jeho READ může způsobit SYNCHRONIZE CACHE a celý proces vypalování tak podělat.

    Nejhnusnější na tom je, že snad neexistuje žádné API pro zjištění, jestli nějaké zařízení je používáno..., před tím, než ho otevřu a zablokuje mi tak na 10 minut aplikaci.

    To mám jako uživateli říct "Hele vole, vypni udisk, HAL, ať to neblokuje.". Protože když ty šmejďárny neběžej, tak to fakt neblokuje. Jenže bez nich se zase podělaj KDE a GNOME aplikace, který nejsou schopné spolehnout se pouze na udev...

    Už fakt nevím, jak to naimplementovat, aby to neblokovalo. Přece nebudu kvůli každý palírně vytvářet extra thread (i když těžko někdo bude mít víc jak 2,3 palírny, ale spoléhejte na to ....), abych při zablokování jednoho mohl použít druhý, atd ...

    Update #1

    Tak nakonec nalezena šmejďárna jménem blkid, která na tom blokuje (a tak zablokuje chudáky, co to volají):
    open("/dev/sr0", O_RDONLY)              = 3
    fadvise64(3, 0, 0, POSIX_FADV_RANDOM)   = 0
    fstat(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(11, 0), ...}) = 0
    uname({sys="Linux", node="Jardik-PC", ...}) = 0
    ioctl(3, BLKGETSIZE64, 0x1e18020)       = 0
    fstat(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(11, 0), ...}) = 0
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    ioctl(3, BLKSSZGET, 0x1e18030)          = 0
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 512)                 = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 28672, SEEK_SET)               = 28672
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 3072, SEEK_SET)                = 3072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 3072, SEEK_SET)                = 3072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 3072, SEEK_SET)                = 3072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 3072, SEEK_SET)                = 3072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 7168, SEEK_SET)                = 7168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 7168, SEEK_SET)                = 7168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 7168, SEEK_SET)                = 7168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 7168, SEEK_SET)                = 7168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 15360, SEEK_SET)               = 15360
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 15360, SEEK_SET)               = 15360
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 15360, SEEK_SET)               = 15360
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 15360, SEEK_SET)               = 15360
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 31744, SEEK_SET)               = 31744
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 31744, SEEK_SET)               = 31744
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 31744, SEEK_SET)               = 31744
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 31744, SEEK_SET)               = 31744
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 64512, SEEK_SET)               = 64512
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 64512, SEEK_SET)               = 64512
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 64512, SEEK_SET)               = 64512
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 64512, SEEK_SET)               = 64512
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 3072, SEEK_SET)                = 3072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 3072, SEEK_SET)                = 3072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 7168, SEEK_SET)                = 7168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 7168, SEEK_SET)                = 7168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 15360, SEEK_SET)               = 15360
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 15360, SEEK_SET)               = 15360
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 31744, SEEK_SET)               = 31744
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 31744, SEEK_SET)               = 31744
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 64512, SEEK_SET)               = 64512
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 64512, SEEK_SET)               = 64512
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 8192, SEEK_SET)                = 8192
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 65536, SEEK_SET)               = 65536
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 65536, SEEK_SET)               = 65536
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 65536, SEEK_SET)               = 65536
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 8192, SEEK_SET)                = 8192
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 65536, SEEK_SET)               = 65536
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 32768, SEEK_SET)               = 32768
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 131072, SEEK_SET)              = 131072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 131072, SEEK_SET)              = 131072
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 135168, SEEK_SET)              = 135168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 135168, SEEK_SET)              = 135168
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 139264, SEEK_SET)              = 139264
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 139264, SEEK_SET)              = 139264
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 393216, SEEK_SET)              = 393216
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 393216, SEEK_SET)              = 393216
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 397312, SEEK_SET)              = 397312
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 397312, SEEK_SET)              = 397312
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 401408, SEEK_SET)              = 401408
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 401408, SEEK_SET)              = 401408
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1377)                = -1 EIO (Input/output error)
    lseek(3, 8192, SEEK_SET)                = 8192
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 512, SEEK_SET)                 = 512
    read(3, 0x1e18808, 512)                 = -1 EIO (Input/output error)
    lseek(3, 2048, SEEK_SET)                = 2048
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 2048, SEEK_SET)                = 2048
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 65536, SEEK_SET)               = 65536
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 65536, SEEK_SET)               = 65536
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 8192, SEEK_SET)                = 8192
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 2048, SEEK_SET)                = 2048
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 4096, SEEK_SET)                = 4096
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 8192, SEEK_SET)                = 8192
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 1024, SEEK_SET)                = 1024
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 4096, SEEK_SET)                = 4096
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 65536, SEEK_SET)               = 65536
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    lseek(3, 2097152, SEEK_SET)             = 2097152
    read(3, 0x1e18808, 1024)                = -1 EIO (Input/output error)
    close(3)                                = 0
    exit_group(2)
    

    Update #2

    Tohle se spouští: blkid -o udev -p -u noraid /dev/sr0
    A trvá a trvá:
    time blkid -o udev -p -u noraid /dev/sr0
    
    real    18m6.889s
    user    0m0.000s
    sys     0m0.010s
    
    A výsledek? Žádný výstup ... nevíte, kde najdu zdrojáky blid, že bych si ho opravil?        

    Hodnocení: 57 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    14.6.2010 16:09 CEST
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    A nejde to treba resit zavolanim nejaky funkce HALu a udisku, aby ignorovaly to jednotku DVD? Proste pri startu tvyho programu zjistit, co se pouziva HAL a/nebo udisks, a pak jim poslat zpravu, aby ignorovaly zarizeni ABC. A nakonci jim zase rict, ze device je volnej a muzou s nim pracovat (pripadne zjistit pri startu stav, jestli s nim pracujou nebo ignorujou a nakonci ten stav obnovit).
    14.6.2010 17:30 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    A nejde to treba resit zavolanim nejaky funkce HALu a udisku, aby ignorovaly to jednotku DVD?
    Něco jako killall hald? :-D
    Jardík avatar 14.6.2010 18:11 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Tak řekni co mám zavolat. Zkoušel jsem snad všechno, ale stejně si to v tom jebe jak chce dál...
    Věřím v jednoho Boha.
    14.6.2010 18:27 martin
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    tohle nepomuze ?
    http://diablo.ucsc.edu/cgi-bin/man/man2html?hal-disable-polling+1
    Jardík avatar 14.6.2010 18:41 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Ne, HAL nemám, ale dělal to taky. Teď to hnije udisks, stejný problém, disable polling nepomáhá. BTW nakonec to není ani chyba přímo udisku, ale asi šmejďárny, co spouští - blkid, viz update blogu.
    Věřím v jednoho Boha.
    vlastikroot avatar 14.6.2010 18:14 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Takovej blbej nápad - nedalo by se adoptovat lsof a zjistit si, jestli má HAL zrovna tu mechaniku otevřenou? Nebo to má otevřený furt?
    We will destroys the Christian's legion ... and the cross, will be inverted
    Jardík avatar 14.6.2010 18:45 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Dík, tím jsem našel ten blkid. Co s tím ...
    Věřím v jednoho Boha.
    vlastikroot avatar 14.6.2010 18:49 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    No já právě myslel něco jako zaintegrovat to do toho programu, že když to bude běžet ta analýza tak program ukáže dialog a počká než se do toho začne hrabat. Lsof vlastně prochází /proc a hledá otevřený FD, mmapovaný soubory a podobně. Implementovat to by pro tebe neměl být žadný problém (s inspirací v busyboxu třeba). O lepšim řešení já nevim, ale třeba se tu ještě někdo objeví.
    We will destroys the Christian's legion ... and the cross, will be inverted
    Jardík avatar 14.6.2010 18:55 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    busybox je GPL, tam se inspirovat nemůžu
    Věřím v jednoho Boha.
    vlastikroot avatar 14.6.2010 19:15 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Teda v busyboxu spíš fuser, to je podobně funkční věc (jen mnohem jednodušší). Případně mužeš zneužít zdrojáky psmisc (tam je zrovna fuser), do verze 19 pod BSD. Zrovna těhle věcí bych se nebál, pokud to opravdu neskopíruješ, ale jen si přečteš, jak to vubec funguje. To neni jak M$ open source :-D
    We will destroys the Christian's legion ... and the cross, will be inverted
    xkucf03 avatar 14.6.2010 19:00 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    A proč se nekoukneš do jiných vypalovacích programů? Tam přece musí řešit totéž. To je přece jedna z výhod otevřeného softwaru, můžeš se inspirovat.

    P.S. i když jestli se GPL kódu štítíš natolik, že ho nebudeš ani číst, tak to budeš mít těžké :-D
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Jardík avatar 14.6.2010 20:17 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Očividně to neřeší. Brasero se zablokuje a čeká a čeká (protože používá k detekci asi wodim, nebo tak něco, kterej se při skenování taky zablokuje), k3b zase nenajde nic, protože potřebuje k detekci HAL a já mám jenom udisks a nepotřebuju. aby se to vzájemně hádalo.
    Věřím v jednoho Boha.
    Jardík avatar 14.6.2010 20:21 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    BTW mě to fakt jebe. Protože když mi pořádně nefunguje tohle, tak nemám ani chuť pouštět se do dalších věcí. Ať mi to nikdo nevymlouvá, ale linuxu prostě chybí k tomuhle pořádné jednotné API a v podstatě ve všech programech je to různě nahackované. A pokud mi to někdo vymlouvat chce, ať to API (které není deprecated, jako např. prosení HALu či Udisks, které stejně nefungujou pořádně) ukážou.
    Věřím v jednoho Boha.
    14.6.2010 20:37 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Blkid je část e2fsprogs a je to poměrně klíčová součást systému. Čtou se tim UUID, LABELy a další věci,... používá to i mount, když nezadáš -t, hádá typ FS právě pomocí blkid.
    14.6.2010 20:38 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    A ty chyby co to hází jsou divný, stejně jako doba, jakou to trvá. Nemáš možnost to zkusit ještě na dalším stroji?
    Jardík avatar 14.6.2010 21:10 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    No ono to přečte totiž kulový, na tom DVD+RW mám titiž zapsaná "RAW" data bez filesystému a open() samozřejmě DVD+RW otevře, je totiž naformátované (né ve smyslu vytvoření FS), mechanika nikdy u DVD+RW nehlásí, že je fyzicky prázné. blkid si pak čte snad celé médium a hledá na něm filesystém, který tam ale není ...
    Věřím v jednoho Boha.
    14.6.2010 21:26 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Hm, podívej se semhle na položku EVALUATE, vyzerá to zajímavě, cituji:
    The "udev" method uses udev /dev/disk/by-* symlinks and the "scan" method scans all block devices from the /proc/partitions file.
    14.6.2010 21:29 chrono
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    blkid najskôr zisťuje počet sektorov a tam dostane správnu odpoveď.

    Potom začne postupne testovať jednotlivé súborové systémy (vlastne úplne na začiatku sa testuje, či tam je MDRAID) a pri tom sa mechanika pokúša načítať požadovaný sektor a kým pošle chybu, trvá to dosť dlho.

    Ak by zlyhalo volanie lseek, tak by sa ten sektor ani nenačítaval a keďže chyba nenastane, tá knižnica nemôže vedieť, že je v niečom problém. Ak sa ten blok načíta, pri nasledujúcom prístupe sa tie údaje môžu znovu použiť, takže by to bolo dosť rýchle, ale v prípade chyby sa žiadne optimalizácie nerobia (teoreticky by sa možno mohli preskočiť testy, ktoré potrebujú dáta z rovnakého bloku, ktorý sa nepodarilo načítať, ale tým by sa to zbytočne skomplikovalo a pravdepodobne by kvôli tomu mohlo prestať niečo fungovať).

    PS: Ak to chceš opraviť, pozri súbor probe.c a v ňom funkcie blkid_verify a get_buffer. :)
    Jardík avatar 14.6.2010 21:45 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Mně už připadá dost hnusný toto:
    char *blkid_devno_to_devname(dev_t devno)
    {
    	struct dir_list *list = NULL, *new_list = NULL;
    	char *devname = NULL;
    	const char **dir;
    
    	/*
    	 * Add the starting directories to search in reverse order of
    	 * importance, since we are using a stack...
    	 */
    	for (dir = devdirs; *dir; dir++)
    		add_to_dirlist(*dir, NULL, &list);
    
    	while (list) {
    		struct dir_list *current = list;
    
    		list = list->next;
    		DBG(DEBUG_DEVNO, printf("directory %s\n", current->name));
    		blkid__scan_dir(current->name, devno, &new_list, &devname);
    		free(current->name);
    		free(current);
    		if (devname)
    			break;
    		/*
    		 * If we're done checking at this level, descend to
    		 * the next level of subdirectories. (breadth-first)
    		 */
    		if (list == NULL) {
    			list = new_list;
    			new_list = NULL;
    		}
    	}
    	free_dirlist(&list);
    	free_dirlist(&new_list);
    
    	if (!devname) {
    		DBG(DEBUG_DEVNO,
    		    printf("blkid: couldn't find devno 0x%04lx\n",
    			   (unsigned long) devno));
    	} else {
    		DBG(DEBUG_DEVNO,
    		    printf("found devno 0x%04llx as %s\n", (long long)devno, devname));
    	}
    
    
    	return devname;
    }
    
    Hledání souboru zařízení skenováním předdefinovaných adresářů a na každý nalezený soubor volat fstat(), aby ho našel, to se na mě nezlobte, ale je to prasárna. Ono to totiž zatím "nějak" funguje, tak to nikoho netrápí.
    Dále se mi nelíbí tento přístup:
    if (S_ISBLK(sb.st_mode) && ioctl(fd, CDROM_GET_CAPABILITY, NULL) >= 0)
    		pr->flags |= BLKID_CDROM_DEV;
    
    To jako, že character device nemůže být CD-ROM? Např /dev/sg1 u mě je character device a CD-ROM to teda je. Ale pravda, že udisks testuje jen blokové zařízení.
    Věřím v jednoho Boha.
    14.6.2010 20:55 chrono
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Blkid je část e2fsprogs a je to poměrně klíčová součást systému.
    Niektoré distribúcie používajú verziu knižnice, ktoré je v util-linux-ng.
    Jardík avatar 15.6.2010 00:56 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: BurnApp - blokování
    Takže problém je opravdu někde v blkid() nebo přímo někde zakopanej v kernelu (sr modul?).
    blkid() otevře mechaniku jako obyč blokové zařízení. Problém je, že si nepřečte přes ioctl(), kde je poslední stopa a z ní nečte SCSI příkazem READ. Prostě si zavolá "obyč" lseek() a "obyč" read(). Tento read() trvá nechutně dlouho, koukněte na strace i s časy:
    ....
    nějaký věcičky k zavádění procesu do paměti a tak
    ....
    
    23:56:09 open("/dev/sr0", O_RDONLY)     = 3
    23:56:09 fadvise64(3, 0, 0, POSIX_FADV_RANDOM) = 0
    23:56:09 fstat(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(11, 0), ...}) = 0
    23:56:09 uname({sys="Linux", node="Jardik-PC", ...}) = 0
    23:56:09 ioctl(3, BLKGETSIZE64, 0xe11020) = 0
    23:56:09 fstat(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(11, 0), ...}) = 0
    23:56:09 lseek(3, 0, SEEK_SET)          = 0
    23:56:09 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:56:27 lseek(3, 0, SEEK_SET)          = 0
    23:56:27 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:56:35 lseek(3, 0, SEEK_SET)          = 0
    23:56:35 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:56:44 lseek(3, 0, SEEK_SET)          = 0
    23:56:44 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:56:53 ioctl(3, BLKSSZGET, 0xe11030)  = 0
    23:56:53 lseek(3, 0, SEEK_SET)          = 0
    23:56:53 read(3, 0xe11808, 512)         = -1 EIO (Input/output error)
    23:57:02 lseek(3, 0, SEEK_SET)          = 0
    23:57:02 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:57:11 lseek(3, 0, SEEK_SET)          = 0
    23:57:11 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:57:20 lseek(3, 0, SEEK_SET)          = 0
    23:57:20 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:57:29 lseek(3, 0, SEEK_SET)          = 0
    23:57:29 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:57:38 lseek(3, 28672, SEEK_SET)      = 28672
    23:57:38 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:57:47 lseek(3, 0, SEEK_SET)          = 0
    23:57:47 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:57:56 lseek(3, 0, SEEK_SET)          = 0
    23:57:56 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:58:05 lseek(3, 0, SEEK_SET)          = 0
    23:58:05 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:58:14 lseek(3, 0, SEEK_SET)          = 0
    23:58:14 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:58:22 lseek(3, 0, SEEK_SET)          = 0
    23:58:22 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:58:31 lseek(3, 0, SEEK_SET)          = 0
    23:58:31 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:58:40 lseek(3, 0, SEEK_SET)          = 0
    23:58:40 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:58:49 lseek(3, 0, SEEK_SET)          = 0
    23:58:49 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:58:58 lseek(3, 0, SEEK_SET)          = 0
    23:58:58 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:59:07 lseek(3, 0, SEEK_SET)          = 0
    23:59:07 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:59:16 lseek(3, 0, SEEK_SET)          = 0
    23:59:16 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:59:25 lseek(3, 0, SEEK_SET)          = 0
    23:59:25 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:59:34 lseek(3, 3072, SEEK_SET)       = 3072
    23:59:34 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:59:43 lseek(3, 3072, SEEK_SET)       = 3072
    23:59:43 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    23:59:52 lseek(3, 3072, SEEK_SET)       = 3072
    23:59:52 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:00:00 lseek(3, 3072, SEEK_SET)       = 3072
    00:00:00 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:00:09 lseek(3, 7168, SEEK_SET)       = 7168
    00:00:09 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:00:18 lseek(3, 7168, SEEK_SET)       = 7168
    00:00:18 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:00:27 lseek(3, 7168, SEEK_SET)       = 7168
    00:00:27 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:00:36 lseek(3, 7168, SEEK_SET)       = 7168
    00:00:36 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:00:45 lseek(3, 15360, SEEK_SET)      = 15360
    00:00:45 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:00:54 lseek(3, 15360, SEEK_SET)      = 15360
    00:00:54 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:01:03 lseek(3, 15360, SEEK_SET)      = 15360
    00:01:03 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:01:12 lseek(3, 15360, SEEK_SET)      = 15360
    00:01:12 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:01:21 lseek(3, 31744, SEEK_SET)      = 31744
    00:01:21 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:01:30 lseek(3, 31744, SEEK_SET)      = 31744
    00:01:30 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:01:38 lseek(3, 31744, SEEK_SET)      = 31744
    00:01:38 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:01:47 lseek(3, 31744, SEEK_SET)      = 31744
    00:01:47 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:01:56 lseek(3, 64512, SEEK_SET)      = 64512
    00:01:56 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:02:05 lseek(3, 64512, SEEK_SET)      = 64512
    00:02:05 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:02:14 lseek(3, 64512, SEEK_SET)      = 64512
    00:02:14 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:02:23 lseek(3, 64512, SEEK_SET)      = 64512
    00:02:23 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:02:32 lseek(3, 3072, SEEK_SET)       = 3072
    00:02:32 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:02:41 lseek(3, 3072, SEEK_SET)       = 3072
    00:02:41 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:02:50 lseek(3, 7168, SEEK_SET)       = 7168
    00:02:50 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:02:59 lseek(3, 7168, SEEK_SET)       = 7168
    00:02:59 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:03:08 lseek(3, 15360, SEEK_SET)      = 15360
    00:03:08 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:03:17 lseek(3, 15360, SEEK_SET)      = 15360
    00:03:17 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:03:25 lseek(3, 31744, SEEK_SET)      = 31744
    00:03:25 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:03:34 lseek(3, 31744, SEEK_SET)      = 31744
    00:03:34 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:03:43 lseek(3, 64512, SEEK_SET)      = 64512
    00:03:43 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:03:52 lseek(3, 64512, SEEK_SET)      = 64512
    00:03:52 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:04:01 lseek(3, 0, SEEK_SET)          = 0
    00:04:01 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:04:10 lseek(3, 1024, SEEK_SET)       = 1024
    00:04:10 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:04:19 lseek(3, 1024, SEEK_SET)       = 1024
    00:04:19 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:04:28 lseek(3, 1024, SEEK_SET)       = 1024
    00:04:28 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:04:37 lseek(3, 1024, SEEK_SET)       = 1024
    00:04:37 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:04:46 lseek(3, 1024, SEEK_SET)       = 1024
    00:04:46 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:04:55 lseek(3, 8192, SEEK_SET)       = 8192
    00:04:55 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:05:04 lseek(3, 65536, SEEK_SET)      = 65536
    00:05:04 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:05:12 lseek(3, 65536, SEEK_SET)      = 65536
    00:05:12 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:05:20 lseek(3, 65536, SEEK_SET)      = 65536
    00:05:20 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:05:28 lseek(3, 8192, SEEK_SET)       = 8192
    00:05:28 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:05:37 lseek(3, 65536, SEEK_SET)      = 65536
    00:05:37 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:05:46 lseek(3, 32768, SEEK_SET)      = 32768
    00:05:46 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:05:54 lseek(3, 32768, SEEK_SET)      = 32768
    00:05:54 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:06:03 lseek(3, 32768, SEEK_SET)      = 32768
    00:06:03 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:06:12 lseek(3, 32768, SEEK_SET)      = 32768
    00:06:12 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:06:21 lseek(3, 32768, SEEK_SET)      = 32768
    00:06:21 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:06:30 lseek(3, 32768, SEEK_SET)      = 32768
    00:06:30 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:06:39 lseek(3, 32768, SEEK_SET)      = 32768
    00:06:39 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:06:48 lseek(3, 32768, SEEK_SET)      = 32768
    00:06:48 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:06:57 lseek(3, 32768, SEEK_SET)      = 32768
    00:06:57 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:07:06 lseek(3, 32768, SEEK_SET)      = 32768
    00:07:06 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:07:15 lseek(3, 131072, SEEK_SET)     = 131072
    00:07:15 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:07:23 lseek(3, 131072, SEEK_SET)     = 131072
    00:07:23 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:07:31 lseek(3, 135168, SEEK_SET)     = 135168
    00:07:31 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:07:39 lseek(3, 135168, SEEK_SET)     = 135168
    00:07:39 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:07:48 lseek(3, 139264, SEEK_SET)     = 139264
    00:07:48 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:07:56 lseek(3, 139264, SEEK_SET)     = 139264
    00:07:56 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:08:04 lseek(3, 393216, SEEK_SET)     = 393216
    00:08:04 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:08:12 lseek(3, 393216, SEEK_SET)     = 393216
    00:08:12 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:08:21 lseek(3, 397312, SEEK_SET)     = 397312
    00:08:21 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:08:29 lseek(3, 397312, SEEK_SET)     = 397312
    00:08:29 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:08:37 lseek(3, 401408, SEEK_SET)     = 401408
    00:08:37 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:08:46 lseek(3, 401408, SEEK_SET)     = 401408
    00:08:46 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:08:54 lseek(3, 1024, SEEK_SET)       = 1024
    00:08:54 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:09:03 lseek(3, 1024, SEEK_SET)       = 1024
    00:09:03 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:09:12 lseek(3, 1024, SEEK_SET)       = 1024
    00:09:12 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:09:21 lseek(3, 1024, SEEK_SET)       = 1024
    00:09:21 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:09:30 lseek(3, 0, SEEK_SET)          = 0
    00:09:30 read(3, 0xe11808, 1377)        = -1 EIO (Input/output error)
    00:09:39 lseek(3, 8192, SEEK_SET)       = 8192
    00:09:39 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:09:48 lseek(3, 512, SEEK_SET)        = 512
    00:09:48 read(3, 0xe11808, 512)         = -1 EIO (Input/output error)
    00:09:56 lseek(3, 2048, SEEK_SET)       = 2048
    00:09:56 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:10:05 lseek(3, 2048, SEEK_SET)       = 2048
    00:10:05 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:10:14 lseek(3, 0, SEEK_SET)          = 0
    00:10:14 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:10:23 lseek(3, 0, SEEK_SET)          = 0
    00:10:23 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:10:32 lseek(3, 0, SEEK_SET)          = 0
    00:10:32 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:10:41 lseek(3, 0, SEEK_SET)          = 0
    00:10:41 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:10:50 lseek(3, 1024, SEEK_SET)       = 1024
    00:10:50 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:10:59 lseek(3, 1024, SEEK_SET)       = 1024
    00:10:59 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:11:08 lseek(3, 1024, SEEK_SET)       = 1024
    00:11:08 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:11:17 lseek(3, 1024, SEEK_SET)       = 1024
    00:11:17 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:11:26 lseek(3, 1024, SEEK_SET)       = 1024
    00:11:26 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:11:34 lseek(3, 65536, SEEK_SET)      = 65536
    00:11:34 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:11:43 lseek(3, 65536, SEEK_SET)      = 65536
    00:11:43 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:11:51 lseek(3, 8192, SEEK_SET)       = 8192
    00:11:51 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:12:00 lseek(3, 1024, SEEK_SET)       = 1024
    00:12:00 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:12:09 lseek(3, 2048, SEEK_SET)       = 2048
    00:12:09 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:12:18 lseek(3, 4096, SEEK_SET)       = 4096
    00:12:18 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:12:27 lseek(3, 8192, SEEK_SET)       = 8192
    00:12:27 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:12:36 lseek(3, 0, SEEK_SET)          = 0
    00:12:36 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:12:45 lseek(3, 1024, SEEK_SET)       = 1024
    00:12:45 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:12:54 lseek(3, 0, SEEK_SET)          = 0
    00:12:54 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:13:03 lseek(3, 0, SEEK_SET)          = 0
    00:13:03 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:13:11 lseek(3, 0, SEEK_SET)          = 0
    00:13:11 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:13:20 lseek(3, 0, SEEK_SET)          = 0
    00:13:20 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:13:29 lseek(3, 4096, SEEK_SET)       = 4096
    00:13:29 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:13:38 lseek(3, 65536, SEEK_SET)      = 65536
    00:13:38 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:13:46 lseek(3, 0, SEEK_SET)          = 0
    00:13:46 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:13:55 lseek(3, 0, SEEK_SET)          = 0
    00:13:55 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:14:04 lseek(3, 2097152, SEEK_SET)    = 2097152
    00:14:04 read(3, 0xe11808, 1024)        = -1 EIO (Input/output error)
    00:14:13 close(3)                       = 0
    00:14:13 exit_group(2)                  = ?
    
    Pro každej typ FS, co to zná to v podstatě hledá, jestli tam je superblok a pod. Jenže vždy čtení selže. Otázkou je proč. Schválně jsem si napsal testovací prográmek, kterej čte bloky o velikostech 512B - 32k. U CD/DVD/BD je správná velikost bloku 2k, jenže tam je taky chyba. I u 32k (velikost ECC bloku) je chyba. MMC standard nám říká:
    When recorded, DVD+RW medium is ECC block readable. An intelligent controller may separate individual sector data from a decoded ECC block. Thus for the Host, DVD+RW media is 2 048 byte sector readable.
    Věřím v jednoho Boha.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.