O Linux oferece uma maneira limitada de alterar os valores informados por uname
, com o personality
chamada de sistema que pode ser invocada através do utilitário setarch
( parte do pacote util-linux disponível em todos os Linux não embarcados). Por exemplo, você pode usar setarch i386 myprogram
ou linux32 myprogram
em uma máquina amd64 para fazer um programa acreditar que está sendo executado em um sistema x86 de 32 bits.
No entanto, não há como alterar a versão reportada por uname
para um número arbitrário.
Também é possível alterar o nome do host para uma árvore de processos, com namespaces UTS .
schroot pode definir esses parâmetros de acordo com a configuração do chroot.
Mas, para compilar software, alterar o relatório de informações por uname
não é suficiente. Você também precisa usar o compilador certo para o processador de destino, link com o código correto, etc. Isso é conhecido como compilação cruzada e um ambiente de compilação cruzada não usa nenhuma informação sobre o host para decidir o que construir e como construí-lo. Portanto, esqueça a falsificação de uname
e, em vez disso, leia-a, começando com Compilando de forma cruzada um módulo de kernel e com a documentação do kbuild .