Тачка на прокачку: ASUS WL520-gU

Оный роутер у меня валялся уже давно. И он меня не устраивал по нескольким пунктам.
1. Баг с часами. Гении из асуса заандерклочили чип он пашет на 200Mhz, должен на 240 и думает что на 240. в итоге часы отстают и при общении с usb 1.1 ядро выдает панику после 10-15 секунд работы. Первое лечится патчем на ядро, второе втыканием 2.0 хаба который делает TT на 2.0 host, который работает нормально.
2. Мозги. 16 метров мало! Особенно из-за того, что проприетарный wl течет, да и b43 прожорлив. В транке при попытки включить вайфай приходил злобный Out-Of-Memory killer и убивал все живое в юзерспейсе вешая железяку.
Итак, решил я исправить недостатки за пунктом 2.
Мозги инициализирует бутлоадырь (CFE) который живет в самом начале флеша, для инициализации оной он юзает параметры из nvram, секции флеша, которая в самом конце флеша. У CFE свой собственный набор значений для настроек, на случай есть nvram покорябается. В общем, я запарол nvram. Прописал не те настройки, sdram не завелась, система не грузится. JTAG’а нет, но есть другой вариант. Кроме как перепаивать в другой девайс где жтаг есть и прошивать там.
Отгуглился способ коротнуть ногу номер 9 флеша на землю во время старта. Это обломает CFE, не дав получить значения с конца флешины потому тот заюзает умолчания, которые и сработают. Вуоля. Далее мы можем зашить какой-нибудь образ dd-wrt, который в отличие от OpenWRT переписывает nvram нормальными значениями. Вот и весь процесс раскирпичивания девайса. для этих случаев я напаял большую кнопку, которую приятно нажимать.


Итак, процесс раскирпички выглядит так:
Вытаскиваем питание, нажимаем волшебную ‘раскирпичивающую’ кнопку, подаем питание, отпускаем кнопку (Не давите ее больше 3-4 секунд, ладно?)

Дальше собственно апгрейд памяти. Я впаял туда чип MT48LC32M16A2 на 512Mbit. Это 8*16*4 конфиг. В теории сработает что угодно такого же объема в таком же корпусе. Только не надо втыкать DDR, ладно? Насколько знаю, контроллер DDR умеет, но разводка может быть другой, параметры тоже. В общем, я не пробовал, оставил sdram.
Дальше немножко темной консольной магии, которая позволит врубить полный объем памяти. Выполняем в консоли на роутере

nvram set sdram_init=0x0012
nvram set sdram_ncdl=0x0000
nvram commit

Теперь можно выдернуть питание, помолиться кому-нибудь (опционально), врубить питание. Железо найдет 32 метра мозгов. Куда делись еще 32? Надо напаять один резистор рядом с чипом памяти, на адресную линию. Номинал — 22 Ома. Можно и коротнуть, работать будет, но лучше напаять резистор таки. Фото ниже.

Результат — работающий на 200Mhz роутер с 64 метрами ОЗУ. Ура!
Вот собственно и все, осталось только спиртиком флюс отмыть.

Тачка на прокачку: ASUS WL520-gU: 4 комментария

  1. Не знаю, что у тебя за гемор, вот проц моего WL-520GU:
    system type : Broadcom BCM5354 chip rev 3 pkg 0
    processor : 0
    cpu model : BCM3302 V2.9
    BogoMIPS : 238.38
    wait instruction : no
    microsecond timers : yes
    tlb_entries : 32
    extra interrupt vector : no
    hardware watchpoint : no
    ASEs implemented : mips16
    VCED exceptions : not available
    VCEI exceptions : not available
    unaligned_instructions : 1
    dcache hits : 0
    dcache misses : 0
    icache hits : 0
    icache misses : 0
    instructions : 0

    Прошивка «Олеговская от энтазуистов» 1.9.2.7-d-r2624
    Все шуршит нормально.

  2. @Rostislav: Олеговская прошивка меня совершенно не устраивает — мне нужен от роутера полноценный бокс с линухом, где без геморроя ставится git, rsync, hiawatha, rtorrent а так же кэширующая прокся, чтобы было удобно тянуть апдейты, и где есть нормальная пакетная система. Народ на нем gentoo запускает, но я предпочитаю OpenWRT. А cpuinfo твой скорее всего врет. Wl-520gU работает на 200Mhz, а не на 240 => часы скорее всего отстают.

  3. У меня есть wl500gp v1, который я в свое время разогнал до 300 мгц и впаял ему 128 мегов рамы. Так вот, торренты на нем — довольно тоскливое занятие при нынешних скоростях интернета… Эти ARMы рождены ползать, никак не летать.

Добавить комментарий