Ubuntu не подключается к wifi после выхода из сна

Обновлено: 07.07.2024

В наше время проводное подключение ноутбука к интернету используется всё реже. Наиболее распространенный вариант - провод подключён к роутеру, а он уже раздает Wifi на весь дом. Технологию Wifi поддерживают большинство современных ноутбуков, и это удобно - можно взять его с собой на кровать, не боясь переломить шнур, или очень легко перенести его в другую комнату.

Но тут кроется одна проблема: не всегда и не на всех устройствах Wifi поддерживается из коробки. Да, есть такие ноутбуки Linux, в которых настройка Wifi в Ubuntu не нужна: после установки всё работает, вы можете подключаться к сетям или даже создавать точки доступа. Но это не так уж часто. В этой статье будет рассмотрена настройка Wifi в Ubuntu. Мы возьмём самую последнюю версию дистрибутива Ubuntu 16.04 с ядром Linux 4.4. Тут самую важную роль играет ядро, поскольку именно оно отвечает за поддержку оборудования. Я буду предполагать, что у вас не работает Wifi Ubuntu из коробки, если же вас интересует, как подключиться к сети, листайте ниже.

Установка драйвера Wifi

Если вы попробовали подключиться к сети Wifi, и у вас не получилось, хотя пароль был правильный, или у вас даже не определяется системой присутствие сетевой карты Wifi, становится понятно, что из коробки не работает Wifi Ubuntu и нужна дополнительная настройка. Wifi-адаптеров и их производителей очень много. В этой статье мы будем рассматривать только Broadcom, потому что всё не охватить. Но я попытаюсь объяснить так, чтобы вы смогли разобраться, даже если у вас другой производитель адаптера Wifi Ubuntu.

Для начала, давайте посмотрим какой у вас производитель сетевой платы, для этого выполните:

sudo lspci | grep Network

wifi11

wifi

Для нашего Broadcom-адаптера есть четыре драйвера, смотрим только те, для которых в последней колонке есть PCI; наш адаптер подключён через эту шину. Это b43, b43-legasy и brcmfmac и brcmcmac.

wifi1

Дальше выбираем лучший драйвер: смотрим на колонки cfg80211, AP, IBSS, mesh, monitor, PHY modes. Собственно, поддержка протокола сап80211, поддержка режима точки доступа, поддержка IBSS, Mesh, поддержка режима прослушивания (для перехвата пакетов) и поддержка расширений протокола b/g/n/a.

Для нас сейчас лучший драйвер по этим параметрам - b43. Открываем его и смотрим, поддерживает ли он нашу карту:

wifi2

Кроме названия, здесь приводится PCI ID карты, чтобы точно определить совместимость. Для Broadcom его можно посмотреть командой:

lspci -nn -d 14e4:

wifi12

Находим нашу карту BCM4313 и в колонке Supported видим No - жаль, но этим драйвером она не поддерживается. Такого PCI ID здесь тоже в помине нет. Но настройка Wifi в Ubuntu ещё не закончена. Возвращаемся назад, и смотрим другой драйвер. Следующий по возможностям драйвер brcmsmac, он не поддерживает Mesh и IBSS, но нам и не нужно.

Открываем, смотрим и видим, что в первой же строчке есть наша карта:

wifi3

Вот теперь мы нашли нужный драйвер и уже даже знаем, какие режимы он поддерживает. Подобным образом можно подобрать драйвер для любого другого адаптера.

Обратите внимание, что перед тем, как запускать драйвер, для него, возможно, необходимо будет установить прошивки. Установка драйвера Wifi Ubuntu не нужна, поскольку он вшит в ядро. Информация о прошивке находится ниже на странице:

wifi4

В нашем случае нужно скачать и скопировать файлы brcm/bcm43xx-0.fw и brcm/bcm43xx_hdr-0.fw to в отдельную папку. Вот они - эти файлы, на вкладке tree, скачиваем и копируем в папку, которая указана в инструкции:

