Всем привет.
В поисках идеального роутера домой купил комплект «сделай сам» — Banana Pi BPI‑R3. На маркетплейсах часто он идет без:
блока питания
корпуса
антенн WiFi
Мне достался комплект с корпусом, без бп и антенн, по цене около 8.5 тр (к сожалению сейчас цена подросла уже), по соотношению цена/фичи он выглядит посимпатичнее готовых роутеров, как уже писал это конструктор, поэтому нужно быть готовым инвестировать свое время в него.
ТТХ выглядят вот так:

С полной спецификацией можно ознакомится на официальном сайте.
Когда одноплатник приехал, я понял что что-то пропустил. Это были 2.5 вещи - антенны и блок питания, про кусочек 0.5 чуть позже. БП подойдет от любого другого роутера на самом деле, стандартный 12V 3A. Заведется и на 1А, если его не греть задачами.
Ладно, БП был выковырян из старого на антресолях роутера, а вот антенны пришлось заказывать, без них WiFi работает примерно так (десктоп и одноплатник при этом на расстоянии 1м):

Из коробки прибор идет с оочень старым openwrt 21, собранным причем не из стабильной ветки, а из снапшота, видимо когда впервые была добавлена поддержка. С кучей непонятного китайского софта. И да, sysupgrade 21->24 у вас даже прошьется, но грузится не будет. Далее у нас начинается то самое инвестирование, о котором писал выше.
Ищем MicroSD. Желательно не самую новомодную на 128 Гб, а попроще, 32 или 64, онбордный чип может не понимать большие объемы.
Ищем USB кард-ридер, да, к своему стыду обнаружил что все +- современные ноуты, компы у меня без него. Тот который был несвоевременно сдох. Да, это тоже неочевидная затрата.
БП - 341р, не оставлять же 1А
И теперь мы приходим к половинке, о которой писали выше. Это USB-Serial кабель. Да, у железки нет никаких видеовыходов и посмотреть что пошло не так или выбрать как сетапить ОС можно с помощью него. Спойлер - это опциональная часть, но очень много где вам будут писать что прямо обязательно нужен-нужен. 680р.
Заказываем антенны, к сожалению они тоже идут долго, поэтому продолжаем пока эксперименты без них. 1165р
Качаем с оф сайта openwrt последний стабильный на момент релиз, это 24.10.5, записываем его на карту:
dd if=/home/123/Downloads/openwrt...img of=/dev/sda bs=4M && syncНе забываем правильные пути и не вайпаем ваш системный диск, смотрим как определился кардридер преварительно, dd спрашивать и предупреждать не будет, как это делают гуевые утилиты. Копировать эту команду без понимания что происходит не надо!
Как видно из описания одноплатника он может работать аж с 5.5ю разными типами памяти, это:
- SD card
- SPI-NAND
- SPI-NOR
- EMMC
- M2
- USB зачитан как за половинку, потому что современные owrt в голом образе идет без поддержки стораджей оных, нуждо доставлять пакеты
Нам предстоит квест по чейн-инсталляции SD->NAND->EMMC. Почему именно так? SD карта у вас быстро спилится, по опыту примерно за полгода, EMMC гораздо более усточивы к таким типам нагрузок. Почему сразу не поставить на EMMC? Потому что SD и EMMC шарят один и тот же SOC интерфейс и такая инсталляция просто невозможна.
1) Выставляем свитчи на загрузку с SD следующим образом:

Все 4 вверх. Настоятельно рекомендую пользоватся именно официальным сайтом где описаны эти положения в картинках, это более наглядно и не надо думать откуда идет отсчет переключателей.
Вставляем SD и наблюдаем как начнется загрузка, второй светодиод слева от светодиода питания начнет мигать и через секунд 10-15 загорится зеленым, значит загрузка прошла успешна и устройство стабильно
2) Тут я понял, что попал в тупик. Внешний интерфейс у owrt зафайволен из коробки, железка по нему прекрасно получит dhcp адрес, но достучатся по ссш не вариант и люся тоже вам откажет. Внутреняя сетка конфликтует с такой же адресацией уже установленного роутера (192.168.1.0/24), какие прелести открываются когда 2 dhcp сервера и 1 одинаковых адреса в одной сети думаю расписывать не надо. Да-да, я балбес, который не поменял дефолтную сеть в уже работающем дома роутере. Пришлось опять лезть на антресоль и доставать шнурок обычного езернета и ноутбук, чтобы их воткнуть автономно от основной сети.
Заходим в веб, убеждаемся что все работает (кроме WiFi, которые по-умолчанию отключены в owrt), ставим пароль рутовый, закидываем ssh ключ и наконец заходим по ssh. Здесь так же рекомендую сменить hostname, на любой удобный вам вида ХХХ-SD, так вам будет гораздо удобнее в дальнейшем понимать кто же и с какого накопителя загрузился.
3) Далее, если вы так и не купили usb-serial вам понадобятся следующая команда:
fw_setenv bootcmd "env default bootcmd ; saveenv ; run ubi_init ; bootmenu 0"Оная выставляет инсталляцию на SPI-NAND память при следующей загрузке. Синенький свитч на плате мы при этом не трогаем! Ну а если купили кабель, то просто укажите в boot menu установку. Кабель приехал сильно позже, поэтому красивых картинок не осталось.
Важный момент, на оф сайте много непонятных инструкций, вида "возьмите mtk-bpi-r3-NAND-WAN1-SFP1-20220619-single-image.bin и залейте его куда-нибудть". Не надо этого делать. все прошивается одним единстве��ным образом owrt без смс и левых бинарников, да возможно вы их найдете даже на 4pda и прочих помойках, но молю не надо так делать.
4) Дальше мы идем в ребут, все также не трогая свитчи на плате, opwenwrt сама загрузится и сама поставится на SPI-NAND, это можно мониторить по тому же светодиоду на плате. Но проще пойти покурить для верности, тк прогресс бара у нас нигде нет.
Выставляем свитчи на плате вот таким образом:

Вытаскиваем SD карту и опять уходим в ребут, система должна загрузится с NAND памяти.
5) После загрузки повторяем манипуляции из п2, не забывая менять хостнейм на XXX-NAND. Так же вводим команду на исталляцию owrt NAND->EMMC:
fw_setenv bootcmd "env default bootcmd ; saveenv ; saveenv ; run emmc_init ; bootmenu 0"Переключатели опять не трогаем и идем в ребут.
6) Ожидаем инсталляции, выставляем переключатели таким образом:

Ребутаем.
7) Наконец добираемся до загруженной ОС в EMMC, размер которой, напомню, должен быть 8Гб, но здесь традиционно owrt зарезал все разделы до минималок:

Помучавшись полдня с разделами понял, что пока не готов нырять в глубины и фиг с ним, пусть будет этот гигабайт несчастный, тк эксперименты с ресайзом файловых систем, описанных в оф доке мне не помогли. В новых owrt изменилось партиционирование, больше нет структуры вида
131072 | 104.0 MiB | ├mmcblk0p5 | production | |
141856 | 6.1 MiB | squashfs | ├mmcblk0p65 | /rom |
154296 | 92.7 MiB | f2fs | └mmcblk0p66 | /overlay |
Почитав еще понял что любой sysupgrade вернет все разделы назад решил отложить на потом все это.
8) Попробовав sysupgrade на 25.12 из мастера, все завелось как положено. Да, и тут подложили тоже свинью, заменив пакетный менеджер, теперь у нас модный молодежный apk, не совместимый командами со старым opkg.
С разделами решил вернутся на следующий день, тк кабель USB-serial наконец доехал, думаю там еще много прекрасных ОС, которые можно воткнуть и не маятся с рокет-сайнсом owrt партиционирования. Но увы, ни armbian ни бананоОС не завелись показывая красивое в загрузчике:

В планах осталось:
Дождаться приезда вентилятора с радиатором на чипы, в покое они на глаз где-то 40 градусов, пишут что без радиатора в эксплуатацию пускать нельзя
Дождаться приезда SFP кабеля и свитча, тк 4 порта дома маловато, если не заведется придется делать port bonding с обычными 1Gb X 2 портами
Дождаться таки антенн и завести WiFi
Использованная литература:
1) https://docs.banana-pi.org/en/BPI-R3/GettingStarted_BPI-R3
2) https://openwrt.org/toh/sinovoip/bananapi_bpi-r3
