O ambiente Linux está sobrescrevendo a configuração de rede. Como parar isso?

0

Eu tenho um sistema ARM que foi pré-carregado com alguma variante do Linux. Não conheço a distribuição; Eu só posso ver o número do kernel no dmesg.

Em / etc / network / interfaces, eu defino eth0 para

auto eth0
iface eth0 inet dhcp

Depois de salvar e reinicializar (ou executar ifdown eth0 seguido de ifup eth0), posso ver que o sistema de rede está procurando um servidor DHCP e realmente obtém uma concessão em um endereço IP válido, mas quando executo o ifconfig, interface não foi atribuído o endereço que puxou para baixo do DHCP. Foi atribuído um endereço 192.168. . .

De onde isso pode estar vindo?

Eu notei no dmesg que uma variável "ip" é passada para o kernel na inicialização com o mesmo endereço que está substituindo o meu endereço DHCP. Como posso desabilitar esse comportamento predominante? Percebi uma variável de ambiente dinâmico no u-boot chamado ip. Eu configurei o dhcp e salvei em nv storage, mas o problema persistiu. Eu tentei definir a variável de ambiente u-boot ipaddr para dhcp, mas foi informado que este não era um valor válido para a variável.

Como posso configurar a interface através do DHCP?

    
por user20926 18.05.2011 / 19:28

1 resposta

1

O parâmetro ip é descrito aqui:

link

Os parâmetros que são passados para o kernel são armazenados em uma variável chamada bootargs in u-boot.

Faça um printenv para verificar qual é o valor dos bootargs. Se você ver um parâmetro "ip=" sendo passado para o kernel, então você pode deletar isso do bootargs.

Existe outra possibilidade através da qual os parâmetros do kernel podem ser passados.

Essa é a opção CONFIG_CMDLINE na configuração do kernel.

Se o seu kernel foi construído com CONFIG_IKCONFIG support, então deve haver um arquivo /proc/config.gz .

Copie isso para /tmp e gunzip e verifique se a opção CONFIG_CMDLINE está presente e, se estiver, se o parâmetro ip está sendo passado ou não.

Se for, então você não pode fazer nada sobre isso, apenas uma recompilação do kernel pode mudar essa situação. Não tenho certeza se é possível buscar o ip usando o dhcp novamente em /etc/rc.local e sobrescrever o ip obtido do parâmetro do kernel.

    
por 19.05.2011 / 07:13

Tags