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/
Antworten
S.Jurkuhn
BlinkenNewbie
BlinkenNewbie
Beiträge: 12
Registriert: Do Apr 21, 2005 8:34 am
Wohnort: Essen

am_usb_test unter Ubuntu Intrepid/Hardy (2.6.24+)

Beitrag von S.Jurkuhn » Mi Nov 12, 2008 10:19 am

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.

Benutzeravatar
stefan
Blinkenizer
Blinkenizer
Beiträge: 234
Registriert: Mi Okt 09, 2002 9:45 pm
Wohnort: Aachen
Kontaktdaten:

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

Beitrag von stefan » Mi Nov 12, 2008 10:49 pm

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
Beiträge: 12
Registriert: Do Apr 21, 2005 8:34 am
Wohnort: Essen

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

Beitrag von S.Jurkuhn » Do Nov 13, 2008 12:05 am

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...

Benutzeravatar
stefan
Blinkenizer
Blinkenizer
Beiträge: 234
Registriert: Mi Okt 09, 2002 9:45 pm
Wohnort: Aachen
Kontaktdaten:

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

Beitrag von stefan » Do Nov 13, 2008 11:20 pm

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: Alles auswählen

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

Gruß,
Stefan

Antworten