am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)

hier kann alles besprochen werden, was ARCADEmini betrifft - siehe http://arcademini.schuermans.info/ oder https://arcademini.schuermans.info/
Post Reply
S.Jurkuhn
BlinkenNewbie
BlinkenNewbie
Posts: 12
Joined: Thu Apr 21, 2005 8:34 am
Location: Essen

am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)

Post by S.Jurkuhn »

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.
User avatar
stefan
Blinkenizer
Blinkenizer
Posts: 234
Joined: Wed Oct 09, 2002 9:45 pm
Location: Aachen
Contact:

Re: am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)

Post by stefan »

Danke für die Tipps.

Kannst Du bei Gelegenheit noch kurz beschreiben, welche Fehlermeldungen Du ohne die Änderungen erhalten hattest?

Gruß,
Stefan
S.Jurkuhn
BlinkenNewbie
BlinkenNewbie
Posts: 12
Joined: Thu Apr 21, 2005 8:34 am
Location: Essen

Re: am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)

Post by S.Jurkuhn »

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:100: 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...
User avatar
stefan
Blinkenizer
Blinkenizer
Posts: 234
Joined: Wed Oct 09, 2002 9:45 pm
Location: Aachen
Contact:

Re: am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)

Post by stefan »

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:

Code: Select all

if( ! fgets( line, sizeof( line ), stdin ) )
    break;
Dann verlässt er nur die Schleife und macht unten noch die Aufräum-Abreiten.

Gruß,
Stefan
Post Reply