Étapes et commandes de compilation OpenWrt en détail

Étapes et commandes de compilation OpenWrt en détail

Préface

Le processus de compilation d'OpenWrt est comme un répéteur.En plus de sélectionner les composants du système, presque chaque compilation consiste à copier et coller les mêmes commandes. Et comprendre le rôle de chaque commande et quand l'exécuter, afin que nous puissions mieux résoudre les problèmes rencontrés lors de la compilation et compiler le firmware plus facilement.

Compilez pour la première fois

  • Cloner le code source OpenWrt

    git clone https://github.com/coolsnowwolf/lede openwrt
    Prenons l'exemple du référentiel de code source de Lean, après tout, de nombreuses personnes l'utilisent. De plus la fin de la commande openwrt est cloner le code se réfère au openwrt répertoire, le but de la standardisation, car parfois pas compiler le code source.
  • Entrez le répertoire source

    cd openwrt
  • Téléchargez le code source du package dans la source des flux

    ./scripts/feeds update -a
    Les flux sont des packages étendus, indépendants du code source OpenWrt, ils doivent donc être extraits et mis à jour séparément.
  • Installer des packages dans les flux

    ./scripts/feeds install -a
  • Ajuster les composants du système OpenWrt

    make menuconfig
    Il est recommandé de ne sélectionner que l'architecture pour la première compilation, et de laisser les autres tranquilles, afin que le taux de réussite de la compilation soit plus élevé. Si vous n'avez pas l'intention d'ajuster le composant, entrez- make defconfig le, il détectera l'environnement de compilation et générera un fichier de configuration de compilation par défaut.
  • Pré-téléchargez les packages requis pour la compilation

    make download -j8 V=s
    -j8 Cela signifie télécharger en utilisant 8 threads. En théorie, plus le nombre est élevé, plus le téléchargement est rapide, mais il semble y avoir une limite supérieure. En fait, la vitesse de 5 threads ou plus n'est pas très différente. Dans le cas d'un bien réseau, le téléchargement peut être terminé en 5 minutes.
  • Vérifier l'intégrité des fichiers

    find dl -size -1024c -exec ls -l {} \;
    Cette commande peut lister téléchargé un fichier incomplet (basé sur mon expérience avec plusieurs compilations dessinées moins de 1k fichier appartient au téléchargement incomplet), s'il existe un tel fichier peut utiliser la find dl -size -1024c -exec rm -f {} \; commande pour les supprimer, puis réexécuter le make download téléchargement et double- coché, Confirmer que tous les fichiers sont complets peut augmenter considérablement le taux de réussite de la compilation et éviter de perdre du temps.
  • Commencer la compilation

    make -j1 V=s
    -j1 : Utilisez la compilation à un seul thread. Les novices recommandent la compilation à un seul thread, l'un est parce que les problèmes de métaphysique peuvent avoir un taux de réussite élevé, et l'autre est de vérifier facilement le journal des erreurs.

     

    V=s: Sortie de journaux détaillés, utilisés pour trouver des erreurs lorsque la compilation échoue. De plus, le code plein écran peut être chargé lors de l'exécution, et cela prend quelques heures pour s'exécuter, et le chargement est plus durable.

Compilez à nouveau

  • Entrez le répertoire source (s'il ne se trouve pas dans ce répertoire)

    cd openwrt

Mettre à jour

CONSEILS: Vous  pouvez ignorer l'étape de mise à jour si vous recompilez à court terme.
  • Mettre à jour le progiciel système

    sudo sh -c "apt update && apt upgrade -y"
    La fonction principale est de mettre à jour les composants de compilation installés lors de la configuration de l'environnement de compilation
  • Tirer la mise à jour du code source OpenWrt

    git pull
  • Mettre à jour le code source du package dans la source des flux

    ./scripts/feeds update -a
  • Installer des packages dans les flux

    ./scripts/feeds install -a

Nettoyage de fichiers

  • Nettoyer les anciens produits de compilation (facultatif)

    make clean
    Exécuter après une mise à jour à grande échelle du code source ou une mise à jour du noyau pour garantir la qualité de la compilation. Cela supprimera les fichiers /bin et /build_dir dans le répertoire.
  • Effacer les anciens produits de compilation, les outils de compilation croisée et les chaînes d'outils et autres répertoires (facultatif)

    make dirclean
    Il doit être exécuté avant la compilation de l'architecture de remplacement. Cela supprimera /bin et /build_dir (fichiers de répertoires make clean ), ainsi que /staging_dir , /toolchain , /tmp et les /logs fichiers.
  • Effacer les fichiers autres que le code source OpenWrt (facultatif)

    make distclean
    À moins que vous ne fassiez du développement et que vous envisagiez de pousser vers un référentiel distant comme GitHub, c'est presque inutile. Cette action est équivalente à la make dirclean suppression /dl , aux /feeds répertoires et aux .config fichiers.
  • Restaurer le code source OpenWrt à son état initial (facultatif)

    git clean -xdf
    Utilisez-le si le code source est cassé ou s'il n'a pas été compilé depuis longtemps.
  • Effacer les fichiers temporaires

    rm -rf tmp
    Supprimer effectuer make menuconfig certains fichiers temporaires générés après avoir récupéré des informations, y compris un certain nombre de packages, après la suppression rechargera package le répertoire du package. S'il n'est pas supprimé, certains progiciels nouvellement ajoutés ne seront pas affichés.
  • Supprimer le fichier de configuration de la compilation

    rm -f .config
    Si vous désélectionnez certains composants sans les supprimer, les composants dépendants ne seront pas automatiquement annulés, il est donc recommandé de les supprimer si vous devez ajuster les composants.

Compiler

  • Ajuster les composants du système OpenWrt

    make menuconfig
    Si vous n'avez pas l'intention d'ajuster le composant, entrez- make defconfig le, et il détectera l'environnement de compilation et ajustera automatiquement le fichier de configuration de compilation en fonction de la mise à jour.
  • Pré-téléchargez les packages requis pour la compilation

    make download -j8 V=s
  • Vérifier l'intégrité des fichiers

    find dl -size -1024c -exec ls -l {} \;
    Cette commande peut lister téléchargé un fichier incomplet (basé sur mon expérience avec plusieurs compilations dessinées moins de 1k fichier appartient au téléchargement incomplet), s'il existe un tel fichier peut utiliser la find dl -size -1024c -exec rm -f {} \; commande pour les supprimer, puis réexécuter le make download téléchargement et double- coché, Confirmer que tous les fichiers sont complets peut augmenter considérablement le taux de réussite de la compilation et éviter de perdre du temps.
  • Commencer la compilation

    make -j$(nproc) || make -j1 || make -j1 V=s
    Après l'échec de la compilation multithread, il entrera automatiquement dans la compilation monothread. En cas d'échec, il affichera des journaux détaillés.

Je suppose que tu aimes

Origine blog.csdn.net/hailangnet/article/details/114909215
conseillé
Classement