2 votes

La commande mkbootfs n'a pas été trouvée lors de la construction d'un noyau aosp.

Suivez le guide ici : https://source.Android.com/setup/build/building-kernels

mkdir android-kernel && cd android-kernel
repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-bonito-4.9-android11-qpr2
repo sync
build/build.sh

Il fonctionne pendant ~7min puis échoue @

Creating initramfs: build/build.sh: line 967: mkbootfs: command not found

J'ai trouvé le binaire mkbootfs, à plusieurs endroits en fait, et tous, lorsqu'ils sont exécutés, disent "command not found" ! J'ai essayé chmod 777 & chmod +x, mais même problème. J'ai également essayé sudo. J'ai essayé d'ajouter "$HOME/Android/aosp-kernel/build/build-tools/path/linux-x86" à mon PATH mais même résultat. build \build.sh La ligne 967 n'est pas celle où se trouve la cmd mkbootfs, mais elle apparaît à la ligne 980 :

mkbootfs "${INITRAMFS_STAGING_DIR}" >"${MODULES_STAGING_DIR}/initramfs.cpio"

Quel est le résultat attendu lorsque mkbootfs est exécuté sans paramètres ?

Je pensais que ce serait facile. Pour une raison quelconque, je ne trouve rien d'utile sur le net.

S'IL VOUS PLAÎT, AIDEZ-MOI !

0 votes

Qu'en est-il du système sur lequel vous construisez l'AOSP ? Est-ce un PC Linux x86_64 ordinaire ou quelque chose de différent ?

0 votes

Il s'agit d'un WSL2 fonctionnant sous Ubuntu 20.x. J'ai compilé avec succès plusieurs ROMs et noyaux, LineageOS, sans problème, donc je n'ai pas pensé à cela. Mais j'ai essayé le binaire mkbootfs sur un raspberry pi 4 (debian) et j'ai encore obtenu "command not found". Est-ce attendu lorsqu'il est exécuté sans paramètres ? Je ne pense pas.

0 votes

Vous ne pouvez pas transférer un binaire d'une plate-forme x86 à une plate-forme ARM[64], cela ne fonctionnera jamais. Vous devez exécuter file mkbootfs sur le binaire pour voir pour quelle plateforme il a été compilé.

2voto

Kevin Points 161

MISE À JOUR avec correction :

Question : Le clonage du repo n'inclut pas ces dossiers ! /aosp-kernel/prebuilts/build-tools/path/linux-x86/, /aosp-kernel/prebuilts/build-tools/path/linux-x86/bin, /aosp-kernel/prebuilts/kernel-build-tools/linux-x86/bin/[mkbootfs] (&plus), (peut-être quelques autres)

Note : kernel-build-tools URL/Repo : https://Android.googlesource.com/kernel/prebuilts/build-tools/+/refs/heads/master/linux-x86/bin/

Solution de fortune : (x86 Linux)

cd ~/
mkdir kernel-build-tools
git clone https://android.googlesource.com/kernel/prebuilts/build-tools
ls -l kernel-build-tools
nano ~/.profile
Add lines to path: (this will work as current user NOT SUDO!!)
# add Kernel tools to path
if [ -d "$HOME/kernel-build-tools/build-tools/linux-x86/bin" ] ; then
    PATH="$HOME/kernel-build-tools/build-tools/linux-x86/bin:$PATH"
fi
Refresh environment: source ~/.profile
VALIDATE: mkbootfs -> "error: no directories to process?!" (This is good!)

J'ai pu compiler après cela. Pour info, ~/aosp-kernel/ est l'endroit où j'ai synchronisé le noyau Android.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X