torstai 9. helmikuuta 2017

Laitteistossa olevan ongelman selvittelyä (Code 39)

Jokin aika sitten vastaani tuli ongelma jossa web-kamera lakkasi yllättäen toimimasta. Tarkoituksena oli liittyä Skype kokoukseen mutta laitteeseen liitetty web-kamera ei vain suostunut toimimaan…Skype ei suostunut tunnistamaan kameraa. Vilkaisu laitehallintaan näytti web-kameran osalta virhettä 39 joka tarkoittaa Microsoftin mukaan tilannetta jossa laiteistoajuria ei voida ladata. Todennäköisesti se on jostain syystä vioittunut/korruptoitunut. (Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)) Laitehallinnan antamien virhekoodien selitykset voi lukea täältä.

image

Windowsissa voi nykyisin kokeilla ratkaista laitteisiin liittyviä ongelmia varsin mukavasti toimivalla Vianmääritys ohjelmalla. Tällä kertaa se ei kuitenkaan tepsinyt.

ongelmanselvitys

Edellä mainittu ohjelma yritti ratkaista web-kameraan liittyvän ongelman poistamalla ongelmallisen laitteen laitteisto-ajurin käytöstä. Tämän jälkeen se asennetaan automaattisesti uudelleen driver storesta. Tämä ei kuitenkaan ratkaissut ongelmaa. Tästä päätelleen ongelman juurisyy oli todennäköisesti driver storessa olevassa ajuripaketissa. Driver store on käytännössä kansio sijainnissa %SYSTEMDRIVE%\Windows\System32\DriverStore. Kansioon kopioidaan käyttöjärjestelmän asentamisen jälkeen kaikki Windowsin inbox laiteajurit (eli laiteajurit jotka tulevat Windowsin mukana) sekä muut luotettavat 3-osapuolen laiteajurit jotka otetaan muulla tavoin käyttöön käyttöjärjestelmän asennuksen päätyttyä. Tilanteessa jossa driver storessa oleva laiteajuri on valmiiksi viallinen, tulee viallinen laiteajuri asennetuksi yhä uudelleen. Tämä johtuu siitä että jos Windows sattuu löytämään driver storesta laitteelle sopivan laiteajurin se otetaan automaattisesti käyttöön…tällä kertaa driver storessa oleva ajuripaketti vain oli vioittunut.

Laitteistoajuri tuli siis poistaa driver storesta. Tämä aiheuttaa tilanteen jossa laiteajuria ryhdytään ensin etsimään DevicePath rekisterimerkinnän osoittamasta sijainnista. (HKLM\Software\Microsoft\Wndows\CurrentVersion) joka oletusarvoisesti on C:\Windows\INF kansio. Jos ajuria ei löydy täältäkään sitä etsitään Windows Updatesta.

Ennen poistamista tulee selvittää sen .inf tiedoston nimi jota ongelmallinen laite käyttää. Inf- tiedosto pitää sisällään siihen liittyvän laitteistoajurin sisältämät tiedosto, kansiot ja rekisterimerkinnät ja muun olennaisen tiedon. Tiedon voi selvittää laitehallinasta käsin siirtymällä ongelmallisen laitteen ominaisuudet ikkunaan Tiedot välilehdelle. Tiedot välilehdellä Avataan Ominaisuus pudotusvalikosta INF-nimi kohta. Arvo kentästä voidaan nyt lukea inf-tiedoston nimi.

image

Asian voisi periaatteessa selvittää myös järjestelmänvalvojan komentokehotteesta pnputil /enum-drivers komennolla mutta asian selvittäminen vaatii hieman enemmän tutkimista.

Driver storesta laitteistoajurin voi .inf tiedoston nimen selvittyä poistaa  pnputil /delete-driver ajuri.inf /force komennolla. On huomattava että komento tulee antaa järjestelmänvalvojan komentokehotteesta käsin

image

Myös PowerShelliä voisi käyttää inf tiedoston nimen selvittämiseen. Pnputil komennosta poiketen PowerShellissä on helppo suodattaa tuloste laiteajurin valmistajan mukaan.

image

Helpoin tapa selvittää laitteistoajurin poistamiseen tarvittava tieto lienee kuitenkin laitehallintaikkuna.

Kun poistamiseen tarvittavan .inf tiedoston nimi on selvillä, voidaan viallinen laitteistoajuri poistaa driver storesta pnputil /delete-driver tiedosto.inf /force komennon avulla.

Ennen komennon suorittamista laitteen voi kytkeä irti (jos tämä on mahdollista)

image

Komennon antamisen jälkeen ongelmallisen laitteen laitteistoajurin päivitetään laitehallinasta käsin (Search automatically for updated software) jolloin Windows etsii laitteistoajuria ensin driver storesta. Ennen tätä on tietenkin laite kytkettävä takaisin päätelaitteeseen.

image

Koska laiteistoajuria ei löydy driver storesta, haetaan se Windows Updatesta josta se otetaan käyttöön (olettaen että laitevalmistaja on sen sinne tarjonnut). Tällä kertaa käytössä on toimiva ajuri.

image


Ei kommentteja:

Lähetä kommentti