Da ich nach Eonen an vergeudeter Zeit endlich mal wieder dazu gekommen bin mit dem ArcadeMini zu "spielen", hier für diejenigen denen das auch passiert ein paar Aktualisierungen des Codes in am_usb_1.2.6:
in am_usb.h ab zeile 11 einfügen:
--
#ifdef CONFIG_X86_32
# define BITS_PER_LONG 32
#else
# define BITS_PER_LONG 64
#endif
#include <linux/types.h>
typedef unsigned long kernel_ulong_t;
--
in am_usb_test.c Zeile 1565 ersetzen:
--
if (!fgets( line, sizeof( line ), stdin ))
{
printf("\n");
return 0;
}
--
dann im Makefile die CFLAGS noch um die Kernelheader erweitern und das kleine Testtool lässt sich auch wieder unter Ubuntu (Intrepid/Hardy) sauber kompilieren.
am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)
Re: am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)
Danke für die Tipps.
Kannst Du bei Gelegenheit noch kurz beschreiben, welche Fehlermeldungen Du ohne die Änderungen erhalten hattest?
Gruß,
Stefan
Kannst Du bei Gelegenheit noch kurz beschreiben, welche Fehlermeldungen Du ohne die Änderungen erhalten hattest?
Gruß,
Stefan
Re: am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)
Hi, klar:
ohne Headerincludes im Makefile (/am_usb-1.2.6_2007-11-17/test)
am_usb.h:12:23: error: linux/usb.h: No such file or directory
warning mit originaler Zeile 1565 in am_usb_test.c:
am_usb_test.c:1565: Warnung: Der Rückgabewert von »fgets«, der mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert
error ohne defines ab zeile 11 in am_usb.h:
/am_usb-1.2.6_2007-11-17/test$ make
gcc -Wall -O2 -I/usr/src/linux-headers-2.6.27-7-generic/include -o am_usb_test am_usb_test.c
In file included from /usr/src/linux-headers-2.6.27-7-generic/include/linux/usb.h:4,
from am_usb.h:12,
from am_usb_test.c:21:
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:18: Fehler: expected specifier-qualifier-list before »__u32«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:31: Fehler: expected specifier-qualifier-list before »__u32«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h
Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:136: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:153: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:164: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:175: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:183: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:188: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:199: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:216: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:229: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:303: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:330: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:336: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:352: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:361: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:375: Fehler: expected specifier-qualifier-list before »__u32«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:387: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
am_usb_test.c: In Funktion »main«:
make: *** [am_usb_test] Fehler 1
Alles unter Ubuntu Intrepid 8.10 mit Kernel 2.6.27-7-generic und gcc-Version 4.3.2 (Ubuntu 4.3.2-1ubuntu11),
gleiche Fehlermeldungen auch unter Ubuntu Hardy Server mit 2.6.24-19-server und gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3).
Der Treiber unter kernel-2.6 compiliert ohne warning und fehler...
ohne Headerincludes im Makefile (/am_usb-1.2.6_2007-11-17/test)
am_usb.h:12:23: error: linux/usb.h: No such file or directory
warning mit originaler Zeile 1565 in am_usb_test.c:
am_usb_test.c:1565: Warnung: Der Rückgabewert von »fgets«, der mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert
error ohne defines ab zeile 11 in am_usb.h:
/am_usb-1.2.6_2007-11-17/test$ make
gcc -Wall -O2 -I/usr/src/linux-headers-2.6.27-7-generic/include -o am_usb_test am_usb_test.c
In file included from /usr/src/linux-headers-2.6.27-7-generic/include/linux/usb.h:4,
from am_usb.h:12,
from am_usb_test.c:21:
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:18: Fehler: expected specifier-qualifier-list before »__u32«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:31: Fehler: expected specifier-qualifier-list before »__u32«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:136: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:153: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:164: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:175: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:183: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:188: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:199: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:216: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:229: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:303: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:330: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:336: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:352: Fehler: expected specifier-qualifier-list before »__u8«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:361: Fehler: expected specifier-qualifier-list before »__u16«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:375: Fehler: expected specifier-qualifier-list before »__u32«
/usr/src/linux-headers-2.6.27-7-generic/include/linux/mod_devicetable.h:387: Fehler: expected specifier-qualifier-list before »kernel_ulong_t«
am_usb_test.c: In Funktion »main«:
make: *** [am_usb_test] Fehler 1
Alles unter Ubuntu Intrepid 8.10 mit Kernel 2.6.27-7-generic und gcc-Version 4.3.2 (Ubuntu 4.3.2-1ubuntu11),
gleiche Fehlermeldungen auch unter Ubuntu Hardy Server mit 2.6.24-19-server und gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3).
Der Treiber unter kernel-2.6 compiliert ohne warning und fehler...
Re: am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)
Hmja, die Sache mit linux/usb.h ist sogar noch einfacher, denke ich: Die Zeile ist nämlich eigentlich einfach zu viel.
Kannst Du mal probieren, die Zeile einfach rauszuwerfen und sonst nichts zu ändern?
Die Warnung bzgl. unbenutztem Rückgabewert von fgets in Zeile 1565 würde ich so entfernen:
Dann verlässt er nur die Schleife und macht unten noch die Aufräum-Abreiten.
Gruß,
Stefan
Kannst Du mal probieren, die Zeile einfach rauszuwerfen und sonst nichts zu ändern?
Die Warnung bzgl. unbenutztem Rückgabewert von fgets in Zeile 1565 würde ich so entfernen:
Code: Select all
if( ! fgets( line, sizeof( line ), stdin ) )
break;
Gruß,
Stefan