wifi5

sudo cp bcm43* /lib/firmware/brcm/

Как видите, всё немного сложно, но на самом деле там все действия описаны, и все ссылки есть, нужно только внимательно смотреть. Теперь осталось установить драйвер Wifi Ubuntu, для этого мы просто загрузим модуль ядра. Но перед этим нужно добавить в чёрный список все другие модули, которые ядро может загружать автоматически:

sudo modprobe -r wl
$ sudo modprobe -r b43
$ sudo modprobe -r b43-legaxy

Добавляем их в чёрный список:

blacklist b43
blacklist b43-legacy
blacklist wl

Теперь запускаем наш выбранный драйвер:

sudo modprobe brcmsmac

Вот и всё, теперь Wifi работает. Теперь вы знаете, как установить драйвер Wifi в Ubuntu, как его найти, как определить необходимую версию для вашей карты. Хотя мы рассмотрели способ для Broadcom, с другими адаптерами нужно работать похожим образом. Загружаем выбранный драйвер, запрещаем все остальные доступные. И не забудьте установить прошивку. Даже если Ubuntu не видит Wifi, вы сможете разобраться.

Подключение к Wifi в Ubuntu

После того, как установка драйвера Wifi Ubuntu завершена, подключиться к сети не составит труда, это намного легче, по сравнению с тем, через что вы уже прошли. На панели теперь появился такой значок:

wifi8

Когда не работает Wifi Ubuntu, его нет. Точнее он есть, но выглядит по-другому. Кликните по этому значку и выберите из списка нужную сеть. Осталось ввести пароль:

wifi9

Готово, подключить Wifi Ubuntu не так уж сложно, и вы можете пользоваться интернетом.

wifi10

Подключение к Wifi в Ubuntu через терминал

Иногда случаются ситуации, когда графический интерфейс не работает. Тогда тоже может понадобиться интернет. Дальше мы рассмотрим, как подключить Wifi Ubuntu через терминал. Как вы знаете, для обмена данными в сети Wifi используется шифрование, это WEB, WPA и WPA2. Мы не будем рассматривать WEP, потому что это слишком просто, и это шифрование не безопасное - его можно взломать за несколько минут.

Остановимся на WPA. Настройка Wifi в Ubuntu через терминал состоит из нескольких этапов:

  • Просканировать сеть и найти доступные точки
  • Подключиться к точке, используя wpa_supplicant
  • Получить IP-адрес по DHCP
  • Настроить DNS-серверы, чтобы сайты открывались корректно

В графическом интерфейсе всё происходит автоматически, но поскольку мы выбрали этот путь, нужно будет действовать вручную.

Сканируем сеть с помощью специальной утилиты:

sudo iwlist scan

wifi14

Была обнаружена одна сеть с ESSID H30_CE550. Отлично, теперь мы будем использовать эту точку, чтобы подключить Wifi Ubuntu. Выполните команду:

wifi15

wpa_passphrase H30_CE550 > wpa.conf

После этого введите пароль и нажмите Enter, утилита создаст файл конфигурации для подключения. Файл можно было создать вручную, но так ведь проще.

Для самого же подключения будем использовать утилиту wpa_supplicant. Рассмотрим её синтаксис:

$ wpa_supplicant -D драйвер -i интерфейс -c файл_содениения

Драйверов, которые задаются опцией -D всего два: это устаревший wext и новый драйвер Wifi Ubuntu nl80211. Не стоит путать эти драйверы с драйверами устройств. Это универсальная прослойка между этими драйверами и системой. Пробуйте сначала второй, а если не работает, то тогда уже первый. Интерфейс вы можете посмотреть из вывода утилиты iwlist scan, в моём случае это wlp3s0b1, но скорее всего у вас будет wlan0. А имя файла - это тот файл, который мы только что создали. Запускаем:

sudo wpa_supplicant -Dnl80211 -iwlp3s0b1 -cwpa.conf

wifi16

Готово, второй этап подключения Wifi в Ubuntu завершён: мы в сети. Осталось получить IP-адрес и DNS, чтобы полноценно работать. Оставьте этот терминал в покое и откройте новый. Вообще, можно было запустить wpa_supplicant с опцией -B, но тогда бы мы потеряли над ней контроль. Если бы настройка Wifi Ubuntu 16.04 пошла не так, нам бы пришлось искать и убивать процесс, к тому же, у нас не было бы вывода программы.

Для получения IP по протоколу DHCP воспользуемся утилитой dhclient. Сначала найдём все доступные DHCP-серверы в сети:

sudo dhclient -r

wifi17

Затем просто запросим адрес для нашего интерфейса:

sudo dhclient -i wlp3s0b1

wifi18

На получение IP-адреса уйдет несколько секунд. После этого, выполнив ifconfig, мы можем убедиться, что у нас уже есть IP:

sudo ifconfig wlp3s0b1

wifi6

А также проверить сеть с помощью ping:

wifi7

Готово. Подключение к Wifi в Ubuntu через терминал завершено. На случай, если вы надумаете тестировать это при запущенном NetworkManager, снимите галочку с управления Wifi в апплете, чтобы программа не мешала.

После этого интерфейс будет программно заблокирован, разблокировать его можно командой:

sudo rfkill unblock wlan

Теперь можете выполнять подключение Wifi в Ubuntu через консоль. Всё будет работать. При следующем подключении вам не нужно создавать файл конфигурации заново, вы можете даже написать небольшой скрипт, чтобы соединение выполнялось автоматически.

Выводы

Надеюсь, что после прочтения этой статьи вы стали лучше понимать, как работает Wifi в Ubuntu, как выполняется установка драйвера и что делать, если Ubuntu не видит Wifi. Настройка Wifi Ubuntu 16.04 - довольно сложная задача, особенные трудности может вызвать поиск прошивок и подбор драйвера. Если у вас остались вопросы, спрашивайте в комментариях!

В Ubuntu иногда при выходе из Cпящего/Ждушего режима проводная сеть не работает, а некоторые пользователи испытывают аналогичную проблему и с беспроводным подключением (WiFi).


А затем выяснить, какой из модулей является тем, который использует сетевой интерфейс. Во-первых, установите "lshw", инструмент определяющий список аппаратной конфигурации компьютера в Ubuntu, установив его с помощью следующей команды:

sudo apt-get install lshw

Чтобы увидеть список загруженных модулей ядра, выполните следующую команду:

sudo lshw -C network


В моём случае имя, которое я искал, это имя модуля ядра rt2800usb из списка выведенного в терминале. Следующим шагом нужно добавить этот модуль в список модулей ядра для разгрузки перед сном и перезагрузки после возвращения из Cпящего/Ждушего режима. Делается это путем редактирования (создайте, если он не существует) /etc/pm/config.d/unload_modules.

2. Следующим шагом надо отредактировать файл /etc/pm/config.d/unload_modules с правами root (администратор) в текстовом редакторе:

gksu gedit /etc/pm/config.d/unload_modules

Когда откроется текстовый редактор с файлом, вставьте в него следующую строку, изменив в ней на своё значение (выделено красным):


Сохраните и закройте редактор.

Теперь сеть должна работать после "пробуждения".

37 комментариев :

Открой Параметры системы - Сеть и попробуй включить там.

Спасибо. Да, я так делал уже. Так не получается. Нужен другой путь. Скорее всего он как-то аппаратно отключается. И не включается обратно уже через интерфейс. Проблема не у меня одного - многие пишут о ней, надёжного решения пока не нагуглил.

Попробуй установить вот этот пакет в Ubuntu 12.10:

sudo apt-get install broadcom-sta-dkms

