USB.IDS & USBDOCK.DAT
USB.IDS & USBDOCK.DAT
Von USB.IDS findet man aktualisierte Versionen im Netz. Für USBDOCK.DAT war ich bisher erfolglos.
Ich habe daher auf meiner To-Do-Liste einen Format-Converter von USB.IDS nach USBDOCK.DAT stehen.
Bevor ich wieder etwas baue was es schon längst gibt. Kennt jemand eine bestehende Lösungbzw. eine Bezugsquelle für USBDOCK.DAT?
Hintergrund:
Diese Dateien sind zur USB-Geräteerkennung erforderlich (USBDOCK und USBRES)
Da USBDOCK deutlich schneller ist suche ich dafür aktualisierte Gerätelisten.
Ich habe daher auf meiner To-Do-Liste einen Format-Converter von USB.IDS nach USBDOCK.DAT stehen.
Bevor ich wieder etwas baue was es schon längst gibt. Kennt jemand eine bestehende Lösungbzw. eine Bezugsquelle für USBDOCK.DAT?
Hintergrund:
Diese Dateien sind zur USB-Geräteerkennung erforderlich (USBDOCK und USBRES)
Da USBDOCK deutlich schneller ist suche ich dafür aktualisierte Gerätelisten.
Aha, wieder mal ein Thema was die Welt nicht braucht.
Na egal, Converter funktioniert und macht aus einer USB.IDS eine USBDOCK.DAT.
Läuft hier unter PMREXX mit anschliessender Speicherung der Console als USBDOCK.DAT.
Wer Lust hat kann das auf LINEOUT umbauen.

Na egal, Converter funktioniert und macht aus einer USB.IDS eine USBDOCK.DAT.
Code: Alles auswählen
/* REXX */
/* 25.04.2017 ERSTELLT W. EIKE */
/* USBIDS_TO_USBDOCK erzeugt aktuaslisierte USBDOCK.DAT aus USB.IDS */
parse upper arg args
parse version rexxType .
parse source platform . . work
MONITOR = platform
INP1 = 'USB.IDS'
If RxFuncQuery( 'sysstemsort' ) \= 0 Then,
Do
call RxFuncAdd 'sysloadfuncs', rexxutil, 'sysloadfuncs'
Call SysLoadFuncs
End
say '[USBDock]'
say 'source0=eComStation users and developers'
say 'source1=http://www.linux-usb.org/usb.ids'
say 'source2=http://www.sane-project.org/sane-mfgs.html'
say 'source3=http://siv.mysite.wanadoo-members.co.uk/downloads/usbdevs.txt'
say 'source4=http://www.qbik.ch/usb/devices/devices.php'
say 'source5=http://ecomstation.ru/ecosoft'
DO FOREVER
IF LINES(INP1) = 0 THEN LEAVE
IZEILE = LINEIN(INP1)
if datatype(left(izeile,4),'X') then,
do
parse var izeile ccode company
say
say '['ccode']'
say 'company=' || strip(company)
end
if left(izeile,1) = '09'x,
& datatype(substr(izeile,2,4),'X') then,
do
idcode = substr(IZEILE,2,4)
idtext = strip(substr(IZEILE,6))
say ccode':'idcode'='idtext
end
END
say
say '[end of file]'
return
Wer Lust hat kann das auf LINEOUT umbauen.
Ich werds bei Gelegenheit mal ausprobieren.
Trotzdem mache ich jetzt mal schamlos Werbung für mein "OS2 HW Manager" update:
http://hobbes.nmsu.edu/h-search.php?key ... ton=Search
Das nämlich nutzt ebenfalls die USB.IDS Datei um die ganzen eingestöpselten USB Devices mit sprechenden Hersteller- und Produktnamen anzuzeigen. Das Schöne daran: jedes Mal wenn es eine upgedatete USB.IDS gibt, gibt es auch automatisch eine upgedatete Anzeige
Lars
Trotzdem mache ich jetzt mal schamlos Werbung für mein "OS2 HW Manager" update:
http://hobbes.nmsu.edu/h-search.php?key ... ton=Search
Das nämlich nutzt ebenfalls die USB.IDS Datei um die ganzen eingestöpselten USB Devices mit sprechenden Hersteller- und Produktnamen anzuzeigen. Das Schöne daran: jedes Mal wenn es eine upgedatete USB.IDS gibt, gibt es auch automatisch eine upgedatete Anzeige

Lars
Die Sache hat leider einen kleinen Haken (oder Schönheitsfehler). Sollte das USB-Gerät bereits während des Startvorgangs eingesteckt sein, wird lediglich "USB Device_..." angezeigt. Auch das Entfernen und Wiedereinstecken (unabhängig von der physischen Anschlußbuchse) bringt dann nicht die Anzeige aus der USB.IDS sondern einen zusätzlichen gleichartigen Eintrag siehe Abbildung.erdmann hat geschrieben:Ich werds bei Gelegenheit mal ausprobieren.
Trotzdem mache ich jetzt mal schamlos Werbung für mein "OS2 HW Manager" update:
http://hobbes.nmsu.edu/h-search.php?key ... ton=Search
Das nämlich nutzt ebenfalls die USB.IDS Datei um die ganzen eingestöpselten USB Devices mit sprechenden Hersteller- und Produktnamen anzuzeigen. Das Schöne daran: jedes Mal wenn es eine upgedatete USB.IDS gibt, gibt es auch automatisch eine upgedatete Anzeige
Bitte nicht als Nörgelei auffassen. Ich finde es sehr gut, daß sinnvollerweise DPATH genutzt wird.
- Dateianhänge
-
- hwman-usb.gif (9.97 KiB) 3936 mal betrachtet
Einspruch euer Ehren, hier funktioniert es auch mit von Beginn an eingestöpselten USB-Geräten.
Das Problem hatte ich noch nie. Das sieht eher danach aus das irgendetwas bei der Installation schiefgegangen ist, die Ersatzklasse also nicht vernünftig installiert wurde. Oder das USBCALLS.DLL veraltet ist. Wenn USBCALLS.DLL nicht auf einem aktuellen Stand ist funktioniert auch meine Ersatzklasse nicht richtig. USBCALLS.DLL wird benötigt um ermitteln zu können welche USB devices eingesteckt sind.ak120 hat geschrieben:Die Sache hat leider einen kleinen Haken (oder Schönheitsfehler). Sollte das USB-Gerät bereits während des Startvorgangs eingesteckt sein, wird lediglich "USB Device_..." angezeigt. Auch das Entfernen und Wiedereinstecken (unabhängig von der physischen Anschlußbuchse) bringt dann nicht die Anzeige aus der USB.IDS sondern einen zusätzlichen gleichartigen Eintrag siehe Abbildung.erdmann hat geschrieben:Ich werds bei Gelegenheit mal ausprobieren.
Trotzdem mache ich jetzt mal schamlos Werbung für mein "OS2 HW Manager" update:
http://hobbes.nmsu.edu/h-search.php?key ... ton=Search
Das nämlich nutzt ebenfalls die USB.IDS Datei um die ganzen eingestöpselten USB Devices mit sprechenden Hersteller- und Produktnamen anzuzeigen. Das Schöne daran: jedes Mal wenn es eine upgedatete USB.IDS gibt, gibt es auch automatisch eine upgedatete Anzeige
Bitte nicht als Nörgelei auffassen. Ich finde es sehr gut, daß sinnvollerweise DPATH genutzt wird.
Es wird übrigens nicht nur DPATH geprüft sondern auch ETC und PATH. Hab jetzt gerade vergessen in welcher Reihenfolge, ich glaube es war erst ETC, dann DPATH, dann PATH.
Ach, noch was: neben den USB devices wird auch die CPU Bezeichnung direkt mittels CPUID Befehl bestimmt und dann auch so angezeigt. In dem geposteten Screenshot ist davon nichts zu sehen. Das deutet ebenfalls darauf hin daß die Ersatzklasse gar nicht aktiv ist.
Zuletzt geändert von erdmann am Mi 26. Apr 2017, 23:47, insgesamt 2-mal geändert.
Es mag sein, daß die Installation des WPI nicht vernünftig war. Leider war mir kein anderes Installationsverfahren bekannt. Das einzig Auffällige war eine merkwürdige Verzeichnisvorgabe für das Quellen-Unterpaket. Zum Abschluß wurde die WPS neu gestartet und die Geräte wurden im HW Manager mit Namen zuverlässig angezeigt. Nach dem Neustart dann leider nicht mehr.erdmann hat geschrieben:Das Problem hatte ich noch nie. Das sieht eher danach aus das irgendetwas bei der Installation schiefgegangen ist, die Ersatzklasse also nicht vernünftig installiert wurde.
RPM hatte wohl vor einiger Zeit ein Paket libusbcalls installiert oder besser gesagt USBCALLS.DLL und USBRESMG.SYS (ohne Vorwarnung und Sicherung der Dateien gleichen Namens) einfach überschrieben. Nach der Wiederherstellung der Dateien (aus deinem USB-Treiberpaket) im \OS2\BOOT-Verzeichnis und einer erneuten Installation des HWMAN12.wpi funktioniert es jetzt auch nach mehreren Neustarts.Oder das USBCALLS.DLL veraltet ist. Wenn USBCALLS.DLL nicht auf einem aktuellen Stand ist funktioniert auch meine Ersatzklasse nicht richtig. USBCALLS.DLL wird benötigt um ermitteln zu können welche USB devices eingesteckt sind.
Das steht ja zum Glück in der Datei datacls.cpp: ETC ... PATH ... DPATHEs wird übrigens nicht nur DPATH geprüft sondern auch ETC und PATH. Hab jetzt gerade vergessen in welcher Reihenfolge, ich glaube es war erst ETC, dann DPATH, dann PATH.
Ich hätte die Liste der aktiven geladenen Klassen prüfen müssen. Bin leider irrtümlich davon ausgegangen, daß nach dem Laden der Klasse nach dem Neuladen der WPS, dies auch nach einem Systemneustart so sein würde.Ach, noch was: neben den USB devices wird auch die CPU Bezeichnung direkt mittels CPUID Befehl bestimmt und dann auch so angezeigt. In dem geposteten Screenshot ist davon nichts zu sehen. Das deutet ebenfalls darauf hin daß die Ersatzklasse gar nicht aktiv ist.
Ist es normal, daß bei der Bezeichnung für den Prozessor die führenden Leerzeichen nicht weggeschnitten werden?
1) das WPI funktioniert und ist hier nicht das Problem. Das Quellenpaket wird im TEMP (Environment Variable) Verzeichnis zur Installation angeboten, wo auch immer das hinzeigt. Dafür ist der Installationspfad ja auch editierbar gehalten 
2) ein altes USBCALLS.DLL ist leider immer ein Problem gegen daß ich auch nichts machen kann. Ältere und neuere Versionen sind nicht interface kompatibel.
3) "führende Leerzeichen nicht weggeschnitten": ja das ist nicht nur wahrscheinlich sondern ganz bestimmt so.
Der CPUID Befehl liefert mittels mehrerer Unterbefehle Zeichenketten in den Registern EAX,EBX,ECX,EDX (inklusive einer terminierenden NULL). Die werden einfach gnadenlos hintereinandergefügt und in keinster Weise formatiert.

2) ein altes USBCALLS.DLL ist leider immer ein Problem gegen daß ich auch nichts machen kann. Ältere und neuere Versionen sind nicht interface kompatibel.
3) "führende Leerzeichen nicht weggeschnitten": ja das ist nicht nur wahrscheinlich sondern ganz bestimmt so.
Der CPUID Befehl liefert mittels mehrerer Unterbefehle Zeichenketten in den Registern EAX,EBX,ECX,EDX (inklusive einer terminierenden NULL). Die werden einfach gnadenlos hintereinandergefügt und in keinster Weise formatiert.