Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Существует ли список драйверов, поддерживаемых для x86, CHR-x86 и CHR-ARM64?

    Существует ли список драйверов, поддерживаемых для x86, CHR-x86 и CHR-ARM64?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Существует ли список драйверов, поддерживаемых для x86, CHR-x86 и CHR-ARM64?, RouterOS
     
    sirbryan
    Guest
    #1
    0
    01.03.2025 18:42:00
    Я тестирую несколько вариантов небольших роутеров, включая Intel N100 и N150, а также Raspberry Pi CM5 с интерфейсами 2.5G и 5G. У меня есть несколько USB-донглов Realtek 2.5G, которые распознаются и работают на x86 в N150, но не получается запустить их через USB passthrough на CHR, который работает на Pi. (Пока не пробовал passthrough на Intel.) CHR на Pi начинает сбоить, когда я шлюзую все устройства подряд (5G и два 2.5G, каждый порт в своём собственном мосту), поэтому я надеялся, что passthrough сработает. То, что это не получается, заставляет меня думать, что ARM-версия CHR не содержит всех USB-драйверов, которые есть у bare-metal x86. И пакет extra-NICs тоже не работает.
     
     
     
    CGGXANNX
    Guest
    #2
    0
    22.05.2025 11:45:00
    О RTL8156 (и обо всех RTL851x, которые используют r8152.ko): Realtek предоставляет актуальный исходный код драйвера под GPL-2.0 для Linux, который даже можно собрать для ядра 2.6.x https://www.realtek.com/Download/List?cate_id=585 Думаю, MikroTik использует именно этот драйвер вместо того, чтобы делать обратное портирование из исходников более нового ядра.
     
     
     
    rel
    Guest
    #3
    0
    21.05.2025 13:28:00
    Ты устанавливаешь CHR на Raspberry Pi напрямую, без дополнительной системы? Я знаю, что можно запустить PVE или ESXi на Pi, а затем внутри них запускать CHR Arm64. Но мне больше нравится просто записать образ CHR на SD-карту и загрузить Pi напрямую с неё.
     
     
     
    sirbryan
    Guest
    #4
    0
    22.05.2025 02:59:00
    Я пока не понял, как это заставить работать. У меня это работает на процессоре Ampere, но CHR ARM64 требует загрузки через UEFI, а с UEFI на RPi5 сейчас ещё та задачка.
     
     
     
    tangent
    Guest
    #5
    0
    22.05.2025 03:24:00
    Я думал, что идея CHR заключается в том, чтобы хост-операционная система или гипервизор управляли железом и предоставляли гостевой системе (в данном случае — CHR) универсальные интерфейсы, например virtio.
     
     
     
    NathanA
    Guest
    #6
    0
    22.05.2025 11:19:00
    Это превращается в очень интересную дискуссию… Что касается изначального вопроса, то мне не известно, чтобы MT когда-либо выкладывал актуальный список поддерживаемого стороннего оборудования для конкретной версии. Но если вы вытащите squashfs-образы из NPK-файлов, можно заглянуть в содержимое /lib/modules/* и увидеть точный список модулей ядра, с которыми поставляется каждое обновление. Правда, сказать, поддерживает ли конкретная версия того или иного модуля ядра вашу сетевую карту — сложно. Например: у меня нет опыта с Realtek USB NIC, но по гуглу RTL8156 — это 2.5G USB-чипсет, и более новые версии драйвера/модуля r8152 поддерживают 8156. Судя по всему, поддержка появилась уже в нескольких мейнлайновых версиях ядра Linux после 5.6.x, которая используется в ROS7. Значит, если RTL8156 поддерживается в ROS7 на x86, то MT, видимо, портировали эту версию драйвера или поддержку нового чипсета в своё ядро. Могу подтвердить, что r8152.ko тоже есть в ARM64 версии ROS7 (в базовом пакете, не в extra-nics); однако, если USB-донгл не определяется, возможно, сборка r8152.ko для ARM64 сделана из других исходников, чем для x86? (Хотя это было бы странно, на мой взгляд.) Также могу подтвердить, что extra-nics не включает никаких дополнительных драйверов для USB NIC.

    Кстати, для справки: хотя в ROS6 «x86» и «CHR» релизы были немного более различимы, чем в ROS7, даже в ROS6 различиями было то, какое ядро используется, а не разные сборки «x86» и «CHR». В ROS6 x86 поставлялся с тремя ядрами (и тремя наборами модулей): 32-битный однопроцессорный, 32-битный SMP и 64-битный SMP. 64-битное SMP-ядро дебютировало с CHR (кстати, ROS6 CHR был только для x86_64), но при этом шло и во всех последующих «x86» сборках; просто обычно оно было скрыто, если не запускали релиз CHR. У 64-битного ядра было больше драйверов, чем у 32-битного (например, PV NIC драйверы для различных гипервизоров), и была возможность включить 64-битное ядро при установке на «голый» металл, чтобы использовать дополнительную поддержку драйверов x86_64 (то есть можно было, например, в виртуальной машине поставить обычный «x86», лицензировать его и переключиться на 64-битное ядро, получив все возможности CHR, включая работу PV NIC для любимых гипервизоров). В ROS7 же поддержка драйверов для «x86» и «CHR»统一, и, по моему мнению, «x86» теперь только 64-битный.

    Очень хотелось бы понять, что именно имел в виду автор того сообщения. Когда я читал, мне показалось, что он говорит, что действительно пишет чистый образ CHR на SD-карту и успешно загружает его на «голом» железе. Но, похоже, @sirbryan понял это иначе и ответил, будто это был вопрос о том, что возможно, а не утверждение, что это возможно.

    У меня нет доступа к стороннему ARM64 оборудованию, чтобы проверить лично. Но если есть не-Ampere ARMv8 платформы, на которых ARM64 версия ROS может загрузиться на «голом» железе, это меняет всю картину! Как подмечает sirbryan, даже если в ARM64 ROS нет зависимостей от Ampere-специфичных инструкций и нет runtime-проверок, подтверждающих запуск на Ampere или официальном устройстве RB/CCR, для работы на любом стороннем одноплатном компьютере понадобится поддержка UEFI на этом железе.

    Раньше на x86 я пытался запускать образ CHR на «голом» железе, и это не работало. Похоже, что MT добавили проверки, не является ли система гостем гипервизора, и если проверка не проходит, загрузка искусственно прерывается. У меня нет возможности проверить это для CHR-ARM64, но я не удивлюсь, если там ситуация такая же. Очень жаль, потому что разница между CHR и обычным режимом почти отсутствует — и там, и там используются одни и те же ядра, бинарники, squashfs-образы. Хотя я пока не нашёл местонахождение этого параметра, похоже, где-то на файловой системе установлен флаг, который говорит ROS, работает ли он в режиме «CHR» или «legacy». Единственное реальное отличие — лицензирование. Есть плюсы и минусы в обеих моделях, и было бы здорово дать возможность использовать лицензии CHR при установке на «голое» железо, потому что у CHR есть бонус — лицензии можно переносить. Честно говоря, не понимаю, чем могло бы рисковать MT, разрешая выбирать лицензирование CHR на bare-metal… Какая угроза их бизнес-модели?

    Конечно, у разных людей разные цели, когда они запускают виртуальный роутер — все они имеют право на своё мнение. Ваша цель — скрыть различия в аппаратуре — это вполне справедливо. Но virtio/PV интерфейсы и драйверы имеют свои недостатки, в частности, они обычно менее производительны, чем прямое взаимодействие с железом через нативные драйверы. Поэтому те, кто хочет использовать один хост для разных задач и запускать несколько гостевых систем с виртуализацией (один из которых — роутер), но при этом выжать максимум производительности, могут выделять сетевое оборудование гостю напрямую, передавая ему определённые интерфейсы. Есть ещё SR-IOV — своего рода «лучший из обоих миров» вариант, когда сетевой адаптер можно разделить между гостями без накладных расходов паравиртуализации, но это ограничено PCIe, и требует поддержки и со стороны самого PCIe-устройства, и со стороны драйвера гостя (каждый SR-IOV-совместимый сетевой интерфейс имеет свой драйвер на хосте и госте, специфичный для производителя).
     
     
     
    sirbryan
    Guest
    #7
    0
    22.05.2025 16:01:00
    Я отвечал на первый вопрос — запускаю ли я это на "голом железе" или нет. Судя по контексту, я предположил, что автор имел в виду: «Но я бы предпочёл установить образ CHR на SD-карту и загрузить систему на Pi». У меня есть HoneyComb LX2 с поддержкой UEFI-загрузки, и мне удалось без проблем запустить ARM64 RouterOS 7. К сожалению, он не видит SFP+ сетевые карты LX2160A (было бы здорово, если бы видел). Если хочешь, чтобы что-то вообще работало на этой платформе, приходится использовать слот PCIe или порты USB3. Для этой платы мне придётся запускать Proxmox/KVM, вручную инициализировать сетевые карты (у оборудования NXP там свои заморочки) и пробрасывать их в RouterOS через мост. Где-то есть пост, где @normis пишет, что проблем с нативным запуском CHR на x86 быть не должно, а ARM64 CHR ISO — это единственный способ установить RouterOS на Ampere и другие ARM64 системы с поддержкой UEFI.

    Точно не помню, как я это делал, но CHR у меня успешно запускался на x86 во время разных тестов. Если CHR не стартует нативно на железе (например, Raspberry Pi), я использую гипервизор как оболочку для запуска RouterOS. Но, по возможности, мне хотелось бы, чтобы RouterOS имел прямой доступ к сетевым картам — чтобы компенсировать потери производительности из-за гипервизора. В идеале я бы хотел, чтобы MikroTik сделали так, чтобы CHR загружался на Raspberry Pi 4 и 5. Не знаю, считают ли они это угрозой своим аппаратным продажам, но RPi 5 — мощный аппарат с 2+ ГГц четырёхъядерным процессором (сопоставимым с hAP AX3, RB4011/5009/CCR2004), и можно выбрать 2, 4, 8 или 16 ГБ оперативки, а также есть слот PCIe на 1x, идеально подходящий для маршрутизации со скоростью до 6 Гбит/с.

    С их низким энергопотреблением их можно запитывать по Ethernet от коммутатора уровня L3, например, NetPower16, и разгружать CPU, задачи вроде Wireguard, отдавать им. И на базе некоторых высокоплотных вычислительных модулей можно собрать множество таких роутеров на небольшой площади, чтобы выполнять задачи BGP-маршрутизаторов, VPN-концентраторов, фаерволов и прочее.

    Если бы RouterOS научился предоставлять доступ к GPIO-портам для работы со скриптами, из них получились бы отличные компактные телеметрические устройства, которыми можно управлять через The Dude (или что-то подобное).
     
     
     
    tangent
    Guest
    #8
    0
    22.05.2025 19:25:00
    Общие потери должны быть меньше 10%, если гипервизор получает всю необходимую поддержку аппаратной виртуализации. Что касается вашего проекта, это не значит, что из 2.5G вычитаем 10% и получается 2.25G, а значит, что для того, чтобы карта показала максимум, потребуется на 10% больше ресурсов CPU. Поэтому единственный случай, когда это не сработает — если процессор работает на пределе, и вам нужно выжать последние доли гигабит другим способом. Моя оценка в 10% основана как на тестах с гипервизорами вне CHR, так и на отчетах по CHR, встреченных на форуме. Современная аппаратная виртуализация стала чертовски хороша. Если быть точным, значительная часть тестов проводилась на x86_64. Мой более узкий опыт с виртуализацией ARM64 связан с Apple Silicon — платформой, очень отличающейся от Pi5 в плане гипервизоров.
     
     
     
    sirbryan
    Guest
    #9
    0
    22.05.2025 23:15:00
    С CHR на Proxmox (KVM/Qemu) на RPi 5 я могу получить скорость до 3-4 Гбит/с в тестах, как при генерации трафика роутером, так и при его прохождении (router-on-a-stick) на PCIe картах 5 Гбит/с и 10 Гбит/с. Он без проблем полностью загружает карту 2,5 Гбит/с. (USB 2,5 Гбит/с — это отдельная тема, как я уже упоминал.) Виртуализация, кажется, добавляет нагрузку больше 10%. С Linux напрямую я могу “выжать” из шины PCIe 6 Гбит/с с помощью iperf3 в одном направлении к/от моего Mac с 10-гигабитным адаптером. Я не пробовал OpenWRT или ставить FRR/Quagga с маршрутингом через них, но легко представить, что производительность была бы значительно лучше. Конечно, следующий шаг — проверка PPS (пакетов в секунду) во всех сценариях, чтобы понять ограничения карты и процессора. Но для моей изначальной задачи — роутера для небольшой ретрансляционной точки с 10-30 абонентами — 2,5-5 Гбит/с вполне достаточно.
     
     
     
    NathanA
    Guest
    #10
    0
    23.05.2025 01:58:00
    Моя организация ещё до выхода ROS7 поигралась с CHR, но на основе нашего опыта запуска его на HyperV (с использованием паравиртуализированных сетевых интерфейсов) мы столкнулись с очень странными и спорадическими потерями пакетов, которые казались связанными с «микровсплесками» — такого вообще не наблюдалось на «железе», даже когда хост был почти свободен, а CPU и пропускная способность были в избытке. Когда мы попытались загрузить на него боевой трафик после успешных лабораторных тестов, сразу же посыпались жалобы от пользователей, которые начали замечать проблемы. Хотя мы по-прежнему используем виртуальные инстансы ROS для задач, не требующих большого трафика, весь этот опыт реально отбил у нас желание использовать виртуализацию для чего-либо, где нужна хорошая, без компромиссов производительность маршрутизации… ну, собственно, для чего и нужен роутер, ага.

    Для теста мы выбрали HyperV, исходя из выступления IP Architechs о производительности CHR при обработке маршрутных таблиц, где HV явно выигрывал. Возможно, мы ошиблись, поскольку хотя HV по скорости обработки таблиц однозначно опережал другие гипервизоры, он показал худшую производительность при реальной маршрутизации пакетов (хотя их тесты показывали, что это как минимум «достаточно хорошо»).

    Что особенно убивает в их опыте, так это то, насколько запуск ROS под большинством гипервизоров РАДИКАЛЬНО замедлял время сходимости BGP по сравнению и с HyperV, и с «железом». Это серьёзный тревожный сигнал. И да, нельзя не обратить внимания и на сравнительную производительность ROS под HyperV и другими гипервизорами.

    Конечно, мы давно не тестировали, может, что-то улучшилось, и разные проблемы были решены либо на стороне ROS, либо в гипервизорах, но на тот момент было очевидно, что виртуализация ROS таит много скрытых и плохо понятых издержек… и до сих пор никто не смог удовлетворительно объяснить, почему так происходит.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры