[FreeBSD] Pb de compilation du noyau

Pb de compilation du noyau [FreeBSD] - Installation - Linux et OS Alternatifs

Marsh Posté le 02-06-2004 à 17:47:51    

Voila, j'ai voulu recompiler mon noyau. Avant j'ai fait une recompilation du monde.
Voila l'erreur que j'ai lors du "make buildkernel KERNCONF=ANDROMEDE
" :
 

cc -c -O -pipe  -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -ansi  -nostdinc -I- -I. -I/usr/src/sys -I/usr/src/sys/../include -I/usr/src/sys/contrib/dev/acpica -I/usr/src/sys/contrib/ipfilter  -D_KERNEL -include opt_global.h  -mpreferred-stack-boundary=2  /usr/src/sys/kern/kern_shutdown.c
cc -c -O -pipe  -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -ansi  -nostdinc -I- -I. -I/usr/src/sys -I/usr/src/sys/../include -I/usr/src/sys/contrib/dev/acpica -I/usr/src/sys/contrib/ipfilter  -D_KERNEL -include opt_global.h  -mpreferred-stack-boundary=2  /usr/src/sys/kern/kern_sig.c
/usr/src/sys/kern/kern_sig.c:360: warning: function declaration isn't a prototype
/usr/src/sys/kern/kern_sig.c: In function `osigaction':
/usr/src/sys/kern/kern_sig.c:368: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c:368: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c:370: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c:371: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c:373: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c:380: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c:385: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c: At top level:
/usr/src/sys/kern/kern_sig.c:534: warning: function declaration isn't a prototype
/usr/src/sys/kern/kern_sig.c: In function `osigprocmask':
/usr/src/sys/kern/kern_sig.c:540: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c:541: dereferencing pointer to incomplete type
/usr/src/sys/kern/kern_sig.c: At top level:
/usr/src/sys/kern/kern_sig.c:569: warning: function declaration isn't a prototype
/usr/src/sys/kern/kern_sig.c:723: warning: function declaration isn't a prototype
/usr/src/sys/kern/kern_sig.c: In function `osigsuspend':
/usr/src/sys/kern/kern_sig.c:731: dereferencing pointer to incomplete type
*** Error code 1
 
Stop in /usr/obj/usr/src/sys/ANDROMEDE.
*** Error code 1
 
Stop in /usr/src.
*** Error code 1
 
Stop in /usr/src.


 
Une idée ?


Message édité par sharlaan le 02-06-2004 à 17:55:26
Reply

Marsh Posté le 02-06-2004 à 17:47:51   

Reply

Marsh Posté le 02-06-2004 à 17:50:41    

quelle branche ? 4 ou 5 ? sources à jour ? l'arbre est clean ?

Reply

Marsh Posté le 02-06-2004 à 17:58:16    

Installé via le net à partir d'un CD de la 5.1
Mise à jour avec :  
cvsup /usr/share/examples/cvsup/stable-supfile
rm -rf /usr/obj
make buildworld
make buildkernel KERNCONF=ANDROMEDE
 
Pour le fichier de conf, j'ai repris le GENERIC, et j'ai rajouter ipfilter
 
Je précise que je débute sur FreeBSD

Reply

Marsh Posté le 02-06-2004 à 18:28:47    

sharlaan a écrit :

Installé via le net à partir d'un CD de la 5.1
Mise à jour avec :  
cvsup /usr/share/examples/cvsup/stable-supfile
rm -rf /usr/obj
make buildworld
make buildkernel KERNCONF=ANDROMEDE
 
Pour le fichier de conf, j'ai repris le GENERIC, et j'ai rajouter ipfilter
 
Je précise que je débute sur FreeBSD


 
Bon deja tu fais un cvsup vers une releng STABLE ... donc c'est mal barre vu que tu repasse ders la 4.x . Ensuite si tu as pris le fichier tel quel tu es sur que le cvsup est passe ? Je veux dire que "*default host=CHANGE_THIS.FreeBSD.org" est a modifier.
 
Normalement tant que tu restes dans la meme security branch le buildworld / install world n'est pas necessaire pour chaque recompilation du kernel (encore heureux). Mais pour passer de la 5.1 a la 5.2.1 (ou encore la 4) oui il le faut.
 
Pour passer a la 5.2.1 (p8 en ce moment) utilise le fichier cvsup suivant :
 

*default host=cvsup.ch.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_5_2
*default delete use-rel-suffix
*default compress
src-all


 
Verifie quand meme quel serveur cvs est le mieux pour toi. Fais ensuite ton cvsup.
 
Bon je n'aime pas la maniere que propose le handbook pour installer un nouveau world. Je la trouve lente et necessitant trop de reboots...
 
Voici la maniere rapide : compil du kernel, reboot single user mode, rebuild, exit
 
En details : (tout se fait en root bien entendu)
 

  • Crees un dir ou tu vas mettre tes configs kernel : mkdir /home/archives; mkdir /home/archives/kernels
  • Mets y ton kernel GENERIC (fais une copie), ajoute ce qu'il faut (fais bien attention quand meme), tu obtiens TONKERNEL.
  • Tu vas dans le dir de conf : cd /usr/src/sys/i386/conf/.
  • Tu link ton fichier de kernel : ln -s /home/archives/kernels/TONKERNEL
  • Tu configures : /usr/sbin/config TONKERNEL
  • Tu vas dans le dir de compilation : cd ../compile/TONKERNEL
  • Tu compiles avec les 3 etapes : make depend; make; make install
  • Tu reboot.


Bon la tu es pret pour faire un rebuild du world. Donc :
 

  • Tu ouvres un pty (ctrl-alt-F2 p.ex.) et te log en root
  • Tu passes en single user mode : shutdown now (attention pas de -h ni de -r) (et oui tu peux le faire avec "boot -s" au boot mais bon je trouve plus simple comme ca vu que ca t'evite de monter tes partitions, de gerer ton path pour mergemaster etc.)
  • Tu remove /usr/obj : rm -Rf /usr/obj
  • Tu vas dans /usr/src : cd /usr/src
  • Tu edites eventuellement ton fichier /etc/make.conf (ajout possible de "NOPROFILE = true" afin d'enlever les infos de profiling du kernel, mais bon je te laisse decouvrir "man make.conf" )
  • Tu make build world : make -j4 buildworld
  • Tu make install world : make installworld
  • Tu mergemaster : mergemaster
  • Tu confirmes la pluspart du temps avec "i", et delete certaines modifications inutiles avec "d"
  • Tu reboot (si tu preferes) ou repasse en multiple users mode avec la commande "exit"


Bon là c'est bon ca devrait jouer ;)
 
Enjoy !


Message édité par Kahyman le 02-06-2004 à 18:36:20
Reply

Marsh Posté le 02-06-2004 à 18:49:40    

merci, je vais tester

Reply

Marsh Posté le 03-06-2004 à 13:25:53    

alors ?

Reply

Marsh Posté le 03-06-2004 à 20:05:57    

ca marche nikel
merci

Reply

Marsh Posté le 03-06-2004 à 20:08:29    

Sinon, est-ce que mes regles de firewal sont bonne ?
 

pass in quick on lo0 all
pass out quick on lo0 all
pass in quick on ed0 all
pass out quick proto tcp all keep state
pass out quick proto udp all keep state
block in log quick all with ipopts
block in log quick all with frag
block in quick on ed0 proto tcp all flags FUP
block in log quick on ed0 proto tcp from any to any flags SF/SFRA
block in log quick on ed0 proto tcp from any to any flags /SFRA
block in quick on ed0 proto icmp from any to any icmp-type 0 keep state
block in quick on ed0 proto icmp from any to any icmp-type 3 keep state
block in quick on ed0 proto icmp from any to any icmp-type 8 keep state
block in quick on ed0 proto icmp from any to any icmp-type 11 keep state
pass in quick on ed0 proto icmp from any to any icmp-type 0 keep state
pass in quick on ed0 proto icmp from any to any icmp-type 3 keep state
pass in quick on ed0 proto icmp from any to any icmp-type 8 keep state
pass in quick on ed0 proto icmp from any to any icmp-type 11 keep state
pass out quick on ed0 proto icmp from any to any icmp-type 0 keep state
pass out quick on ed0 proto icmp from any to any icmp-type 3 keep state
pass out quick on ed0 proto icmp from any to any icmp-type 8 keep state
pass out quick on ed0 proto icmp from any to any icmp-type 11 keep state
pass in quick on ed0 proto tcp from any to any port = 22 keep state
pass in quick on ed0 proto tcp from any to any port = 80 keep state
block in log quick on ed0


Je précise que je souhaite que seuls les pings pour connaitre la vitesse de réponse doivent passer, ainsi que le SSH et le HTTP

Reply

Marsh Posté le 03-06-2004 à 20:14:13    

Sinon, après avoir recompiler le noyau et le monde, est-ce que je peux faire un rm -fr /usr/src pour liberer de la place ?

Reply

Marsh Posté le 03-06-2004 à 22:11:58    

Content que ca t'aie aide.
 
Sinon desole je n'utilise pas pf, mais ipfw qui fait tout ce que je desire.  
 
Cree un autre sujet avec cette question, car la personne ne la verra.
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed