Перейти к содержимому

Как прописать wifi в hive os

  • автор:

Настройка работы WiFi в linux (сборка 4.13.16-hiveos).

Сразу скажу, я начал разбираться с Линуксом совсем недавно, знаний очень мало и практики почти нет (ну виндусятник с 90-х, что поделаешь). Поэтому заранее прошу прощения если сильно простяцки описываю свою проблему.

Понадобилось использовать сборку HiveOS для майнинга. Она просто ставится на автомате, без проблем. Все работает хорошо, за исключением usb-свистка WiFi, вернее он тоже работает но не так как надо. Дело в том что под него не было драйверов в этой сборке. Я нашел драйвера конкретно для этого ядра, скомпилил их и все работает нормально. Но по какой то причине если комп перегружать командой reboot, то этот интерфейс WiFi почти никогда не поднимается сам (крайне редко), если комп выключить командой shutdown а потом включить то WiFi подымается всегда (тоже самое если кнопкой выкл и вкл). Сетвая LAN отключена вообще в биосе (ее необходимо отключать т.к. если ее включить то материнка вообще не стартует и необходимо одну из видюх убирать (ограничения по PCI линиям)). А так да, с проводом у народа нет проблем.

Вопрос, что и где прописать чтоб WiFi подымался всегда при любой загрузке? Я так понимаю нужно что то прописать в wpa_supplicant.conf? По инструкции одного какого-то сайта (примерно мес. назад) я так и сделал, только WiFi перестал подниматься вообще 🙂 Прошу дать ответ как можно проще и понятнее.

Записки IT специалиста

С поддержкой W-Fi адаптеров в Ubuntu наблюдаются определенные проблемы. Хорошо если можно выбрать заведомо совместимую модель при покупке, но чаще приходится использовать то оборудование, которое есть. В этом случае придется устанавливать адаптер самостоятельно. Сегодня мы рассмотрим как раз такой случай.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Для примера рассмотрим подключение в Ubuntu 12.04 LTS недорогого USB-адаптера TP-Link TL-WN725N.

wi-fi-ubuntu-001.jpg

Как это обычно бывает, вы купили Wi-Fi адаптер, распаковали, подключили. И никаких признаков жизни. Становится очевидно, что данная модель не поддерживается используемым дистрибутивом. Что делать?

Прежде всего убедимся, что система видит само USB-устройство. Для этого выполним команду

lsusb

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

wi-fi-ubuntu-003.jpg

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

wi-fi-ubuntu-004.jpg

Как видим перед нами устройство с аппаратной версией Ver:2.0, располагая этой информацией несложно выяснить что в основу адаптера положен чип Realtek RTL8188EUS. Мы советуем воспользоваться ресурсом wikidevi.com (по ссылке настроеный пример семантического поиска по бренду TP-Link), перейдя на страницу адаптера мы не только узнаем его чип, но и получим ссылку на Linux драйвера.

Перейдем в домашнюю директорию и скачаем архив репозитория, предварительно повысив права до суперпользователя:

sudo -s
cd ~
wget "https://github.com/lwfinger/rtl8188eu/archive/master.zip"

Распакуем архив (при необходимости установив unzip).

unzip master.zip

Как можно увидеть из вывода команды, содержимое архива распаковалось в директорию rtl8188eu-master, перейдем в нее и выполним сборку модуля:

cd rtl8188eu-master
make

После сборки модуля в директории должен появиться файл 8188eu.ko, это и есть искомый модуль ядра. Теперь установим его командой:

make install

Осталось включить наш модуль, выполнив команду:

modprobe 8188eu

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

wi-fi-ubuntu-005.jpg

Или выполните в консоли команду:

ifconfig

В выводе вы увидите появившийся беспроводной интерфейс wlan0.

wi-fi-ubuntu-006.jpg

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Настройка сети

Имя хоста хранится в файле /etc/hostname . В файле также может храниться доменное имя системы, если таковое имеется.

Просмотреть имя компьютера можно, выполнив команду:

$ hostname pbs.test.alt
$ cat /etc/hostname pbs

Изменение имени компьютера:

# hostnamectl set-hostname new.test.alt 

Утилита hostname позволяет задать имя компьютера временно, до первой перезагрузки:

# hostname new.test.alt 

Сетевые карты

Список доступных сетевых карт:

$ lspci | grep -i 'net' 00:14.3 Network controller: Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01) 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (16) I219-V (rev 01) 

Более подробная информация о сетевых картах:

$ lspci -v | grep -i 'net' -A 6 00:14.3 Network controller: Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01) Subsystem: Intel Corporation Wi-Fi 6 AX201 160MHz Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at 601d1cc000 (64-bit, non-prefetchable) [size=16K] Capabilities: Kernel driver in use: iwlwifi -- 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (16) I219-V (rev 01) Subsystem: Lenovo Device 50a0 Flags: bus master, fast devsel, latency 0, IRQ 166 Memory at ae400000 (32-bit, non-prefetchable) [size=128K] Capabilities: Kernel driver in use: e1000e

Обратите внимание, последняя строка это модуль ядра, который использует ваша сетевая карта.

Просмотреть модель сетевого адаптера и используемый драйвер также можно с помощью команды inxi (должен быть установлен пакет inxi ):

$ inxi -N Network: Device-1: Intel Alder Lake-P PCH CNVi WiFi driver: iwlwifi Device-2: Intel Ethernet I219-V driver: e1000e

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

# dmesg | grep iwlwifi [ 6.400593] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002) [ 6.423137] iwlwifi 0000:00:14.3: loaded firmware version 72.daa05125.0 so-a0-hr-b0-72.ucode op_mode iwlmvm [ 6.492488] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x370 … [ 6.688421] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0
# dmesg | grep e1000e [ 6.268828] e1000e: Intel(R) PRO/1000 Network Driver … [ 6.701757] e1000e 0000:00:1f.6 enp0s31f6: renamed from eth0 [ 10.215301] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx Rx/Tx

Udev назначает имена сетевых интерфейсов в соответствии со схемой именования, в которой тип устройства обозначается двухбуквенным префиксом: en (проводной/Ethernet), wl (беспроводной/WLAN) или ww (WWAN).

Смена имени интерфейса описана в разделе Именование сетевых интерфейсов.

Имена как проводных, так и беспроводных интерфейсов можно узнать, выполнив команду ip link :

$ ip link 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s31f6: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 9c:2d:cd:6f:c4:a3 brd ff:ff:ff:ff:ff:ff 3: wlp0s20f3: mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether 3c:21:9c:ae:56:d3 brd ff:ff:ff:ff:ff:ff

Префиксом lo обозначается петлевое устройство, которое не используется для сетевых соединений.

Включение и выключение интерфейса производится командой ip link set интерфейс up .

Получение информации о сетевых настройках

IP-адрес

Для получения информации о сетевом адресе компьютера, воспользуемся командой ip addr show либо кратким вариантом этой же команды ip a :

$ ip addr show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:87:a2:24 brd ff:ff:ff:ff:ff:ff inet 192.168.0.123/24 brd 192.168.0.255 scope global noprefixroute enp0s3 valid_lft forever preferred_lft forever inet6 fd47:d11e:43c1:0:a00:27ff:fe87:a224/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe87:a224/64 scope link valid_lft forever preferred_lft forever
  • enp0s3 — имя сетевого интерфейса;
  • link/ether 08:00:27:87:a2:24 — MAC-адрес сетевой карты;
  • inet 192.168.0.123/24 — IP-адрес.

Если сетевой кабель не будет физически подключен к разъему сетевой карты, в выводе команды ip a появится слово NO-CARRIER:

$ ip a … 2: enp0s3: mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 08:00:27:87:a2:24 brd ff:ff:ff:ff:ff:ff inet 192.168.0.123/24 brd 192.168.0.255 scope global noprefixroute enp0s3

Команда ethtool имя_интерфейса покажет некоторые характеристики, с которыми работает сетевая карта:

# ethtool enp0s3 Settings for enp0s3: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: on Port: Twisted Pair PHYAD: 1 Transceiver: internal MDI-X: on (auto) Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yes

Посредством команды ethtool также можно изменять эти характеристики.

Шлюз по умолчанию

Таблица маршрутизации определяет, можно ли связаться с удалённым хостом напрямую или нужно использовать какой-то шлюз (маршрутизатор). Если подходящего маршрута в таблице нет, то используется шлюз по умолчанию.

Команда ip route show (или ее краткий вариант ip r ) покажет шлюз:

$ ip route show default via 192.168.0.1 dev enp0s3 proto static metric 100 192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.123 metric 100 

Ping

Для проверки достижимости узла используется утилита ping :

$ ping altlinux.org PING altlinux.org (194.107.17.137) 56(84) bytes of data. 64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=1 ttl=58 time=31.6 ms 64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=2 ttl=58 time=31.6 ms 64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=3 ttl=58 time=31.6 ms 64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=4 ttl=58 time=31.4 ms 64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=5 ttl=58 time=31.4 ms 64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=6 ttl=58 time=31.6 ms ^C --- altlinux.org ping statistics --- 6 packets transmitted, 6 received, +1 errors, 0% packet loss, time 5010ms rtt min/avg/max/mdev = 31.359/31.523/31.637/0.101 ms

