web-dev-qa-db-fra.com

Comment compiler et installer un noyau principal personnalisé

J'utilise Ubuntu 15.10 sur un nouvel ordinateur portable, mais pour obtenir un support complet et approprié de ce matériel, j'ai apparemment besoin du noyau 4.4 + d'un correctif personnalisé. Voir ici si les détails vous intéressent.

Je connais les PPA du noyau principal, mais ma compréhension est qu’ils ne viennent pas avec la source. Si tel est le cas, cela semblerait éliminer la possibilité d'utiliser un PPA de noyau principal car je ne peux pas le corriger. J'ai donc essayé de consulter le code source de git et de le construire, mais je ne trouve pas d'instructions pertinentes à jour.

Quelqu'un peut aider avec des instructions pour construire un noyau 4.4 sur 15.10?

7
Marplesoft

Obtenez et compilez le noyau principal, méthode git:

voir aussi: https://wiki.ubuntu.com/KernelTeam/GitKernelBuild Je fais les choses un peu différemment (quoi d'autre est nouveau?).

Prérequis (Doit):

La première étape consiste à apt-get update et apt-get dist-upgrade (c’est-à-dire s’assurer que tout est à jour)
Étape 2

Sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge

Étape 3

Sudo apt-get build-dep linux

Étape 4

Sudo apt-get install git-core libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev

Prérequis à partir du noyau 4.3:

Sudo apt-get install libssl-dev

Prérequis (facultatif):

Sudo apt-get install git-email git-doc

La partie git:

mkdir temp-k-git
cd temp-k-git
git clone   git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux

Ne faites jamais de choses dans la branche maître par défaut. Toujours faire un espace de travail.

git checkout -b k44rc8_stock v4.4-rc8

Volez le fichier de configuration du noyau Ubuntu (déjà installé):

ls -l /boot
cp /boot/config-4.4.0-040400rc8-generic .config

Le fichier de configuration Ubuntu a un débogage complet. Fait un noyau énorme et prend deux fois plus de temps à compiler

scripts/config --disable DEBUG_INFO

Note spéciale à partir du noyau 4.4 et si vous compilez avec Ubuntu 14.04 (je ne connais pas 15.10), avec une version plus ancienne du compilateur c: Il ne peut pas compiler avec CONFIG_CC_STACKPROTECTOR_STRONG.

scripts/config --disable CC_STACKPROTECTOR_STRONG

Compilez le noyau:

time make -j9 bindeb-pkg       <<< Suggest use number of CPUs + 1. Use less for some responsiveness to be left for other uses
                               <<< I always time the kernel build.

ou

time make -j9 bindeb-pkg LOCALVERSION=-stock    <<< For a localized verion name append

ou

time make -j9 olddefconfig bindeb-pkg LOCALVERSION=-stock   <<< To automatically use defaults for any new config stuff (particuarly useful when bisecting the kernel).

Une fois la construction terminée, installez-le:

Sudo dpkg -i ../linux-headers-4.4.0-rc8-stock_4.4.0-rc8-stock-144_AMD64.deb
Sudo dpkg -i ../linux-image-4.4.0-rc8-stock_4.4.0-rc8-stock-144_AMD64.deb

Donc, à ce stade, nous savons que le noyau principal compile O.K., passez donc sur le noyau personnalisé. Créez une nouvelle branche, appliquez les correctifs et compilez:

$ git checkout -b k44rc8_custom v4.4-rc8
Switched to a new branch 'k44rc8_custom'

$ git am plv6_1_3.patch
Applying: cpufreq: intel_pstate: configurable algorithm to get target pstate
$ git am plv6_2_3.patch
Applying: cpufreq: intel_pstate: account for non C0 time
$ git am plv6_3_3.patch
Applying: cpufreq: intel_pstate: Account for IO wait time

$ time make -j9 olddefconfig bindeb-pkg LOCALVERSION=-custom

Notez que c’est exprès que je ne fais pas un make clean, car il est souhaitable de gagner beaucoup de temps en faisant une construction incrémentielle. La première compilation a pris 21 minutes et 26 secondes, mais la prochaine compilation personnalisée n'a duré que 4 minutes et 43 secondes.

9
Doug Smythies

Si vous allez à la page http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.4-rc8-wily vous trouverez un README indiquant comment obtenir les fichiers sources pour 4.4rc8

Instructions pour la construction sont un peu déroutant. J'ai vu plusieurs recettes pour la construction des noyaux, toutes un peu différentes. Il y a plusieurs prérequis: Il y en a peut-être d'autres qui sont requis pour le noyau 4.4

Sudo apt-get build-dep linux-image-$(uname -r)
Sudo apt-get install libncurses5-dev

Ensuite, les commandes que j'ai émises pour une construction réussie sont:

chmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
nano debian.master/changelog
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
fakeroot debian/rules binary-headers binary-generic skipabis=true

Modifier le fichier changelog pour indiquer que je crée mon propre noyau, en ajoutant quelque chose à la fin du premier numéro de version affiché.

1
Charles Green