Для Ubuntu 12.04:

sudo add-apt-repository ppa:poliva/pof
sudo apt-get update
sudo apt-get install broadcom-sta-dkms

А почему у тебя интерфейс приложений на английском языке или вся система на английском?

Да, нет Володя ты ему не те команды пишешь. откатись обратно на старое ядро если ты конечно обновлся. или компилируй его по новой! И ВСЁ У ТЕБЯ ЗАРАБОТАЕТ - ЭТО ДЕЛО В ЯДРЕ!

Возможно дело и в ядре. Правда я не откатился, а обновился до 3.7.2-030702-generic. Ничего не изменилось, также не работает.

Да, вся система - en (US) . При установке тоже на эту тему выговор получил:)

DKMS: install completed.
Processing triggers for initramfs-tools .
update-initramfs: Generating /boot/initrd.img-3.2.0-23-generic
Warning: No support for locale: en_US.utf8

configuration: autonegotiation=on broadcast=yes driver=asix driverversion=22-Dec-2011 duplex=full firmware=ASIX AX88772 USB 2.0 Ethernet link=yes multicast=yes port=MII speed=100Mbit/s

чет я непонял у меня asix или ASIX AX88772 USB 2.0 Ethernet. так или иначе, не фига не вышло.

Добрый вечер, а как сделать точкой доступа WIFI адаптер в Ubuntu 10.04 ?

Ура! Работает. Большое спасибо!

исчезли пункты - _ ждущий и спящий режим _, в общем исчезло то, что нужно.
Подскажите, есть ли другое решение ?
За ранее спасибо.

Если судить по твоим предыдущим снимкам, Александр, напрашивается вывод что ты устанавливаешь большое количество программ и много экспериментируешь с системой. Поэтому трудно ответить однозначно куда у тебя всё пропадает или не работает та или иная программа. Либо если ты не проводил ни каких экспериментов с системой, значит загрузился/установился образ с ошибками.

Владимир у меня на жестком диске установлены СТАБИЛЬНО РАБОТАЮЩИЕ ( KDE, Cinnamon , Mate, Kubuntu , Pear OS7, Windows 8 ,
и т.д ). Какой смысл мне эксперементировать со стабильными - настроенными системами ?
И почему Вы считаете ,что образ скачанный с официального источника и созданный на Windows 8 в UltraISO должен обязательно быть с ошибками. По моему стабильней программ UltraISO и K3b ( а UltraISO - для образов на FLESH ) НЕТ .
Я не экперементирую, а пытаюсь сделать системы удобными для личного пользования, т.е - что бы работало ВСЁ, мне например очень не удобно, когда выходя из спящего, ждущего режима, для того что бы войти в интернет Я ДОЛЖЕН ПЕРЕЗАГРУЗИТЬ СИСТЕМУ КОТОРАЯ БЕЗ ПЕРЕЗАГРУЗКИ ДОЛЖНА АВТОМАТОМ СДЕЛАТЬ "КОННЕКТ" С ИНТЕРНЕТОМ, чего в Linux-ах НЕ НАБЛЮДАЕТСЯ.
Владимир лично я не являюсь пользователем, как говорится "
ЧТО НЕ РАБОТАЕТ , НУ И ЛАДНО - ЕСТЬ ИНТЕРНЕТ , " ОДНОКЛАССНИКИ " ЗНАЧИТ ВСЁ OK . Я ЭТИМ НЕ ОГРАНИЧЕН .
Почему такая "помойка" как Windows практически у 100% пользователей установлена КАК ОСНОВНАЯ операционная система и работает стабильно .
ПОМОЙКА - ЗАТО ЭТА ПОМИОЙКА СТАБИЛЬНА В РАБОТЕ.
ДАК ПОЧЕМУ ЖЕ Linux не попытаться довести до стабильности схожей с Windows ?

___ Поэтому трудно ответить однозначно куда у тебя всё пропадает или не работает та или иная программа ___

