Odp: Zbrakło 300kB
Nie, nie ma.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Zbrakło 300kB
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
Nie, nie ma.
@secam7 - ale kernel jest jest za rootfs, pomiędzy rootfs_data i trzeba byłby jakoś poprzesuwać obszary pamięci. Twoja metoda też dobra, ale w powodów w/w wymienionych nie bawię się w to.
# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00010000 "u-boot"
mtd1: 0010e254 00010000 "kernel"
mtd2: 00ec1dac 00010000 "rootfs"
mtd3: 00c40000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 00fd0000 00010000 "firmware"PS. Hipotetycznie - mtd0-mdt5 to jest logiczny podział, czy też można manipulować ich wielkością? Np. więcej dać do mtd3, a zabrać odpwiednio z mdt2?
Ja widzę podział tak:
mdt0 - lepiej nie ruszać - bootloader
mod1 - mtd3 - czy ilości tych obszarów można zmieniać? Załóżmy, że skompilowałem sobie mały kernel, resztę chce oddać na roofs i rootfs_data - mogę tak zrobić?
mod4 - rozumiem, że to dane dla radio i lepiej nie ruszać
mtd5 - co to?
W openwrt rootfs leży bezpośrednio za kernelem, a rootfs_data za rootfs, on się tworzy automatycznie. Więc nie masz skąd zabrać. Chyba że faktycznie skompilujesz mniejszy kernel wtedy wszystko się przesunie.
mtd5 - to cały obszar 1,2,3, czyli to to aktualizujesz podczas wgrywania oprogramowania.
To może inaczej zapytam - pamięć flash/nand to ciągły kawałek pamięci (jest też kontroler który w razie awarii danej komórki pamięci emuluje ciągłość pamięci, ale z punktu widzenia systemu jest to ciągły kawałem pamięci).
Skąd kernel wie gdzie się zaczyna mdt1, mdt2, mtd3 itd? Rozumiem, że bootloader jest na samym początku adresacji pamięci (jest wywoływany zaraz po włączaniu napięcia) , a cała reszta? Skąd bootloadre oraz kernel wiedzą, gdzie leży jądro i systemy plików w pamięci.
Gdzie się tworzy podział na mtd'y? Bo to jest logiczny podział, nie fizyczny, jest tylko 1 kostka pamięci flash. I czy można ręcznie zmienić logiczny podział pamięci?
Przez zwykłe znaczniki na końcach obrazów. Przeanalizuj sobie kod źródłowy kenrnela w zakresie podziału pamięci w tplinku to będziesz wiedział.
z analizą kodu jądra będzie trudno
Ale poruszyłeś ważny temat - obecnie nie mam czasu na zabawy sprzętem, ale cały wątek powstał po to, aby mdt3 zastąpić innym obrazem.
Czy wobec tego, że mój spreparowany obraz mtd3 jest mniejszy od obecnie zajmowanej przestrzeni, czy to nie wykrzaczy się? Spreparować tak obraz overlay'a aby pasował co do bita do mtd3 jest dla mnie technicznie trudną rzeczą (jeśli w ogóle możliwe). Dlatego pytam, czy po ewentualnym wgraniu nowego obrazu taki znacznik jest w obrazie jffs2, czy system sam go tworzy? A jeśli utworzy to będzie niezagospodarowane miejsce pomiędzy mtd3, a mtd4, tak?
Robi to sterownik mtd w momencie kiedy rootfs_data nie znajdzie. W sumie ktoś już pisał - kompletnie nie wiem po co to robisz. Jak potrzebujesz coś dodatkowego to wkompiluj sobie w squashfs - on jest lepiej kompresowany. A tak to siedzisz już nad tym któryś dzień. No chyba że dla sportu to robisz, bo nic innego lepszego nie masz do roboty...
To ja pisałem i zdania nie zmieniłem.
W sumie to czasowo siedzę na tym mało, bardziej rozciągnięte w czasie z powodu braku czasu, wolę spędzić czas z dziećmi ![]()
Poza tym robię to dla sportu, bo jak pisałem - mogę w 2 min zrobić extroota....
Wracając do tematu, mam mały offtopic - jak zamontować obraz jffs2?
root@OpenWrt:/mnt/sda1/root/flash# dd if=/dev/mtdblock5 of=mtd3-rootfs_jffs2
16000+0 records in
16000+0 records out
root@OpenWrt:/mnt/sda1/root/flash# ls -lh
drwxrwxrwx 1 root root 0 Nov 7 10:50 a
-rwxrwxrwx 1 root root 128.0K Nov 7 10:44 mtd0-uboot
-rwxrwxrwx 1 root root 950.0K Nov 7 10:44 mtd1-kernel
-rwxrwxrwx 1 root root 6.9M Nov 7 10:44 mtd2-rootfs_squasfs
-rwxrwxrwx 1 root root 2.9M Nov 7 10:43 mtd3-rootfs_jffs2
-rwxrwxrwx 1 root root 64.0K Nov 7 10:44 mtd4-art
-rwxrwxrwx 1 root root 7.8M Nov 7 10:43 mtd5-firmwareChcą zamontować przez loopa mtd2 - wychodzi. Chcę mtd3 - nie idzie ![]()
root@OpenWrt:/mnt/sda1/root/flash# mount -t jffs2 mtd3-rootfs_jffs2 a
mount: mounting /dev/loop0 on a failed: Invalid argumentPróbuję inaczej
root@OpenWrt:/mnt/sda1/root/flash# ls -l /dev/loop*
crw-r--r-- 1 root root 10, 237 Nov 7 15:02 /dev/loop-control
brw-r--r-- 1 root root 7, 0 Nov 7 15:02 /dev/loop0
brw-r--r-- 1 root root 7, 1 Nov 7 15:02 /dev/loop1
brw-r--r-- 1 root root 7, 2 Nov 7 15:02 /dev/loop2
brw-r--r-- 1 root root 7, 3 Nov 7 15:02 /dev/loop3
brw-r--r-- 1 root root 7, 4 Nov 7 15:02 /dev/loop4
brw-r--r-- 1 root root 7, 5 Nov 7 15:02 /dev/loop5
brw-r--r-- 1 root root 7, 6 Nov 7 15:02 /dev/loop6
brw-r--r-- 1 root root 7, 7 Nov 7 15:02 /dev/loop7
root@OpenWrt:/mnt/sda1/root/flash# losetup /dev/loop0 mtd3-rootfs_jffs2
root@OpenWrt:/mnt/sda1/root/flash# losetup -av
/dev/loop0: [2049]:1086 (/mnt/sda1/root/flash/mtd3-rootfs_jffs2)
root@OpenWrt:/mnt/sda1/root/flash# mount -t jffs2 /dev/loop0 a
mount: mounting /dev/loop0 on a failed: Invalid argumentGdzieś znalazłem, że żeby sprawdzić czy początek pliku jest dobry i taki jest.
root@OpenWrt:/mnt/sda1/root/flash# hexdump mtd3-rootfs_jffs2 -n 4 -e '4/1 "%02x"'
19852003Pomysły mi się skończyły - jak pod-montować obraz jffs2?
Wersja AA:
OpenWrt Attitude Adjustment 12.09.1 (r41182)
Build time: 2014-06-14 13:26 CEST
Spróbuj http://www.plugcomputer.org/plugforum/i … 419#msg419
Znalazłem już to wcześniej, ale w OpenWRT nie mogę znaleźć pakietu do zainstalowania ![]()
W normalnym (tj nie okrojonym) na pewno by się to udało...
sudo apt-get install mtd-tools
sudo modprobe -v mtd
sudo modprobe -v jffs2
sudo modprobe -v mtdram total_size=256000 erase_size=256
sudo modprobe -v mtdchar
sudo modprobe -v mtdblockEDIT: Znalazłem instrukcję, działa pod OpenWRT
http://www.gentoo-wiki.info/JFFS2/Mounting
root@OpenWrt:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00010000 "u-boot"
mtd1: 000ed800 00010000 "kernel"
mtd2: 006e2800 00010000 "rootfs"
mtd3: 002e0000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware"
mtd6: 002df000 00001000 "/dev/loop0"
root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 2.9M 2.7M 200.0K 93% /
/dev/root 4.0M 4.0M 0 100% /rom
tmpfs 14.3M 704.0K 13.6M 5% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mtdblock3 2.9M 2.7M 200.0K 93% /overlay
overlayfs:/overlay 2.9M 2.7M 200.0K 93% /
/dev/sda1 27.9G 14.2G 13.7G 51% /mnt/sda1
/dev/mtdblock6 2.9M 1.3M 1.5M 47% /mnt/sda1/root/flash/a
root@OpenWrt:/#Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Zbrakło 300kB
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc