Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intel Chipset Device Software failing on X1 Yoga gen 7 #83

Open
swoonhusker1 opened this issue Mar 20, 2023 · 13 comments
Open

Intel Chipset Device Software failing on X1 Yoga gen 7 #83

swoonhusker1 opened this issue Mar 20, 2023 · 13 comments
Labels
bug Something isn't working

Comments

@swoonhusker1
Copy link

Version

1.5.3

Computer Model

21CES50100

Problem

Running a get-lsupdate finds the following:
n3aic04w "Intel Chipset Device Software - 10 (20H2 or Later)/11 (21H2 or Later)" 9/19/22 release date

When installing the failure reason is INSTALLER_EXITCODE

I'm attaching logs of the get-lsupdate -verbose -debug and also install-lsupdate.
install-lsupdate debug.log
get-lsupdate debug.log

Additional context

No response

@swoonhusker1 swoonhusker1 added the bug Something isn't working label Mar 20, 2023
@jantari
Copy link
Owner

jantari commented Mar 20, 2023

It appears that driver might already be installed and is falsely returned by LSUClient as an available update.

If you have Lenovo System Update installed too, does it show the same driver as an available update or no?

@swoonhusker1
Copy link
Author

When I check Lenovo system update it does not show any available updates. Sorry I didn't include that before

@jantari
Copy link
Owner

jantari commented Mar 22, 2023

Thanks, so the cause for the driver showing up again is in here:

VERBOSE: Detecting install status of package: n3aic04w (Intel Chipset Device Software - 10 (20H2 or Later)/11 (21H2 or Later))
DEBUG: - |> Node: DetectInstall
DEBUG: - - |> Node: And
DEBUG: - - - |> Node: _Driver
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&SUBSYS_22E617AA&REV_01' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&CC_118000' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&CC_1180' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&SUBSYS_22E617AA&REV_02' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&CC_060400' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&CC_0604' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&SUBSYS_22E617AA&REV_02' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&CC_060000' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&CC_0600' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched devices: 0 exact, 3 wildcard
DEBUG: - - - Testing PCI\VEN_8086&DEV_467D&SUBSYS_22E617AA&REV_01\3&11583659&0&50
DEBUG: - - - Device 'Performance Monitor' DriverRank is 0x00FF2001
VERBOSE: Device 'Performance Monitor' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.0.19041.1202, Expected: 10.1.45.4^]
DEBUG: - - - Failed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_464D&SUBSYS_22E617AA&REV_02\3&11583659&0&30
DEBUG: - - - Device 'Intel(R) PEG60 - 464D' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) PEG60 - 464D' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.45.4, Expected: 10.1.45.4^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_4621&SUBSYS_22E617AA&REV_02\3&11583659&0&00
DEBUG: - - - Device 'Intel(R) Host Bridge/DRAM Registers - 4621' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) Host Bridge/DRAM Registers - 4621' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.45.4, Expected: 10.1.45.4^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - < Returning 0 from node _Driver
DEBUG: - - - |> Node: _Driver
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A3&SUBSYS_22E617AA&REV_01' with required 'PCI\VEN_8086&DEV_51A3' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A3&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_51A3' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A3&CC_0C0500' with required 'PCI\VEN_8086&DEV_51A3' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A3&CC_0C05' with required 'PCI\VEN_8086&DEV_51A3' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51B8&SUBSYS_22E617AA&REV_01' with required 'PCI\VEN_8086&DEV_51B8' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51B8&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_51B8' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51B8&CC_060400' with required 'PCI\VEN_8086&DEV_51B8' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51B8&CC_0604' with required 'PCI\VEN_8086&DEV_51B8' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51EF&SUBSYS_22E617AA&REV_01' with required 'PCI\VEN_8086&DEV_51EF' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51EF&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_51EF' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51EF&CC_050000' with required 'PCI\VEN_8086&DEV_51EF' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51EF&CC_0500' with required 'PCI\VEN_8086&DEV_51EF' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A4&SUBSYS_22E617AA&REV_01' with required 'PCI\VEN_8086&DEV_51A4' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A4&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_51A4' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A4&CC_0C8000' with required 'PCI\VEN_8086&DEV_51A4' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_51A4&CC_0C80' with required 'PCI\VEN_8086&DEV_51A4' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_5182&SUBSYS_22E617AA&REV_01' with required 'PCI\VEN_8086&DEV_5182' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_5182&SUBSYS_22E617AA' with required 'PCI\VEN_8086&DEV_5182' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_5182&CC_060100' with required 'PCI\VEN_8086&DEV_5182' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_5182&CC_0601' with required 'PCI\VEN_8086&DEV_5182' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched devices: 0 exact, 5 wildcard
DEBUG: - - - Testing PCI\VEN_8086&DEV_51A3&SUBSYS_22E617AA&REV_01\3&11583659&0&FC
DEBUG: - - - Device 'Intel(R) SMBus - 51A3' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) SMBus - 51A3' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.36.6, Expected: 10.1.36.6^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_51B8&SUBSYS_22E617AA&REV_01\3&11583659&0&E0
DEBUG: - - - Device 'Intel(R) PCI Express Root Port #1 - 51B8' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) PCI Express Root Port #1 - 51B8' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.36.6, Expected: 10.1.36.6^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_51EF&SUBSYS_22E617AA&REV_01\3&11583659&0&A2
DEBUG: - - - Device 'Intel(R) Shared SRAM - 51EF' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) Shared SRAM - 51EF' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.36.6, Expected: 10.1.36.6^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_51A4&SUBSYS_22E617AA&REV_01\3&11583659&0&FD
DEBUG: - - - Device 'Intel(R) SPI (flash) Controller - 51A4' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) SPI (flash) Controller - 51A4' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.36.6, Expected: 10.1.36.6^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_5182&SUBSYS_22E617AA&REV_01\3&11583659&0&F8
DEBUG: - - - Device 'Intel(R) LPC Controller - 5182' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) LPC Controller - 5182' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.36.6, Expected: 10.1.36.6^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - < Returning 1 from node _Driver
DEBUG: - - Tree was AND: Results: 0 1
DEBUG: - - < Returning 0 from node And
DEBUG: - Tree was OR: Results: 0
DEBUG: - < Returning 0 from node DetectInstall

The first _Driver test fails because the device PCI\VEN_8086&DEV_467D doesn't use this driver. It's one of three device IDs Lenovo tests for and the other two do pass the test.

Currently I require all hardware IDs listed in a _Driver test to pass which is why this package comes back as not installed yet. I'm going to have to take some time to look into this case and if the behavior can be tweaked to match System Update but without regressing on another end.

@swoonhusker1
Copy link
Author

Okay, thanks for looking at it Jantari.

jantari pushed a commit that referenced this issue Mar 27, 2023
Up until now I've always required that all matched / found HardwareIDs
in a _Driver test pass their tests for the overall _Driver test to pass,
but #83 shows this might not be correct. This adds a test variable to
easily compare results with the old vs this approach to test regressions
@jantari
Copy link
Owner

jantari commented Mar 30, 2023

I have run some comparisons of the results when passing _Driver tests if just one found device passes the test vs all like it is currently. Most of the time it does not make a difference but I found a system where it did:

Results with current behavior - all matched devices have to pass tests
AUSFÜHRLICH: Detecting install status of package: r02ia10w (Intel(R) Chipset Device Software - 10 [64])
DEBUG: - |> Node: DetectInstall
DEBUG: - - |> Node: _Driver
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&SUBSYS_505317AA&REV_21' with required 'PCI\VEN_8086&DEV_9D48' 
(WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&SUBSYS_505317AA' with required 'PCI\VEN_8086&DEV_9D48' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&CC_060100' with required 'PCI\VEN_8086&DEV_9D48' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&CC_0601' with required 'PCI\VEN_8086&DEV_9D48' (WILDCARD)
DEBUG: - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&SUBSYS_505317AA&REV_21' with required 'PCI\VEN_8086&DEV_9D23' 
(WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&SUBSYS_505317AA' with required 'PCI\VEN_8086&DEV_9D23' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&CC_0C0500' with required 'PCI\VEN_8086&DEV_9D23' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&CC_0C05' with required 'PCI\VEN_8086&DEV_9D23' (WILDCARD)
DEBUG: - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - Matched devices: 0 exact, 2 wildcard
DEBUG: - - Testing PCI\VEN_8086&DEV_9D48&SUBSYS_505317AA&REV_21\3&21436425&0&F8
DEBUG: - - Device 'Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D48' DriverRank is 0x00FF2001
AUSFÜHRLICH: Device 'Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D48' may currently be using a
 generic or inbox driver
DEBUG: - - Trying to match driver based on Version
DEBUG: - - [Got: 10.1.1.9, Expected: 10.1.5.2^]
DEBUG: - - Failed DriverVersion test
DEBUG: - - Testing PCI\VEN_8086&DEV_9D23&SUBSYS_505317AA&REV_21\3&21436425&0&FC
DEBUG: - - Device 'Synaptics SMBus Driver' DriverRank is 0x00800003
DEBUG: - - Trying to match driver based on Version
DEBUG: - - [Got: 19.3.4.228, Expected: 10.1.5.2^]
DEBUG: - - Passed DriverVersion test
DEBUG: - - < Returning 0 from node _Driver
DEBUG: - Tree was OR: Results: 0
DEBUG: - < Returning 0 from node DetectInstall
Results with tested behavior - only one matched device has to pass
AUSFÜHRLICH: Detecting install status of package: r02ia10w (Intel(R) Chipset Device Software - 10 [64])
DEBUG: - |> Node: DetectInstall
DEBUG: - - |> Node: _Driver
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&SUBSYS_505317AA&REV_21' with required 'PCI\VEN_8086&DEV_9D48' 
(WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&SUBSYS_505317AA' with required 'PCI\VEN_8086&DEV_9D48' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&CC_060100' with required 'PCI\VEN_8086&DEV_9D48' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D48&CC_0601' with required 'PCI\VEN_8086&DEV_9D48' (WILDCARD)
DEBUG: - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&SUBSYS_505317AA&REV_21' with required 'PCI\VEN_8086&DEV_9D23' 
(WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&SUBSYS_505317AA' with required 'PCI\VEN_8086&DEV_9D23' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&CC_0C0500' with required 'PCI\VEN_8086&DEV_9D23' (WILDCARD)
DEBUG: - - Matched device 'PCI\VEN_8086&DEV_9D23&CC_0C05' with required 'PCI\VEN_8086&DEV_9D23' (WILDCARD)
DEBUG: - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - Matched devices: 0 exact, 2 wildcard
DEBUG: - - Testing PCI\VEN_8086&DEV_9D48&SUBSYS_505317AA&REV_21\3&21436425&0&F8
DEBUG: - - Device 'Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D48' DriverRank is 0x00FF2001
AUSFÜHRLICH: Device 'Intel(R) 100 Series Chipset Family LPC Controller/eSPI Controller - 9D48' may currently be using a
 generic or inbox driver
DEBUG: - - Trying to match driver based on Version
DEBUG: - - [Got: 10.1.1.9, Expected: 10.1.5.2^]
DEBUG: - - Failed DriverVersion test
DEBUG: - - Testing PCI\VEN_8086&DEV_9D23&SUBSYS_505317AA&REV_21\3&21436425&0&FC
DEBUG: - - Device 'Synaptics SMBus Driver' DriverRank is 0x00800003
DEBUG: - - Trying to match driver based on Version
DEBUG: - - [Got: 19.3.4.228, Expected: 10.1.5.2^]
DEBUG: - - Passed DriverVersion test
DEBUG: - - < Returning 1 from node _Driver
DEBUG: - Tree was OR: Results: 1
DEBUG: - < Returning 1 from node DetectInstall

This is also an Intel Chipset Driver package but a different one. This was on a Lenovo 20FN (T460). In this example I don't think the IsInstalled test should've passed. The package version is 10.1.5.2 which is clearly an update to the 10.1.1.9 used by the first device, and the Synaptics driver being used for an Intel device feels more like another problem than intentional.

But, another idea is that System Update might be failing what it considers inbox drivers. The current driver version in your log is 10.0.19041.1202 which is most likely a windows inbox driver as it corresponds to a Windows version. I can do some more tests around that.

jantari pushed a commit that referenced this issue Mar 30, 2023
This reverts commit fbd2984.

I should've created a separate branch for experiments like this, but it
was most likely not the right solution anyway. Will try more on other
branches.
@github-staff github-staff deleted a comment from vishalgupta1987 Sep 3, 2024
@hanbongers
Copy link

I'm experiencing a similar issue for Intel Chipset Device Software n3aic05w.
Lenovo System Update doesn't show any needed updates.
This system is a X1 Carbon 10th Gen (Type 21CB) running Windows 11 23H2.

Did you find a workaround for this perhaps?

Thank your for this great module!

@jantari
Copy link
Owner

jantari commented Nov 23, 2024

Hi, please run Get-LSUpdate -Verbose -Debug and post the output. This sort of issue is hard to reproduce so we need to get as much information from the affected system as possible to understand it.

@hanbongers
Copy link

Hi, I've added the output. Thanks for looking into this!

lsu-debug.txt

@jantari
Copy link
Owner

jantari commented Nov 24, 2024

@hanbongers thank you very much, and since you said you also checked using Lenovo System Update could you upload its logs too? There should be .log files inside C:\ProgramData\Lenovo\SystemUpdate\Logs. Run another scan with System Update and then try to sort the log files by date modified to find the latest one(s). That would be very helpful thanks.

@hanbongers
Copy link

@jantari thank you, I've added the .log file of a fresh run of System Update.
tvsu_241124190406.log

@jantari
Copy link
Owner

jantari commented Nov 24, 2024

@hanbongers Thanks. This is indeed the exact same issue as @swoonhusker1 has reported.

Basically, LSUClient and Lenovo System Update logic seems to differ when evaluating the DetectInstall rules that test whether this update is already installed or is still needed. The checks are defined by Lenovo in the packages' XML here: https://download.lenovo.com/pccbbs/mobiles/n3aic05w_2_.xml

Lenovo DetectInstall XML for package n3aic05w
<DetectInstall>
<And>
<_Driver>
<HardwareID>PCI\VEN_8086&DEV_4601</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4602</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4609</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_460A</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_460D</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4610</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4614</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4617</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4618</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4619</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_461A</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_461B</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_461C</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4621</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4622</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4623</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4629</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_462D</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4630</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4633</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4637</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_463B</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_463D</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4640</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4641</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4644</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4648</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4649</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_464C</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_464D</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4650</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4653</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4660</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4663</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4664</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4668</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_466B</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_466C</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4670</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_467D</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4603</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_4643</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_466E</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_463F</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_462F</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_461F</HardwareID>
<Version>10.1.45.9^</Version>
</_Driver>
<_Driver>
<HardwareID>PCI\VEN_8086&DEV_5180</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5181</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5182</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5183</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5184</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5185</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5186</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5187</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5188</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5189</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_518A</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_518B</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_518C</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_518D</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_518E</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_518F</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5190</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5191</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5192</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5193</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5194</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5195</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5196</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5197</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5198</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_5199</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_519A</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_519B</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_519C</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_519D</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_519E</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_519F</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51A0</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51A1</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51A3</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51A4</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51AF</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B0</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B1</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B2</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B3</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B4</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B5</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B6</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B7</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B8</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51B9</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51BA</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51BB</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51BC</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51BD</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51BE</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51BF</HardwareID>
<HardwareID>PCI\VEN_8086&DEV_51EF</HardwareID>
<Version>10.1.36.7^</Version>
</_Driver>
</And>
</DetectInstall>

LSUClient goes through it here:

LSUClient log excerpt
VERBOSE: Detecting install status of package: n3aic05w (Intel Chipset Device Software - 10 (20H2 or Later)/11 (21H2 or Later))
DEBUG: - |> Node: DetectInstall
DEBUG: - - |> Node: And
DEBUG: - - - |> Node: _Driver
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&SUBSYS_22E717AA&REV_01' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&SUBSYS_22E717AA' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&CC_118000' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_467D&CC_1180' with required 'PCI\VEN_8086&DEV_467D' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&SUBSYS_22E717AA&REV_02' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&SUBSYS_22E717AA' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&CC_060400' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_464D&CC_0604' with required 'PCI\VEN_8086&DEV_464D' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&SUBSYS_22E717AA&REV_02' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&SUBSYS_22E717AA' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&CC_060000' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_4621&CC_0600' with required 'PCI\VEN_8086&DEV_4621' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_462F&SUBSYS_22E717AA&REV_02' with required 'PCI\VEN_8086&DEV_462F' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_462F&SUBSYS_22E717AA' with required 'PCI\VEN_8086&DEV_462F' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_462F&CC_060400' with required 'PCI\VEN_8086&DEV_462F' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_462F&CC_0604' with required 'PCI\VEN_8086&DEV_462F' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_466E&SUBSYS_22E717AA&REV_02' with required 'PCI\VEN_8086&DEV_466E' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_466E&SUBSYS_22E717AA' with required 'PCI\VEN_8086&DEV_466E' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_466E&CC_060400' with required 'PCI\VEN_8086&DEV_466E' (WILDCARD)
DEBUG: - - - Matched device 'PCI\VEN_8086&DEV_466E&CC_0604' with required 'PCI\VEN_8086&DEV_466E' (WILDCARD)
DEBUG: - - - Adding device - HardwareIDs matched only when using wildcards
DEBUG: - - - Matched devices: 0 exact, 5 wildcard
DEBUG: - - - Testing PCI\VEN_8086&DEV_467D&SUBSYS_22E717AA&REV_01\3&11583659&0&50
DEBUG: - - - Device 'Stuurprogramma voor Intel(R) Platform Monitoring Technology' DriverRank is 0x00FF2001
VERBOSE: Device 'Stuurprogramma voor Intel(R) Platform Monitoring Technology' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.0.22621.4391, Expected: 10.1.45.9^]
DEBUG: - - - Failed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_464D&SUBSYS_22E717AA&REV_02\3&11583659&0&30
DEBUG: - - - Device 'Intel(R) PEG60 - 464D' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) PEG60 - 464D' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.45.9, Expected: 10.1.45.9^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_4621&SUBSYS_22E717AA&REV_02\3&11583659&0&00
DEBUG: - - - Device 'Intel(R) Host Bridge/DRAM Registers - 4621' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) Host Bridge/DRAM Registers - 4621' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.45.9, Expected: 10.1.45.9^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_462F&SUBSYS_22E717AA&REV_02\3&11583659&0&3A
DEBUG: - - - Device 'Intel(R) TypeC PCIe - 462F' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) TypeC PCIe - 462F' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.45.9, Expected: 10.1.45.9^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - Testing PCI\VEN_8086&DEV_466E&SUBSYS_22E717AA&REV_02\3&11583659&0&38
DEBUG: - - - Device 'Intel(R) TypeC PCIe - 466E' DriverRank is 0x00FF2001
VERBOSE: Device 'Intel(R) TypeC PCIe - 466E' may currently be using a generic or inbox driver
DEBUG: - - - Trying to match driver based on Version
DEBUG: - - - [Got: 10.1.45.9, Expected: 10.1.45.9^]
DEBUG: - - - Passed DriverVersion test
DEBUG: - - - < Returning 0 from node _Driver
DEBUG: - - - Stopping AND evaluation early
DEBUG: - - Tree was AND: Results: 0
DEBUG: - - < Returning 0 from node And
DEBUG: - Tree was OR: Results: 0
DEBUG: - < Returning 0 from node DetectInstall

and concludes that the driver is not yet installed (DetectInstall -> 0 (False)) because the device PCI\VEN_8086&DEV_467D, which is listed in Lenovos XML definition, does not have it.

System Update on the other hand:

System Update log excerpt
Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.GUR2.EvaluateDetectInstall()
	Message: Evaluating rule

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.RuleEvaluator.EvaluateBoolean(IRule booleanElement, Boolean isForSeverityOverride, Boolean& isInboxDriver)
	Message: Begin And ID: 1

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.LevelVersionParser.parseVersion(String pattern, String val)
	Message: Pattern Received: '10.1.45.9^', Value Received: '10.1.45.9'

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.LevelVersionParser.parseVersion(String pattern, String val)
	Message: Pattern: '10.1.45.9^', Value: '10.1.45.9' Compare Result: True

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.EgatherDetectionMethods.EvalDriverVersionByHardwareIDByVersion(String[] hardwareId, String pattern, String date, Boolean& isInboxDriver)
	Message: HardwareId Value to Evaluate: System.String[], Validation xmlversion: 10.1.45.9^, getVersion: 10.1.45.9, Validation xmldate: , getdate: 19680718, Result: True

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.RuleEvaluator.EvaluateDetectionMethod(IRule rule, Boolean isForSeverityOverride, Boolean& isInboxDriver)
	Message: Detection method evaluated: _Driver Result-> True

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.LevelVersionParser.parseVersion(String pattern, String val)
	Message: Pattern Received: '10.1.36.7^', Value Received: '10.1.36.7'

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.LevelVersionParser.parseVersion(String pattern, String val)
	Message: Pattern: '10.1.36.7^', Value: '10.1.36.7' Compare Result: True

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.EgatherDetectionMethods.EvalDriverVersionByHardwareIDByVersion(String[] hardwareId, String pattern, String date, Boolean& isInboxDriver)
	Message: HardwareId Value to Evaluate: System.String[], Validation xmlversion: 10.1.36.7^, getVersion: 10.1.36.7, Validation xmldate: , getdate: 19680718, Result: True

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.RuleEvaluator.EvaluateDetectionMethod(IRule rule, Boolean isForSeverityOverride, Boolean& isInboxDriver)
	Message: Detection method evaluated: _Driver Result-> True

