Em uma situação ideal? Reescreva isso como uma regra do udev para que seja ativada automaticamente na conexão. Ele terá que ser avaliado após outras regras para que qualquer renomeação de interface já tenha acontecido no momento em que é avaliada ( /etc/udev/rules.d/99-x-local.conf
é provavelmente o local para colocá-lo), mas a regra básica deve ser semelhante a esta:
SUBSYSTEM=="net", ENV{ID_BUS}=="usb", ENV{ID_USB_DRIVER}=="rndis_host", ACTION=="add", RUN{program}+="/bin/sh -c 'echo $env{INTERFACE} > /var/tmp/myfile'"
As primeiras quatro partes correspondem ao evento exato gerado quando o dispositivo é conectado, mais especificamente:
-
SUBSYSTEM=="net"
corresponde a dispositivos de rede -
ENV{ID_BUS}=="usb"
corresponde apenas aos dispositivos de rede conectados via USB. -
ENV{ID_USB_DRIVER}=="rndis_host"
corresponde apenas a dispositivos USB que usam o driver de dispositivo host RNDIS (o padrão usado por telefones Android (e eu acho que o Windows e o Blackberry também) para tethering por USB. -
ACTION=="add"
corresponde apenas aos eventos do hotplug (portanto, isso só é executado quando o dispositivo é conectado, embora você possa facilmente adicionar uma segunda regra semelhante correspondente à ação "remover" para fazer algo quando o telefone for desconectado). / li>
O item final adiciona um comando à fila de coisas que o udev invocará quando o processamento da regra estiver concluído. Nesse caso, ele está adicionando uma chamada de shell que gravará o nome da interface no local desejado (o próprio udev substituirá o $env{INTERFACE}
pelo nome real da interface).
Não posso garantir que isso funcionará em todos os casos, mas pelo menos parece funcionar para o meu Nexus 6P e deve, em teoria, funcionar para a maioria dos telefones Android.