1 (edytowany przez Wally 2017-04-24 13:08:19)

Temat: Netgear R7800 - wykorzystanie całego obszaru flash

Aktualizacja: aktualnie Cezary buduje tylko obrazy ze zmienioną mapą flash. Obrazy z oryginalnym rozkładem partycji (przydatne do zrobienia backupu lub powrotu do OFW) możesz pobrać z www.lede-project.org


Modyfikacja

Netgear R7800 ma 128MB kostkę flash ale oryginalne obrazy wykorzystują tylko 30MB partycję „ubi” (mtd6) do zapisu danych użytkownika. Pozostaje niewykorzystana 68MB partycja „netgear” (mtd7) położona tuż za „ubi” a więc umożliwiająca uzyskanie ciągłego obszaru o rozmiarze ok. 98MB.

root@LEDE:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00c80000 00020000 "qcadata"
mtd1: 00500000 00020000 "APPSBL"
mtd2: 00080000 00020000 "APPSBLENV"
mtd3: 00140000 00020000 "art"
mtd4: 00140000 00020000 "artbak"
mtd5: 00200000 00020000 "kernel"
mtd6: 01e00000 00020000 "ubi"
mtd7: 04480000 00020000 "netgear"
mtd8: 00700000 00020000 "reserve"
mtd9: 02000000 00020000 "firmware"

Można to osiągnąć modyfikując mapę flash w pliku definicji routera. Cezary zbudował zmodyfikowane obrazy dla R7800 uwzględniające te zmiany i możesz przystąpić do zmiany OFW na LEDE.

Pamiętaj! Przed modyfikacją routera, szczególnie zmieniającą rozkład i zawartość fabrycznych partycji zrób pełną kopię zawartości flash!!!

Możesz to zrobić wgrywając obraz factory ze standardowym podziałem flash bezpośrednio z interfejsu OFW (Advanced → Administration → Firmware Update) lub uruchamiając router w trybie awaryjnym bootloadera (trzymając wciśnięty reset włącz zasilanie i cały czas wciskając reset czekaj na migającą białą diodę zasilania). Po restarcie logujesz się po SSH i robisz kopię wszystkich partycji:

root@LEDE:~# dd if=/dev/mtd0 of=/mnt/sda1/mtd0.backup
...
root@LEDE:~# dd if=/dev/mtd9 of=/mnt/sda1/mtd9.backup

Więcej informacji i gotowe skrypty na stronie OpenWRT: http://wiki.openwrt.org/doc/howto/generic.backup

Drugi krok to wgranie zmodyfikowanego obrazu. Pobieramy plik factory z tego miejsca (sysupgrade nie zmieni mapy flash) i wgrywamy przez TFTP. Po restarcie router ma do dyspozycji całą dostępną przestrzeń flash:

root@LEDE:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00c80000 00020000 "qcadata"
mtd1: 00500000 00020000 "APPSBL"
mtd2: 00080000 00020000 "APPSBLENV"
mtd3: 00140000 00020000 "art"
mtd4: 00140000 00020000 "artbak"
mtd5: 00200000 00020000 "kernel"
mtd6: 06280000 00020000 "ubi"
mtd7: 00700000 00020000 "reserve"
mtd8: 06480000 00020000 "firmware"
Powrót do OFW

Powrót do stanu wyjściowego rozpoczynasz od uruchomienia routera w trybie awaryjnym bootloadera i wgrania przez TFTP standardowego obrazu LEDE-factory. Jeżeli aktualizacja oprogramowania zakończyła się pomyślnie, to po zalogowaniu się po SSH zobaczysz poniższe wartości:

root@LEDE:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00c80000 00020000 "qcadata"
mtd1: 00500000 00020000 "APPSBL"
mtd2: 00080000 00020000 "APPSBLENV"
mtd3: 00140000 00020000 "art"
mtd4: 00140000 00020000 "artbak"
mtd5: 00200000 00020000 "kernel"
mtd6: 01e00000 00020000 "ubi"
mtd7: 04480000 00020000 "netgear"
mtd8: 00700000 00020000 "reserve"
mtd9: 02000000 00020000 "firmware"

Następnie musisz zainstalować moduł umożliwiający zapis na wszystkich partycjach i przywrócić zawartość partycji „netgear” z kopii zapasowej:

root@LEDE:~# opkg update
root@LEDE:~# opkg install kmod-mtd-rw
root@LEDE:~# insmod mtd-rw.ko i_want_a_brick=1
root@LEDE:~# mtd write /mnt/sda1/mtd7.backup netgear
Unlocking netgear ...

Writing from /mnt/sda1/mtd7.backup to netgear …
root@LEDE:~#

Ostatni krok to ponowne uruchomienie routera w trybie awaryjnym bootloadera i wgranie przez TFTP oryginalnego oprogramowania Netgeara. Jeżeli router wystartował, możesz cieszyć się oryginalnym oprogramowaniem Netgera.

Wally