Давненько я не делал чего-то… ну очень эпичного . Не порядок. Потому, я решил себе сменить роутер и немного его доработать.
В этот раз я взял Mercury MW4530R, который поддерживается транком OpenWRT (Никакого кровавого патчинга OpenWRT и ребазирования патчиков каждый апдейт) а за 60 баксов это вполне себе вкусно. Так что как только наша СлоуПочта России ™ разродилась и доставила мне железяку, я взялся за работу. И даже, по просьбе кое-кого записал видео всего процесса.
Итак, стоковые спецификации шелезяки:
- 128MiB DDR2 SDRAM (BGA. Можно и проапгрейдить, но надо глянуть сырцы убута, так как даташита нет)
- 8 MiB SPI Flash (Есть фубпринт под 16-ти метровую! Ура!)
- 1xUSB2.0
- 4PIN 2.54 посадочное место для штырей под уарт.
- Гигабитные порты LAN/WAN
- 2.4Ghz & 5.0Ghz WiFi
- 12V 1500mA блок питания
Итак, хитрый апргрейд план:
- Стоковое китайское УГ -> OpenWRT
- 8MiB SPI Flash -> 16MiB SPI flash
- USB Hub
- USB WiFi для cjdns.
- 750GiB USB HDD
- Блок питание пожирнее и понадежнее
- LTE модем для фейловера
- Отдельный 3А импульсник для USB устройств
- SMA антенка для nrf24l01 (планируется, печатные платы где-то везет наша СлоуПочта ™
- Акриловая крышка!
Первое, что меня беспокоило — питание усб. Жесткий диск может жрать под 500мА при раскрутке или даже больше. Внутри на USB стоял испульсник 12в -> 5в на 2А, на практике — 1.2A (По ходу катушка от такого тока уходит в насыщение и скатывается в УГ). К тому же из-за падения напруги на проводах веник не раскручивается, если подключен через хаб.
Проблему я решил тем, что воткнул отдельный импульсник на 3А с 5.3V на выходе и запрятал его в роутер. 0.3 лишних вольта как раз для компенсации падения на проводах. Хаб я выпотрошил, проскреб в одном месте дорогу, и разделил питание. Один порт и сама мсх хаба питаются теперь от родного испульсника на 2А, а три других — от моего дополнительно установленного.
Дальше флешка. Так как софта там будет стоять много, то нужна жирная флешка. Внешний оверлей я использовать не хочу, так как это проблемы при обновлении ядра. 16MiB SPI Flash’а хватит на все, потому пакеты в оверлей ставить не придется.
Спасибо добрым людям в лаборатории робототехники, помогли резануть на лазере крышку из акрилла, ибо лазером своим я (пока 😉 ) не обзавелся. Именно под ней и на ней я закрепил все необходимое, включая жесткий диск, усб-wifi свисток для CJDNS, LTE модем.
У последнего я ампутировал куда подальше корпус, и наклеил радиатор. На этой штуке при просмотре видео с тытруба можно яишницу жарить!
Так же планируется модуль с nrf24l01 для работы с моей самопальной умнодомной автоматикой, но так как наша СлоуПочта ™ где-то там еще везет платы, это уже я воткну потом. Пока добавил только SMA антеннку с косичкой. При таком количестве антенн да с синей подсветкой от LTE модема девайс вообще выглядит адово и инопланетно. (Интересно, кросстолк будет?)
Софт
В плане софта все штатно и понятно. OpenWRT с nginx, OpenVPN client, cjdns, nfs server, моим допиленным форком jabber bot’а Melissa и прочим хламом, о котором и говорить не стоит.
Nginx занимается у меня роутингом http траффика. На жестком диске мои дебиан репозитории, с апдейтами самопального софта (В основном обновления ядра для разных одноплатников которые работают у меня в хозяйстве). Nginx делает vhost-based проксирование траффика. (Например, этот бложик работает на odroid-x2, который находится во внутренней сети)
Худшая часть всего этого, это прозрачный фейловер на йоту, ибо придется еще шаманить скриптами в веб-интерфейсе. Скорее всего заюзаю для этого PhantomJS.
Вот, собственно и все, осталось подрехтовать, кое где заменить витуху и можно deployить это адово решение.
Больше фотографий тут
Весьма заинтересовал модуль с nrf24l01
Удалось реализовать? Или от идеи пришлось отказаться?
Тоже подумываю об аналогичном решении
Да, см. посты про rf24boot. Там есть все.