View Single Post
Old 03-12-2012, 03:43 PM   #25
geekmaster
Carpe diem, c'est la vie.
geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.
 
geekmaster's Avatar
 
Posts: 6,433
Karma: 10773668
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
Quote:
Originally Posted by hostar View Post
Don't give up yet.
The usb_find_devices() should return devices with libusb driver, so problem might be there.
As you wrote, you cannot see "devices count: 1", which should appear.
In this phase of program, everything is in libusb0.dll "hands"

Did you try to make drivers for K4 and Touch separately? One driver for each?
Also this driver you have to generate when Kindle is in fastboot.

I have updated usb_windows.h , there was some fragments of code, which is no longer needed. For example adb_api.h is not needed and everything what has something in common with Adb library either is not needed.

Unfortunately I can't test the Touch, because I have not one and even don't know anyone who has it.
It works, but only AFTER I installed the libusb-win32 driver for it (using my custom .INF file), like I had already done for the K4. I have both of them plugged in and in fastboot mode, and I can select which one to talk to with "fastboot -s" and the serial number shown in Device Manager.

Screenshot showing Device Manager with my K4 and Touch in fastboot mode, with serial numbers partially blacked-out:



And here is my custom Kindle-Fastboot.inf that file I used to install them:
PHP Code:
Kindle-Fastboot.inf
Copyright (c2010 libusb-win32 (GNU LGPL)
[
Strings]
DeviceName "Kindle-Fastboot"
VendorName "Amazon-Lab126"
SourceName "Kindle-Fastboot Install Disk"
DeviceID   "VID_1949&PID_D0D0"
DeviceGUID "{6E68684D-89D9-4E94-BA70-6DE08A1AA7E0}"

[Version]
Signature   "$Windows NT$"
Class       = "libusb-win32 devices"
ClassGuid   = {EB781AAF-9C70-4523-A5DF-642A87ECA567}
Provider    "libusb-win32"
CatalogFile Kindle-Fastboot.cat
DriverVer   
01/17/20121.2.6.0

[ClassInstall32]
Addreg libusb_class_install_add_reg

[libusb_class_install_add_reg]
HKR,,,0,"libusb-win32 devices"
HKR,,Icon,,-20

[Manufacturer]
%
VendorName% = DevicesNTNTAMD64NTIA64

;--------------------------------------------------------------------------
libusb-win32 files
;--------------------------------------------------------------------------

[
SourceDisksNames]
= %SourceName%

[
SourceDisksFiles.x86]
libusb0.sys     1,x86
libusb0_x86
.dll 1,x86

[SourceDisksFiles.amd64]
libusb0.sys     1,amd64
libusb0
.dll     1,amd64
libusb0_x86
.dll 1,x86

[SourceDisksFiles.ia64]
libusb0.sys     1,ia64
libusb0
.dll     1,ia64
libusb0_x86
.dll 1,x86

[DestinationDirs]
libusb_files_sys       10,system32\drivers
libusb_files_dll       
10,system32
libusb_files_dll_wow64 
10,syswow64
libusb_files_dll_x86   
10,system32

[libusb_files_sys]
libusb0.sys

[libusb_files_dll]
libusb0.dll

[libusb_files_dll_x86]
libusb0.dlllibusb0_x86.dll

[libusb_files_dll_wow64]
libusb0.dlllibusb0_x86.dll

;--------------------------------------------------------------------------
libusb-win32 device driver
;--------------------------------------------------------------------------

[
LIBUSB_WIN32_DEV.NT]
CopyFiles libusb_files_syslibusb_files_dll_x86

[LIBUSB_WIN32_DEV.NTAMD64]
CopyFiles libusb_files_syslibusb_files_dlllibusb_files_dll_wow64

[LIBUSB_WIN32_DEV.NTIA64]
CopyFiles libusb_files_syslibusb_files_dlllibusb_files_dll_wow64

[LIBUSB_WIN32_DEV.NT.HW]
DelReg libusb_del_reg_hw
AddReg 
libusb_add_reg_hw

[LIBUSB_WIN32_DEV.NTAMD64.HW]
DelReg libusb_del_reg_hw
AddReg 
libusb_add_reg_hw

[LIBUSB_WIN32_DEV.NTIA64.HW]
DelReg libusb_del_reg_hw
AddReg 
libusb_add_reg_hw

[LIBUSB_WIN32_DEV.NT.Services]
AddService libusb00x00000002libusb_add_service

[LIBUSB_WIN32_DEV.NTAMD64.Services]
AddService libusb00x00000002libusb_add_service

[LIBUSB_WIN32_DEV.NTIA64.Services]
AddService libusb00x00000002libusb_add_service

Older versions of this .inf file installed filter driversThey are not
needed any more and must be removed
[libusb_del_reg_hw]
HKR,,LowerFilters
HKR
,,UpperFilters

libusb-win32 device properties
[libusb_add_reg_hw]
HKR,,SurpriseRemovalOK,0x00010001,1

; (Optionalthe usb configuration value to select when this device
is started.  If this key does not exist the first config is selected.
;
HKR,,InitialConfigValue,0x00010001,<your config value>

;--------------------------------------------------------------------------
libusb-win32 service
;--------------------------------------------------------------------------

[
libusb_add_service]
DisplayName   "libusb-win32 - Kernel Driver 01/17/2012 1.2.6.0"
ServiceType   1
StartType     
3
ErrorControl  
0
ServiceBinary 
= %12%\libusb0.sys

;--------------------------------------------------------------------------
libusb-win32 devices
;--------------------------------------------------------------------------

Hardware IDs in a 'Devices' section can be installed by libusb-win32
using usb_install_driver_np(), usb_install_driver_np_rundll(), or the
inf-wizard utility.
;
[
Devices]
%
DeviceName% = LIBUSB_WIN32_DEVUSB\%DeviceID%

[
Devices.NT]
%
DeviceName% = LIBUSB_WIN32_DEV.NTUSB\%DeviceID%

[
Devices.NTAMD64]
%
DeviceName% = LIBUSB_WIN32_DEV.NTAMD64USB\%DeviceID%

[
Devices.NTIA64]
%
DeviceName% = LIBUSB_WIN32_DEV.NTIA64USB\%DeviceID
EDIT: This custom "Kindle-Fastboot.inf" file was created with "inf-wizard.exe" (part of "libusb-win32-bin-1.2.6.0"), after I put the VID/PID and "Kindle-Fastboot" in the form and clicked the button. You can do that too, or just copy/paste the text from above. When you install the kindle fastboot device, be sure to select "Install Manually" and select "Kindle-Fastboot" from the list of compatible devices.

When in fastboot mode, the "serial number" reported in Device Manager (and used by the "fastboot -s" option) is actually the "pcbsn" idme var, not the "normal" kindle serial number reported in the main settings menu. I hope you can figure it out from here...

@hostar: Thanks much. Now we need to get this into a simple step-by-step wiki page that includes the information provided above.

Last edited by geekmaster; 03-12-2012 at 04:54 PM.
geekmaster is offline   Reply With Quote