Повторно использовать настройки сети Wi-Fi через различные Wi-Fi USB-ключи
У меня есть 3 USB- модуля odroid 4 USB-ключа (чипсет RT5572N), которые по разным причинам должны быть взаимозаменяемыми.
Я настроил все с одной, подключил к паре сетей Wi-Fi, и все в порядке. Я могу вытащить и вставить обратно ключ, и он автоматически подключится (я использую Ubuntu wily). Так что все хорошо.
Интересно, что если я подключу одну из других, она автоматически не подключится. Я должен вручную использовать nmcli для подключения к сети Wi-Fi и с тех пор, автоматическое подключение работает.
Таким образом, кажется, сети Wi-Fi связаны с MAC-адресом адаптера как-то. Как я могу скопировать настройки с одного ключа и убедиться, что все остальные будут работать?
1 ответ
Информация о подключении к Wi-Fi хранится в /etc/NetworkManager/system-connections
, Вы можете добавить новый (синтаксис ясен при просмотре существующего) и перезапустить Network Manager, и он появится. Мы можем создать новый, скопировав старый и изменив uuid и MAC-адрес.
Итак, работая с правами root, добавьте следующее, скажем, 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"
Сделайте это исполняемым
chmod +x copyconnection.sh
Затем запустите его с вашим старым профилем в качестве параметра
./copyconnection.sh /etc/NetworkManager/system-connections/MyHomeWifi
Если вы хотите сделать много из них:
find /etc/NetworkManager/system-connections/ -type f -exec copyconnection.sh {} \;
Наконец, перезапустите Network Manager:
service network-manager restart
и вы сделали.
Полное раскрытие:
- Я не могу проверить это, потому что у меня нет внешнего ключа Wi-Fi под рукой. Я протестировал очень похожую вещь, добавив новый профиль для моего единственного адаптера Wi-Fi, и это работает.
- Использование
mktemp
взломан Это может, предположительно, пойти не так и создать дубликат файла. Не будет, но мог бы. Более чистым способом было бы установить егоtmpdir
к местоположению оригинального файла, но он настолько запутывает сценарий, что я подумал, что лучше просто его обработать:-)