Тюнінг роутера 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.

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

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