- Я задавал Вам вопрос именно по Linux Mint 16 Petra Cinnamon, но и упомянул о той же проблеме соединения в 14, 15 - версиях.


Ubuntu - мощная бесплатная операционная система с открытым исходным кодом, которая хороша для новичков, которые хотят исследовать Linux и опытных профессионалов, которые хотят надежную, безопасную систему для проектов и подобного. Однако, несмотря на все его достоинства, иногда у вас могут возникнуть проблемы с подключением к сетям Wi-Fi.

Проблема подключения Wi-Fi может быть как в аппаратном так и программном обеспечении. Вот некоторые эффективные решения, если пользователи сталкиваются с проблемой подключения к сетям Wi-Fi .

Проблема 1: Устройство не обнаружено


Если беспроводное устройство не обнаружено Ubuntu (или любым дистрибусом, если на то пошло), вам нужно будет получить доступ к терминалу и ввести следующую команду:

если вы используете плагин в USB беспроводной карты / ключа.

sudo lspci
если у вас есть внутренняя беспроводная карта .


В прошлом многие дистрибутивы Linux испытывали трудности с поиском беспроводной карты. К счастью, поддержка стала намного лучше, так что теперь это редкий случай.

Дополнительные команды



Вы также можете использовать следующую команду, чтобы проверить, может ли аппарат видеть беспроводное устройство, пользователю может потребоваться lshw сначала установить его на свой компьютер.

Результат должен напоминать нечто подобное:
*-network description:

PRO/Wireless 3945ABG [Golan] Network Connection vendor:
Если это так, и система находит беспроводную карту, вы можете приступить к установке драйвера / модуля, как показано ниже.

Проблема 2: Отсутствует модуль драйвера


Следуя успешным командам lsusb и lspci, при условии, что Ubuntu может видеть беспроводную карту, вы можете предположить, что прошивка работает, просто система не имеет понятия, что делать с картой. Это где необходимы драйверы, или модули.


sudo modprobe modulename

sudo modprobe rt2800usb

После этого запустите команду lsmod еще раз, чтобы проверить, правильно ли она загружена.

Загружать модуль автоматически при загрузке


Это редкий случай, но иногда модуль не будет сохраняться при загрузке. В этом случае вы можете принудительно загрузить его. Введите команду в терминал.

sudo nano /etc/modules

Текстовый редактор Nano откроется. Теперь добавьте имя своего модуля внизу и сохраните файл. Затем вам нужно будет перезагрузить компьютер и проверить, может ли беспроводная карта теперь видеть сеть, чтобы вы могли нормально подключаться.

Если вы застряли, повторите этот процесс. К счастью, Ubuntu имеет полезные справочные страницы в своей онлайн-документации, которую вы также можете прочитать. Кроме того, вы можете использовать встроенную справку в терминале, введя:

Проблема 3: DNS


Редко, что DNS будет проблемой, однако стоит исследовать, должны ли у вас проблемы с подключением. В терминале введите следующую команду, чтобы оценить, откуда идет DNS.

nmcli device show wlan1 | grep IP4.DNS

После того, как у вас есть эта информация, следующий метод - выполнить ping - адрес вашего маршрутизатора. Если это работает, попробуйте выполнить проверку DNS- серверов Google

В результате этого вы можете установить, где проблема DNS. Если на всех устройствах вашего дома или офиса возникают ошибки загрузки страницы, измените DNS-сервер маршрутизатора на Google или откройте DNS- серверы. Вам нужно проконсультироваться со своим производителем маршрутизатора, как это сделать, но обычно это делается на страницах администрирования чаще всего путем входа в систему 192.168.0.1 или аналогичного.

