2015-02-27 1 views
1

J'essaye de construire la plus petite image linux possible en utilisant le projet Yocto. Je voudrais également avoir la gestion de paquet sur la cible pour pouvoir ajouter et mettre à jour des parties du système courant.Yocto image minimale avec gestion des paquets

Je peux activer la gestion des paquets en ajoutant à mon conf/local.conf:

EXTRA_IMAGE_FEATURES = "package-management" 

utilisant rpm, qui tire dans le gestionnaire de paquets de smartpm qui est basé sur python qui rend l'image grand. J'ai donc essayé d'utiliser les paquets ipk mais cela dépend toujours de python.

Est-ce que quelqu'un a une bonne idée de comment inclure la gestion des paquets dans Yocto avec le moins de frais possible?

+0

Avez-vous essayé 'PACKAGE_CLASSES =" package_deb "'? Il y a aussi une classe de paquetage 'package_tar' mais je ne sais pas s'il y a un installateur comme sous * BSD qui supporte une telle installation/désinstallation de tar. – volker

+0

@volker, Merci, j'ai essayé deb. package_ipk est ma principale piste maintenant. – mabac

Répondre

0

On dirait que c'est le meilleur que je peux faire. Ensuite, éditez la recette pour opkg-utils afin de ne pas dépendre de python. Va bien sûr casser les utilitaires python, cependant.

1

je peux vous suggérer quelques petites choses qui peuvent vous aider à optimiser la taille des rootfs:

  • Optimize autant que binaire possible du noyau Linux et les paquets supprimés inutiles (système de fichiers, pilote de périphérique, réseau, etc.).

    $ bitbake -c menuconfig virtual/kernel //configure as per your requirement 
    $ bitbake -c savedefconfig virtual/kernel //savedefconfig 
    $ bitbake -f virtual/kernel 
    
  • Configurer Busybox et supprimé les choses inutilisées:

    $ bitbake -c menuconfig busybox 
    
  • Retirez ces fonctionnalités Distro si vous ne l'utilisez (et contrôleront plus aussi): graphiques [x11], [alsa] son, écran tactile [ écran tactile], Multimédia. Modification applicable dans le fichier conf/local.conf. Exemple: DISTRO_FEATURES_remove = "x11 alsa touchscreen bluetooth opengl wayland "

  • Choisissez gestionnaire init correct du système: systemd ou sysvinit
  • paquets supprimés non utilisés de l'image. Exemple PACKAGE_EXCLUDE = "perl5 sqlite3 udev-hwdb bluez3 bluez4"
  • Pour le petit périphérique intégré préféré PACKAGE_CLASSES = "package_ipk" et il est bien optimisé pour les petits systèmes.