bâtiment /lib/modules/$(uname -r)/build lors de la compilation d'un noyau
Je suis à la cross-compilation de noyau 3.4.0 pour un dispositif intégré. Ensuite, je voudrais installer compat-wireless pilotes qui nécessitent /lib/modules/3.4/build
répertoire et les sous-fichiers. Quelqu'un pourrait-il expliquer comment je peux construire ce répertoire de sorte que lorsque je ne INSTALL_MOD_PATH=newmodules make modules_install
il serait de charger /lib/modules/$(uname -r)/build
répertoire? Je vous serais reconnaissant une explication claire.
J'utilise debian, distro. Je sais que je peux installer les en-têtes du noyau par apt-get install linux-headers-$(uname -r)
, mais je doute que ce serait une bonne idée, étant donné que les sources du noyau pourrait ne pas être identique.
OriginalL'auteur sven | 2013-05-22
Vous devez vous connecter pour publier un commentaire.
Général de /lib/modules/$(uname -r)/build est un doux-lien vers le répertoire où sont effectuées les construire. Donc, la façon de le faire est de simplement faire une
dans le répertoire de construction du noyau où /certains/root est l'endroit où vous voulez que votre cross compiler des morceaux à la fin. Cela permettra de créer un lien vers votre noyau build path dans /certains/root/lib/modules/$(uname -r) ... vérifier que.
Maintenant, lorsque vous générez le compat_wireless pilotes de spécifier le noyau répertoire de compilation dans le fichier Makefile comme /un peu/de la racine à l'aide de la KLIB_BUILD variable (lire le Makefile)
cela devrait faire l'affaire pour vous.
MODIFIER UN
En réponse à votre commentaire ci-dessous:
Garder "newmodules" à l'extérieur du noyau répertoire c'est une mauvaise idée de le mettre dans le noyau de répertoire. donc mkdir newmodules quelque part comme /home/foo ou /tmp ou quelque chose. C'est une des raisons pour construire votre lien est foireux
AUSSI .../construire est un doux lien /vers/kernel/construire/emplacement, il ne copie plus comme un doux-link. Vous devez aussi copier la réelle source du noyau /kernel répertoire de construction de votre microSD, en utilisant la même position relative. Par exemple,
Disons que les sources de votre noyau est:
Votre noyau répertoire de compilation est:
Votre newmodules (après 1.) est dans:
Sous /tmp/newmodules/vous voyez les modules installés dans un arbre comme:
lorsque vous faites un ls -al dans ce répertoire, vous verrez que de construire est un doux lien:
Maintenant, imaginons que votre microSD est monté sous /mnt/microSD
alors vous devez faire ce qui suit
Maintenant, vous avez tout le contenu que vous devez apporter à votre environnement embarqué. Je prends ce que vous faites la compat_wireless construire sur votre système cible plutôt que de la croix de la compilation?
NOTE
Si votre noyau est le même que la source du noyau, puis il suffit de copier le source du noyau, et d'ignorer la
linux-3.5.0-build
en copie des instructions ci-dessusmkdir newmodules;
make modules_install INSTALL_MOD_PATH=newmodules
puismake modules KLIB_BUILD=newmodules/lib/modules/3.4.0/build
. Je vois les fichiers sous .../répertoire de construction sur la machine où je cross-compilé le noyau. puis-je charger le noyau et les modules d'une carte microSD (cp-r newmodules/* /mnt/miniSD4/). Quand j'ai le pouvoir intégré le conseil d'administration ,ls -al /lib/modules/3.4.0/build
ne pas afficher quoi que ce soitla mise à jour de la réponse
OriginalL'auteur Ahmed Masud
C'est vieux, mais certaines personnes auront besoin de cette information.
J'ai passé de nombreuses heures à comprendre où
build
dossier vient, et pourquoi il est juste un lien lorsque je compile mon propre noyau. Enfin compris;Noyau Linux habituellement seulement les liens les
build
etsource
dossiers dans le dossier source.Mais!
Arch linux (probablement quelques autres distributions); a un script manuel pour la suppression de ces liens, et ajout de (filtré) des fichiers à
build
dossier.https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/linux
J'ai extrait de ce script fonctionne en standalone (dans une arborescence des sources du noyau) ici: https://gist.github.com/furkanmustafa/9e73feb64b0b18942047fd7b7e2fd53e
OriginalL'auteur Furkan Mustafa