Ich wollte eben mal fcclassic.ko sebst compilieren und stosse da bei Kernel 2.6.24 auf Probleme
(bei Kernel 2.6.18 lief noch alles ohne Fehler)
Der Fehler "main.c:25:26: error: linux/config.h: Datei oder Verzeichnis nicht gefunden"
bedeutet, dass "#include <linux/config.h>" zu "#include <linux/autoconf.h>" geändert werden muss
Der Fehler "driver.h:100: error: conflicting types for ‘driver_init’" kann man durch anhängen von '_avm' beseitigen (bei allen Vorkommen in allen Dateien)
Den Fehler "driver.c:359: error: ‘SA_INTERRUPT’ undeclared (first use in this function)" kann man durch setzen der Definition
#define SA_INTERRUPT IRQF_DISABLED
#define SA_SAMPLE_RANDOM IRQF_SAMPLE_RANDOM
#define SA_SHIRQ IRQF_SHARED
#define SA_PROBEIRQ IRQF_PROBE_SHARED
#define SA_PERCPU IRQF_PERCPU
#define SA_TRIGGER_LOW IRQF_TRIGGER_LOW
#define SA_TRIGGER_HIGH IRQF_TRIGGER_HIGH
#define SA_TRIGGER_FALLING IRQF_TRIGGER_FALLING
#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING
#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK
beseitigen
Was mir sorgen macht ist die Warnung
"fritz-fcclassic/src/driver.c:363: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type"
Weis jemand was die Änderung der IRQ-behandlung bedeutet?
In 2.6.18 ist die Funtion (include/linux/interrupt.h) als
extern int request_irq(unsigned int, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long, const char *, void *);
definiert und in 2.6.24 als
extern int __must_check request_irq(unsigned int, irq_handler_t handler, unsigned long, const char *, void *);
Der Fehler "main.c:25:26: error: linux/config.h: Datei oder Verzeichnis nicht gefunden"
bedeutet, dass "#include <linux/config.h>" zu "#include <linux/autoconf.h>" geändert werden muss
Der Fehler "driver.h:100: error: conflicting types for ‘driver_init’" kann man durch anhängen von '_avm' beseitigen (bei allen Vorkommen in allen Dateien)
Den Fehler "driver.c:359: error: ‘SA_INTERRUPT’ undeclared (first use in this function)" kann man durch setzen der Definition
#define SA_INTERRUPT IRQF_DISABLED
#define SA_SAMPLE_RANDOM IRQF_SAMPLE_RANDOM
#define SA_SHIRQ IRQF_SHARED
#define SA_PROBEIRQ IRQF_PROBE_SHARED
#define SA_PERCPU IRQF_PERCPU
#define SA_TRIGGER_LOW IRQF_TRIGGER_LOW
#define SA_TRIGGER_HIGH IRQF_TRIGGER_HIGH
#define SA_TRIGGER_FALLING IRQF_TRIGGER_FALLING
#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING
#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK
beseitigen
Was mir sorgen macht ist die Warnung
"fritz-fcclassic/src/driver.c:363: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type"
Weis jemand was die Änderung der IRQ-behandlung bedeutet?
In 2.6.18 ist die Funtion (include/linux/interrupt.h) als
extern int request_irq(unsigned int, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long, const char *, void *);
definiert und in 2.6.24 als
extern int __must_check request_irq(unsigned int, irq_handler_t handler, unsigned long, const char *, void *);