Для остановки используйте +.

Конфигурирование интерфейса

Варианты управления сетевыми настройками интерфейсов в ОС «Альт»:

  • Etcnet — настройки берутся исключительно из файлов находящихся в каталоге настраиваемого интерфейса /etc/net/ifaces/ . Настройки сети могут изменяться либо в ЦУС (модуль Ethernet-интерфейсы), либо напрямую через редактирование файлов /etc/net/ifaces/ .
  • Network Manager — обеспечивает базовые операции с сетевыми интерфейсами. Управлять настройками можно через графический интерфейс (nm-applet) или консольный инструмент nmcli . Файлы с настройками находятся в каталоге /etc/NetworkManager/system-connections .
  • systemd-networkd — системная служба для управления сетевыми настройками. Её задачей является обнаружение и настройка сетевых устройств по мере их появления, а также создание виртуальных сетевых устройств. Настройки находятся в каталоге /etc/systemd/network/ . При стандартной установке ОС «Альт» эта служба (пакет systemd-networkd ) не устанавливается.

В модуле ЦУС Ethernet-интерфейсы можно выбрать, какой именно интерфейс какой подсистемой обслуживается.

Etcnet

Более подробно про настройку сети с помощью Etcnet можно почитать тут.

Настройки сети могут изменяться либо в ЦУС (модуль Ethernet-интерфейсы), либо напрямую через редактирование файлов /etc/net/ifaces/ .

Файлы настройки сети для интерфейса enp0s3:

# ls -1 /etc/net/ifaces/enp0s3 ipv4address ipv4route options resolv.conf
  • файл ipv4address — содержит IP-адрес с длиной маски;
  • файл ipv4route — содержит маршрут по умолчанию;
  • файл options — содержит настройки конфигурации;
  • файл resolv.conf — содержит DNS-сервер.

Пример содержимого файла /etc/net/ifaces/enp0s3/options :

BOOTPROTO=dhcp TYPE=eth NM_CONTROLLED=no DISABLED=no CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=dhcp4 CONFIG_IPV4=yes SYSTEMD_CONTROLLED=no ONBOOT=yes CONFIG_IPV6=no 

Параметр BOOTPROTO отвечает за способ получения сетевой картой сетевого адреса и может принимать значения:

  • static — адреса и маршруты будут взяты из файлов ipv4address и ipv4route ;
  • dhcp — интерфейс будет сконфигурирован по DHCP;
  • ipv4ll — интерфейс будет сконфигурирован с помощью IPv4LL (link-local). Это значит, что из сети 169.254.0.0/16 (169.254.0.1-169.254.255.254) будет подобран ещё не использованный адрес и назначен на интерфейс.

Для настройки статического IP-адреса для интерфейса enp0s3 необходимо изменить запись BOOTPROTO=dhcp на BOOTPROTO=static в файле /etc/net/ifaces/enp0s3/option .

Затем нужно задать IP-адрес и маску сети, например 192.168.0.48/255.255.255.0, для этого в файл /etc/net/ifaces/enp0s3/ipv4address запишем параметры соединения:

# echo 192.168.0.48/24 > /etc/net/ifaces/enp0s3/ipv4address 

Примечание: Если файл не существовал, он будет создан, иначе — его содержимое будет перезаписано.

Если сетевая карта предполагает наличие двух IP-адресов, то в файл ipv4address следует добавить ещё один адрес (обратите внимание на то, что используется «>>» вместо «>»; с «>» файл перезапишется, с «>>» вывод предыдущей команды будет дописан в конец файла):

# echo 192.168.0.148/24 >> /etc/net/ifaces/enp0s3/ipv4address 

Далее запишем в файл /etc/net/ifaces/enp0s3/ipv4route имя шлюза по умолчанию (например, 192.168.0.1):

# echo default via 192.168.0.1 > /etc/net/ifaces/enp0s3/ipv4route 

Если необходимо, можно создать файл с описанием dns-сервера /etc/net/ifaces/enp0s3/resolv.conf :

# echo nameserver 192.168.0.9 > /etc/net/ifaces/enp0s3/resolv.conf 

Если у вас два dns (второй, например, 192.168.1.9), то его описание также нужно добавить в этот файл:

# echo nameserver 192.168.1.9 >> /etc/net/ifaces/enp0s3/resolv.conf 

Для применения настроек необходимо перезапустить сеть:

# systemct restart network 

