Isso geralmente funcionará. Eu tentaria, mas há algumas coisas que você precisa saber:
-
Ao criar, os binários precisam ser criados para a arquitetura da CPU e os recursos de seu destino. Dado que ambos são x86, isso ajudará muito, mas você ainda precisa ter cuidado ao usar recursos do processador como o sse3, etc. Se você construir um binário que aproveite os recursos que estão ausentes em sua instalação de destino, ele ganhará trabalhe.
-
O kernel do seu sistema de compilação pode exercer alguma influência sobre o comportamento do seu ambiente chrooted. Você não pode usar um kernel diferente para um chroot versus o sistema host, então você pode encontrar discrepâncias entre os dois. Os aplicativos geralmente se comunicam com o kernel via libc, o que fornece uma interface padrão que pode ajudar a evitar tais problemas.
-
Sua libc precisa ser compatível com seu kernel, até certo ponto. A libc do seu sistema embarcado pode não ser totalmente compatível com o seu kernel, dependendo das mudanças na interface; no entanto, se a libc for anterior ao seu kernel, é improvável que isso seja um problema (é mais provável que as interfaces de kernel antigas permaneçam em suporte para suportar binários antigos).
-
Os serviços do seu sistema host estarão visíveis para o seu sistema incorporado. Isso é comum a qualquer chroot, já que eles compartilham tabelas de processo, interfaces de rede, etc.
-
Para suas 'bibliotecas adicionais', você pode usar links estáticos para vinculá-los ao seu aplicativo. Em seguida, você pode evitar a implantação das bibliotecas no dispositivo. Sua milhagem pode variar.
Você pode considerar usar uma máquina virtual para fazer isso. Ele não removerá necessariamente todas as preocupações (como recursos / sinalizadores do processador), mas você pode ter um ambiente que corresponda muito mais ao sistema incorporado. Ou seja, você pode usar o mesmo kernel, executar o mesmo processo de boot, evitar a contaminação pelos serviços do host ...
Esteja ciente de que, se você configurar um conjunto de ferramentas de compilação dentro do seu chroot, poderá pensar em como copiará os novos arquivos de volta para o sistema incorporado; você provavelmente não quer copiar os arquivos toolchain (gcc, etc).
Tente configurá-lo e escrever um aplicativo de teste, criar algumas bibliotecas ou qualquer outra coisa e ver como eles funcionam quando movidos para o sistema incorporado.