Bonjour,
j'ai un PC type desktop relativement puissant et un portable MSI Wind U100.
Je voudrais compiler un kernel depuis les sources de kernel.org pour le portable sur mon desktop.
J'arrive à compiler les sources de kernel.org sans souci sur le desktop pour le desktop grâce à ma recette, mais je cherche à comprendre comment modifier ma recette pour compiler sur le desktop pour le portable.
Pour le moment j'ai trouvé une méthode que j'ai légèrement modifiée et j'ai réussi à obtenir un paquet deb linux-image-3.19.3-20150326_1+i_amd64.deb en faisant :
make-kpkg clean
cp ../config-3.16.0-4-686-pae .config && yes "" | linux32 make oldconfig
export CONCURRENCY_LEVEL=4
fakeroot linux32 make-kpkg --cross-compile - --arch=i386 --initrd --revision=1+i --append-to-version=-`date +%Y%m%d` kernel-image
La compilation se passe bien, et d'après ce qui est dit j'ai bien un kernel 32bit mais étiqueté 64bit :
At this point you have a 32bit kernel inside a package labeled for 64bit arch
il dit de faire ensuite :
fakeroot deb-reversion -k bash ../linux-image-3.19.3-20150326_1+i_amd64.deb
dch warning: Previous package version was Debian native whilst new version is not
root@debian:/tmp/deb-reversion.sNgmX9/package# nano DEBIAN/control ## ici on remplace Architecture: amd64 par Architecture: i386
exit
Sauf que j'ai systématiquement l'erreur suivante :
mv: impossible d'évaluer " ../dpkg-name: info: déplacement de " package.deb\ " en " ./linux-image-3.19.3-20150326_1+i-0LOCAL.1_i386.deb\ " ": Aucun fichier ou dossier de ce type
il y a bien un bug de deb-reversion de 2009 qui semble correspondre.
D'où mes questions suivantes :
Dans la ligne de commande fakeroot je mets --arch=i386 l'architecture du portable (dont le .config debian du kernel actuel se nomme config-3.16.0-4-686-pae) c'est i386 ou i686?
Est-ce que je suis sur la bonne piste?
il y aurait-il un moyen de faire autrement ou mieux, par exemple en mettant d'autres options à la commande fakeroot ou make-kpkg et sans utiliser deb-reversion?
D'avance merci et bon week-end!
# mieux, je ne sais pas, autrement, oui
Posté par NeoX . Évalué à 2.
le but est de modifié le fichier CONTROL dans lequel tu precises pour quelle archi est fait le paquet,
un paquet .deb ce n'est qu'une archive qui peut etre decompressée, modifiée puis recompressée.
et cela semble etre ce que cherche à faire 'deb-reversion"
si deb-reversion ne fonctionne pas, tu peux faire la meme chose à la main,
par contre je me souviens l'avoir fait, mais je ne retrouve pas mes notes.
[^] # Re: mieux, je ne sais pas, autrement, oui
Posté par i M@N (site web personnel) . Évalué à 1.
merci pour la réponse.
J'ai essayé de modifier le script deb-reversion mais sans succès.
J'ai donc cherché à extraire le .deb en ligne de commande et ce qui se fait en un clic-droit "extraire ici" en mode graphique est un peu plus long en ligne de commande :
J'ai installé mon linux-image-3.19.3-20150326_1+i_i386.deb sur le portable et ça a fonctionné du premier coup!
Je ne sais pas pourquoi mais je pensais qu'extraire le .deb puis éditer le fichier DEBIAN/control allait créer des erreurs type md5 alors que les md5 du fichier DEBIAN/md5sums ne concernent que les fichiers de /boot, /lib et /usr de l'archive .deb
il me reste à élucider 1 point :
il y aurait-il un moyen d'avoir directement un deb étiqueté i386, par exemple en mettant d'autres options à la commande fakeroot ou make-kpkg et sans utiliser deb-reversion ou extraire le deb, le modifier puis le recréer?
wind0w$ suxX, GNU/Linux roxX!
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.