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:
- 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.
- 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 seutmpdir
para a localização do arquivo original, mas ele sobrecarregou tanto o script que achei melhor apenas abri-lo: -)