Тюнінг роутера TP-Link TL-MR3020

Сучасні роутери на даний час повноцінні комп’ютери із певними обмеженнями архітектури. Збільшимо оперативку в 2 рази, флешку у 4 рази?

Розглянемо роутер TP-Link TL-MR3020 v1:

  • 1 100 мб порт мережі LAN
  • WiFi
  • 1 USB 2.0 порт
  • процесор Atheros AR9331 400 мгц
  • 32 мб оперативки RAM – 64 мб після апгрейту
  • 4 мб FLASH -> 16 мб після апгрейту.

Заводську прошивку зразу оновлюємо на OpenWRT: остання збірка LEDE Reboot 17.01.7, версія ядра 4.4.182.

Для чого мучати 10 річний роутер: на роутері спокійно запускаєтья OpenVPN клієнт, Asterisk 13, rtl-sdr, купа софту.

Заміна флеш пам’яті

Стандарного накопичувача у 4 мб не вистарчає на жоден пакет, тому варто збільшити. Ставимо зразу 16 мб. Купуємо SPI flash Winbond W25Q128FVSIG (~2$).

Першим чином робимо бекап ART розділу у якому розміщені калібровки WiFi і зберігаємо у надійному місці:

cat /dev/mtd4 >> /tmp/backup_mtd4.bin

Також можемо зробити бекап усього накопичувача (в ньому збережений mac):

cat /dev/mtd0 > /tmp/backup_fullflash.bin
cat /dev/mtd5 >> /tmp/backup_fullflash.bin
cat /dev/mtd4 >> /tmp/backup_fullflash.bin

Вантажимо U-Boot. Тепер можемо підготувати 16 мб образ для запису на нову флешку:

dd if=/dev/zero bs=16646144 count=1 | tr "\000" "\377" > pad.bin
cat uboot.bin > 16mb.bin
cat pad.bin >> 16mb.bin
cat backup_art.bin >> 16mb.bin

У файлі 16mb.bin тепер у нас майже готовий образ розміром 16 777 216 байт, тепер правимо mac адресу за адресою 0x1FC00. Записуємо з допомогою CH341 програматора і програми CH341A Programmer (версія 1.18, 1.34 – невірно вичитувала дані з чіпа).

Викорситав панельку для надійного контакту.

А потім згадав що у мене є прищепка )

Тепер здуваємо феном стару флешку, очищаємо посадочні місця від тугоплавкого безсвинцевого припою і монтуємо нову.

Після увімкнення U-boot автоматично запускає recovery web сервер на 192.168.1.1 оскільки немає прошивки. Вантажемо останню прошивку lede-17.01.7-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin і завантажуємо.

Після успішних дій маємо наступне привітання:

*****************************************
*      U-Boot 1.1.4  (Aug 19 2013)      *
*****************************************
AP121 (AR9331) U-Boot for TL-MR3020
DRAM:  64 MB
FLASH: Winbond W25Q128 (16 MB)

Заміна оперативної пам’яті

В базі у нас 32 мб оперативної пам’яті, шукаємо комп’ютерну планку, де чіпи по 64 мб. Планка на 256 мб із 4 чіпами NCP NC7631 DDR256MB PC3200.

Здуваємо чіпи NCP DDR NP25D3216512K-5 із планки.

На платі MR3020 стоїть оперативка на 32 мб Winbond W9425G6JH-5.

Монтуємо нову оперативку на плату. Миємо ізопропиловим спиртом. Якщо заблимали діоди, значить все пройшло успішно.

Використання I2C

До роутера можна підключити датчики, екрани по інтерфейсу I2C.

Вичитування температури, вологості, тиску описано у описі метеостанції:

Метеостанція

Підключення до портів процесора GPIO 7 і 29 мініатурне, використовуємо дріт із наушників. Інсталюємо драйвери:

opkg install kmod-i2c-core
opkg install i2c-tools
opkg install kmod-i2c-gpio-custom
insmod i2c-gpio-custom bus0=0,29,7
i2cdetect 0

І фіксуємо термоклеєм. Додав 10 кОм резистори підтяжки лінії.

На корпус виведений 9 контактний роз’єм DB9.

Чи вартує витрачений час і ресурси на апдейт: вирішувати вам. Як хобі чи для навчання варто, для комерційної розробки ні.

Коментарі