Názor k článku ReactOS: svobodná náhražka končících Windows XP od Lael Ophir - Zdravím, bohužel těch informací je málo, a upřímně HW...

  • Článek je starý, nové názory již nelze přidávat.
  • 26. 5. 2014 14:35

    Lael Ophir (neregistrovaný)

    Zdravím,

    bohužel těch informací je málo, a upřímně HW není úplně moje specialita. Windows podporují USB ACM. BTW existuje několik patchů, které by vás mohly zajímat:
    http://support.microsoft.com/kb/918365 (pro XP)
    https://technet.microsoft.com/library/security/ms13-081 (možné řešení toho BSOD)

    Popsaný problém může být způsobený jak problémem driveru ve Windows, tak problémem na straně microcontrolleru na druhé straně. To že něco funguje s jedním USB stackem zdaleka neznamená, že je to bezchybné. Například existuje (existovala) řada USB klíčenek s bezproblémovou funkcí ve Windows, které ale nešly na jiných OS. Typicky se chyba projevila po změně pořadí operací, nebo prostě Windows chyby dané implementace skously, na rozdíl od jiných OS. Na Linuxu koukněte na unusual_devs.h, je to dost poučné čtení.

    Pokud chcete problém opravdu řešit, na prvním místě bych se kouknul, jestli existují nějaké patche pro USB stack na straně microcontrolleru. Pak bych na zařízení pustil USB Compliance Test.
    http://www.usb.org/developers/tools/usb20_tools/
    http://compliance.usb.org/resources/GoldSuite%20Test%20Procedure.pdf

    Pokud testy projdou v pohodě, můžete odinstalovat ve Windows drivery zařízení (nejprve musíte nastavit environment variables devmgr_show_non­present_devices a devmgr_show_details na hodnotu 1), nainstalovat NetMon a zachytit USB frames.
    http://msdn.microsoft.com/en-us/library/windows/hardware/jj151572(v=vs.85).aspx

    Pokud se vám nepodaří najít zjevnou příčinu chyby, můžete se vrhnout na debugging kernelu. První přiblížení je tady:
    http://blogs.technet.com/b/askcore/archive/2008/11/01/how-to-debug-kernel-mode-blue-screen-crashes-for-beginners.aspx
    Z toho dostanete minimálně stack trace. Pak můžete nastavit breakpointy, kouknout na kód a frames, a zjišťovat jak dál. Zkusil bych debuggovat ve virtuálním stroji - ušetříte si spoustu restartů.

    Pokud ani tohle nepovede k výsledku, ČVUT má v rámci smlouvy se společností Microsoft zajištěnou podporu. Můžete se obrátit na ně. Je důležité jim sdělit, že je vaše zařízení USB compliant (pokud tedy opravdu je).

    Mimochodem nemusíte přece řešit všechno sám. Pokud působíte na ČVUT, máte po ruce lidi, kteří mají zkušenosti s psaním driverů a debuggováním kernelu. Namátkou Zdeněk Čulík, Filip Kroupa, možná Jan Kravar... a jistě přibyli nějací noví. Na MFF UK působí třeba Martin Děcký, jeden z autorů HelenOS. Já také nedělám všechno sám. Pokud mám k dispozici odborníky, který jsou v dané oblasti produktivnější, svěřím práci jim.