Если ваша проблема с DNS - это только Ubuntu, выполните следующие действия, используя графический интерфейс Network Manager.

  1. Щелкните правой кнопкой мыши на Network Manager.
  2. Изменить соединения.
  3. Выберите подходящее соединение Wi-Fi.
  4. Выберите Настройки IPv4.
  5. Изменить метод только для адресов DHCP.
  6. Добавьте 8.8.8.8, 8.8.4.4 в поле DNS-серверов. Помните про запятые, разделяющие IP-адреса, и не оставляйте пробелы.
  7. Сохраните, затем закройте.

Проблема 4: Нет сетевого менеджера

Допустим, вы удалили Network Manager или случайно удалили его. Это очень неприятная ситуация, у вас нет интернета и нет диспетчера сети, но есть вещи, которые вы можете сделать.

Предполагая, что apt-пакет все еще находится в вашем кеше, вы можете перейти к терминалу и ввести:

sudo apt-get install network-manager

Если вы удалили этот кеш, вы можете использовать кабель Ethernet для подключения, подключив его к порту Ethernet и снова выполнив приведенную выше команду.

В качестве последнего шага, если ничего из этого не будет сделано, вам нужно будет отредактировать файл конфигурации. Я выбрал gedit в качестве текстового редактора, но вы можете использовать свой предпочтительный вариант и изменить команду.

sudo gedit /etc/network/interfaces

Измените его на то что прочитаете ниже,

Затем вы можете перезапустить интерфейс, введя это,


sudo ifdown wlan0 && sudo ifup -v wlan0

Каждый раз, когда я открываю крышку ноутбука, мне приходится ждать несколько секунд, пока Wi-Fi не подключится. Я помню, что в Windows он уже был подключен. Мне нужен способ предотвратить отключение Wi-Fi при приостановке.

Самый близкий ответ, который я нашел, был /ubuntu//a/961460/613425, но он не работал. Я также попробовал iwconfig wlan0 poweroff в ответе, но это не сработало даже до перезагрузки.

Таким образом, в отличие от вопроса, который вы указали выше, ваш WiFi не является нестабильным. Он подключается и работает нормально после того, как вы откроете крышку и разбудите ноутбук из сна. Вы хотите, чтобы WiFi подключался быстрее. Что произойдет, если вы переместите свой ноутбук на 20 миль, пока он спит? Будет ли оно оставаться подключенным? @ user68186 он никогда не остается подключенным, даже в том же месте, когда я снова открываю крышку. Я должен ждать, пока он подключится снова. Вы имеете в виду, что он никогда не остается на связи, пока он спит? Однажды я знал кого-то, кто говорил во сне, но мой ноутбук этого не делает. Я не думаю, что то, что вы хотите, возможно, если вы не остановите свой ноутбук от полного сна. @SebastianStark Razer Blade Stealth 2016 12.5 ". У него было желаемое поведение на Windows Какой выход iwconfig ? Пожалуйста, отредактируйте свой вопрос, чтобы обеспечить вывод там, а не здесь, в комментариях.

Есть два способа включения WiFi после сна. Первый - это общее исправление для Network Manager, как вы можете видеть из списка файлов:

Выключите или включите энергосбережение, как показано ниже:

  • Отредактируйте файл Network Manager, показанный выше.
  • Изменить WiFi.powersave с 2 на 3 (Enable энергосбережения).
  • Если он уже настроен, 3 попробуйте установить его на 2 (Отключить энергосбережение).
  • После сохранения файла запустите sudo systemctl restart NetworkManager

Второй - systemd скрипт, который перезагружает модуль ядра WiFi при выходе из режима ожидания. Это вытекает из этого ответа: Wi-Fi доступные сети не появляются внезапно :

Этот скрипт написан для iwlwifi`, который является общим названием драйвера Intel. Если у вас другое имя, измените это имя ниже:

Вам нужно создать скрипт, который называется iwlwifi-reset , с sudo полномочиями и сохранить его в каталог /lib/systemd/system-sleep . Затем пометьте его исполняемым, используя:

Читайте также: