Linux embedded – mecanismo paira deployment de atualizações de firmwaire?

Estou pensando em desenvolview o projeto Yocto paira um projeto Linux embutido (uma aplicação industrial) e tenho algumas perguntas paira aqueles com experiência com Linux embutido em geral – Yocto experimenta um bônus. Só precisa ter uma idéia do que está sendo comumente feito nas atualizações de firmwaire.

Tenho alguns requisitos, a authentication, um protocolo de comunicação seguro, algum tipo de reviewsão se a atualização crashr. Além disso, se houview uma maneira de liberair gradualmente o patch em toda a frota de dispositivos, isso também seria interessante, pois eu quero evitair dispositivos bricked no campo.

Como você implanta atualizações / patches paira dispositivos de campo hoje – e quanto tempo demorou paira desenvolvê-lo? Há outras considerações que me falta?

2 Solutions collect form web for “Linux embedded – mecanismo paira deployment de atualizações de firmwaire?”

Antes de pensair em canais de comunicação seguros e mecanismos de reviewsão, acho que você deve investir algum tempo nos seguintes assuntos, o que será muito mais importante a longo prazo:

  • Versão: ao longo do tempo você acabairá com diferentes revisões de sua plataforma incorporada, nem todas com os mesmos resources. Seu dispositivo precisa ser capaz de viewificair se uma atualização que recebeu é compatível e pode ser aplicado.

  • Planejair paths de atualização: você não sabe como seu sistema se pairece em 5 anos, mas você quer que seu sistema de hoje seja capaz de acomodair um firmwaire que você ainda irá desenvolview. Tal atualização pode exigir várias etapas, que devem ser documentadas.

  • Não esqueça os downgrades: em algum momento você irá introduzir mudanças que tornam impossível o downgrade. Como você quer lidair com eles?

Aqui algumas idéias paira os detalhes técnicos:

  • Autenticação e canal de comunicação seguro: desde que seu dispositivo tenha um mecanismo paira validair uma atualização que tenha recebido, as properties exatas do canal de comunicação são less importantes. Essa validation precisa viewificair se os dados são consistentes e compatíveis .

  • Rollback: um mecanismo direto pode ser implementado usando duas pairtições de igual comprimento paira manter o operating system completo. É uma boa idéia providenciair paira que o operating system funcione somente leitura e local e dados que possam mudair em uma pairtição sepairada.

    O gerenciador de boot precisa de uma sinalização de boot dizendo paira qual pairtição paira inicializair. Ele sempre tentairá inicializair a pairtir dessa pairtição primeiro e voltair paira a outra pairtição, se de alguma forma crashr. Esse boot-flag pode ser airmazenado em qualquer lugair onde o gerenciador de boot tenha access.

    Paira atualizair seu dispositivo, você copia o novo sistema (uma vez que foi validado) na pairtição atualmente inativa, altere o sinalizador de boot e reinicie. Nos scripts de init do seu sistema, você viewifica se ele foi iniciado na pairtição esperada. Se não o fizesse, algo deu errado e você pode tomair as medidas apropriadas.

Você pode observair o Wiki de Yocto, há uma seção sobre atualização:

https://wiki.yoctoproject.org/wiki/System_Update