Reutilize as configurações de rede wifi em diferentes dongles usb wifi

0

Eu tenho 3 dongles wi-fi odroid módulo 4 dongles usb (chipset RT5572N) que, por várias razões, eu preciso ser intercambiável.

Eu configurei tudo com um, conectado a um par de redes wifi e tudo está bem. Eu posso puxar para fora e colocar de volta no dongle e ele irá reconectar automaticamente (estou usando o Ubuntu astuto). Então tudo bem.

Curiosamente, se eu conectar um dos outros, ele se recusará a se conectar automaticamente. Eu tenho que usar manualmente o nmcli para se conectar à rede wifi e, a partir de então, a conexão automática funciona.

Portanto, parece que as redes wifi estão ligadas ao endereço MAC do adaptador de alguma forma. Como posso copiar minha configuração de um dongle e garantir que todos os outros funcionem?

    
por dgorissen 18.03.2016 / 15:27

1 resposta

1

As informações da conexão Wi-Fi são armazenadas em /etc/NetworkManager/system-connections . Você pode adicionar um novo (a sintaxe fica clara ao olhar para um já existente) e reiniciar o Network Manager, e ele aparecerá. Podemos criar um novo copiando um antigo e alterando o endereço uuid e MAC.

Então, trabalhando como root, coloque o seguinte em, digamos, copyconnection.sh :

#!/bin/bash

if (( $# < 1 )); then
    exit 1
fi

# Parameter is the profile to copy
ORIG_PROFILE=$1

# Get the MAC address of wlan0
NEW_MAC='ethtool -P wlan0 | cut -d " " -f 3 | tr [a-f] [A-F]'

# Copy the profile
SUFFIX='mktemp -u XXXXXX'
NEW_PROFILE="${ORIG_PROFILE}.${SUFFIX}"
echo "Creating $NEW_PROFILE from $ORIG_PROFILE"
cp "$ORIG_PROFILE" "$NEW_PROFILE"

# We will need a new UUID line and a new MAC address line
NEW_UUID='uuidgen'
NEW_UUID_LINE="uuid=$NEW_UUID"
NEW_MAC_LINE="mac-address=$NEW_MAC"

# Drop the lines in
sed -i "s/^uuid=.*$/$NEW_UUID_LINE/" "$NEW_PROFILE"
sed -i "s/^mac-address=.*$/$NEW_MAC_LINE/" "$NEW_PROFILE"

Torne-o executável

chmod +x copyconnection.sh

Em seguida, execute-o com seu perfil antigo como parâmetro

./copyconnection.sh /etc/NetworkManager/system-connections/MyHomeWifi

Se você quiser fazer muitos deles:

find /etc/NetworkManager/system-connections/ -type f -exec copyconnection.sh {} \;

Por fim, reinicie o Network Manager:

service network-manager restart

e pronto.

Divulgação completa:

  1. Eu não posso testar isso, porque não tenho um dongle externo para handhel. Eu testei uma coisa muito semelhante, adicionando um novo perfil para o meu único adaptador wifi, e isso funciona.
  2. O uso de mktemp é hacky. Poderia, erradamente, dar errado e produzir um arquivo duplicado. Não vai, mas poderia. A maneira mais limpa seria definir seu tmpdir para a localização do arquivo original, mas ele sobrecarregou tanto o script que achei melhor apenas abri-lo: -)
por Mark Smith 18.03.2016 / 23:07