Differences

This shows you the differences between two versions of the page.

Link to this comparison view

freebsd:upgrade_current [2010/01/12 13:29] (current)
Line 1: Line 1:
 +                        -=[ Mise a jour freebsd 4.7 vers -current ]=- 
  
 +
 +-= Mettre a jour les sources =-
 +
 +Premierement il faut mettre vos sources a jour .
 +Editez votre fichier "​src.supfile"​ et changez le tag CVS .
 +Vous devriez avoir quelquechose comme ca :
 +
 +*default release=cvs tag=. 
 +
 +Apres faites comme d habitude ​  :
 +cvsup /​path/​to/​src.supfile ​
 +
 +J'​utilise src-all dans mon '​src.supfile'​ , si ce n' est pas le cas chez vous faites bien attention de ne pas garder de veilles sources.
 +
 +Vous avez a cet instant les sources freebsd-current .
 +
 +-= Compiler les source de freebsd-current ​ =-
 +
 +Faites comme d'​habitude :
 +
 +Effacez le contenu du repertoire /​usr/​obj ​  . (rm -fr /usr/obj/*)
 +
 +Puis tapez votre : 
 +make buildworld ​
 +
 +Dans le fichier UPDATING ​ (/​usr/​src/​UPDATING) il est conseillé de ne pas utiliser l'​option "​-j"​ de make  lors d un changement majeur de version , je n ai lu ceci qu apres avoir compilé mes sources et je n'ai pas eu de problemes . (j ai peut etre eu de la chance aussi !)
 +
 +-= Compiler un Kernel =- 
 +
 +Les choses serieuses commencent : 
 +
 +Le kernel "​-current"​ change beaucoup des kernels de la branche 4_*,
 +il vous faut adapter votre configuration au nouveau format .
 +
 +J'ai pris comme base le fichier GENERIC , viré les fonctionnalitées dont je ne 
 +me sers pas et recuperé
 +celle qui m interressaient dans le fichier OLDCARD(*) .  ​
 +
 +Comme vous l'avez peut etre remarqué il n y a plus de ligne de ce type (avec les 
 +irq,​drq,​flag...) :
 +device ​         sbc0    at isa? port 0x220 irq 5 drq 1 flags 0x15
 +
 +Elles ont étés remplacées par un fichier "​.hints"​ qui contient tous les parametr
 +es des periferiques ​
 +(name,​irq,​drq,​flag,​...).
 +
 +Copiez le fichier ​ GENERIC.hints (ou le votre) vers /​boot/​device.hint .
 +(Tres iportant sinon vous ne pourrez pas faire d'​installkernel/​installworld)
 +
 +Si vous avez un péripherique ne se trouvant pas dans le fichier GENERIC (par exemple une carte son ISA), il vous faudra rajouter les irq... dans le fichier hints .
 +
 +Exemple : 
 +---------
 +
 +'​4.7'​ format :
 +
 +device ​         sbc0    at isa? port 0x220 irq 5 drq 1 flags 0x15
 +
 +'​-current'​ format :
 +
 +hints.sbc.0.at="​isa"​
 +hints.sbc.0.irq="​5"​
 +hints.sbc.0.drq="​1"​
 +hints.sbc.0.port="​0x220"​
 +hints.sbc.0.flags="​0x15"​
 +
 +
 +Vous pouvez maintenant compiler votre kernel (avec la 'new way' cf.handbook)
 +
 +Tapez  : 
 +
 +cd /​usr/​src/; ​
 +make buildkernel KERNCONF='​your_config_name'​
 +
 +Hop votre nouveau kernel est pret a etre installé !
 +
 +-= Installer le kernel et le nouveau bootloader =-
 +
 +
 +Vous pouvez maintenant installer le nouveau kernel , 
 +vous aurez besoin de recompiler le boot loader ou vous redemarerez avec votre ancien kernel .
 +
 +Tapez :
 +cd /usr/src ; 
 +make installkernel KERNCONF='​your_config_name' ​
 +cd /​usr/​src/​sys/​boot ;
 +make ;
 +make install ;
 +
 +Verifiez qu'il n y ait pas de veilles etrées dans votre '/​etc/​fstab' ​
 +toutes les etrées doivent correspondre a ce format :
 +
 +/​dev/​[device_name][controller_num][slice][partition] ​
 +example : /​dev/​da0s1f ​
 +
 +les entrées de ce type ne sont plus acceptées : 
 +/dev/da0f
 +
 +
 +Vous devez redemarrer en mode '​single user' maintenant.
 +
 +-= Installer le "​mode"​ et le mergemaster ​ =-  ​
 +
 +Hop ! 
 +Vous devriez voir votre nouveau kernel booter ! 
 +Les messages d erreurs peu sympathiques qui s affichent sont dus au fait 
 +que vos binaires actuels font des appels "​syscalls"​ qui n existent plus .
 +
 +Il ne reste plus qu' executer l'​installworld classique :
 +
 +cd /usr/src/ ; 
 +make installworld ; 
 +
 +Puis lancez le mergemaster , il sera un peu plus long que lors d une mise a jour simple, faites bien attention a installer tous les nouveaux scripts de demarrage (sous peine de mauvaise surprises)
 +
 +Il ne reste plus qu'a redemarrer pour tourner en FreeBSD-current !!
 +
 +-= Hey !! Ca ne marche pas  =-
 +
 +J'ai sauté quelques étapes, aussi vous devriez lire avec attention le fichier UPDATING (dans /usr/src) .
 +Je ne fais pas le buildkernel/​buildworld en mode '​single-user',​
 +cela peut affecter la compilation a cause de variables d environements (vous pouvez essayer de faire un env -i) .
 +
 +Vous pouvez me contactez par mail a cette adresse : ofredj@fr.cw.net .
 +
 +
 +(*) : OLDCARD est le remplacent du fichier LINT . 
freebsd/upgrade_current.txt · Last modified: 2010/01/12 13:29 (external edit)