No final, modifiquei a resposta de Nath (obrigado!). Meu arquivo de interfaces agora é assim:
# etc/networking/interfaces
auto lo
iface lo inet loopback
iface eth0 inet manual
E meu dhcpcd.conf tem isto anexado:
# etc/dhcpcd.conf
interface eth0
arping 192.168.1.254
arping 192.168.0.254
fallback nicutpi2
profile 192.168.1.254
static ip_address=192.168.1.77
static routers=192.168.1.254
static domain_name_servers=192.168.1.254
profile 192.168.0.254
static ip_address=192.168.0.77
static routers=192.168.0.254
static domain_name_servers=192.168.0.254
profile nicutpi2
static ip_address=192.168.0.77
Os arpings são executados procurando por um servidor correspondente (note que este pode ser qualquer IP que esteja consistentemente ligado, não apenas o servidor DHCP) na rede local; se algum deles for encontrado, ele usará o perfil correspondente. Se nenhum perfil for encontrado, ele será executado no DHCP padrão. Se não houver um servidor DHCP na rede (tecnicamente o DHCP falha), ele aplica o perfil de fallback.
PONTOS IMPORTANTES:
-
Isso requer o pacote dhcpcd5 (não dhcpcd), que vem com o Jessie raspberry, mas não com o Wheezy (eu tive que instalar no Wheezy)
-
O iputils-arping entra em conflito com a arping usada no dhcpcd.conf, se você tiver isso, precisará desinstalar e fazer uma instalação limpa do dhcpcd5.