É seguro copiar apenas as bibliotecas compartilhadas no dispositivo Linux embarcado?

2

O seguinte está contido no manual do usuário do fornecedor para sua distribuição Linux incorporada na placa de hardware que eles fornecem

Developers can put their program onto X-Linux device via FTP or NFS. Before running it, use ldd command on development workstation to check dependency files. Also put relative files onto X-Linux to ensure program can run properly. Here is an example when we put “syslinux” onto X-Linux:

  [root@X-Linux]:/sbin # ldd syslinux 
          linux-gate.so.1 => (0xb80a0000)
          libc.so.6 => /lib/libc.so.6 (0xb7f60000) 
          /lib/ld-linux.so.2 (0xb80a1000) 
  [root@X-Linux]:/sbin # 

From above messages, /lib/libc.so.6 and /lib/ld-linux.so.2 are needed by syslinux. Put those two files onto X-Linux to ensure syslinux can work properly.

Eu terei que escrever software para rodar neste dispositivo e um monte de conselhos que recebi em troca de pilha me aponta em direções que contradizem este conselho (sugerindo configurar ambiente de desenvolvimento embarcado específico, linkando para versões mais antigas da libc, estática ligando etc). As informações acima fornecidas pelo fornecedor são uma maneira segura e confiável de fazer as coisas?

    
por mathematician1975 10.07.2012 / 15:27

2 respostas

2

Você pode copiar bibliotecas para o dispositivo incorporado, desde que esteja executando o mesmo sistema operacional na mesma família de arquitetura de processador. Seu dispositivo tem um processador x86 , que é a mesma família dos PCs de 32 bits. Portanto, se você tiver um sistema Linux de 32 bits na sua máquina desktop, poderá copiar bibliotecas e executáveis da sua máquina desktop para o seu dispositivo.

Por outro lado, não recomendo fazer as coisas dessa maneira. Você vai acabar com uma confusão de arquivos de origem desconhecida, sem nenhuma maneira de gerenciar dependências, atualizar ou desinstalar o software. Pelo que eu recebi de uma rápida olhada no manual , o X- O Linux é um pequeno sistema Linux que não foi projetado para ser extensível. Minha recomendação é instalar outra distribuição Linux ao lado ou em vez do X-Linux. Se a outra distribuição estiver ao lado do X-Linux, execute programas dessa distribuição em um chroot (você ainda será limitado por o kernel do X-Linux).

    
por 11.07.2012 / 01:49
1

Espero que eles signifiquem "ambiente de desenvolvimento incorporado" por "estação de trabalho de desenvolvimento", pois, caso contrário, é provável que o aplicativo não seja executado devido a diferenças de arquitetura (erros de instrução inválidos).

O dispositivo parece ter um processador x86 de 32 bits, não deve ser difícil de configurar, mas copiar bibliotecas do seu (provável) sistema de 64 bits terminaria em desastre.

    
por 10.07.2012 / 15:49