Arduino device driver trouble? A simple fix!

Have you tried fixing an “Unknown device” error with your Arduino? If you’ve failed to resolve the issue, you likely saw a screen like this:

arduino_uno_driver

 

And maybe you even tried disabling driver signature enforcement as such:

disable_signature_enforcement

That is a very bad idea – and also unnecessary. Driver signature enforcement is a critical security feature, as a tremendous number of modern rootkits (and other malware) install drivers to do their dirty business.

If you look in the windows “C:\Windows\Inf\setupapi.dev.log” log file, you’ll see something like this:

>>> [Device Install (DiShowUpdateDevice) - USB\VID_2341&PID_0043\64131383231351F0E142]
>>> Section start 2014/04/13 17:32:12.346
 cmd: "C:\WINDOWS\system32\mmc.exe" C:\WINDOWS\system32\devmgmt.msc
 dvi: {DIF_UPDATEDRIVER_UI} 17:32:12.348
 dvi: Class installer: Enter 17:32:12.350
 dvi: Class installer: Exit
 dvi: Default installer: Enter 17:32:12.353
 dvi: Default installer: Exit
 dvi: {DIF_UPDATEDRIVER_UI - exit(0xe000020e)} 17:32:12.356
 ndv: {Update Driver Software Wizard for USB\VID_2341&PID_0043\64131383231351F0E142}
 sto: {Setup Import Driver Package: c:\program files (x86)\arduino\drivers\arduino.inf} 17:32:15.270
 inf: Provider: Arduino LLC (www.arduino.cc)
 inf: Class GUID: {4D36E978-E325-11CE-BFC1-08002BE10318}
 inf: Driver Version: 01/01/2013,1.0.0.0
 inf: Catalog File: arduino.cat
 sto: {Copy Driver Package: c:\program files (x86)\arduino\drivers\arduino.inf} 17:32:15.279
 sto: Driver Package = c:\program files (x86)\arduino\drivers\arduino.inf
 sto: Flags = 0x00000007
 sto: Destination = C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}
 sto: Copying driver package files to 'C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}'.
 flq: Copying 'c:\program files (x86)\arduino\drivers\arduino.cat' to 'C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}\arduino.cat'.
 flq: Copying 'c:\program files (x86)\arduino\drivers\arduino.inf' to 'C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}\arduino.inf'.
 sto: {Copy Driver Package: exit(0x00000000)} 17:32:15.333
 pol: {Driver package policy check} 17:32:15.358
 pol: {Driver package policy check - exit(0x00000000)} 17:32:15.358
 sto: {Stage Driver Package: C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}\arduino.inf} 17:32:15.359
 inf: {Query Configurability: C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}\arduino.inf} 17:32:15.378
 inf: Driver package 'arduino.inf' is configurable.
 inf: {Query Configurability: exit(0x00000000)} 17:32:15.396
 flq: Copying 'C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}\arduino.cat' to 'C:\WINDOWS\System32\DriverStore\Temp\{4a836504-b706-3e4d-ad38-07234e40f429}\arduino.cat'.
 flq: Copying 'C:\Users\ALEXAN~1\AppData\Local\Temp\{00b32666-ea3b-6d4c-9bff-6460ec92da53}\arduino.inf' to 'C:\WINDOWS\System32\DriverStore\Temp\{4a836504-b706-3e4d-ad38-07234e40f429}\arduino.inf'.
 sto: {DRIVERSTORE IMPORT VALIDATE} 17:32:15.407
 sig: {_VERIFY_FILE_SIGNATURE} 17:32:15.480
 sig: Key = arduino.inf
 sig: FilePath = C:\WINDOWS\System32\DriverStore\Temp\{4a836504-b706-3e4d-ad38-07234e40f429}\arduino.inf
 sig: Catalog = C:\WINDOWS\System32\DriverStore\Temp\{4a836504-b706-3e4d-ad38-07234e40f429}\arduino.cat
! sig: Verifying file against specific (valid) catalog failed! (0x800b0109)
! sig: Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
 sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 17:32:15.497
 sig: {_VERIFY_FILE_SIGNATURE} 17:32:15.497
 sig: Key = arduino.inf
 sig: FilePath = C:\WINDOWS\System32\DriverStore\Temp\{4a836504-b706-3e4d-ad38-07234e40f429}\arduino.inf
 sig: Catalog = C:\WINDOWS\System32\DriverStore\Temp\{4a836504-b706-3e4d-ad38-07234e40f429}\arduino.cat
! sig: Verifying file against specific Authenticode(tm) catalog failed! (0x800b0101)
! sig: Error 0x800b0101: A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.
 sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0101)} 17:32:15.501
!!! sig: An unexpected error occurred while validating driver package. Catalog = arduino.cat, Error = 0x800B0101
!!! sig: Driver package is considered unsigned, and Code Integrity is enforced.
!!! sig: Driver package failed signature validation. Error = 0xE0000247
 sto: {DRIVERSTORE IMPORT VALIDATE: exit(0xe0000247)} 17:32:15.503
!!! sig: Driver package failed signature verification. Error = 0xE0000247
!!! sto: Failed to import driver package into Driver Store. Error = 0xE0000247
 sto: {Stage Driver Package: exit(0xe0000247)} 17:32:15.505
 sto: {Setup Import Driver Package - exit (0xe0000247)} 17:32:15.509
!!! ndv: Driver package import failed for device.
!!! ndv: Error 0xe0000247: A problem was encountered while attempting to add the driver to the store.
 ndv: Installing NULL driver.
 dvi: {Plug and Play Service: Device Install for USB\VID_2341&PID_0043\64131383231351F0E142}
! ndv: Installing NULL driver!
 dvi: {DIF_ALLOW_INSTALL} 17:32:15.582
 dvi: No class installer for 'Unknown driver software package'
 dvi: No CoInstallers found
 dvi: Default installer: Enter 17:32:15.583
 dvi: Default installer: Exit
 dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 17:32:15.584
 dvi: {DIF_REGISTER_COINSTALLERS} 17:32:15.584
 dvi: No class installer for 'Unknown driver software package'
 dvi: Default installer: Enter 17:32:15.585
 dvi: Default installer: Exit
 dvi: {DIF_REGISTER_COINSTALLERS - exit(0x00000000)} 17:32:15.586
 dvi: {DIF_INSTALLDEVICE} 17:32:15.586
 dvi: No class installer for 'Unknown driver software package'
 dvi: No CoInstallers found
 dvi: Default installer: Enter 17:32:15.588
! dvi: Installing NULL driver!
 dvi: Install Null Driver: Removing device sub-tree. 17:32:15.590
 dvi: Install Null Driver: Removing device sub-tree completed. 17:32:15.594
 dvi: Install Null Driver: Restarting device. 17:32:15.598
 dvi: Install Null Driver: Restarting device completed. 17:32:15.602
 dvi: Install Device: Starting device. 17:32:15.603
 dvi: Install Device: Starting device completed. 17:32:15.734
 dvi: Default installer: Exit
 dvi: {DIF_INSTALLDEVICE - exit(0x00000000)} 17:32:15.735
 ump: {Plug and Play Service: Device Install exit(00000000)}

The lines with exclamation points indicate issues – here I’ll highlight a few of them:

! sig: Verifying file against specific (valid) catalog failed! (0x800b0109)
! sig: Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
! sig: Verifying file against specific Authenticode(tm) catalog failed! (0x800b0101)
! sig: Error 0x800b0101: A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.
!!! sig: An unexpected error occurred while validating driver package. Catalog = arduino.cat, Error = 0x800B0101
!!! sig: Driver package is considered unsigned, and Code Integrity is enforced.
!!! sig: Driver package failed signature validation. Error = 0xE0000247
!!! sig: Driver package failed signature verification. Error = 0xE0000247
!!! sto: Failed to import driver package into Driver Store. Error = 0xE0000247
!!! ndv: Driver package import failed for device.
!!! ndv: Error 0xe0000247: A problem was encountered while attempting to add the driver to the store.

Isn’t it great that Microsoft displays the least useful information in the GUI? The critical piece of information is: “A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file”, as seen in the “C:\Program Files (x86)\Arduino\drivers\arduino.cat” file:

duuuuhhhh

Ahh! They just forgot to resign their drivers!

Like most people probably (should) do, I went to upgrade to the latest version of the Arduino IDE. Once I got to the download page, I was perplexed to see:

Off to google I went! Searching to figure out what was up with my computer. But the Arduino developers have made some BAD UI choices.

the_latest_build

Read it carefully.

The most recent version of the Windows Arduino IDE is in fact 1.0.5-r2!  Yeah, they couldn’t just release a version  1.0.6 to keep up with signed drivers. Feel free to go ahead and install 1.0.5-r2.

 

feel_free

And you’re good to go 🙂

good_to_go

~ by Alexander Riccio on April 13, 2014.

5 Responses to “Arduino device driver trouble? A simple fix!”

  1. or you can just use https://codebender.cc and not have to worry about such things 🙂

    Like

  2. hello i have the same problem.
    ! sig: Verifying file against specific (valid) catalog failed! (0x800b0109)
    ! sig: Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
    sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 19:32:13.451
    sig: {_VERIFY_FILE_SIGNATURE} 19:32:13.452

    but i have installed the 1.0.6 version. still no luck.

    Like

  3. sig: Key = arduino uno rev3.inf
    sig: FilePath = C:\Windows\System32\DriverStore\FileRepository\arduino uno rev3.inf_x86_neutral_65ebaae8c82d2ccd\arduino uno rev3.inf
    sig: Catalog = C:\Windows\System32\DriverStore\FileRepository\arduino uno rev3.inf_x86_neutral_65ebaae8c82d2ccd\CDC_vista.cat
    ! sig: Verifying file against specific (valid) catalog failed! (0x00000057)
    ! sig: Error 87: The parameter is incorrect.
    ———
    get unknown cdc_vista.cat?? driver no work

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

 
Shelly L. Miller

I am an environmental engineer. I teach and research urban air pollution.

Lucky's Notes

Notes on math, coding, and other stuff

AbandonedNYC

Abandoned places and history in the five boroughs

Open Mind

KIDS' LIVES MATTER so let's stop climate change

I learned it. I share it.

A software engineering blog by György Balássy

Kitware Inc

Delivering Innovation

The Electric Chronicles: Power in Flux

If someone ever tells you that you don't need more power, walk away. You don't need that kind of negativity in your life.

Ted's Energy Tips

Practical tips for making your home more comfortable, efficient and safe

love n grace

feel happy, be happy

Recognition, Evaluation, Control

News and views from Diamond Environmental Ltd.

greg tinkers

Sharing the successes and disasters.

Sam Thursfield

Software and technology from Galicia, Spain

Cranraspberry Blog

Sharing the things I love

Biosingularity

Advances in biological systems.

The Embedded Code

Designing From Scratch

Sean Heelan's Blog

Software Exploitation and Optimisation

EduResearcher

Connecting Research, Policy, and Practice in Education

Popehat

A Group Complaint about Law, Liberty, and Leisure

warnersstellian.wordpress.com/

Home & Kitchen Appliance Blog

Bad Science Debunked

Debunking dangerous junk science found on the Internet. Non-scientist friendly!

4 gravitons

The trials and tribulations of four gravitons and a physicist

Strange Quark In London

A blog about physics, citylive and much procastination

The Lumber Room

"Consign them to dust and damp by way of preserving them"

In the Dark

A blog about the Universe, and all that surrounds it

andrea elizabeth

passionate - vibrant - ambitious

Probably Dance

I can program and like games

a totally unnecessary blog

paolo severini's waste of bandwidth

Musing Mortoray

Programming and Life

PJ Naughter's space

Musings on Native mode development on Windows using C++

  Bartosz Milewski's Programming Cafe

Category Theory, Haskell, Concurrency, C++

Brandon's Thoughts

Thoughts on programming

David Crocker's Verification Blog

Formal verification of C/C++ code for critical systems

10 Minute Astronomy

Stargazing for people who think they don't have time for stargazing.

One Dev Job

notes of an interactive developer

Chief Cloud Architect & DevSecOps SME, Enterprise Architect, Agile Coach, Digital Transformation Leader, Presales & Tech Evangelist, Development Manager, Agilist, Mentor, Speaker and Author

TOGAF Certified Enterprise Architect • AWS Cloud Certified Solutions Architect • Azure Cloud Certified Solutions Architect • Scrum Alliance: Certified Scrum Professional (CSP), Certified Agile Leadership I (CAL 1), CSM, ACSM • Kanban Management Professional (KMP I & KMP II), Certified Enterprise Agility Coach (CEAC) • SAFe: Certified SAFe Architect, SAFe DevOps, Release Train Engineer (RTE), SAFe Consultant (SPC) • Certified Less Practitioner (CLP), Six Sigma (Greenbelt), Training from the Back of the Room (TBR) Trainer • Certified Agile Coach & Facilitator: ICP-ACF & ICP-ACC

The Angry Technician

No, the Internet is not broken.

Kenny Kerr

Creator of C++/WinRT and the Windows crate for Rust • Engineer on the Windows team at Microsoft • Romans 1:16

IT affinity!

The Ultimate Question of Life, the Universe, and Everything is answered somewhere else. This is just about IT.

Eat/Play/Hate

The ramblings of a crazed mind

Molecular Musings

Development blog of the Molecule Engine

%d bloggers like this: