Construindo software para Linux gerado usando multistrap

Construindo software para Linux gerado usando multistrap

Estou trabalhando em um dispositivo embarcado com CPU ARM e Debian Jessie construído usando multistrap. Parece que preciso instalar uma versão ligeiramente corrigida do ModemManager nesse sistema e o que estou pedindo é alguma orientação sobre como fazer isso.

O que tentei até agora foi fazer chroot no rootfs criado pelo multistrap, baixar o código-fonte do ModemManager usando o apt-get e construí-lo em chroot. Até agora, nem consegui passar o script de configuração devido a dependências que não consigo satisfazer.

A correção é necessária para resolver o problema conhecido do ModemManager, que pode confundir o hardware ao verificar portas seriais em busca de modems. Existe uma maneira de contornar isso colocando dispositivos na lista negra por meio de regras do udev, mas neste caso a porta serial faz parte do subsistema tty, para o qual a lista negra não é suportada. Verifiquei isso no código-fonte do ModemManager.

Também estou muito aberto a maneiras mais fáceis de resolver isso, se houver, mas não as notei até agora.

Responder1

Mesmo que esta questão concreta seja antiga, adicionar uma versão modificada de algum software a um rootfs debian gerado por multistrap é um problema comum ao usar multistrap.

Eu não misturaria compilação cruzada com multistrap, porque compilar software no chrootfs gerado pelo multistrap é muito trabalhoso.

Em vez disso, eu compilaria o software modificado em algum lugar onde isso fosse fácil. Você pode já ter um ambiente de compilação cruzada para sua arquitetura ARM de destino, mas se não, o método mais fácil hoje IMO (e também em 2016) é usar um computador Linux/ARM de placa única como o Raspberry Pi com o sistema operacional de destino desejado , instale as ferramentas de construção necessárias e compile o software modificado lá. Não há necessidade de configurar a compilação cruzada, porque ela usa compilação nativa. Quando compilado, copie o binário criado para o ambiente multistrap no seu PC.

Execute o multistrap normalmente e depois de executado e de ter configurado todos os pacotes no chroot, basta copiar o binário modificado para o rootfs antes de usar o rootfs no hardware de destino.

"Binário" aqui pode significar apenas o executável compilado, mas também pode significar um pacote .deb personalizado (que você instala com o dpkg no chroot no final, em vez de apenas copiar). Este último pode fornecer mais proteção à sua modificação porque você também pode modificar o número da versão .deb para que sua modificação não seja revertida posteriormente por um apt update; apt upgradesistema embarcado que possa recuperar atualizações de software durante a execução.

informação relacionada