02-29-2012 06:20 AM - edited 02-29-2012 08:18 AM
Preface: Recently purchased a G510 keyboard, however I was extremely frustrated that it refused to work on Windows 7 x64. Nothing listed on this board (or several other places) helped; no matter what it wasn't functioning. It showed in Device Manager as G510 Gaming Keyboard under Other Devices, but with no drivers installed. Tried updating the driver till I was blue in the face, no success. Installing several different versions of both the regular and legacy Logitech Gaming softwares did not help. On the other hand, I knew it was not an incompatible BIOS, EHCI handoff, or any of the other speculations listed here; I have a dual-boot config with Vista x86 and the G510 installed/loaded drivers with no issues whatsoever on Vista x86.
After reading more on Win7 drivers and driver installation, driver signature enforcement on Win7 x64, and the like than I hope to ever need to know again, I was led to the answer through the setupapi.dev.log file: Win7 wasn't finding a match for the G510 by either name or hardware ID in the preloaded drivers or in any other driver file.
I ended up having to edit the .INF files for USB.INF, INPUT.INF, KEYBOARD.INF and HIDSERV.INF to manually insert definitions for the G510. I copied out the folders Win7 x64 currently uses for each of these, copied the respective .INF files and then inserted the following in the copies:
1. USB.INF (folder included USB.INF, USB.PNF, USBCCGP.SYS, USBHUB.SYS):
In the renamed USB.INF add at the end of the [Manufacturer] section:
Add a new section before [GenericHub.Section.NTamd64]:
And at the end of the [Strings] section add:
Logi.Mfg="Logitech, Inc." USB\VID_046D&PID_C22D.DeviceDesc="G510 Gaming Keyboard"
2. INPUT.INF (folder included INPUT.INF, INPUT.PNF, HIDCLASS.SYS, HIDPARSE.SYS, HIDUSB.INF):
In the renamed INPUT.INF add to the [Manufacturer] section in the block for keyboards:
Add this section before all the directives for mice:
, USB\VID_046D&PID_C22D&MI_00 %USB\VID_046D&PID_C22D&MI_01.DeviceDesc%=HID_Inst, , USB\VID_046D&PID_C22D&MI_01
And in the [Strings] section add at the end of the list of manufacturers:
LogiKMfg = "Logitech, Inc."
and at the end of the list of keyboard device IDs:
USB\VID_046D&PID_C22D&MI_00.DeviceDesc="G510 Gaming Keyboard" USB_VID_046D&PID_C22D&MI_01.DeviceDesc="G510 Gaming Keyboard"
3. KEYBOARD.INF (folder included KEYBOARD.INF, KEYBOARD.PNF, i8042PRT.SYS, KBDCLASS.SYS and KBDHID.SYS):
In the renamed KEYBOARD.INF add at the end of the [Manufacturer] section:
Add a new section just before the [STANDARD_Inst] section:
Add in the [Strings] section at the end of the list of manufacturers:
LOGI = "Logitech, Inc."
and at the end of the list of devices:
HID\VID_046D&PID_C22D&MI_00.DeviceDesc = "G510 Gaming Keyboard"
4. HIDSERV.INF (folder included HIDSERV.INF and HIDSERV.PNF):
In the renamed HIDSERV.INF add at the end of the [Manufacturer] section:
Add a new section, I put it before [Destination.Dirs]:
In the [Strings] section, add at the end of the list of manufacturers:
and at the end of the list of devices:
HID\VID_046D&PID_C22D&MI_01&Col01.DeviceDesc="G510 Gaming Keyboard"
(Note: tried to put in the modded .INFs in their entirety, but the character-per-post limit won't allow it.)
Next, either use GPEDIT.MSC to set allowing adminstrators to install devices, or use REGEDIT to add these:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Wi
ndows\DeviceInstall\Restrictions] "AllowAdminInstall"=dword:00000001 "DenyUnspecified"=dword:00000000
Next, reboot BUT with driver signing enforcement disabled from the Win7 boot menu. Log in using an account with administrator privileges. Navigate to each folder with your modified .INF files, open an administrator command prompt, and run "pnputil -a " [your renamed .INF file] to stage the modified drivers. To the message about unsigned driver files, respond to install it anyway.
(Note: at this point I also staged everything from the Drivers folder from the LGS820_X64.EXE installation ... I decided it couldn't hurt.)
Now, shut down, unplug the other keyboard and restart Win7 x64 again with driver signing enforcement disabled. Log in using the admin account again. NOW after a few seconds, the G510 is recognized by Win7 x64 and actually works!! The LCD showed "G510" instead of blank, the keys typed, everything. Reinstalled LGS820_X64.EXE, it sees the G510, everything works like a charm.
Sanity check: I rebooted again and it still works, even without driver signing enforcement disabled.
Sorry for going on at such length, but hopefully all these particulars will help someone else. And Logitech, you should really look at incorporating all this into the X64 Gaming Software installers, this likely affects more people than you know.
02-29-2012 09:55 AM
Wow! This is way over my head, but it looks like you did your homework and/or have a programing background. When I have time to figure out what it is you did here, I might try this with my G-15, as I am having a similar issue with this.
Please don't take my post as sarcasim or negativity, I am impressed with what you typed up here and want to try it. I just need to understand what you did and how to go about it...
03-01-2012 04:24 AM - edited 03-01-2012 04:31 AM
No, I did a LOT of homework and had several false starts along the way! To make a long story short, Win7 x64 needs to recognize the G510 in several different ways for it to work correctly (it's not only a keyboard, it's also a composite device, an input device AND a human interface device ... busy little creature!). At least one of the recognitions was failing, the solution is to EXPRESSLY tell Win7.
Agreed that the original post may be hard to follow; the 20k char post limit forbade me from posting the whole thing. But, I put together a ZIP package with everything needed and a readme.txt with directions:
03-01-2012 05:50 PM
Possibly ... Try this:
1. Look in Windows Device Manager; right-click your G15 and under Properties / Details find its hardware ID. It will be like USB\VID_046D&PID_(something).
2. In your C:\Windows\Inf folder,open the file setupapi.dev.log and search for the hardware ID string you found; this will give you some idea of why the G15 is delaying loading. IF it looks like Windows is dithering around trying to decide which driver to load, then something like what I went through might speed it up. Or it might be something else entirely ...
03-02-2012 08:40 AM
Strange, I'm in Device Manager and my G-15 is no where to be found.. The Logitech Software (ver. 8.20.74) shows it and DM don't. Maybe this is the issue? but I installed the drivers for it....
03-03-2012 02:03 PM
Sorry ... if it's like the G510, look under Keyboards for "HID Keyboard Device." You may have more than one ... after installing the LGS I have two. The one you want is not HID\VID_046D&PID_C232 (or, look at the hardware ID for "Logitech Gaming Virtual Keyboard" under "Human Interface Devices", you want the hardware ID that does not match that). Then substitute "USB\" for "HID\" in the ID you found, search for that in the setupapi.dev.log.
03-04-2012 01:08 PM
I found my problem....I have the G-15 AND the G-13, they are fighting each other at start up. Now, I have my G-13 in a USB Hub and that slows that down on the start up, and I can use my Keyboard immeadiatly. Then about 1 minute or so, the G-13 kicks in and the Profiles Transfer, Why? I don't know, but now I know this was my issue..If it continues, I think I will have to disable the LGS at start up, wait a few, ( I don't need the G-13 till I get in game anyway).Then start up the LGS. Maybe they can create a setting in the LGS profile to allow for Boot Priority or something.?????
Hope this helps! Not sure if you have more than one Logitech Device hooked up like me??? All I own is Logitech....lol
04-27-2012 06:16 AM
Thank you for this fix, it is a shame that it took an outside source to fix an issue that shouldn't have existed to begin with.
Once again, thank you for your hard work and due dilegance.
04-27-2012 07:23 AM
I'm glad I was able to help...That's what these forums are for.. I now have another issue, and if I sit here and wait for Logitech to solve it (since Dec, 2011 I've had a trouble ticket in and still no response) so hopefully, some one here will have a fix. I have posted in the forums, don't have any takers yet... must be a complex issue...lol