Question

J'ai un système basé busybox linux sur une puce. Je veux fournir une mise à jour pour les utilisateurs dans le domaine, ce qui nécessite une actualisation des fichiers dans / lib / usr / bin et / etc. Je ne pense pas qu'il est sûr de simples décompressez les fichiers directement. Yat-il un moyen sûr de faire, y compris les fichiers / lib qui peuvent être utilisés?

Était-ce utile?

La solution

Certaines choses que je préfère fortement dans les systèmes embarqués:

a) Avoir le système de fichiers racine est un disque virtuel non compressée d'une image en flash. C'est grand parce que vous pouvez expérimentalement le singe avec elle au contenu de votre cœur et si vous gâcher, tout ce que vous avez besoin est un redémarrage pour revenir à la configuration flashé. Lorsque vous avez testé un ensemble de changement que vous le souhaitez, vous générer une nouvelle image de système de fichiers racine compressé et flash qui.

b) Utiliser un bootloader tel que u-boot pour faire vos mises à jour - clignotant une nouvelle image complète - plutôt que d'essayer de changer le système Linux en cours d'exécution. Bien que depuis la copie flashé est pas en direct, vous pouvez réellement flasher lors de l'exécution. Si vous flashez une mauvaise version u-boot est toujours là à clignoter un bon.

c) processeurs qui ont UART masque-rom (ou même USB) Bootloaders, ce qui rend le système non brickable - rien de plus qu'un ordinateur portable et un câble série ou un convertisseur USB / série est toujours nécessaire pour faire l'entretien (c.-à-obtenir une image u-boot de travail sur le flash, que vous utilisez ensuite pour obtenir un noyau linux + travail d'image racine fs comprimé sur lui)

Autres conseils

Idéalement votre appareil flash est assez grand pour diviser en deux systèmes de fichiers complets et chaque mise à jour met à jour autre côté (plus la copie sur les fichiers de configuration si nécessaire) et met à jour la configuration de démarrage pour démarrer à partir du côté mis à jour .

Moins idéale est de mettre à jour sur place, mais ont des moyens de détection de défaillance de démarrage (chien de garde qui a pas touché jusqu'à ce que après le démarrage, par exemple) et ont une plus petite partition de repli qui est capable d'accepter une autre mise à jour et la fixation de la partition principale .

En ce qui concerne la mise à jour en place d'un système de fichiers en direct, il suffit d'utiliser un véritable programme d'installation (qui se déplacera les fichiers cibles sur la voie avant de les remplacer pour éviter le problème que vous décrivez).

Vous avez reçu deux excellentes réponses ci-dessus et je vous encourage vivement à faire ce que vous avez été informé de.

Il y a, cependant, d'une manière plus simple. En effet vous peut détarez vos bibliothèques, à condition que le processus qui fait cela est lié statiquement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top