irexec wird zum Zombie

Message
Author
inixlinux

#16 Post by inixlinux »

Janka was meinst du mit externe Treiberquellen? - Die lirc-Quellcode Dateien?

Dort habe ich in allen Dateien mit Endung .h <linux/autoconf.h> mit dem <generated/autoconf.h> ersetzt, jedoch erhalte ich nun diese Fehlermeldung.

Code: Select all

make  all-recursive                             
make&#91;1&#93;&#58; Entering directory `/media/Daten/temp/lirc-0.8.6'
Making all in drivers                                     
make&#91;2&#93;&#58; Entering directory `/media/Daten/temp/lirc-0.8.6/drivers'
Making all in lirc_dev                                            
make&#91;3&#93;&#58; Entering directory `/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev'
Makefile&#58;8&#58; **************************************************             
Makefile&#58;8&#58; *** Makefile trick not undone, trying to recover *             
Makefile&#58;8&#58; **************************************************             
mv Makefile.automake Makefile                                              
make all                                                                   
make&#91;4&#93;&#58; Entering directory `/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev'
cp ./../lirc_dev/Module*.symvers .                                         
cp&#58; Aufruf von stat für „./../lirc_dev/Module*.symvers“ nicht möglich&#58; Datei oder Verzeichnis nicht gefunden                                          
make&#91;4&#93;&#58; &#91;lirc_dev.o&#93; Fehler 1 &#40;ignoriert&#41;                                 
mv Makefile Makefile.automake                                              
cp ./../Makefile.kernel Makefile                                           
CPPFLAGS="" CFLAGS="" LDFLAGS="" \                                         
        make -C /lib/modules/2.6.33-0.1-pae/build/ SUBDIRS=/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev modules \                                    
                KBUILD_VERBOSE=1                                           
make&#91;5&#93;&#58; Entering directory `/usr/src/packages/BUILD/kernel-2.6.330.1pae'  
test -e include/generated/autoconf.h -a -e include/config/auto.conf || &#40;  \
        echo;                                                           \  
        echo "  ERROR&#58; Kernel configuration is invalid.";               \  
        echo "         include/generated/autoconf.h or include/config/auto.conf are missing.";\                                                       
        echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";     \                                                          
        echo;                                                           \  
        /bin/false&#41;                                                        
mkdir -p /media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/.tmp_versions ; rm -f /media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/.tmp_versions/*            
make -f scripts/Makefile.build obj=/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev                                                                      
  gcc -Wp,-MD,/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/.lirc_dev.o.d  -nostdinc -isystem /usr/lib/gcc/i586-suse-linux/4.4/include -I/usr/src/packages/BUILD/kernel-2.6.330.1pae/arch/x86/include -Iinclude  -include include/generated/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i686 -mtune=generic -Wa,-mtune=generic32 -ffreestanding -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fno-dwarf2-cfi-asm -fconserve-stack -DIRCTL_DEV_MAJOR=61 -DEXPORT_SYMTAB -DHAVE_CONFIG_H -I. -I. -I../.. -I/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/. -I/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/ -I/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/../.. -I/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/../.. -I/lib/modules/2.6.33-0.1-pae/build//include/ -I/lib/modules/2.6.33-0.1-pae/build//drivers/media/video/  -DMODULE -D"KBUILD_STR&#40;s&#41;=#s" -D"KBUILD_BASENAME=KBUILD_STR&#40;lirc_dev&#41;"  -D"KBUILD_MODNAME=KBUILD_STR&#40;lirc_dev&#41;" -D"DEBUG_HASH=33" -D"DEBUG_HASH2=11" -c -o /media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/.tmp_lirc_dev.o /media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c                                                                     
In file included from /media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c&#58;72&#58;                                                                    
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58; In function ‘lirc_buffer_init’&#58;                                                             
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58;88&#58; warning&#58; passing argument 1 of ‘kfifo_alloc’ makes pointer from integer without a cast   
include/linux/kfifo.h&#58;109&#58; note&#58; expected ‘struct kfifo *’ but argument is of type ‘unsigned int’                                                     
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58;88&#58; warning&#58; passing argument 3 of ‘kfifo_alloc’ makes integer from pointer without a cast   
include/linux/kfifo.h&#58;109&#58; note&#58; expected ‘gfp_t’ but argument is of type ‘struct spinlock_t *’                                                       
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58;88&#58; warning&#58; assignment makes pointer from integer without a cast                            
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58; In function ‘lirc_buffer_read’&#58;                                                             
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58;185&#58; error&#58; implicit declaration of function ‘kfifo_get’
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58; In function ‘lirc_buffer_write’&#58;
/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.h&#58;206&#58; error&#58; implicit declaration of function ‘kfifo_put’
make&#91;6&#93;&#58; *** &#91;/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev/lirc_dev.o&#93; Fehler 1
make&#91;5&#93;&#58; *** &#91;_module_/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev&#93; Fehler 2
make&#91;5&#93;&#58; Leaving directory `/usr/src/packages/BUILD/kernel-2.6.330.1pae'
make&#91;4&#93;&#58; *** &#91;lirc_dev.o&#93; Fehler 2
make&#91;4&#93;&#58; Leaving directory `/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev'
make&#91;3&#93;&#58; *** &#91;all&#93; Fehler 2
make&#91;3&#93;&#58; Leaving directory `/media/Daten/temp/lirc-0.8.6/drivers/lirc_dev'
make&#91;2&#93;&#58; *** &#91;all-recursive&#93; Fehler 1
make&#91;2&#93;&#58; Leaving directory `/media/Daten/temp/lirc-0.8.6/drivers'
make&#91;1&#93;&#58; *** &#91;all-recursive&#93; Fehler 1
make&#91;1&#93;&#58; Leaving directory `/media/Daten/temp/lirc-0.8.6'
make&#58; *** &#91;all&#93; Fehler 2

inixlinux

#17 Post by inixlinux »

niemand eine Idee?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#18 Post by Janka »

inixlinux wrote:Janka was meinst du mit externe Treiberquellen? - Die lirc-Quellcode Dateien?
Ja. Alle Treiberquellen, die nicht zum Kernel gehören. Denn da wurde das ja von den Kernel-Maintainern beim Übergang zu 2.6.33 gemacht.
Dort habe ich in allen Dateien mit Endung .h <linux/autoconf.h> mit dem <generated/autoconf.h> ersetzt, jedoch erhalte ich nun diese Fehlermeldung.

Code: Select all

...
Umm, da hat sich wohl inzwischen auch was an den kfifo_..-Aufrufen geändert. Siehe include/linux/kfifo.h.

linux-2.6.30.5 hatte noch:

Code: Select all

struct kfifo &#123;
  unsigned char *buffer;  /* the buffer holding the data */
  unsigned int size;  /* the size of the allocated buffer */
  unsigned int in;  /* data is added at offset &#40;in % size&#41; */
  unsigned int out; /* data is extracted from off. &#40;out % size&#41; */
  spinlock_t *lock; /* protects concurrent modifications */
&#125;;

extern struct kfifo *kfifo_init&#40;unsigned char *buffer, unsigned int size,
        gfp_t gfp_mask, spinlock_t *lock&#41;;
extern struct kfifo *kfifo_alloc&#40;unsigned int size, gfp_t gfp_mask,
         spinlock_t *lock&#41;;
extern void kfifo_free&#40;struct kfifo *fifo&#41;;
extern unsigned int __kfifo_put&#40;struct kfifo *fifo,
        unsigned char *buffer, unsigned int len&#41;;
extern unsigned int __kfifo_get&#40;struct kfifo *fifo,
        unsigned char *buffer, unsigned int len&#41;;
Wohingegen linux-2.6.33.1 folgendes hat:

Code: Select all

struct kfifo &#123;
  unsigned char *buffer;  /* the buffer holding the data */
  unsigned int size;  /* the size of the allocated buffer */
  unsigned int in;  /* data is added at offset &#40;in % size&#41; */
  unsigned int out; /* data is extracted from off. &#40;out % size&#41; */
&#125;;

&#91;...&#93;

extern void kfifo_init&#40;struct kfifo *fifo, void *buffer,
      unsigned int size&#41;;
extern __must_check int kfifo_alloc&#40;struct kfifo *fifo, unsigned int size,
      gfp_t gfp_mask&#41;;
extern void kfifo_free&#40;struct kfifo *fifo&#41;;
extern unsigned int kfifo_in&#40;struct kfifo *fifo,
        const void *from, unsigned int len&#41;;
extern __must_check unsigned int kfifo_out&#40;struct kfifo *fifo,
        void *to, unsigned int len&#41;;
extern __must_check unsigned int kfifo_out_peek&#40;struct kfifo *fifo,
        void *to, unsigned int len, unsigned offset&#41;;
Offensichtlich wurde an den Spinlocks rumgebaut, um das irgendwas zu verbessern. Außerdem sind ein paar Hilf-Makros dazugekommen

Code: Select all

#define DECLARE_KFIFO&#40;name, size&#41; \
union &#123; \
  struct kfifo name; \
  unsigned char name##kfifo_buffer&#91;size + sizeof&#40;struct kfifo&#41;&#93;; \
&#125;

/**
 * INIT_KFIFO - Initialize a kfifo declared by DECLARE_KFIFO
 * @name&#58; name of the declared kfifo datatype
 */
#define INIT_KFIFO&#40;name&#41; \
  name = __kfifo_initializer&#40;sizeof&#40;name##kfifo_buffer&#41; - \
        sizeof&#40;struct kfifo&#41;, name##kfifo_buffer&#41;

&#91;...&#93;
Hier ist ein Artikel dazu http://lwn.net/Articles/347619/

Deine LIRC-Quellen darauf anzupassen braucht doch schon gehobenere Hackerkenntnisse. Ich würde eher die LIRC-Autoren fragen, wann sie eine neue, auf 2.6.33 angepasste Version rausbringen wollen. Bzw. im CVS gibt es die schon, siehe:
http://lirc.cvs.sourceforge.net/viewvc/ ... h?view=log
Revision 1.38.

Frag mal direkt bei ihnen nach, vermutlich raten sie dir, die CVS-Version zu nehmen. Evtl. gibt es aber bald auch ein offizielles Release.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

inixlinux

#19 Post by inixlinux »

habe nun die cvs Version getestet und nun funktioniert es. Danke

Post Reply