Hallo zusammen,
wie bekomme ich LibUSB für PTP und die Standard-USB-Installation für die Kamera unter einen Hut.
Von Microsoft gibts
devcon.exe, ein vollständiger Ersatz für den Gerätemanager, aber batchfähig.
Damit geht das grundsätzlich.
Es gibt aber noch Klärungsbedarf.
Zunächst:
Die Devcon-Kommandos habe ich auch unter AutoIT ausprobiert.
Die funktionieren aber nur, wenn man #RequireAdmin verwendet, wobei man dann auch immer die UAC abnicken muß.
Geht das auch anders?
Im Weiteren mal die Abläufe / Vorgehensweisen mit (knappen) Erläuterungen.
Über weitere Hinweise würde ich mich freuen.
einmalig nötig:
LibUSB-Treiber mit INF-Wizard installieren ...
IXUS auswählen...
speichern...
install now...
UAC ... zulassen ...
Treiber trotzdem installieren...
installing... dauert länger
Gerätemanager (falls sichtbar) flackert mehrfach, dann ist der Standard-Eintrag unter 'Tragbare Geräte' weg und unter 'LibUSB-Windows32 Devices'
neu dazugekommen.
PTPCamGUI startet, findet die Kamera - successfull - aber der KameraBildschirm bleibt dunkel!
- Code: Alles auswählen
** init() start ...
>> version << ptpcam: 0.2
camera: 0.2 (Length: 24)
>> script-support << script-support:1 (Length: 16)
>> luar get_buildinfo().platform << ixus970_sd890 (Length: 13)
>> luar get_buildinfo().version << CHDK-DE (Length: 7)
DE=True
>> luar get_buildinfo().build_number << 1.1.0-563 (Length: 9)
** init() successful
; ein shoot geht in eine Endlosschleife.
>> luar get_mode() << false (Length: 5)
oder wie folgt...
- Code: Alles auswählen
** init() start ...
>> version << ptpcam: 0.2
camera: 0.2 (Length: 24)>> lua shoot() << error: couldn't connect to camera. (Length: 34)
>> luar get_mode() << false (Length: 5)
>> mode 1 << (Length: 0)
>> luar get_mode() << false (Length: 5)
>> luar get_mode() << false (Length: 5)
>> luar get_mode() << false (Length: 5)
>> luar get_mode() << false (Length: 5)
>> luar get_mode() << false (Length: 5)
>> luar get_mode() << false (Length: 5)
>> luar get_mode() << false (Length: 5)
>> luar get_mode() << error: couldn't connect to camera. (Length: 34)
>> script-support << script-support:1 (Length: 16)
>> luar get_buildinfo().platform << ixus970_sd890 (Length: 13)
>> luar get_buildinfo().version << CHDK-DE (Length: 7)
DE=True
>> luar get_buildinfo().build_number << 1.1.0-563 (Length: 9)
** init() successful
ist aber dann nicht betriebsbereit.
es hilft nur noch "Akku raus"
Kamera neu einschalten;GUI starten;
geht wie Schmitt's Katze.
Also: nur das ERSTE Starten der GUI (nach Treiberinstallation) darf(muss) nach KameraNEUStart erfolgen.
danach gehts immer.
Devcon Anzeige:
C:\Users\rl\Desktop\DPInstTest\AIDevCon>devcon status *3173
USB\VID_04A9&PID_3173\188188DA16A6450683341C473EA4E001
Name: Canon DIGITAL IXUS 970 IS
Driver is running.
1 matching device(s) found.
C:\Users\rl\Desktop\DPInstTest\AIDevCon>devcon driverfiles *3173
USB\VID_04A9&PID_3173\188188DA16A6450683341C473EA4E001
Name: Canon DIGITAL IXUS 970 IS
Driver installed from C:\Windows\INF\oem54.inf [LIBUSB_WIN32_DEV.NT]. 2 file(s) used by driver:
C:\Windows\system32\drivers\libusb0.sys
C:\Windows\system32\libusb0.dll
1 matching device(s) found.
Jetzt bin ich fertig mit PTP und entferne libusb-Treiber:
C:\Users\rl\Desktop\DPInstTest\AIDevCon>devcon remove *PID_3173*
USB\VID_04A9&PID_3173\188188DA16A6450683341C473EA4E001 : Removed
1 device(s) were removed.
schmeisst den libUSB Treiber wieder raus. (Die Kamera geht aus - praktisch, geht leider nicht immer aus)
Kamera einschalten.
Schwupps - gibts unter 'Tragbare Geräte' wieder meine Kamera. "Canon Utilities CameraWindow DC" startet sofort automatisch.
Camerawindow beenden.
Jetzt kann ich sofort mit:
C:\Users\rl\Desktop\DPInstTest\AIDevCon>devcon install C:\Windows\INF\oem54.inf "USB\VID_04A9&PID_3173"
Device node created. Install is complete when drivers are installed...
Updating drivers for USB\VID_04A9&PID_3173 from C:\Windows\INF\oem54.inf.
Drivers installed successfully.
den LibUSB-Treiber wieder installieren.
Kamera aus, wieder an, geht alles.
Merkwürdig! Jetzt zeigt Devcon (und der Gerätemanager) beim STATUS zwei Devices ROOT\... und USB\...
funktioniert trotzdem alles. \TODO
C:\Users\rl\Desktop\DPInstTest\AIDevCon>devcon status *3173
ROOT\LIBUSB-WIN32_DEVICES\0000
Name: Canon DIGITAL IXUS 970 IS
Driver is running.
USB\VID_04A9&PID_3173\188188DA16A6450683341C473EA4E001
Name: Canon DIGITAL IXUS 970 IS
Driver is running.
2 matching device(s) found.
C:\Users\rl\Desktop\DPInstTest\AIDevCon>devcon driverfiles *3173
ROOT\LIBUSB-WIN32_DEVICES\0000
Name: Canon DIGITAL IXUS 970 IS
Driver installed from C:\Windows\INF\oem54.inf [LIBUSB_WIN32_DEV.NT]. 2 file(s) used by driver:
C:\Windows\system32\drivers\libusb0.sys
C:\Windows\system32\libusb0.dll
1 matching device(s) found.
Das ROOT\...-Device bleibt im Gerätemanager stehen, auch wenn die
Kamera aus ist.
Und läßt sich entfernen (bei Kamera aus):
C:\Users\rl\Desktop\DPInstTest\AIDevCon>devcon remove *PID_3173*
ROOT\LIBUSB-WIN32_DEVICES\0000 : Removed
1 device(s) were removed.
Schaltet man die Kamera ein ist das USB\...-Device immer noch da und funktioniert.
Ein zweites remove löscht auch dieses Device wie erwartet.
Zunächst mal gehen die Abläufe mehr oder weniger automatisch.
Im Detail werde ich das mal verfolgen.
Ich kann mir zwei Vorgehensweisen vorstellen:
1. aus der GUI wird devcon völlig transparent aufgerufen.
Beim Start libUSB-Treiber installieren, beim Beenden wieder deinstallieren.
oder
2. Vor- / Nachgeschaltete Batchaufrufe
bis dann