IP-адрес, маску и шлюз можно изменить командами ip addr и ip route . Например:

# addr add 192.168.0.140/24 dev enp0s3 # ip route add dev enp0s3 192.168.0.240 

Однако эти команды изменяют конфигурацию сети до ближайшей перезагрузки компьютера. Для постоянного изменения нужно отредактировать файлы, о которых говорилось выше.

Network Manager

Более подробно про настройку сети с помощью NetworkManager можно почитать тут.

Пример настройки сетевого интерфейса enp0s3 в Network Manager, если он раньше управлялся Etcnet:

    Внести изменения в файл /etc/net/ifaces/enp0s3/options :

BOOTPROTO=static TYPE=eth NM_CONTROLLED=yes DISABLED=yes CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPV4=yes SYSTEMD_CONTROLLED=no ONBOOT=yes CONFIG_IPV6=no 
# rm -rf /etc/net/ifaces/enp0s3/ipv4address 
# systemctl restart network # systemctl restart NetworkManager 
$ nmcli general status STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN подключено полностью missing включено missing включено
# nmcli connection add con-name "native_enp0s3" type ethernet ifname enp0s3 Подключение «native» (f3635967-1d55-47c9-8ed2-e68d737c572d) успешно добавлено.
# nmcli connection up native_enp0s3 Подключение успешно активировано (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/4) 
$ nmcli connection show native_enp0s3

Если необходимо, изменить подключение native_enp0s3 с DHCP на Static:

# nmcli connection modify native_enp0s3 connection.autoconnect yes ipv4.method manual ipv4.address 192.168.0.40/24 ipv4.gateway 192.168.0.1 ipv4.dns 192.168.0.4 ipv4.dns-search test.alt # nmcli connection up native_enp0s3 
  • connection.autoconnect yes — поднимать соединение при загрузке системы;
  • ipv4.method manual — соединение статическое;
  • ipv4.addresses — IP-адрес и маска;
  • ipv4.gateway — IP-адрес шлюза;
  • ipv4.dns — IP-адрес DNS-сервера;
  • ipv4.dns-search — домен поиска.

Содержимое конфигурационного файла /etc/NetworkManager/system-connections/native_enp0s3.nmconnection :

[connection] id=native_enp0s3 uuid=bfafb5ea-6915-4f89-844c-d53b19477d80 type=ethernet interface-name=enp0s3 timestamp=1697205960 [ethernet] [ipv4] address1=192.168.0.41/24,192.168.0.1 dns=192.168.0.4; dns-search=test.alt; method=manual [ipv6] addr-gen-mode=default method=auto [proxy] 

Systemd-networkd

Более подробно про настройку сети можно почитать тут.

Для использования службы systemd-networkd следует остановить все остальные службы управления сетевыми интерфейсами:

# systemctl disable --now network NetworkManager && systemctl enable --now systemd-networkd 

Проверка подключения

Если у вас возникли проблемы с подключением к сети, необходимо убедиться, что:

  1. Сетевой интерфейс обнаружен и включён.
  2. Есть подключение к сети: подключён сетевой кабель или есть подключение к беспроводной сети.
  3. Сетевому интерфейсу присвоен IP-адрес.
  4. Правильно настроена таблица маршрутизации.
  5. Доступен локальный IP-адрес (пропинговать, например, шлюз по умолчанию).
  6. Доступен публичный IP-адрес (пропинговать, например, 8.8.8.8 — DNS-сервер Google Public DNS).
  7. Работает разрешение доменных имён (пропинговать, например, altinux.org).

Wi-Fi

Wi-fi, adapters and Linux have tough relations. Though some of them are supported and you can try to use it.

In general, it’s simple. On your first run, you’ll be asked for a rig password, but since you have no internet connection open a new terminal tab and run wifi command there. You will be prompted for SSID and password. If everything is ok then it just works.

Later if you really know that your adapter is working you could use /hive-config/network/wifi.txt which is also visible under Windows to set your SSID and password.

There are some useful commands

iwconfig — to show you wireless adapters

ifconfig — to check assigned IP address

wifi image

You really never know will it work until you plug it in. We’ve seen some expensive adapters that did not work out of the box or required additional or patched drivers. At the same time, the cheapest Chinese $5 one just works.

wifi image

What to do if your adapter does not work but you bloody need it? Use Wifi repeater with LAN port like this, so it will be your wifi client and you plug rig to it’s LAN.

wifi image

Another option and our strong advise is to use Powerline, that’s a really cool technology. It gives your LAN access over a 220V wire in your apartment or building. Though it’s a bit more expensive (you can find some cheaper ones on the aftermarket).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *