üzenetek

hozzászólások


fpeter84
(senior tag)

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...


vargalex
(félisten)
Blog

Szia!

Az ART partíciót nem muszáj visszaírni, az csak a wifihez kell. Az már más kérdés, hogy egyedi OpenWrt build kell, hogy később írni tudd.
Illetve ez ugye minden példány esetén egyedi, de azért elmegy másik azonos típuséval is, csak legfeljebb nem lesz optimális.


fpeter84
(senior tag)

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 :)


vargalex
(félisten)
Blog

Szia!

Persze, csak azért írtam, mert nem feltétlenül szükséges.

Az mtd partíció megállapításához nem kell gugli, megmondja neked a rendszer:

root@OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00010000 "u-boot"
mtd1: 000e5a00 00010000 "kernel"
mtd2: 006ea600 00010000 "rootfs"
mtd3: 00090000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware"


domjant
(csendes tag)

Sziasztok,
A kérdésem kicsit off lesz, mert bár OpenWRT-vel kapcsolatos nem kötődik szorosan a cikkben leírt "csináld magad" firmware témához. Új vagyok OpenWRT területen eddig csak a Linksys és TP-Link gyári firmwarejeivel és a Tomato-val van tapasztalatom.
A problémám a WiFi-s MAC szűréssel kapcsolatos, bár ad rá lehetőséget az OpenWRT, hogy beállítsam csak bizonyos MAC címmel rendelkező gépek léphessenek fel a WiFire, de a MAC címek mellé nem adhatok meg semmilyen leírás/becenevet, mint pl. az előbb említett gyári vagy Tomato firmwarekek esetén. Ez persze nem gond ha az embernek csak egy-két eszköze van, de mikor egy kb 20-as listát kell karban tartani akkor nagyon nehézkes csak a MAC címek alapján dolgozni.
A kérdésem az lenne, hogy van-e mód a MAC címenkénti leírások megadásának a Webes felületen (pl. valamilyen modul telepítésével vagy az alap GUI/téma lecserélésével)?
Válaszotokat előre is köszönöm!


suste
(veterán)
Blog

ha felveszed az eszközöket a DHCP listára (luci/hálózat/dhcp és dnds/statikus bérletek), akkor onnantól már a mac szűrő listában is ezzel a névvel jelennek meg....


(jan)
(őstag)
Blog

Flash cseréről tundál kicsit mesélni ?


fpeter84
(senior tag)

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...


(jan)
(őstag)
Blog

Szép kis leírás :) köszi! :R


vargalex
(félisten)
Blog

Szia!

Csak egy észrevétel: lemaradt, hogy az u-boot image-ba a megfelelő helyre bele kell írni a MAC címet, illetve (ha valamikor is kellhet gyári firmware) a WPS PIN-t.

Egyébként ha van kéznél valami kártyaPC (Raspberry PI / PI2, Odroid, Banana PI, stb.), akkor azok GPIO vonalain keresztül is írható/olvasható kényelmesen flashrom-al (már írtam így néhányat).

Elsőre az általad utolsó bekezdésben említetthez hasonló megoldással írtam.

[ Szerkesztve ]


(jan)
(őstag)
Blog

Jó látni, hogy vannak hasonló elborult elméjű emberek mint én :)

Most egy 740nd usb moddingon dolgozok amiből majd ha nem baszom el hőfok logger lesz :)


PistiSan
(addikt)

Köszi szépen, ez hihetetlenül hasznos volt.


btz
(addikt)
Blog

Remek írás! Köszi!


scansat
(tag)

Sziasztok.
Egy Ubiquiti EdgeRouterX v2-re szeretnék openWRT-t. Van erről magyar nyelvű leírás valahol?
Angol nem megy ilyen szinten, illetve félek nekiállni mert most van net...de ha nem sikerül..hát nincs helyette.

üzenetek