Настройка моего rasbperry pi для работы в качестве моей личной производственной тестовой машины.
Я установил сервер ubuntu 20.04.1 LTS (RPI 3/4) 64bit и отчаянно пытался настроить на нем беспроводное соединение.
ls -la / sys / class / net
говорит мне, что моя папка wlan называется wlan0 . wifis:
wlan0:
optional: true
access-points:
"SSID-NAME-HERE":
password: "PASSWORD-HERE"
dhcp4: true
sudo netplan apply
теперь выдает ошибку, как указано в заголовке I уже пробовали делать следующее:
sudoedit /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
и вставил строку
сеть: {config: disabled}
sudo netplan --debug generate
сообщает мне кое-что интересное, я думаю: Networkmanager: определение wlan0 не для нас (backend 1)
Шаг 1. Определите имя вашего беспроводного сетевого интерфейса
Существует несколько способов определить имя вашего сетевого интерфейса. Вы можете использовать команду ip, устаревшую команду ipconfig или проверить этот файл:
ls /sys/class/net
Это должно предоставить вам все доступные сетевые интерфейсы (Ethernet, Wi-Fi и loopback). Имя беспроводного сетевого интерфейса начинается с «w» и обычно называется аналогично wlanX, wlpxyz.
Запишите это имя интерфейса. Вы будете использовать его на следующем шаге.
Шаг 2. Отредактируйте файл конфигурации Netplan, указав сведения об интерфейсе Wi-Fi.
Файл конфигурации Netplan находится в каталоге /etc/netplan. Если вы проверите содержимое этого каталога, вы должны увидеть такие файлы, как 01-network-manager-all.yml или 50-cloud-init.yaml.
Если это сервер Ubuntu, у вас должен быть файл cloud-init. Для настольных компьютеров это должен быть файл сетевого менеджера.
Диспетчер сети на рабочем столе Linux позволяет выбрать беспроводную сеть. Вы можете жестко указать точку доступа Wi-Fi в ее конфигурации. Это может помочь вам в некоторых случаях (например, приостановка), когда соединение разрывается автоматически.
Что бы это ни было, откройте его для редактирования. Я надеюсь, что вы немного знакомы с редактором Nano, потому что Ubuntu поставляется с ним предустановленным.
sudo nano /etc/netplan/50-cloud-init.yaml
Файлы YAML очень чувствительны к пробелам, отступам и выравниванию. Не используйте табуляцию, вместо этого используйте 4 (или 2, в зависимости от того, что уже используется в файле YAML) пробела там, где вы видите отступ.
По сути, вам нужно будет добавить следующие строки с именем точки доступа (SSID) и ее паролем (обычно) в кавычках:
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"SSID_name":
password: "WiFi_password"
Опять же, сохраните выравнивание, как я показал, иначе файл YAML не будет будет проанализирован, и он выдаст ошибку.
Ваш полный файл конфигурации может выглядеть следующим образом:
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"SSID_name":
password: "WiFi_password"
Я нахожу странным, что, несмотря на сообщение о том, что изменения не сохранятся после перезагрузки инстанса, он все еще работает.
В любом случае, сгенерируйте конфигурацию с помощью этой команды:
sudo netplan generate
А теперь примените это:
sudo netplan apply
Если вам повезет, у вас должно быть подключение к сети. Попробуйте пропинговать веб-сайт или запустить команду apt update.
Однако все может пойти не так гладко, и вы можете столкнуться с некоторыми ошибками. Попробуйте выполнить дополнительные действия, если это так.
Возможное устранение неполадок
Возможно, когда вы используете команду netplan apply, вы видите ошибку в выводе, которая выглядит примерно так:
Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found.
Traceback (most recent call last):
File "/usr/sbin/netplan", line 23, in <module>
netplan.main()
File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 46, in run
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 173, in command_apply
utils.systemctl_networkd('start', sync=sync, extra_services=netplan_wpa)
File "/usr/share/netplan/netplan/cli/utils.py", line 86, in systemctl_networkd
subprocess.check_call(command)
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.
Возможно, служба wpa_supplicant не запущена. Запустите эту команду:
sudo systemctl start wpa_supplicant
Запустите netplan apply еще раз. Если это решит проблему хорошо и хорошо. В противном случае выключите свою систему Ubuntu, используя:
shutdown now
Снова запустите систему Ubuntu, войдите в систему, сгенерируйте и примените сетевой план еще раз:
sudo netplan generate
sudo netplan apply
Теперь может отображаться предупреждение (вместо ошибки). Это предупреждение, а не ошибка. Я проверил запущенные службы systemd и обнаружил, что netplan-wpa-wlan0.service уже запущен. Вероятно, он показал предупреждение, потому что он уже был запущен, и «netplan apply» обновил файл конфигурации (даже без каких-либо изменений).
Warning: The unit file, source configuration file or drop-ins of netplan-wpa-wlan0.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Это не критично, и вы можете проверить, что интернет уже работает, запустив apt update.