Keresés

Új hozzászólás Aktív témák

  • fpeter84

    senior tag

    tetszik az írás, csak azt nem értem hogy kezdőknek miért az önszivatós parancssoros paraméterezősdit ajánlgatod, ahelyett hogy make menuconfig majd make... :F

  • fpeter84

    senior tag

    válasz dchard #40 üzenetére

    Ha a bootloader-t túrod el, azon még a soros kábel se segit csak a hardveres flash programozó / JTAG kábel!

    Én már számtalan vason cseréltem le a 4-8MB-os flash-t 16 megásra, illetve 1-2 alaplapot is állitottam már helyre. Amig üres/sérült a bootloader szekció, addig se kép se hang - külső eszközzel bele kell irni a minimumot a flash-be (bootloader+plussz ART partició atheros esetén) és utána már jöhet a soros kábel...

    Illetve ha már bootloader irás, akkor érdemes a pepe2k félét rakni az atheros eszközökre, mert onnantól sokkal kényelmesebb lesz a firmware/bootloader csere: UDP-n illetve webfelületen is elérhető lesz a bootloader...

  • fpeter84

    senior tag

    válasz vargalex #42 üzenetére

    Nyilván vissza lehet erőszakolni utólag is, de ha egyszer ott van a programozóban a csipp akkor egyszerűbb akkor belerakni a bootloader-el együtt... Kiszedni meg egyszerű a még futó rendszerből - valamelyik mtd particiót kell dump-olni fájlba és annyi - gugli megmondja hogy melyiket ha valaki ilyen mutatványra készül :)

  • fpeter84

    senior tag

    válasz (jan) #47 üzenetére

    Természetesen nem titkos, szivesen megosztom. Felelősséget nem vállalnék érte, illetve lehet másképp/egyszerűbben is meg lehet oldani ezt-azt, de nálam ez működött többféle eszközön. Első körben lehet picit kusza lesz, de valójában nem egy agysebészet csak matekozni kell kicsit :)

    Amire szükség van:
    -flash csipp
    nézd meg hogy az eredeti és a cseredarab is azonos feszültségű legyen! (többnyire 3.3V, de előfordul 1.8V-os is!)

    -flash iró eszköz
    Lehet az ebay-en venni pár $-ért
    http://www.ebay.com/itm/1Pcs-CH341A-Series-24-EEPROM-BIOS-Writer-25-SPI-Routing-LCD-Flash-USB-Programmer-/321941984473?hash=item4af53cd4d9:g:ycgAAOSw8-tWZOej
    továbbá ajánlott a forrasztásmentes programozáshoz:
    http://www.ebay.com/itm/SO8-SOP8-To-DIP8-EZ-Programmer-Adapter-Socket-Converter-Module-Wide-150-Mile-/331577246751?hash=item4d338b441f:g:~EoAAOSwpdpVdWhc
    vagy
    http://www.ebay.com/itm/SOIC-SOP8-to-DIP8-EZ-Programmer-Adapter-Socket-Wide-200mil-208mil-Arduino-Module-/151864393491?hash=item235bd2bf13:g:mEkAAOSw~bFWL4ng
    attól függően hogy 150 vagy 208mil széles e az IC (ez kiderül az adatlapjáról, az utolsó pár betű/szám mondja meg, pontosan azt keresd)

    vagy ha nem akarod megvárni amig ideér és van egy régi géped párhuzamos porttal, akkor SPIPGM
    http://rayer.g6.cz/programm/programe.htm

    -kell a u-boot
    Bár elméletben lehetne dump-olni az eddigi rendszerről is, de egyrészt az butuska, másrészt esélyes hogy nem támogatja a nagyobb flash-t, igy érdemes egyből a már emlitett pepe2k-félét használni, ha támogatott az eszközöd
    https://github.com/pepe2k/u-boot_mod
    Most sehol nem látom a készre forditottakat, lehet mostmár nem lehet megúszni a saját forditást:
    https://dev.wlan-si.net/ticket/1191
    (linux környezet kell hozzá, jó pl vmware-ben egy ubuntu)

    -kell az ART partició tartalma
    ami a wifi egyedi konfigurációs térképét tartalmazza. Ha ez elveszik akkor nem fog menni a wifi, ha egy idegennel pótlod akkor éled de nem lesz optimális a működése. Bár magából a leforrasztott flash-ből is vissza lehetne nyerni, de egyszerűbb a még futó rendszerből kinyerni: beazonositás, dump, majd letöltés böngészővel

    root@OpenWrt-MR3220:~# cat /proc/mtd
    dev: size erasesize name
    mtd0: 00020000 00010000 "u-boot"
    mtd1: 0010e400 00010000 "kernel"
    mtd2: 002c1c00 00010000 "rootfs"
    mtd3: 000f0000 00010000 "rootfs_data"
    mtd4: 00010000 00010000 "art"
    mtd5: 003d0000 00010000 "firmware"

    dd if=/dev/mtd4 of=/tmp/art.backup
    ln -s /tmp/art.backup /www/art.backup
    http://router-ip/art.backup

    Ha ez megvan, akkor össze kell ollózni az új firmware-t. Ehhez egy hexa editorra lesz szükség, mint pl a Free Hex Editor Neo
    http://www.hhdsoftware.com/free-hex-editor

    A pontos partició méreteket igy lehet megtalálni: (fontos ellenőrizni, mert ha nálad más a kiosztás az gondot fog okozni!)

    root@OpenWrt-MR3220:~# dmesg | grep 0x0000
    ...
    [ 0.770000] 0x000000000000-0x000000020000 : "u-boot"
    [ 0.770000] 0x000000020000-0x00000012e400 : "kernel"
    [ 0.790000] 0x00000012e400-0x0000003f0000 : "rootfs"
    [ 0.830000] 0x000000300000-0x0000003f0000 : "rootfs_data"
    [ 0.830000] 0x0000003f0000-0x000000400000 : "art"
    [ 0.840000] 0x000000020000-0x0000003f0000 : "firmware"

    Ha átváltod a hexa értéket decimálisra és osztod 1024-el, akkor kijönnek a poziciók KB-ban. Ha a nagyobból kivonod a kisebbet, akkor kijön a méretük.

    Nyisd meg a u-boot image-et, nézd meg hogy a végén miből van sok és azzal folytasd (FF vagy 00, most nincsen előttem) egészen 0x20000-ig ha kisebb. Utána kell ollózni a letöltött openwrt image-et ami tartalmazza a kernel-t és rootfs-t. Ezt is tovább kell tölteni üressel (szintén FF vagy 00, nézd meg mire végződött az openwrt image) egészen a <flash mérete>-64KB-ig, vagyis 8MB-os esetén 0x7EFFFF-ig, 16MB-nál 0xFEFFFF-ig, majd 0x7F0000/0xFF000-től jöhet az ART partició dump-ja. Igy végül kapsz egy pontosan 8388608/16777216 byte hosszú image-et amit lehet belesütni a flash-be, és mennie kell. Egy szépséghiba lehet, ha az adott OpenWrt firmware nem illeszkedik automatikusan a megnövekedett flash mérethez (továbbra is csak 4MB-nak hiszi) - ekkor lehet magát az OpenWrt-t is újra kell forditani egy apró módositás után, de ha eddig eljutottál, ez se fog gondot okozni, azt is leirom ha szükség lesz rá...

    Esetleg láttam egy kissé kőbunkó, de működőképes megoldást a hardveres flash iró helyett: le kell forrasztani a gyári flash-t és minden lábát párhuzamosan bedrótozni a 2 flash-nek, kivéve a CS-t. Az aktiv csipp CS-jét csatlakoztatni kell, a másikat tápra húzni, akkor nem reagál a buszon érkező parancsokra. Először a gyári flash-el el kell inditani a vasat a u-boot konzolig, majd a gyári CS-jét tápra, az új flash-ét pedig a CS vonalra kell kötni és kezdődhet az erase/load/write művelet. Ezt is össze lehet guglizni hogy hogyan működik pontosan - főleg a u-boot restore debrick kifejezésekre keresve. Igy is a helyére lehet rakni az új flash-be a u-boot, kernel+rootfs és ART particiókat...

Új hozzászólás Aktív témák