Info	2024-11-24 , 07:04:34
	bij Tvsu.Gur.GUR2.EvaluateDetectInstall()
	Message: Rule result: True

doesn't log enough details about its check process to really know what's going on, but we can tell it passes the DetectInstall check, hence concluding that the driver is already installed.


We know from LSUClients log that your computer has 5 of the devices (Hardware IDs) that Lenovo wants to check in their XML, we can also see that 4 out of 5 do use a driver that matches their test criteria - but one doesn't. I'm afraid that changing LSUClients logic on when to pass these _Driver tests will have adverse effects on other packages. Clearly if I change my logic to pass the overall test if just one/any matches device passes the test, this issue would be resolved. But gsenerally speaking, my current logic seems to be very very close to System Update - identical results in the vast majority of cases. Issues like this one are very rare (you're only the second person to report it in 5 years). So I'm hesitant to change something so fundamental in the _Driver test logic, but at the same time I don't want to ignore this issue. I will have to run a laaaaarge set of A/B tests to ensure that change wouldn't cause other/more issues with other packages on other systems, which is why there's been no progress here.

@hanbongers
Copy link

@jantari thanks! Would it help if I provide more cases of differences between LSUClient and LSU?

@jantari
Copy link
Owner

jantari commented Nov 25, 2024

If you have more cases, yes that would be very helpful. Please provide the computer model, the difference in results and the -Verbose -Debug logs from Get-LSUpdate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants