1 (edytowany przez jacekalex 2019-03-21 01:28:27)

Temat: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Cześć

Wg instrukcji i wg wiki OpenWRT mój router ma 128MB pamięci stałej flash i 128MB RAM.

Tymczasem z dysku flash system montuje tylko 2 partycje

# OpenWRT ### 04:03  Router : ~ 

root ~> df -m | egrep '/dev/'
/dev/root                    3         3         0 100% /rom
/dev/ubi0_1                 14         8         5  65% /overlay

Jeśli mnie wzrok nie myli, to jest tego brutto 17MB
Gdzie jest reszta dyzia (111MB)?
Jeżeli partycje dyskowe mają nazwy ubi, to troszkę tego jest w /dev/

crw-------    1 root     root      251,   0 Jan  1  1970 /dev/ubi0
crw-------    1 root     root      251,   1 Jan  1  1970 /dev/ubi0_0
crw-------    1 root     root      251,   2 Jan  1  1970 /dev/ubi0_1
crw-------    1 root     root       10,  59 Jan  1  1970 /dev/ubi_ctrl
brw-------    1 root     root      254,   0 Jan  1  1970 /dev/ubiblock0_0

Czy da się nieużywany w tej chwili /dev/ubi0_0 zamontować w systemie i używać jako dysk, np extroot albo inna partycję - np na własne skrypty (żeby nie ginęły przy sysupgrade)?

W RAM mam cały czas wolne ponad 90MB, także mógłbym odpalić bez problemu np Prosody, Asteriska czy może  Postfixa, gdyby udało się w routerze znaleźć na dyziu dodatkowe 30-90MB.

Nie widzę sensu fruwać po dodatkowego Pendraka, jeśli w routerze około 110 MB leży odłogiem. wink

Pozdro

2

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Bo openwrt trzyma się oryginalnego podziału partycji. Podczas startu w logach znajdziesz informacje o tym jak wygląda rozkład (tak samo przez cat /proc/mtdinfo). Część partycji jest systemowa, część jest z danymi wykorzystywanymi przez oryginalny soft. Więc dla usera zostaje właśnie tyle na cała flash.

Informacje o partycjach znajdziesz tu: https://oldwiki.archive.openwrt.org/toh … r/wndr4300

Której wersji systemu używasz? Zainstaluj mój build to będziesz miał więcej pamięci flash, w wersji rozwojowej jest to już dawno zmienione.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez jacekalex 2019-03-13 07:34:38)

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Dzięki za wyjaśnienie.

Czy da się partycję

mtd12 reserved 96MiB

zamontować w systemie jako osobną, której przeładowanie OpenWRT img czy sysupgrade nie będzie ruszać?

Wszystkie wyglądają u mnie tak:
dev:    size   erasesize  name

mtd0: 00040000 00020000 "u-boot"
mtd1: 00040000 00020000 "u-boot-env"
mtd2: 00040000 00020000 "caldata"
mtd3: 00080000 00020000 "pot"
mtd4: 00200000 00020000 "language"
mtd5: 00080000 00020000 "config"
mtd6: 00300000 00020000 "traffic_meter"
mtd7: 00200000 00020000 "kernel"
mtd8: 01700000 00020000 "ubi"
mtd9: 01900000 00020000 "firmware"
mtd10: 00040000 00020000 "caldata_backup"
mtd11: 06000000 00020000 "reserved"

Gdzie się ustawia ich wartości w źródełkach?
Pytam, bo na terminalu leci kompilacja OpenWRT z gita.

EDIT:
Leciała kompilacja, wyętolił się tutaj:

make[2] toolchain/compile
 make[3] -C toolchain/wrapper compile

make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/home/fabryka/local/src/openwrt/include/toplevel.mk:218: world] Error 1

Chyba się załapał na zabezpieczenie przed fork-bombą czyli cgroup-pids.

Tak przy okazji w OpenWRT też by się przydało wsadzić w jajo autogroup i cgroup do podzielenia procka i pamięci między procesy.
Autogroup pięknie grupuje procesy bez żadnej konfiguracji, a cgroup.memory elegancko dzieli pamięcią, miedzy innymi w w Androidzie zastąpił android-low-memory-killer.

wink

Pozdro

4

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

To nie jest komunikat błędu. Jest wyżej więc zrób kompilację przez make -j1 V=s i pokaż więcej.

Tą "reserved" możesz tylko przefomratorwać i podmontować (np. w /etc/config/fstab lub ręcznie) ale nie możesz jej  złożyć w ciągłość z failsystemem bo przeszkadza partycja "caldata_backup" - a tej nie wolno ci ruszasz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez jacekalex 2019-03-13 07:50:21)

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Cezary napisał/a:

To nie jest komunikat błędu. Jest wyżej więc zrób kompilację przez make -j1 V=s i pokaż więcej.

Tą "reserved" możesz tylko przefomratorwać i podmontować (np. w /etc/config/fstab lub ręcznie) ale nie możesz jej  złożyć w ciągłość z failsystemem bo przeszkadza partycja "caldata_backup" - a tej nie wolno ci ruszasz.

Ciągłość partycji nie da się zrobić bez LVM, to wiem na pewno.
Linuxa używam już 12 lat, także to nie nowość.

Na co tą partycję przeformatować, ext4, sguashfs, overlayfs czy co innego?


Co do budowy wyjaśniło się, chyba trzeba mu chroota albo maszynę wirtualną zrobić:

make[3]: Entering directory '/home/fabryka/local/src/openwrt/toolchain/wrapper'
Testing external toolchain for ipv6 support ... Toolchain directory '/opt/cross/mips-unknown-linux-gnu' does not exist.
failed
ERROR: CONFIG_IPV6 is enabled but the external toolchain does not support it
make[3]: *** [Makefile:66: /home/fabryka/local/src/openwrt/build_dir/toolchain-mips-unknown-linux-gnu/wrapper-1/.prepared] Error 1
make[3]: Leaving directory '/home/fabryka/local/src/openwrt/toolchain/wrapper'
time: toolchain/wrapper/compile#0.01#0.01#0.03
make[2]: *** [toolchain/Makefile:100: toolchain/wrapper/compile] Error 2
make[2]: Leaving directory '/home/fabryka/local/src/openwrt'
make[1]: *** [toolchain/Makefile:96: /home/fabryka/local/src/openwrt/staging_dir/toolchain-mips-unknown-linux-gnu/stamp/.toolchain_compile] Error 2
make[1]: Leaving directory '/home/fabryka/local/src/openwrt'
make: *** [/home/fabryka/local/src/openwrt/include/toplevel.mk:218: world] Error 2

6

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Raczej ubifs, squashfs jest tylko do odczytu.

Co ty właściwie pobrałeś i kompilujesz że chce  external toolchain i chce /opt/cross/mips-unknown-linux-gnu? Bo to nie są standardowe źródła openwrt. Tym bardziej ten komunikat o ipv6. Albo coś dziwnie skonfigurowałeś.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez jacekalex 2019-03-13 07:54:49)

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Cezary napisał/a:

Raczej ubifs, squashfs jest tylko do odczytu.

Co ty właściwie pobrałeś i kompilujesz że chce  external toolchain i chce /opt/cross/mips-unknown-linux-gnu? Bo to nie są standardowe źródła openwrt. Tym bardziej ten komunikat o ipv6. Albo coś dziwnie skonfigurowałeś.

Prawdopodobnie coś spartoliłem.

Źródełka są z oficjalnego Githuba OpenWRT.

Mam sprawcę:
w .config:

CONFIG_LIBC_ROOT_DIR="/opt/cross/mips-unknown-linux-gnu"
CONFIG_LIBGCC_ROOT_DIR="/opt/cross/mips-unknown-linux-gnu"
CONFIG_LIBPTHREAD_ROOT_DIR="/opt/cross/mips-unknown-linux-gnu"
CONFIG_LIBRT_ROOT_DIR="/opt/cross/mips-unknown-linux-gnu"

Nie przypominam sobie, żebym takie rzeczy ustawiał.
Chyba że jakaś inna opcja to wciagneła w menuconfig, a ja nie zauważyłem.

8

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Tu masz o kompilacji: http://eko.one.pl/?p=openwrt-kompilacja

Zrób to jeszcze raz, zaznacz tylko swoje urządzenie i nie zmieniaj nic więcej (a tym bardziej opcji kompilacji). Skompiluj będziesz miał podstawę systemu. A później już rób co chcesz dalej.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez jacekalex 2019-03-13 08:10:58)

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Cezary napisał/a:

Tu masz o kompilacji: http://eko.one.pl/?p=openwrt-kompilacja

Zrób to jeszcze raz, zaznacz tylko swoje urządzenie i nie zmieniaj nic więcej (a tym bardziej opcji kompilacji). Skompiluj będziesz miał podstawę systemu. A później już rób co chcesz dalej.

Znalazłem błąd.

Zamiast OpenWRT-toolchain zaznaczone było external-toolchain.
Make clean i jedziemy.

W miedzyczasie odkryłem make xconfig (czego w dokumentacji nikt nie napisał), i tam jest lepsza szukajka. smile

EDIT:
Jakimże to magicznym poleceniem się formatuje do ubifs?

EDIT2:
Niby zrobione (wystarczyło zainstalować ubi-utils i zobaczyć wynik ubiformat - ):

# OpenWRT ###  08:06  Router : ~ 

root ~> ubiformat /dev/mtd11 -y
ubiformat: mtd11 (nand), size 100663296 bytes (96.0 MiB), 768 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 767 -- 100 % complete  
ubiformat: 767 eraseblocks are supposedly empty
ubiformat: warning!: 1 of 768 eraseblocks contain non-UBI data
ubiformat: warning!: only 0 of 768 eraseblocks have valid erase counter
ubiformat: erase counter 0 will be used for all eraseblocks
ubiformat: note, arbitrary erase counter value may be specified using -e option
ubiformat: use erase counter 0 for all eraseblocks
ubiformat: formatting eraseblock 767 -- 100 % complete  

Poszło prawidłowo, czy mam zbierać dutki na nowy router? wink

10 (edytowany przez jacekalex 2019-03-13 08:36:14)

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Coś musiałem z tym ubi pochrzanić.
Robiłem wg tego tutka:
https://bootlin.com/blog/creating-flash … fs-images/
i po zamontowaniu wyszła partycja:

ubi1                     13.8M      4.0M      9.0M  31% /home

chociaż chciałem zrobić najpierw 96 MiB, ale jak wywalił brak miejsca, to zrobiłem 90MiB,
a wyszło 13MB.

Ale jaja, chyba nie ta partycja się zamontowała, usunałem z niej wszystko, i teraz router wariuje. xD

11 (edytowany przez Cezary 2019-03-13 09:14:20)

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Nie mam kompletnie pojęcia czemu tak kombinujesz. Powiększ sobie roofs po prostu na tyle co się da (albo zbuduj/użyj wersji rozwojowej gdzie to jest zmienione) i tyle.

PS. Zrób sobie kopie partycji przed zabawami smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez jacekalex 2019-03-13 11:08:44)

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Coś jeszcze robię źle, ale pomalutku postęp jest:
Wykonane:

ubiformat /dev/mtd11
ubiattach -p /dev/mtd11
ubimkvol /dev/ubi1 -N home -s 90MiB
mount -t ubifs ubi1:home /home

Rezultat:

ubi1:home                81.4M     24.0K     77.2M   0% /home

czyli udało się odzyskać 81MiB nieużywanej pamięci. smile

EDIT:
extroot na razie z tego nie będzie, po każdym restarcie trzeba ponownie stworzyć urządzenie blokowe /dev/ubi1 poleceniem

ubiattach -p /dev/mtd11

Także na razie jest tam wygodna partycja na backup. wink

13

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Też mam WNDR4300 i mam bez kombinowania 97,5 MB flasha do użycia. Tylko czemu jest taka różnica między tym co pokazuje się w luci a tym co jest w skrypcie sysinfo w SSH?
https://obrazki.elektroda.pl/4335019100_1552484139_thumb.jpg

14

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Bez kombinowania bo używasz mojego softu, ja zmieniłem już dawno rozmiary.

sysinfo wyświetla dokładnie to samo co df -h (możesz zobaczyć). A co luci wyświetla tego nie wiem, trzeba pogrzebać po luci i zobaczy co i jak robi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Cześć udało mi się skompilować ffmpeg z obsługą h264 pod TPLink WDR3600 żeby zgrywać RTSP z kamer IP i działa to pięknie. To samo chciałem zrobić dla Netgear WNDR4300v1 ale nie widzę tego modelu w target profile w menuconfig pomimo że ma wsparcie openwrt. Gdzie go znajdę?

16

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Wybierz subtarget  nand

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: [+]Netgear WNDR4300 - pamieć flash (pamięc dyskowa routera)

Dziękuję!