OpenWRT x86

встраиваемые модели

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

OpenWRT x86

Непрочитанное сообщение Olej » 24 июл 2020, 20:38

OpenWRT - программная среда для "вшивания" в железо роутеров (бытового уровня), список таких железок составляет десятки распространённых моделей известных производителей: Table of Hardware (RU)
Ниже представлен составленный вручную список руководств и описаний на русском языке. После него идет автоматически генерируемая таблица всей базы устройств.
Но есть ещё одно намерение, которое регулярно, на протяжении уже 7-8 лет вызывает достаточно много публикаций (а значит и экспериментов): взять старенький или надбитый x86, например, нетбук с разбитой матрицей экрана, и раскрутить на нём мощнейший сетевой роутер.
Плодотворность такой идеи не знаю ... но меня попросили в реале такое сделать ... и это оказалось достаточно интересным ... и там есть очень непонятные моменты...

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 24 июл 2020, 20:46

Olej писал(а):
24 июл 2020, 20:38
взять старенький или надбитый x86, например, нетбук с разбитой матрицей экрана, и раскрутить на нём мощнейший сетевой роутер.
Как и где взять x86 образ *.img, как его подготовить и записать на флешку - всё описано здесь: OpenWRT. Я использовал 32-бит образ, а не 64-бит. В итоге получите загружаемую флешку на 2 раздела:

Код: Выделить всё

...
Устр-во    Загрузочный начало  Конец Секторы Размер Идентификатор Тип
/dev/sdd1  *              512  33279   32768    16M            83 Linux
/dev/sdd2               33792 558079  524288   256M            83 Linux
Как загрузить и установить? ... как любой другой Linux на x86...

А вот дальше начинаются некоторые проблемы...

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 24 июл 2020, 21:02

Olej писал(а):
24 июл 2020, 20:46
А вот дальше начинаются некоторые проблемы...
... точнее особенности. :lol:
Конспектирую для себя ключевые затыки где я потерял время на разборки... (может кому ещё пригодится)
Загружается система замечательно быстро... после завершения бегущего текста - жмите Enter, и вы в консоли с приглашением для root:

Код: Выделить всё

# root@OpenWRT:/#

1. система попросит установить пароль для root (командой passwd) ... даже если ставим всё кино для экспериментов (по ускоренной программе) - не пренебрегаем этим шагом: дальше при беспарольном root-е она будет из нас пить кровь; :-(
- даже после установки пароля при перезагрузках мы будем попадать в консоль root без ввода пароля;
2. система изначально устанавливается и стартует с проводным сетевым интерфейсом Ethernet IP 192.168.1.1 ...
- значит можно напороться на дублирование этого IP в LAN ...
- по этому IP уже можно зайти в WEB-интерфейс в браузере ... по администрированию роутера ... но у нас никак не получалось именно из WEB сменить этот IP ...
- сменить этот адрес (и шлюз, DNS и т.д.) нужно потому что без этого нет выхода в Интернет - нет обновлений, установки пакетов ... ничего нет!
- получается это лучше всего если статический адрес сменить на DHCP из LAN, с её шлюзом и т .д.
- для этого редактором (vi, например) вместо строк (или просто их закомментировать) /etc/config/network:

Код: Выделить всё

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option accept_ra '1'
Вписать скромненько:

Код: Выделить всё

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'dhcp'
После чего есть выход в Интернет!

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 24 июл 2020, 21:14

Olej писал(а):
24 июл 2020, 21:02
После чего есть выход в Интернет!
3. Теперь самый смысл по новому IP полученному DHCP зайти (в несколько) сессий SSH со стационара:

Код: Выделить всё

olej@nvidia:~$ ssh root@192.168.1.123
root@192.168.1.123's password: 

BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 19.07.3, r11063-85e04e9f46
 -----------------------------------------------------
root@OpenWrt:~# 
4. Обновить пакетную систему и саму ОС:

Код: Выделить всё

root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/releases/19.07.3/targets/x86/generic/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
...

Код: Выделить всё

root@OpenWrt:~# opkg list-upgradable
...
И обновить пакеты из этого списка:

Код: Выделить всё

root@OpenWrt:~# opkg upgrade <pkgs>
...
<pkgs> - список пакетов.
Вызов пакетного менеджера без параметров даёт обстоятельную справку:

Код: Выделить всё

root@OpenWrt:~# opkg
opkg must have one sub-command argument
usage: opkg [options...] sub-command [arguments...]
where sub-command is one of:
...
P.S. Удивительно (для меня) что после каждой перезагрузки OpenWRT обновление их пакетной системы (opkg update) нужно делать заново :-o (где-то эта информация не запоминается). Без этого opg не видит список пакетов (list), а значит ничего не ищет (find) из пакетов, не устанавливает (install), и не обновляет (upgrade).

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 24 июл 2020, 21:29

Для меня проблемы - в WiFi, в моём случае в нетбук воткнули 2 разных PCI-E WiFi модулей:
изображение_viber_2020-07-23_18-15-04.jpg
Вопрос разделялся на 2: модули-драйверы WiFi + программы и настройка WiFi

5. Драйверы (устройства как можно видеть там: Intel WiFi Link 5100 + Broadcom BCM4311 54 WIFI ASUS), модули ядра, как оказалось, имеют имена вида kmod-*. Поэтому их легко найти, например для Broadcom все известные имеют вид:

Код: Выделить всё

root@OpenWrt:~# opkg find kmod-* | grep Broadc
kmod-b43 - 4.14.180+4.19.120-1-1 - Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
kmod-b43legacy - 4.14.180+4.19.120-1-1 - Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
kmod-b44 - 4.14.180-1 - Kernel modules for Broadcom 44xx Ethernet adapters.
kmod-bcma - 4.14.180-1 - Bus driver for Broadcom specific Advanced Microcontroller Bus Architecture
kmod-be2net - 4.14.180-1 - Broadcom Emulex OneConnect 10Gbit SFP+ support, OneConnect OCe10xxx OCe11xxx OCe14xxx, LightPulse LPe12xxx
kmod-brcmfmac - 4.14.180+4.19.120-1-1 - Kernel module for Broadcom IEEE802.11n USB Wireless cards
kmod-brcmsmac - 4.14.180+4.19.120-1-1 - Kernel module for Broadcom IEEE802.11n PCIe Wireless cards
kmod-brcmutil - 4.14.180+4.19.120-1-1 - This module contains some common parts needed by Broadcom Wireless drivers brcmsmac and brcmfmac.
kmod-can-bcm - 4.14.180-1 - The Broadcast Manager offers content filtering, timeout monitoring, sending of RTR frames, and cyclic CAN messages without permanent user interaction.
kmod-phylib-broadcom - 4.14.180-1 - Broadcom Ethernet PHY library
kmod-tg3 - 4.14.180-1 - Kernel modules for Broadcom Tigon3 Gigabit Ethernet adapters

Таким образом их можно легко отобрать и установить:

Код: Выделить всё

root@OpenWrt:/bin# opkg install kmod-b43
Installing kmod-b43 (4.14.180+4.19.120-1-1) to root...
Downloading http://downloads.openwrt.org/releases/19.07.3/targets/x86/generic/packages/kmod-b43_4.14.180%2b4.19.120-1-1_i386_pentium4.ipk
Installing kmod-ssb (4.14.180-1) to root...
Downloading http://downloads.openwrt.org/releases/19.07.3/targets/x86/generic/packages/kmod-ssb_4.14.180-1_i386_pentium4.ipk
Installing kmod-bcma (4.14.180-1) to root...
Downloading http://downloads.openwrt.org/releases/19.07.3/targets/x86/generic/packages/kmod-bcma_4.14.180-1_i386_pentium4.ipk
Configuring kmod-ssb.
Configuring kmod-bcma.
Configuring kmod-b43.
После чего проверить:

Код: Выделить всё

root@OpenWrt:/bin# lsmod | grep 43
b43                   344064  0
bcma                   32768  1 b43
cfg80211              212992  5 b43,iwlmvm,iwldvm,mac80211,iwlwifi
compat                 12288  6 b43,iwlmvm,iwldvm,mac80211,iwlwifi,cfg80211
mac80211              380928  3 b43,iwlmvm,iwldvm
ssb                    32768  1 b43
Для Intel адаптера, соответственно:

Код: Выделить всё

root@OpenWrt:~# opkg find kmod-* | grep WiFi | grep 5100 
kmod-iwlwifi - 4.14.180+4.19.120-1-1 - iwlwifi kernel module for Intel Wireless WiFi Link 6250AGN Adapter Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN) Intel WiFi Link 1000BGN Intel Wireless WiFi 5150AGN Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN Intel 6005 Series Wi-Fi Adapters Intel 6030 Series Wi-Fi Adapters Intel Wireless WiFi Link 6150BGN 2 Adapter Intel 100 Series Wi-Fi Adapters (100BGN and 130BGN) Intel 2000 Series Wi-Fi Adapters Intel 7260 Wi-Fi Adapter Intel 3160 Wi-Fi Adapter Intel 7265 Wi-Fi Adapter Intel 8260 Wi-Fi Adapter Intel 3165 Wi-Fi Adapter

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 24 июл 2020, 21:42

Olej писал(а):
24 июл 2020, 21:29
+ программы и настройка WiFi
6. Изначально в OpenWRT всё для WiFi не установлено.
WiFi всякие tools (iwconfig и т.д.) ставим:

Код: Выделить всё

root@OpenWrt:~# opkg find wireless*
collectd-mod-wireless - 5.11.0-7 - wireless status input plugin
wireless-regdb - 2019.06.03-1 - Wireless Regulatory Database
wireless-tools - 29-6 - This package contains a collection of tools for configuring wireless
 adapters implementing the "Linux Wireless Extensions".

Код: Выделить всё

root@OpenWrt:~# opkg install wireless-tools
Installing wireless-tools (29-6) to root...
Downloading http://downloads.openwrt.org/releases/19.07.3/packages/i386_pentium4/base/wireless-tools_29-6_i386_pentium4.ipk
Configuring wireless-tools.

Код: Выделить всё

root@OpenWrt:~# iwconfig
eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          
br-lan    no wireless extensions.

lo        no wireless extensions.
Далее...

Код: Выделить всё

root@OpenWrt:~# opkg find  hostapd*
hostapd - 2019-08-08-ca8c2bd2-4 - This package contains a full featured IEEE 802.1x/WPA/EAP/RADIUS
 Authenticator.
hostapd-basic - 2019-08-08-ca8c2bd2-4 - This package contains a basic IEEE 802.1x/WPA Authenticator with WPA-PSK, 802.11r and 802.11w support.
hostapd-common - 2019-08-08-ca8c2bd2-4 - hostapd/wpa_supplicant common support files
hostapd-mini - 2019-08-08-ca8c2bd2-4 - This package contains a minimal IEEE 802.1x/WPA Authenticator (WPA-PSK only).
hostapd-openssl - 2019-08-08-ca8c2bd2-4 - This package contains a full featured IEEE 802.1x/WPA/EAP/RADIUS
 Authenticator.
hostapd-utils - 2019-08-08-ca8c2bd2-4 - This package contains a command line utility to control the
 IEEE 802.1x/WPA/EAP/RADIUS Authenticator.
hostapd-wolfssl - 2019-08-08-ca8c2bd2-4 - This package contains a full featured IEEE 802.1x/WPA/EAP/RADIUS
 Authenticator.
Для зaщиты WPA2/PSK ставлю:

Код: Выделить всё

root@OpenWrt:~# opkg install  hostapd-basic
Installing hostapd-basic (2019-08-08-ca8c2bd2-4) to root...
Downloading http://downloads.openwrt.org/releases/19.07.3/packages/i386_pentium4/base/hostapd-basic_2019-08-08-ca8c2bd2-4_i386_pentium4.ipk
Configuring hostapd-basic.

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 24 июл 2020, 21:52

7. Руссификация WEB-морды роутера (позже только через неё будет доступ к управлению роутером):
На вкладке меню System —> Software вводим в поле Filter слово «russian» и на вкладке Available packages (russian) устанавливаем (отмечаем Install) все пакеты luci-i18n-*-ru.
Снимок экрана от 2020-07-24 21-33-59.png
Дальше в меню Система —> Система —> Язык и тема - устанавливаем "русский":
Снимок экрана от 2020-07-24 21-51-07.png

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 25 июл 2020, 14:49

Olej писал(а):
24 июл 2020, 21:42
Изначально в OpenWRT всё для WiFi не установлено.
После всех нужных доустановок для WiFi, все остальные настройки WiFi, переход из режима клиент в режим мастер (точка доступа) и т.п.- всё замечательно описано в руководстве: Зафиксируйте и включите Wi-Fi.
Снимок экрана от 2020-07-25 14-49-07.png

Код: Выделить всё

root@OpenWrt:~# ip link show up
1: lo: <LOOPBACK,UP,LOWER_UP> 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP mode DEFAULT group default qlen 1000
    link/ether 00:26:b9:69:b4:5e brd ff:ff:ff:ff:ff:ff
4: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 00:26:b9:69:b4:5e brd ff:ff:ff:ff:ff:ff
21: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:1a:73:41:42:99 brd ff:ff:ff:ff:ff:ff

Код: Выделить всё

root@OpenWrt:~# ip address show dev wlan0
21: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:1a:73:41:42:99 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::21a:73ff:fe41:4299/64 scope link 
       valid_lft forever preferred_lft forever

Код: Выделить всё

root@OpenWrt:~# iwconfig wlan0
wlan0     IEEE 802.11  Mode:Master  Tx-Power=20 dBm   
          RTS thr:off   Fragment thr:off
          Power Management:off

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 25 июл 2020, 16:58

Olej писал(а):
24 июл 2020, 20:46
А вот дальше начинаются некоторые проблемы...
Вся потеря времени, у меня, возникла из-за разборок с вопросами из 2-х категорий:

1. Ethernet интерфейс OpenWRT изначально прописан (/etc/config/network) статически на 192.168.1.1 (как и принято у аппаратных роутеров). Он прекрасно видел хосты моей LAN 192.168.1.X, но не имеет выхода в Интернет (не знает шлюз, возможно DNS, ... ) ... без чего нечего делать с обновлениями, установкой пакетов, настройкой WiFi. Я по-быстрому решил это, перепрописав (/etc/config/network) IP через DHCP. У меня не пошло (в лёт) прописав нужное для 192.168.1.1 статически, что было б правильнее:

Код: Выделить всё

       option proto 'static'
       option ipaddr '192.168.1.1'
       option netmask '255.255.255.0'
       option gateway '192.168.1.3'
       option dns '192.168.1.3 217.21.51.1 213.184.232.33'
2. Группа вопросов, связанных с WiFi (которые были мне посмтавлены целью как основные). Меня спутало то, что я далеко не сразу нашёл утверждения, что в OpenWRT всё что связано с WiFi - изначально не установлено! (ключевое слово здесь ВСЁ). А это значит что никакого WiFi у вас не появится пока:
- вы точно не установите модель вашего чипа WiFi: xxx
- найти и установить модуль ядра kmod-* для поддержки xxx
- установить всё ПО нужное для работы с WiFi, например, пакеты: wireless-tools, hostapd-basic и т.д.

Аватара пользователя
Olej
Писатель
Сообщения: 13885
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: OpenWRT x86

Непрочитанное сообщение Olej » 25 июл 2020, 17:34

Olej писал(а):
25 июл 2020, 16:58
У меня не пошло (в лёт) прописав нужное для 192.168.1.1 статически, что было б правильнее:
Изменяю в WEB-интерфейсе параметры lan интерфейса:
Снимок экрана от 2020-07-25 17-03-30.png
После чего : сохранить ... сохранить и применить...
WEB-интерфейс при этом зависает, крутится бесконечное колесо...
Но из LAN:

Код: Выделить всё

olej@nvidia:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.708 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.431 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.515 ms
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.431/0.551/0.708/0.115 ms
Т.е. интерфейс 192.168.1.1 (переназначенный) сразу же поднялся, и можно тут-же по нему подключиться по SSH:

Код: Выделить всё

root@OpenWrt:~# cat /etc/config/network 

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option gateway '192.168.1.3'
	list dns '192.168.1.3'
	list dns '217.21.51.1'
	list dns '213.184.232.33'

config interface 'wwan'
	option proto 'static'
	option ipaddr '192.168.2.1'
	option netmask '255.255.255.0'
	option gateway '192.168.1.3'
	list dns '8.8.4.4'
Вот так оно должно быть ... и так можно прописать при изначальной установке!
Есть трафик внаружу:

Код: Выделить всё

root@OpenWrt:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=119 time=23.022 ms
64 bytes from 8.8.8.8: seq=1 ttl=119 time=22.207 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 22.207/22.614/23.022 ms
И разрешение DNS идёт через роутер LAN:

Код: Выделить всё

root@OpenWrt:~# nslookup linux-ru.ru
Server:		192.168.1.3
Address:	192.168.1.3#53

Name:      linux-ru.ru
Address 1: 185.200.243.3
*** Can't find linux-ru.ru: No answer

Ответить

Вернуться в «Одноплатные компьютеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость