Товары из Китая

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.


  1. Цена: Суммарно около $100
  2. Перейти в магазин

Бег по граблям. По своим и чужим.

LTE модем Fibocom L860-GL. Прошивка, настройка.

Одноплатный компьютер FriendlyElec Nanopi R4S. Много фото.

Сборка OpenWrt из исходных кодов и не только. 

Текста… Много. Картинок не меньше.

Введение

Я почти закончил один из своих долгостроев, местами повествование может быть скомкано, местами — слишком подробно. Писать пост надоело — публикую. Также за время написания поста некоторая информация могла обновиться. Прошу готовить ваши тапки для бросков — я дилетант во многих областях, буду отбиваться.

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

Модем

В последнее время писк моды — использование Mini PCI-e и M.2 модемов. После изучения ветки на 4pda и просмотра цен на соответствующие наименования, была сделана ставка на многострадальный Fibocom L860-GL — модем 16/13 категории форм-фактора M.2.

Внешний вид

Упаковано хорошо — коробка, пупырка, 

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

антистатические пакеты.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Вот и герой нашего обзора. 

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Оборудование довольно компактно. Но это только часть набора.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Переходник в комплекте не самый лучший. Некоторые жаловались на плохое питание на данной модели. Есть адаптеры с 2-SIM и программным переключением.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Текстолит тонкий. Хоть крепеж платы есть адекватный.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Антенны на гибком основании с самоклейкой, такие мы часто видим в ноутбуках. 

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Собственно, в основном для ноутбуков подобные модемы и предназначались изначально.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Разъемы IPEX4, он же MHF4. Защищены колпачками — забота о клиенте.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Софт

Подключаем модем к ПК, он виден как целых 6 устройств.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Хотя нет — не виден, мы же еще не ставили драйвера. После успешной установки в диспетчере устройств появляются: модем, 2 COM порта, 3 сетевых карты.

Дальше нам нужно посмотреть, а оно вообще живое?

Если у Вас Windows и нет терминала для работы с COM-портом — советую скачать YAT. Если у Вас Unix-подобная операционная система — сами разберетесь. Ставим терминал, выбираем порт acm2 (если в ответ тишина — включите DTR):

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Посмотрим версию прошивки. Вводим команду

AT+GTMCFWVER?
Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Нам не повезло, прошивка, мягко говоря, неудачная. И предварительные тесты подтвердили опасения — будем перепрошивать.

Disclaimer

Делать на свой страх и риск, только с полным осознанием производимых действий!

Автор не несет ответственности за любой прямой или косвенный ущерб.

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

Качаем прошивальщик PlatformFlashToolModem и прошивку 18601.5001.00.01.15.23 (нужно авторизоваться). Отключаем модем. Запускаем прошивальщик.

Тип подключения ставим USB, Erase mode в No Erase. Добавляем оба файла прошивки.

Жмем Start to Flash, втыкаем модем без SIM.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

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

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Прошились успешно. Посмотреть IMEI можно командой

AT+CGSN

IMEI начинается на 35, как продавец и обещал. Если из-за кривых рук стечения обстоятельств IMEI был стерт — не беда, на данной модели модема можно восстановить.

Проверить работу на Windows удобно этим скриптом

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Пигтейлы

Понятно, что комплектные антенны никуда не годятся, да и внешние антенны я два раза обозревал не просто так (Petra BB, KROKS KAA15). Вот только на кабель РК 50 нужно заделывать разъемы N или SMA, а в модеме — мелкие IPEX4. Переходник ннада. Ищем "pigtail sma ipex4". Не забываем, что есть еще и RP-SMA.

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

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

FriendlyElec Nanopi R4S

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

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Поставляется в фирменной коробке, которая лежит в простой коробке, которая в зайце, заяц в утке

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Сама плата антистатическом пакете (не запаян), дополнительно защищенный пупыркой.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Это Headless-устройство. Монитор подключать некуда. Только терминал, только хардкор.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

Штука довольно занятная, у меня вариант с 1Gb оперативной памяти.

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

1Gb и 4Gb версии отличаются по схемотехнике и поддержке софта. Казалось бы, зачем домашнему роутеру столько, но не в том дело — официальная поддержка OpenWrt заявлена только для 4Gb версии (возможно уже починили на текущий момент).

Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

 

Характеристики
  • CPU: Rockchip RK3399 4-ядерный 64-bit Dual Core Cortex-A72 + Quad Core Cortex-A53, максимум 2.0GHz Cortex-A72 и 1.5GHz Cortex-A53
  • GPU: Mali-T864, поддержка OpenGL ES1.1/2.0/3.0/3.1, OpenCL™, DX11, and AFBC
  • VPU: 4K VP9 and 4K 10bits H265/H264 60fps decoding, Dual VOP, etc
  • Оперативная память: 1GB DDR3/4GB LPDDR4
  • Хранилище: слот Micro-SD до 128GB
  • Питание: RK808-D PMIC
  • Сетевые интерфейсы:
  • Бег по граблям. По своим и чужим.

    LTE модем Fibocom L860-GL. Прошивка, настройка.

    Одноплатный компьютер FriendlyElec Nanopi R4S. Много фото.

    Сборка OpenWrt из исходных кодов и не только. 

    Текста… Много. Картинок не меньше.

    Введение

    Я почти закончил один из своих долгостроев, местами повествование может быть скомкано, местами — слишком подробно. Писать пост надоело — публикую. Также за время написания поста некоторая информация могла обновиться. Прошу готовить ваши тапки для бросков — я дилетант во многих областях, буду отбиваться.

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

    Модем

    В последнее время писк моды — использование Mini PCI-e и M.2 модемов. После изучения ветки на 4pda и просмотра цен на соответствующие наименования, была сделана ставка на многострадальный Fibocom L860-GL — модем 16/13 категории форм-фактора M.2.

    Внешний вид

    Упаковано хорошо — коробка, пупырка, 

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    антистатические пакеты.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Вот и герой нашего обзора. 

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Оборудование довольно компактно. Но это только часть набора.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Переходник в комплекте не самый лучший. Некоторые жаловались на плохое питание на данной модели. Есть адаптеры с 2-SIM и программным переключением.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Текстолит тонкий. Хоть крепеж платы есть адекватный.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Антенны на гибком основании с самоклейкой, такие мы часто видим в ноутбуках. 

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Собственно, в основном для ноутбуков подобные модемы и предназначались изначально.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Разъемы IPEX4, он же MHF4. Защищены колпачками — забота о клиенте.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Софт

    Подключаем модем к ПК, он виден как целых 6 устройств.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Хотя нет — не виден, мы же еще не ставили драйвера. После успешной установки в диспетчере устройств появляются: модем, 2 COM порта, 3 сетевых карты.

    Дальше нам нужно посмотреть, а оно вообще живое?

    Если у Вас Windows и нет терминала для работы с COM-портом — советую скачать YAT. Если у Вас Unix-подобная операционная система — сами разберетесь. Ставим терминал, выбираем порт acm2 (если в ответ тишина — включите DTR):

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Посмотрим версию прошивки. Вводим команду

    AT+GTMCFWVER?
    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Нам не повезло, прошивка, мягко говоря, неудачная. И предварительные тесты подтвердили опасения — будем перепрошивать.

    Disclaimer

    Делать на свой страх и риск, только с полным осознанием производимых действий!

    Автор не несет ответственности за любой прямой или косвенный ущерб.

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

    Качаем прошивальщик PlatformFlashToolModem и прошивку 18601.5001.00.01.15.23 (нужно авторизоваться). Отключаем модем. Запускаем прошивальщик.

    Тип подключения ставим USB, Erase mode в No Erase. Добавляем оба файла прошивки.

    Жмем Start to Flash, втыкаем модем без SIM.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

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

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Прошились успешно. Посмотреть IMEI можно командой

    AT+CGSN

    IMEI начинается на 35, как продавец и обещал. Если из-за кривых рук стечения обстоятельств IMEI был стерт — не беда, на данной модели модема можно восстановить.

    Проверить работу на Windows удобно этим скриптом

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Пигтейлы

    Понятно, что комплектные антенны никуда не годятся, да и внешние антенны я два раза обозревал не просто так (Petra BB, KROKS KAA15). Вот только на кабель РК 50 нужно заделывать разъемы N или SMA, а в модеме — мелкие IPEX4. Переходник ннада. Ищем "pigtail sma ipex4". Не забываем, что есть еще и RP-SMA.

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

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    FriendlyElec Nanopi R4S

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

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Поставляется в фирменной коробке, которая лежит в простой коробке, которая в зайце, заяц в утке

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Сама плата антистатическом пакете (не запаян), дополнительно защищенный пупыркой.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Это Headless-устройство. Монитор подключать некуда. Только терминал, только хардкор.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Штука довольно занятная, у меня вариант с 1Gb оперативной памяти.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    1Gb и 4Gb версии отличаются по схемотехнике и поддержке софта. Казалось бы, зачем домашнему роутеру столько, но не в том дело — официальная поддержка OpenWrt заявлена только для 4Gb версии (возможно уже починили на текущий момент).

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

     

    Характеристики
    • CPU: Rockchip RK3399 4-ядерный 64-bit Dual Core Cortex-A72 + Quad Core Cortex-A53, максимум 2.0GHz Cortex-A72 и 1.5GHz Cortex-A53
    • GPU: Mali-T864, поддержка OpenGL ES1.1/2.0/3.0/3.1, OpenCL™, DX11, and AFBC
    • VPU: 4K VP9 and 4K 10bits H265/H264 60fps decoding, Dual VOP, etc
    • Оперативная память: 1GB DDR3/4GB LPDDR4
    • Хранилище: слот Micro-SD до 128GB
    • Питание: RK808-D PMIC
    • Сетевые интерфейсы:

    • Gigabit Ethernet Native RTL8211E

    • GigabitEthernet PCIe R8111H

    • USB:

    • USB 3.0 Host x2

    • USB 2.0 Host x1: 2.54mm 4pin-header

    • Type-C x1 только для питания DC 5V/3A

    • Низкоуровневая периферия:

    GPIO: 2.54mm pitch 2x5pin-header, include I2C x1, SPI x1

    • Serial Debug Port x1: 2.54mm pitch 3pin-header, 3V level, 1500000bps

    User Button x1

    • RTC: 2 Pin 1.27/1.25mm разъем
    • Интерфейс подключения 5В вентилятора
    • Индикация LED: PWR (Red), STAT (Green), LAN (Green), WAN (Green)
    • Поддерживаемые ОС: FriendlyWrt, FriendlyCore Focal Lite (Base on Ubuntu 20.04) Debian 10 Desktop, Debian 11 Desktop.
    • Размеры: 66×66 мм
    • Вес: 40.90 г

    Плата компактная. Осталось найти радиатор и прикрутить к нему плату. Или наоборот. Есть комплектации с металлическим корпусом.

    Посмотрим на героя обзора поближе.

    SPI Flash или eMMC тут нет, только разъем microSD.

    Корпуса разъемов запаяны как обычно.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    64-битное сердце (или мозг) Rockchip RK3399. Проц довольно горячий, перед опытами сразу лепим радиатор.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Оперативная память — 1Gb DDR3 K4B4G16.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Контроллер питания Rockchip RK808. Программное отключение питания, спящий режим, пробуждение по RTC.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Разъем Molex 53398-0271 1.27/1.25mm часов реального времени RTC, потребление 27uA.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    1G Ethernet Realtek RTL8211E.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    1G Ethernet Realtek RTL8111H.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    КолодкиUSB 2.0 — 2.54mm Dupont (1 — VDD_5V, 2 — USB_DM, 3 — USB_DP, 4 — GND),

    UART2.54mm Dupont (0 — GND, TX, RX, уровни 3.3В, 1500000 bps),

    разъем вентилятора ZH1.5 (5В, max 2А), ШИМ, можно программно управлять. 

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Светодиодные индикаторы, светодиод питания, 3 шт управляемыхGPIO (SYS, LAN, WAN) и кнопка, тоже висит на GPIO.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Рядом колодка GPIO. Производитель разрешает питать устройство по Pin1 и Pin5.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Сейчас у FriendlyElec есть устройства и поинтересней, так, например, стоит взглянуть на NanoPi R5C (aliexpress).

    Также есть монстр NanoPC T6 с 2x 2.5G Ethernet, 2x USB3.0 + 2x USB2.0 + 1x TypeC, M.2, 4-16 Gb RAM, 2.4GHz 8-ядерном RK3588, поддержкой miniPCI 4G модемов и SIM слотом на плате.

    Для самоделок можно купить не одноплатный компьютер, а плату роутера: побюджетней — роутер на MT7621, побогаче — на MT7622 с тремя слотами M.2, SATA и пр (все с поддержкой OpenWrt).

    Если полный фарш, то роутер Dual-Q H721. Я же люблю извраще делать сам.

     

    OpenWrt

    В нижеследующем тексте будут даны некоторые упрощения и допущены упущения для понимания происходящего неподготовленной публикой. У нас тут не курс «DevOps с нуля за 1 месяц». Но здоровая критика приветствуется.

    OpenWrt — встраиваемая операционная система на базе Linux, предназначенная, в первую очередь, для роутеров.

    С поддержкой OpenWrt для подобных плат обычно не все так просто. Для начала нужно объяснить, что такое Device Tree, рассказать про патчи и diff… может в новом посте, если тапками не закидают. На примере другого устройства, которое много крови попило…

    Для устройств FriendlyElec существует форк системы OpenWrt — FriendlyWrt, имеющий необходимые патчи для работы устройств серий NanoPC и NanoPi. И вновь дадим пояснение: Форк (ответвление) — использование исходного кода одного проекта для независимой (в той или иной мере) разработки нового программного обеспечения на его основе. Однако, кроме патчей для работы оборудования других плюшек FriendlyWrt не имеет.

    Поэтому будем собирать форк ImmortalWrt. ImmortalWrt — это форк OpenWrt с большим количеством портированных пакетов, поддержкой большего количества устройств (в том числе одноплатных компьютеров), лучшей производительностью и специальной оптимизацией для пользователей из материкового Китая. А наши китайские братья знают толк в сетевом софте.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Принципиальных отличий по сборке OpenWrt/ImmortalWrt/FriendlyWrt/OtherWrt нет, меняем адрес репозитория и имена веток/тегов (поясним позже). По тексту далее будет указано просто OpenWrt, если сказанное не касается только конкретного форка.

    Да, можно было бы установить официальный релиз (если он есть в дикой природе — помните про поддержку оборудования?), а на него поставить нужные пакеты… если они есть для данной версии системы. Можно добавить патчи в оф. OpenWrt, может быть даже заработает. А может быть последним сообщением при сборке будет Error, и придется просматривать 100 мегабайт лога. Я знаю, я был там,Гэндальф…

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

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.
    Вася Ложкин. Художник

    Сборка OpenWrt/ImmortalWrt из исходных кодов с использованием Buildroot

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

    Мы хотим добавить в OpenWrt кучу пакетов для поддержки модемов и еще всяких свистелок

    Поэтому мы будем заниматься самостоятельной компиляцией OpenWrt, а для этого нам нужна GNU/Linux или Unix-подобная операционная система. Можно, конечно, попробовать собрать под Виндой с помощью WSL, но не хочется на ровном месте иметь лишние проблемы, тем более, что есть в наличии маленький сервачок на GNU/Linux.

    Многоуважаемые читатели могут скачать Oracle VM VirtualBox (программа, позволяющая создавать на своем компьютере виртуальную машину со своей собственной операционной системой) и установить на него что-нибудь на свой вкус, я предпочитаю Debian-based, без лоска и свистелок — можно Mint или Xubuntu. Можно вообще без графики, для компиляции она не нужна, но стартовать с такого варианта не стоит. Я, пожалуй, описывать процесс не буду. Можно почитать тут или поискать "ubuntu | mint | xubuntu на VirtualBox". Устанавливаем, запускаем.

    Приступим к компиляции. Открываем терминал — ищем через меню программ или горячие клавиши — обычно Ctrl+Alt+T или Alt+T (я же буду работать удаленно, через PuTTY):

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Что вообще происходит? Все под контролем, так тоже можно работать. С помощью команды pwd можно, например, посмотреть, в каком каталоге мы находимся:

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Только имейте в виду: Unix-подобные системы регистрозависимые. Так, папки Myfolder и myfolder — это не одно и то же. Так и команда Pwd не сработает:

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Также следует сказать про автодополнение — начните набирать имя команды или файла/каталога и нажмите Tab.

    Кроме того, я советую пользоваться tmux.

    tmux — это терминальный мультиплексор, позволяющий в одном терминале запустить несколько сессий и переключаться между ними или даже разместить их в рамках одного экрана. Также, при закрытии терминала сессия продолжит работу в фоновом режиме, что очень полезно при удаленной работе — можно закрыть окно [PuTTY], а затем подключиться и посмотреть результат. 

    Ставим зависимости для сборки:

    зависимости
    sudo apt install -y build-essential libncurses5-dev zlib1g-dev 
    
    gawk gcc-multilib flex git gettext libssl-dev python3-distutils
    xsltproc rsync unzip python3 quilt libncursesw5-dev xsltproc

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

    !!!  Все нижеследующие команды выполняются под обычным пользователем (не под суперпользователем, non-root) 

    Теперь скачиваем исходные коды OpenWrt из репозитория (вообще-то клонируем репозиторий, более того, частично, и только ветку openwrt-21.02, но я уже говорил про упрощения)

    git clone -b openwrt-21.02 --single-branch --filter=blob:none https://github.com/immortalwrt/immortalwrt

    Ожидаем завершения

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Переходим в папку с нашим проектом — команда cd имя_директории

    cd immortalwrt

    Вот тут нужно дать пояснение.

    пояснение

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

    git clone https://git.openwrt.org/openwrt/openwrt.git

    Входим в каталог с git

    cd openwrt/

    Затем из текущей рабочей ветки переключаемся на нужную ветку или тег.

    git checkout openwrt-21.02

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

    Для работы с модемами Fibocom и проч. нам нужен пакет xmm-modem, которого нет в основном репозитории. Список фидов у нас хранится в файле feeds.conf.default, добавляем туда нужные репозитории:

    echo 'src-git modemfeed https://github.com/koshev-msk/modemfeed.git' >> feeds.conf.default

    Есть еще интересный пакет luci-app-modemband для настройки модемов через Luci, можем добавить его для опытов:

    echo 'src-git modemband https://github.com/4IceG/luci-app-modemband.git' >> feeds.conf.default

    Получаем актуальные версии пакетов и делаем их доступными в конфигураторе прошивки:

    ./scripts/feeds update -a
    ./scripts/feeds install -a

    Для подобных плат, в том числе Orange, Banana и пр. частенько нужны патчи для работы того или иного оборудования. Их стоит добавить сейчас, если мы собираем оригинальный OpenWrt. Но об этом не сегодня, в ImmortalWrt у нас уже есть почти все необходимое.

    Запускаем инструмент настройки нашей прошивки

    make menuconfig
    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Навигация в псевдографическом интерфейсе осуществляется:

    стрелочками, клавишей Enter, пробелом

    Y, N, M — значения пунктов меню

    / поиск,? — справка

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

    При выборе пакетов возможно 3 варианта:

    < > исходный код не будет обрабатываться (N).

    <M> пакет будет собран, но не будет добавлен в образ прошивки (M). Их можно установить с помощью opkg.

    <*> пакет будет собран и включен в прошивку (Y).

    Выбираем целевую платформу и устройство:

    Target System ---> Rockchip
    Target Profile ---> FriendlyYrm NanoPi R4S

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

    make defconfig

    а потом снова запустить make menuconfig для настройки и выбора пакетов.

    Важно! Нужно поправить размер образа root partition size — если система будет на microSD — не жадничаем. По умолчанию значение 104 (в чистом OpenWrt) — мы в такой объем не влезем, bin файл прошивки не создастся.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    И самое интересное — выбираем нужные нам пакеты. Их будет довольно много. Зависимости пакетов [почти всегда] выбираются автоматически.

    Выходим, утвердительно отвечаем на запрос о сохранении изменений.

    Все наши настройки хранятся в файле .config — с точки начинаются названия скрытых файлов, в графическом интерфейсе, как и по команде ls (без опции ) он виден не будет.

    Перед первой компиляцией полезно проверить зависимости для сборки. Если чего-то не хватает — устанавливаем недостающие пакеты с помощью apt.

    make prereq

    Как добавить свои файлы в сборку, например файлы конфигурации?

    В корневой директории сборки, обычно обозначаемой в руководствах <buildroot> (там где config, package, scripts) создаем папку files, она будет корневой директорией устройства. В ней можно создать папки /etc/config и положить туда файлы конфигурации OpenWrt. Аналогично с любыми другими файлами, например /etc/rc.local или /etc/nftables.d/10-custom-filter-chains.nft

    Поскольку мы собираем 21.02, можно сразу поправить скрипт автозапуска

    rc.local
    mkdir -p files/etc/
    
    echo -e "# Put your custom commands here that should be executed oncen
    # the system init finished. By default this file does nothing.n
    n
    iptables -t mangle -I PREROUTING -m ttl --ttl 1 -j TTL --ttl-inc 4n
    n
    iptables -t mangle -A PREROUTING -j TTL --ttl-set 64n
    iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64n
    n
    ip6tables -t mangle -I POSTROUTING ! -p icmpv6 -j HL --hl-set 64n
    ip6tables -t mangle -I PREROUTING ! -p icmpv6 -j HL --hl-set 64n
    n
    exit 0n" > files/etc/rc.local

    Не помешает немного понизить частоту CPU, нам такие мощности излишни, а греться будет поменьше.

    cpufreq
    mkdir -p files/etc/config
    
    echo -e "config settings 'cpufreq'n
    option governor0 'schedutil'n
    option governor4 'schedutil'n
    option minfreq0 '408000'n
    option maxfreq0 '1200000'n
    option minfreq4 '408000'n
    option maxfreq4 '1200000'n
    n
    n
    config settings 'global'n
    option set '1'n" > files/etc/config/cpufreq

    А дальше уличная магия запускаем компиляцию. Процесс займет сильно разное время в зависимости от мощности компьютера. Перед запуском сборки лучше выполнить

    make download

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

    На первый раз лучше компилировать с подробным выводом отладочной информации о сборке в файл build.log, при этом на экране будут отображаться только ошибки (на самом деле — не совсем так, но пока опустим)

    make -j1 V=sc 2>&1 | tee build.log | grep -i error

    Или сразу гулять на все ядра процессора

    make -j$((`nproc` + 1))

    Готовые образы будут лежать по пути

    ~/immortalwrt/bin/targets/rockchip/armv8/

     

    Перед последующими сборками лучше делать

    make clean

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

    Примечания

    Если залезли ручками в конфиг .config и получили предупреждение

    /.config' has modification time 285 s in the future

    То нужно поправить время последнего изменения файла конфигурации, например

    touch -mad "2023-12-31 23:59:59" .config

    время смотрим по соседним файлам, например, каталогу config или build_dir (когда он будет создан) по ls -lah или 

    date +"%Y-%m-%d %H:%M:%S" -r config 

    стоп, тыжпрограммист

    touch -mad "`date +'%Y-%m-%d %H:%M:%S' -r config`" .config

    Некоторые пакеты из репозитория устанавливаться на нашу систему не будут, потому что данная прошивка была собрана с отличным [от официального билда] набором модулей ядра [и имеет другой vermagiс — хэш конфигурации ядра].

    Например, пакеты luci-* можно устанавливать не боясь (почти, у них же есть зависимости), а попытка установить пакет kmod* успехом не увенчается. Некоторые пакеты можно поставить с аргументом —force-depends, но с тем же успехом можно сломать систему (это плохая практика).

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

    Как подсмотреть пакеты из чьей-нибудь прошивки? 

    Если добрые люди вместе с прошивкой выложили файл config.buildinfo, создаваемый при сборке, то все просто. И тут следует рассказать про defconfig.

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

    Файл конфигурации преимущественно состоит из строк, соответствующих всем другим архитектурам:

    # CONFIG_TARGET_airoha is not set
    
    # CONFIG_TARGET_sunxi is not set
    # CONFIG_TARGET_apm821xx is not set

    и куче пакетов:

    # CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuMathTeXGyre is not set
    
    # CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans is not set
    # CONFIG_PACKAGE_dejavu-fonts-ttf-DejaVuSans-Bold is not set

    которые нам никогда не понадобятся мы не используем в своей конфигурации. И длина файла получается значительная.

    Мы можем сохранить только изменения в нашем файле конфигурации 

    scripts/diffconfig.sh > mydiffconfig

    Эта команда создаст файл mydiffconfig в каталоге сборки, который можно использовать как резервную копию настроек. Этот файл аналогичен config.buildinfo, упомянутому чуть ранее.

    Так или иначе, пусть у нас есть файл с настройками сборки mydiffconfig , скопируем его в .config:

    cp mydiffconfig .config

    Развернем сокращенную конфигурацию до полной, заодно проверив неудовлетворенные зависимости пакетов в нашей конфигурации и исправив неуказанные настройки, удалив устаревшие элементы (может возникнуть при смене версий и при вмешательстве ручками):

    make defconfig 

    После чего можно настроить сборку, используя полученную конфигурацию в качестве основы:

    make menuconfig

     

    А если у нас есть только образ .img?

    Для Windows качаем 7zip, открываем образ, там 2 раздела 1.img и 2.img — нам нужен второй, там система. Нам нужен файл usrlibopkgstatus

    Для *nix — тоже есть 7zip, но в ковырянии прошивок нам могут понадобиться squashfs-tools и binwalk 

    sudo apt install squashfs-tools binwalk 

    после чего распаковываем, например образ immortalwrt-rockchip-armv8-friendlyarm_nanopi-r4s-ext4-sysupgrade.img

    binwalk -e immortalwrt-rockchip-armv8-friendlyarm_nanopi-r4s-ext4-sysupgrade.img

    binwalk проанализирует и распакует образ, по пути

    _immortalwrt-rockchip-armv8-friendlyarm_nanopi-r4s-ext4-sysupgrade.img.extracted/ext-root-0/squashfs-root/usr/lib/opkg/

    будет лежать наш файл status следующего вида

    status 

    Package: kmod-usb-storage

    Version: 5.15.118-1

    Depends: kernel (= 5.15.118-1-22affa4bd1046b9606a38bea4a168474), kmod-scsi-core, kmod-usb-core

    Status: install user installed

    Architecture: aarch64_generic

    Installed-Time: 1687778439

    Package: terminfo

    Version: 6.4-2

    Depends: libc

    Status: install user installed

    Architecture: aarch64_generic

    Installed-Time: 1687778439

    Auto-Installed: yes

    в котором и значатся все пакеты в системе.

    Если все сломалось

    Если все сломалось и ничего не компилируется, не обязательно удалять все, можно получить конфигурацию по умолчанию для данного устройства:

    make oldconfig

    И подчистить:

    скомпилированные бинарники: пакеты, прошивка, ядро.

    make clean

    все выше + тулчейн для нашего устройства:

    make targetclean 

    все выше + инструменты сборки и временный каталог tmp/

    make dirclean

    вообще все, включая .config, фиды, загруженные исходные коды и т.д.

    make distclean

    Сборка OpenWrt с помощью онлайн Image Generator

    Вариант 2. В официальном онлайн генераторе прошивок OpenWrt начиная с версии

    22.03.0 есть поддержка платы FriendlyARM NanoPi R4S 4GB LPDDR4. К тому же я имел проблемы с работой dnsmasq-full. Но на всякий случай упомянем этот метод.

    Процесс простой как полкирпича, но возможности для творчества отсутствуют. К тому же: устройства добавляются медленно, непопулярные устройства не добавляются вообще или их поддержка быстро прекращается. Многих одноплатников в оф.билдах и генераторе нет.

    Из преимуществ — просто, быстро, прошивка имеет тот же vermagiс, а значит полностью совместима с репозиториями.

    Ссылка для ImmortalWrt (ссылка для официального OpenWrt), выбираем версию, свое устройство, жмем Изменить набор пакетов, добавляем/удаляем названия пакетов.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    После нажимаем кнопку ЗАПРОСИТЬ СБОРКУ. В случае указания пакетов, не доступных к использованию, об этом будет сказано. Внимание! После генерации образов перечень пакетов в текстовом поле будет сброшен, сохраняйте его локально для удобства.

    Сборка OpenWrt с помощью ImageBuilder

    Вариант 3. Просто, быстро, совместимо с пакетами из официального репозитория (потому что собирается из этих же репозиториев, имеет тот же vermagiс). 

    Из плюсов, по сравнению с предыдущим способом: Можно предварительно скомпилировать или где-то скачать и подсунуть пакеты, которых нет в оф.репозиториях. Можно добавить свои файлы и настройки (настройки и при онлайн сборке можно, но сложно). Приступим:

    Устанавливаем зависимости:

    sudo apt-get install build-essential libncurses5-dev libncursesw5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget unzip python

     

    Скачиваем ImageBuilder для rockchip/armv8, распаковываем, переходим в каталог:

    Для OpenWrt 22.03.0
    wget https://downloads.openwrt.org/releases/22.03.0/targets/rockchip/armv8/openwrt-imagebuilder-22.03.0-rockchip-armv8.Linux-x86_64.tar.xz
    
    tar -xf openwrt-imagebuilder-22.03.0-rockchip-armv8.Linux-x86_64.tar.xz
    cd openwrt-imagebuilder-22.03.0-rockchip-armv8.Linux-x86_64
    Для ImmortalWrt 21.02.0
    wget https://downloads.immortalwrt.org/releases/21.02.0/targets/rockchip/armv8/immortalwrt-imagebuilder-21.02.0-rockchip-armv8.Linux-x86_64.tar.xz
    
    tar -xf immortalwrt-imagebuilder-21.02.0-rockchip-armv8.Linux-x86_64.tar.xz
    cd immortalwrt-imagebuilder-21.02.0-rockchip-armv8.Linux-x86_64

    Можно собрать и другую версию, например 23.05, поддержку можно быстро посмотреть в онлайн версии Image Generator.

    Источники пакетов настраиваются в файле repositories.conf, расположенном в корневом каталоге. Свои репозитории вписываем сюда.

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

    src custom file:///home/user/rockchip/packages

    Свои настройки можно перенести в каталог files, аналогично написанному ранее.

    Смотрим список профилей и ищем название для своего устройства:

    make info

    Собираем.

    Ключ PROFILE указывает имя профиля устройства, PACKAGES — список пакетов, которые нужно добавить или убрать (минус перед именем пакета) в прошивку. Ключ FILES задает путь до каталога с файлами, которые следует добавить в прошивку.

    make image PROFILE="friendlyarm_nanopi-r4s" PACKAGES="autocore-arm automount base-files block-mount busybox ca-bundle default-settings-chn dnsmasq-full dropbear ethtool fdisk firewall fstools iptables ipv6helper kmod-gpio-button-hotplug kmod-ipt-raw kmod-nf-nathelper kmod-nf-nathelper-extra kmod-r8168 libc libgcc libustream-openssl logd luci luci-app-cpufreq luci-app-filetransfer luci-app-turboacc luci-compat luci-lib-base luci-lib-fs luci-lib-ipkg mkf2fs mtd netifd opkg partx-utils ppp ppp-mod-pppoe procd uboot-envtools uci uclient-fetch urandom-seed urngd" FILES=files/

    Сгенерированный образ следует искать в каталоге bin.

    Для удаления всех временных файлов сборки и сгенерированных образов осуществляете командой:

    make clean

     

    Тестирование

    Так, у нас есть образ прошивки, сжатый в gz

    Далее берем Win32DiskImager (нужно распаковать .gz) или balenaEtcher (умеет открывать .gz) и заливаем образ на флешку.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.
    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    В Unix-подобных как-то так

    dd if=immortalwrt-rockchip-armv8-friendlyarm_nanopi-r4s-ext4-sysupgrade.img of=/dev/sdX bs=1M

    Подключаемся к одноплатнику витой парой в разъем, который ближе к кнопке (LAN с поднятым DHCP, второй порт — WAN), подаем питание.

    переходим по адресу 192.168.1.1

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Он ожил!

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    По умолчанию пароль пустой.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.
    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Проверяем, виден ли модем в системе: Модем -> Оборудование.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Теперь нужно настроить подключение:Сеть -> Интерфейсы -> Добавить новый интерфейс. Выбираем протокол Менеджер модемов (или Intel XMM Cellular).

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    В строке Модем мы должны увидеть наше устройство — хороший знак. Вводим APN и другие необходимые данные.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Во вкладке Настройки межсетевого экрана добавляем наш интерфейс в зону WAN.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Жмем Сохранить, Применить. Надо же, работает.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    В прошивку добавлен Adblock: Службы -> Блокировщик рекламы, и Adguard Home — доступен по3000 порту (http://192.168.2.1:3000). Если не доступен — подключаемся по SSH и вручную стартуем AdGuardHome, затем все настраиваем.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Отключить ненужное можно в Система -> Автозапуск.

    Само собой, мучить всех заинтересовавшихся самостоятельной сборкой я не буду, просто оставлю ссылку на готовые образы (хотя их практическая ценность невысока). Работает не идеально, возможны неожиданности, не агитирую. Будет допиливаться, для себя — это уж точно.

    Отказ от гарантий и ограничение ответственности

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

    Корпуса

    Креплю я все обычно на DIN рейку. Вот прям все.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Поэтому быстренько начертил крепеж для одноплатника (модели на thingiverse) и пустил на печать.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.
    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Для модема был использован корпус товарища APToni, несколько доработанный паяльником с латунными втулками. 

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Совершенно бесплатно, то есть даром, был заполучен короб от какой-то списанной аппаратуры, в который мною были установлены DIN рейки и щетки для кабельного ввода. Высота маловата, но дареному коню, как говорится… GPIO и штатное управлением вентилятором пока ждет (разъемы ZH1.5 где-то зависли), поэтому охлаждение сделано на отдельном контроллере.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Как красиво все выглядит, пока кабели не подключишь. Да, лучше бы антенны врезать в корпус, но я уже 100 раз все это ставил/снимал. А 4 отверстия под SMA не долго сделать.

    Собираем свой LTE роутер, с преферансом и всеми делами. Мультиобзор.

    Еще бы кто-нибудь подсказал, что на предыдущем фото кабеля к понижайке нет (5В питание). До того, как я на чердак полез, ночью, с фонариком. То-то оно не заработало, когда питание подал… Всякие мелочи будут доделываться в послеследующий выходной. Наверное.

     

    По измерениям скоростных показателей: подобные замеры очень субъективны и зависят от кучи факторов, а прием у нас так себе. Но если совсем кратко — стало значительно лучше, этими вашими интернетами теперь пользоваться комфортно.

    Вместо заключения

    Счастья для всех даром, и пусть никто не уйдёт обиженный

    Список использованной литературы:

    Редактор исправляет HTML сущности согласно HTML5 (& -> & amp;), но обратно оно не работает, поэтому ссылки на конкретные посты 4pda ломаются.

    4pda: Агрегация — дорого? Собираем бюджетно или Набор юного агрегатора (благодарности ipnev83,listener89, Shoorikpp, atrum_n, Prusa, APToni, ilya-fedin и всем-всем. Кого забыл — не обижаемся 🙂

    4pda: Общая тема по модемам Fibocom L8x0-GL – обсуждение (Огромная благодарность ПолВторого и всем-всем)

    4pda: Сборка OpenWrt/LEDE из исходных кодов

    4pda: OpenWrt/LEDE (Общая тема) 

    forum.openwrt.org: Orange pi R1 plus support

    openwrt.org: User guide

    losst.pro

    Стругацкий А.Н., Стругацкий Б.Н. Пикник на обочине, 1972.

    Пост может внезапно обновляться


СМОТРИ ТАКЖЕ

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

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