anoniem Geplaatst: 13 juli 2003 Delen Geplaatst: 13 juli 2003 Hallo allemaal Ik heb suse 8.2 en wil een klein test kernel module compileren. #include <linux/usb.h> #include <linux/module.h> #include <linux/kernel.h> int init_module(void) { info(KERN_INFO "eerste testje\n"); return 0; } void cleanup_module(void) { info(KERN_INFO "tweede testje\n"); } Alleen krijg ik een foutmelding: make hello.o cc -c -o hello.o hello.c hello.c: In function `init_module': hello.c:7: error: `KERN_INFO' undeclared (first use in this function) hello.c:7: error: (Each undeclared identifier is reported only once hello.c:7: error: for each function it appears in.) hello.c:7: error: parse error before string constant hello.c: In function `cleanup_module': hello.c:13: error: `KERN_INFO' undeclared (first use in this function) hello.c:13: error: parse error before string constant make: *** [hello.o] Error 1 Ik snap niet precies wat ik moet verbeteren. En wat moet je in etc/syslogd.conf qua instellingen invoeren om KERN_INFO berichten in je console terug te krijgen? Quote Link naar reactie
anoniem Geplaatst: 13 juli 2003 Auteur Delen Geplaatst: 13 juli 2003 Ik heb er niet veel verstand van, maar blijkbaar snapt gcc KERN_INFO niet. Vermoedelijk moet je die nog ergens definieren/declareren of wat dies meer zij. Quote Link naar reactie
anoniem Geplaatst: 13 juli 2003 Auteur Delen Geplaatst: 13 juli 2003 Ik heb er verder ook niet veel verstand van maar tis het laatste loodje voor een schoolopdracht wie weet wat ik in de syslog nog pziez veranderen moet ? Ik plak mijn syslog maar gewoon ff mee :) [code:1:ec2618e672] # /etc/syslog.conf - Configuration file for syslogd( 8 ) # # For info about the format of this file, see "man syslog.conf". # # print most on tty10 and on the xconsole pipe # kern.warn;*.err;authpriv.none /dev/tty10 kern.warn;*.err;authpriv.none |/dev/xconsole *.emerg * # enable this, if you want that root is informed # immediately, e.g. of logins #*.alert root # # all email-messages in one file # mail.* -/var/log/mail mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err # # # all news-messages # # these files are rotated and examined by "news.daily" news.crit -/var/log/news/news.crit news.err -/var/log/news/news.err news.notice -/var/log/news/news.notice # enable this, if you want to keep all news messages # in one file #news.* -/var/log/news.all # # Warnings in one file # *.=warn;*.=err -/var/log/warn *.crit /var/log/warn # # save the rest in one file # *.*;mail.none;news.none -/var/log/messages # # enable this, if you want to keep all messages # in one file #*.* -/var/log/allmessages # # Some foreign boot scripts require local7 # local0,local1.* -/var/log/localmessages local2,local3.* -/var/log/localmessages local4,local5.* -/var/log/localmessages local6,local7.* -/var/log/localmessages [/code:1:ec2618e672] dit laatste heb ik er dus aan toegevoegd [code:1:ec2618e672] *.=info;*.=notice /usr/adm/messages *.=debug /usr/adm/debug kern.info /dev/console kern.info /dev/tty6 kern.info /usr/adm/kerninfo kern.info -/var/log/info[/code:1:ec2618e672] Quote Link naar reactie
anoniem Geplaatst: 13 juli 2003 Auteur Delen Geplaatst: 13 juli 2003 de kernel was nog niet bij mij gecompileerd dus dat heb ik eerst gedaan, maar nu krijg ik bij make dep deze error [code:1:f7e28da11b]make dep gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/mkdep scripts/ mkdep.c In file included from /usr/include/bits/posix1_lim.h:126, from /usr/include/limits.h:144, from /usr/lib/gcc-lib/i486-suse-linux/3.3/include/limits.h:122, from /usr/lib/gcc-lib/i486-suse-linux/3.3/include/syslimits.h:7 , from /usr/lib/gcc-lib/i486-suse-linux/3.3/include/limits.h:11, from scripts/mkdep.c:35: /usr/include/bits/local_lim.h:36:26: linux/limits.h: No such file or directory scripts/mkdep.c: In function `add_path': scripts/mkdep.c:221: error: `PATH_MAX' undeclared (first use in this function) scripts/mkdep.c:221: error: (Each undeclared identifier is reported only once scripts/mkdep.c:221: error: for each function it appears in.) scripts/mkdep.c:221: warning: unused variable `resolved_path' make: *** [scripts/mkdep] Error 1 [/code:1:f7e28da11b] kom maar op met alle suggesties :) Quote Link naar reactie
anoniem Geplaatst: 13 juli 2003 Auteur Delen Geplaatst: 13 juli 2003 ik denk dat je voor dit soort vragen beter even naar NedLinux kunt gaan, daar lopen mannetjes genaamd René en vooral DirkGerrits rond die dit soort dingen dromend doen :P Quote Link naar reactie
anoniem Geplaatst: 14 juli 2003 Auteur Delen Geplaatst: 14 juli 2003 Hij geeft telkens de melding "undeclared identifier" ? dan ben je gewoon een header file vergeten te includen. zoek op waar deze zich bevinden in de man-pages en je bent er. Heb je ze zelf gemaakt, check dan je makefile om te kijken of je je libs wel meelinkt. Quote Link naar reactie
anoniem Geplaatst: 14 juli 2003 Auteur Delen Geplaatst: 14 juli 2003 [quote:14ebeabff0="w.roosenburg"]Hij geeft telkens de melding "undeclared identifier" ? dan ben je gewoon een header file vergeten te includen. zoek op waar deze zich bevinden in de man-pages en je bent er. Heb je ze zelf gemaakt, check dan je makefile om te kijken of je je libs wel meelinkt.[/quote:14ebeabff0] Hoi roosenburg, na de installatie van suse 8.2, is het dan nog eigelijk nodig dat je een kernel versie installeerd of zit dat ook in de installatie ? Oh en bij de laatste foutmelding in make dep heb ik inderdaad in de script mkdep.c een header toegevoegd [code:1:14ebeabff0]include <linux/limits.h>[/code:1:14ebeabff0] geloof ik, onder [code:1:14ebeabff0]include <limits.h>[/code:1:14ebeabff0] ik las dit ergens op het internet. Maar helaas het werkt niet en ik zou ook niet weten wat ik nou zelf moet includen, de script zat in de installatie, ik heb het niet zelf gemaakt :-? Quote Link naar reactie
anoniem Geplaatst: 14 juli 2003 Auteur Delen Geplaatst: 14 juli 2003 Staat de file limits.h wel op je schijf? Kijk daar eerst eens naar. En volgens mij installeert SuSe 8.2 niet standaard de kernel source op je hd. //edit Die PATH_MAX komt idd uit limits.h. Zoek eens op of je die fysiek op schijf hebt staan. Zo ja, dan kun je gcc er naar toe verwijzen met de optie [code:1:2dd80a8bfb]--include-dir=[/code:1:2dd80a8bfb] Quote Link naar reactie
anoniem Geplaatst: 14 juli 2003 Auteur Delen Geplaatst: 14 juli 2003 Met de installatie via www.kernel.org zou die limits.h er toch ook mee geleverd moeten zijn of moet ik het nog ergens anders zoeken ?Ik heb op die site alleen linux-2.4.9.tar.gz gedownload. Ik dacht dat alles daarmee wel geinstalleerd zou zijn. Verder heb ik dus suse 8.2 Als ik suse 8.0 zou hebben, zou ik deze problemen eigelijk ook nog krijgen ? Ik ben maar een linux leek maar ik leer weer eens elke dag wat bij merk ik. :) Quote Link naar reactie
anoniem Geplaatst: 14 juli 2003 Auteur Delen Geplaatst: 14 juli 2003 je hebt nog steeds geen antwoord gegeven op de vraag :lol: Waar staat die file bij jou op schijf? Doe dus even [quote:d9bbe8e8ff] find / | grep limits.h [/quote:d9bbe8e8ff] Laat het weten ;) Quote Link naar reactie
anoniem Geplaatst: 14 juli 2003 Auteur Delen Geplaatst: 14 juli 2003 sorrie :oops: ben ook maar een linux kneus uitvoer[code:1:bf29b2a9d1]/usr/lib/perl5/site_perl/5.8.0/i586-linux-thread-multi/Tk/pTk/compat/limits.h /usr/lib/gcc-lib/i486-suse-linux/3.3/include/syslimits.h /usr/lib/gcc-lib/i486-suse-linux/3.3/include/limits.h /usr/src/linux-2.4.7/include/linux/limits.h /usr/src/linux-2.4.7/include/asm-arm/limits.h /usr/share/doc/packages/wine/doc-html/dbg-limits.html /usr/include/limits.h /root/linux/include/linux/limits.h /root/linux/include/asm-arm/limits.h [/code:1:bf29b2a9d1] mmm versie 2.4.7 heeft het wel en versie 2.4.9 niet Quote Link naar reactie
anoniem Geplaatst: 15 juli 2003 Auteur Delen Geplaatst: 15 juli 2003 Nee hoor ;) Hmmm je hebt de header files dus wel. Raar :o Hier struikel ik over: [quote:b2f96315dc] /usr/include/bits/local_lim.h:36:26: linux/limits.h: No such file or directory [/quote:b2f96315dc] Open die .h eens en kijk wat die include? Of probeer eens te compileren met [code:1:b2f96315dc] --include-dir=/usr/lib/gcc-lib/i486-suse-linux/3.3/include [/code:1:b2f96315dc] Ik kwam in een ander project ook deze meldingen tegen, ik moest toen hercompileren met deze optie om zo de limits.h uit de compiler-lib mee te linken. Dat hielp overigens wel. Wanneer moet je het inleveren trouwens? :) Quote Link naar reactie
anoniem Geplaatst: 15 juli 2003 Auteur Delen Geplaatst: 15 juli 2003 Zal ik de zelf toegevoegde code [code:1:8ebade0b60]linux/limits.h[/code:1:8ebade0b60] in de script van mkdep. h dan maar weer weghalen ? want volgens mij komt het daar vandaan. dit is nu wat mkdep.c wel include [code:1:8ebade0b60]#include <ctype.h> #include <fcntl.h> #include <limits.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/fcntl.h> #include <sys/mman.h> #include <sys/stat.h> #include <sys/types.h> [/code:1:8ebade0b60] Verder geeft het dezelfde eroor alsik eht weglaat of erbij laat Hoe en waar kun je controleren of je de header files eigelijk ook daadwerkelijk hebt ? Dalijk heb ik ze geeneens .... Of hoort het gewoon meegeleverd te worden als je een kernel installeerd uit pakt en compileerd ? Ik moest het allang al inleveren maar ik doe er lekker een hele zomer vakantie rustig over, zolang ik nog geen stageplek heb heeft het tochageen zin om dit haastig in te leveren :) Als ik al wel een plek had was ik wat sneller :D Quote Link naar reactie
anoniem Geplaatst: 15 juli 2003 Auteur Delen Geplaatst: 15 juli 2003 waar en hoe moet ik de code pziez in tikken op m'n konsole om deze code mee te kunnen compileren? [code:1:0b3c568038] --include-dir=/usr/lib/gcc-lib/i486-suse-linux/3.3/include [/code:1:0b3c568038] Quote Link naar reactie
anoniem Geplaatst: 15 juli 2003 Auteur Delen Geplaatst: 15 juli 2003 Ehmmm jij bent met een project bezig en weet niet hoe je moet compileren? :o je moet je makefile aanpassen, daar staat het allemaal in. Maar als je niet weet hoe je moet compileren, hoe verwacht je dan dit af te krijgen? Quote Link naar reactie
anoniem Geplaatst: 15 juli 2003 Auteur Delen Geplaatst: 15 juli 2003 Ik weet wel hoe je moet compileren maar je komt met een hele code aan en dan raak ik al het spoor bijster. gewone c-programmas compileren is geloof ik gcc test.c een kernel module compileren [code:1:b85ff7d8c5]make test.o gcc-Wall-O__KERNEL__--DMODULE--l/usr/scr/linux/include -c-o test.o test.c [/code:1:b85ff7d8c5] maar voor ik dat EINDELIJK kan doen moet ik eerst die kernel goed geinstalleerd krijgen dus :o Dus vertel aub waar ik die hele code van jou kwijt kan. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen