Это означает, что у вас нет беспроводного интерфейса под названием wlan0. Это может быть связано с:
1) Ваш IF называется по-другому. Команда
iwconfig
покажет беспроводные возможности ваших ПЧ. Если выход для одного или нескольких IF не
no wireless extensions.
это ваша беспроводная карта.
2) Ваш Wi-Fi не включен. Это тот случай, если выход
iw list
пустой. В этом случае это означает, что ваш Wi-Fi не распознается. Это может произойти по двум причинам: одна, Linux не имеет подходящий драйвер вообще для вашей карты, или драйвер действительно существует, но это требует некоторой работы. Первый случай, конечно, безнадежен, поэтому давайте сосредоточимся на втором.
Чтобы идентифицировать вашу карту, если это не USB-адаптер, вам нужно будет выполнить эту команду:
lspci -nn | grep -i Net
Это выведет несколько строк, как эти,
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04)
04:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6235 [8086:088e] (rev 24)
Первый из них - это мое Ethernet-соединение, второй - моя Wi-Fi-карта. Важным элементом является код 8086:088E, который называется Vendor+Product code вашего чипсета.
Если у вас есть внешний USB-адаптер Wi-Fi, вы можете получить тот же код с помощью команды
lsusb
(бонусный вопрос: почему вы не можете использовать lspci? ;-)
Имея эту информацию в руках, вы можете искать свою карту в строке поиска на веб-сайте WikiDevi, которая найдет соответствующую информацию для вашей карты для различных операционных систем, среди которых, безусловно, есть Linux. В частности, он скажет вам, какой драйвер подходит для вашей карты. Информация может отсутствовать, в этом случае нет драйвера для Linux.
Давайте теперь предположим, что ваш драйвер iwlwifi (он мне подходит), и я хотел бы знать, использует ли моя система этот драйвер. Я могу сделать это с помощью команды
lsmod | grep iwlwifi
который выберет информацию о iwlwifi из списка всех загруженных модулей. Если вы обнаружите, что ваш драйвер загружен, но Wi-Fi не работает, скорее всего, потому что отсутствует прошивка. На данном этапе это весьма вероятно, поскольку встроенное ПО является проприетарным программным обеспечением, и многие дистрибутивы, включая Debian, не устанавливают его автоматически из-за желания полностью соответствовать принципам FOSS (бесплатного открытого программного обеспечения). Но не падайте духом, простой поиск Google для "прошивки debian name_of_your_driver" раскроет всю необходимую вам информацию. Кроме того, вы можете зайти на веб-сайт Linux Wireless, написать имя вашего драйвера в поле поиска, и вы получите всю необходимую информацию о нем и его прошивке.
Если ваш Wi-Fi по-прежнему не работает, нам нужно проверить, случайно ли вы используете старый драйвер. Это можно сделать, введя команду (для моей карты измените команду в соответствии с вашей картой):
modinfo name_of_driver | grep 8086 | grep 088E
(тщательные, шестнадцатеричные цифры представлены заглавными буквами). Если это ничего не возвращает, у вас действительно есть старая версия драйвера, и вам придется установить новую через Linux Backports. Это серия модулей, реализующих новые функции или поддерживающих новые аппаратные средства, которые являются стандартными для новых версий ядра Linux, но отсутствуют в более старых версиях. Бэкпорты портируют эти новые драйверы на более ранние версии ядра, чтобы они могли использовать все, что появилось после выпуска вашего ядра. Вы можете найти информацию о том, как установить backports на этом самом сайте, за исключением того, что команды
su -
yum install make automake gcc gcc-c++ kernel-devel kernel-headers
должен быть заменен
sudo apt-get install linux-headers-generic build-essential
и имя вашего драйвера должно заменить его в приведенном выше примере.
3) Этот последний шаг (поиск по беспроводному веб-сайту Linux) необходим в качестве крайней меры, если все, что я сказал до сих пор, не сработало. Может случиться так, что ваш драйвер не загрузится из-за конфликта с другим драйвером, поэтому он будет в черном списке. Если это так, беспроводная веб-страница Linux расскажет вам, что это за конфликт, и как его решить. В общем, конфликт существует между драйверами FOSS и проприетарными драйверами. В целом, драйверы FOSS значительно превосходят по одной простой причине: если проприетарный драйвер работает должным образом, нет необходимости писать новый драйвер. Водители FOSS пишутся волонтерами, часто достаточно компетентными людьми, которые посвящают этой задаче свое свободное время. Никто не хочет тратить время, если в этом нет необходимости.