libusb_open - LIBUSB_ERROR_ACCESS
- Garfield
- Beiträge: 215
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.2 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: libusb_open - LIBUSB_ERROR_ACCESS
Wenn es nicht mit der hwdb.bin klappt, kann man die JSON von der Seite https://sebastianlang.net/software/usb-ids-api/ nehmen.
Gruß Garfield
- Garfield
- Beiträge: 215
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.2 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: libusb_open - LIBUSB_ERROR_ACCESS
Die Liste von Sebastian Lang ist kürzer als die von lsusb. lsusb kennt meine laptopinterne Kamera,
- Dateianhänge
-
USB-IDs.zip- (388.17 KiB) 316-mal heruntergeladen
-
- Bildschirmfoto vom 2025-11-17 15-02-55.png (18.53 KiB) 375 mal betrachtet
-
- Bildschirmfoto vom 2025-11-17 14-59-48.png (18.27 KiB) 375 mal betrachtet
Gruß Garfield
- Garfield
- Beiträge: 215
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.2 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: libusb_open - LIBUSB_ERROR_ACCESS
Damit schliesse ich mit dem Thema vorerst ab.
- Dateianhänge
-
LibUsb.zip- (361.36 KiB) 106-mal heruntergeladen
-
- Bildschirmfoto vom 2025-11-19 21-11-52.png (40.67 KiB) 274 mal betrachtet
Gruß Garfield
- Garfield
- Beiträge: 215
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.2 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: libusb_open - LIBUSB_ERROR_ACCESS
Irgendwie lässt es mich doch nicht in Ruhe. Auf https://github.com/hansiglaser/pas-libu ... libusb-1.0 gibt es ein paar Consolentestprogramme, von denen bei mir nur eines funktioniert:
Das GUI-Example funktioniert auch:.../pas-libusb-libusb-1.0/src/examples$ ./test1library
Using libusb(x) v1.0.27.11882
Found 4 devices:
Bus 2 Device 1: ID 1D6B:0003, port: 0, Speed: unknown (5)
Bus 1 Device 2: ID 04F2:B685, port: 8, port path from HCD: 0, Speed: 480 Mbit/s (USB HighSpeed)
Bus 1 Device 3: ID 8087:0029, port: 14, port path from HCD: 0, Speed: 12 Mbit/s (USB FullSpeed)
Bus 1 Device 1: ID 1D6B:0002, port: 0, Speed: 480 Mbit/s (USB HighSpeed)
- Dateianhänge
-
- Bildschirmfoto vom 2025-11-25 08-44-58.png (46.84 KiB) 163 mal betrachtet
Gruß Garfield
- AlterPascaler
- Beiträge: 91
- Registriert: Mo 26. Jun 2023, 18:56
- OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
- CPU-Target: xxBit
- Wohnort: Deutschland, NRW
Re: libusb_open - LIBUSB_ERROR_ACCESS
Hallo,
vor langer Zeit habe ich mich auch mit LibUsb unter Linux beschäftigt. Damit du auf dein Usb Device im User Mode zugreifen kannst, kannst du eine UDEV Rule anlegen.
Hier https://gitlab.com/FpTuxe/tblibusb findest du den Link zu meiner Lib. Unter "examples" findest du zwei Beispiele die Mouse Events anzeigen. Aber Achtung! Verwende dafür eine zweite Mouse, damit du dein LapTop noch bedienen kannst.
Die Lib habe ich bist Heute noch im Einsatz.
Aber ich muss dich warnen, USB ist viel komplizierten für den Anwender als Netzwerk oder RS232. Mal schnell ist nicht!
Was hast du den vor?
VG
AlterPascaler
vor langer Zeit habe ich mich auch mit LibUsb unter Linux beschäftigt. Damit du auf dein Usb Device im User Mode zugreifen kannst, kannst du eine UDEV Rule anlegen.
Hier https://gitlab.com/FpTuxe/tblibusb findest du den Link zu meiner Lib. Unter "examples" findest du zwei Beispiele die Mouse Events anzeigen. Aber Achtung! Verwende dafür eine zweite Mouse, damit du dein LapTop noch bedienen kannst.
Die Lib habe ich bist Heute noch im Einsatz.
Aber ich muss dich warnen, USB ist viel komplizierten für den Anwender als Netzwerk oder RS232. Mal schnell ist nicht!
Was hast du den vor?
VG
AlterPascaler
Viele Grüße
AlterPascaler
AlterPascaler
- Garfield
- Beiträge: 215
- Registriert: Do 5. Jun 2008, 22:07
- OS, Lazarus, FPC: Ubuntu 24.04 LTS (Laz 4.2 FPC3.2.2)
- CPU-Target: 64Bit
- Wohnort: Aken
Re: libusb_open - LIBUSB_ERROR_ACCESS
Vielen Dank.
Im Moment möchte ich auf das An- und Abstecken eines USB-Scanners reagieren und den Scanner erkennen.
Im Moment möchte ich auf das An- und Abstecken eines USB-Scanners reagieren und den Scanner erkennen.
Gruß Garfield
-
Mathias
- Beiträge: 7133
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: libusb_open - LIBUSB_ERROR_ACCESS
Ich habe mal kurz die KI gefragt, und schon kam ein funktionierendes Programm:Garfield hat geschrieben: Fr 28. Nov 2025, 23:20 Vielen Dank.
Im Moment möchte ich auf das An- und Abstecken eines USB-Scanners reagieren und den Scanner erkennen.
Code: Alles auswählen
// gcc main.c -o main -lusb-1.0
#include <libusb-1.0/libusb.h>
#include <stdio.h>
static int LIBUSB_CALL hotplug_callback(struct libusb_context *ctx, struct libusb_device *dev,
libusb_hotplug_event event, void *user_data) {
struct libusb_device_descriptor desc;
libusb_get_device_descriptor(dev, &desc);
if (event == LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED) {
printf("USB Gerät angeschlossen: VID=0x%04x, PID=0x%04x\n", desc.idVendor, desc.idProduct);
} else if (event == LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT) {
printf("USB Gerät entfernt: VID=0x%04x, PID=0x%04x\n", desc.idVendor, desc.idProduct);
}
return 0;
}
int main() {
libusb_context *ctx = NULL;
int rc;
rc = libusb_init(&ctx);
if (rc < 0) {
fprintf(stderr, "libusb Init Fehler: %d\n", rc);
return 1;
}
if (!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) {
fprintf(stderr, "Hotplug wird von dieser libusb-Version/Plattform nicht unterstützt.\n");
libusb_exit(ctx);
return 1;
}
libusb_hotplug_callback_handle handle;
rc = libusb_hotplug_register_callback(ctx,
LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT,
0,
LIBUSB_HOTPLUG_MATCH_ANY,
LIBUSB_HOTPLUG_MATCH_ANY,
LIBUSB_HOTPLUG_MATCH_ANY,
hotplug_callback,
NULL,
&handle);
if (rc != LIBUSB_SUCCESS) {
fprintf(stderr, "Fehler beim Registrieren des Callbacks: %d\n", rc);
libusb_exit(ctx);
return 1;
}
printf("Warte auf USB Events... (Strg+C zum Beenden)\n");
while (1) {
libusb_handle_events_completed(ctx, NULL);
}
libusb_hotplug_deregister_callback(ctx, handle);
libusb_exit(ctx);
return 0;
}Code: Alles auswählen
./main
Warte auf USB Events... (Strg+C zum Beenden)
USB Gerät entfernt: VID=0x1902, PID=0x8301
USB Gerät angeschlossen: VID=0x1902, PID=0x8301
USB Gerät entfernt: VID=0x1902, PID=0x8301
USB Gerät entfernt: VID=0x0409, PID=0x005a
USB Gerät angeschlossen: VID=0x0409, PID=0x005a
USB Gerät angeschlossen: VID=0x1902, PID=0x8301Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot