Nachdem ich nun in der Lage bin alles richtig zu kompilieren, scheitere
ich nun an der Lauffähigkeit von libusb auf meinem Centipad.
Das Testprogramm läuft und kann auch brav auf die libusb zugreifen, nur
wird es immer sofort mit einem Fehler terminiert:
libusb:error [usbfs_scan_busdir] opendir '/dev/bus/usb/001' failed,
errno=2
Ein Blick auf /dev/bus/usb zeigt mir dass es dort nur ein 1 aber kein
001 directory gibt (also ohne führende Nullen).
Das scheint ein Problem des alten Kernels (2.6.16.33) der im Centipad
verwendet wird zu sein. Neuere verwenden hier anscheinend führende
Nullen.
Nun bin ich zwar froh halbwegs zu verstehen wie man Applikationen und
shared libraries für das Centipad übersetzt, aber einen neuen Kernel zu
übersetzen....
Einfach mal die Sourcen ziehen und make kernel wird es wohl nicht sein,
oder? Hat das schon mal wer gemacht?
lg,
Michael
Hier die Fehleranalyse der libusb Jungs:
1 | Michael wrote:
|
2 | > linux kernel 2.6.16.33
|
3 |
|
4 |
|
5 | This is REEEAALLY old. Get 2.6.*36* instead.
|
6 |
|
7 | Commit: 72be3fc830471a1b85069b6c1876f752d036c169
|
8 | Author: Adrian Bunk <bunk@stusta.de> Wed, 22 Nov 2006 19:06:31 +0100
|
9 | Linux 2.6.16.33
|
10 |
|
11 | Over four(!!) years! It is buggy as hell.
|
12 |
|
13 |
|
14 |
|
15 | Michael wrote:
|
16 | > I guess I'm getting closer to the root cause. I've turned on
|
17 | > debugging and I get this error message after
|
18 | > libusb_get_device_list()
|
19 | >
|
20 | > libusb:error [usbfs_scan_busdir] opendir '/dev/bus/usb/001' failed,
|
21 | > errno=2
|
22 | >
|
23 | > Strange thing is that I've got only /dev/bus/usb/1 and not
|
24 | > /dev/bus/usb/001 visible in my system
|
25 | >
|
26 | > Is there any way I can tell libusb to search for 1 instead of 001,
|
27 |
|
28 |
|
29 | Only by changing the code. I don't know if this is a significant
|
30 | problem for people, but they really should not be using so old
|
31 | kernels. Adding a check also for %d in libusb is easy enough, so
|
32 | maybe worth for us to do, but really..
|
33 |
|
34 |
|
35 |
|
36 | > or is this rather an error of my linux distribution?
|
37 |
|
38 |
|
39 | ..you should just upgrade to a modern kernel and it'll work.
|
40 |
|
41 |
|
42 | //Peter
|