1 (edytowany przez kabal 2010-01-23 15:05:48)

Temat: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Chciałbym poinformować iż temat pliku mount_root został zakończony powodzeniem.

Efekty pracy dostępne w tym małym artykule: http://openlinksys.info/forum/viewthrea … ad_id=9615
Zapraszam


P.S. Temat do zamknięcia

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

2

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Tak, nie skompilowałeś tego.

Przecież jak system startuje to nie ma podmontowanego jffs na którym masz te zmiany...

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

3 (edytowany przez kabal 2009-11-10 12:23:09)

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Cezary napisał/a:

Tak, nie skompilowałeś tego.

Przecież jak system startuje to nie ma podmontowanego jffs na którym masz te zmiany...

Witam.
Odnośnie poprzedniego skryptu już sobie poradziłem.. (podziękowania dla Jejka i Obsego)
Teraz nasunął się pomysł modyfikacji pliku "mount_root" tak aby router podczas startu sprawdzał czy jest wpięty dysk z docelową partycją. Jeśli tak to podpinał /jffs do dysku.. jeśli nie to start z flasha.
Skleciłem coś takiego...:

#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
. /etc/functions.sh

jffs2_ready () {
        mtdpart="$(find_mtd_part rootfs_data)"
        magic=$(hexdump $mtdpart -n 4 -e '4/1 "%02x"')
        [ "$magic" != "deadc0de" ]
}

grep rootfs_data /proc/mtd >/dev/null 2>/dev/null && {
        . /bin/firstboot
        mtd unlock rootfs_data
        jffs2_ready && {
                echo "loading USB and ext2 modules" >> /tmp/x.txt
                insmod usbcore
                insmod ext2
                insmod ehci-hcd
                insmod scsi_mod
                insmod sd_mod
                insmod usb-storage
                lsmod > /tmp/x.txt
                sleep 9
                ls -l /dev/scsi/host0/bus0/target0/lun0/ >> /tmp/x.txt
                ls -l /dev/scsi/host0/bus0/target0/lun0/ | grep "part1"
                case $? in

                        0) echo "switching to HDD" >> /tmp/x.txt
                        mount /dev/scsi/host0/bus0/target0/lun0/part1 /jffs -t ext2 && \
                        fopivot /jffs /rom
                        ;;

                        1) echo "no HDD or partition on HDD" >> /tmp/x.txt
                        mount "$(find_mtd_part rootfs_data)" /jffs -t jffs2 && \
                        fopivot /jffs /rom
                        ;;

                        *) echo "something goes wrong" >> /tmp/x.txt
                        ;;
                esac
                
        } || {
                echo "jffs2 not ready yet; using ramdisk" >> /tmp/x.txt
                ramoverlay
        }
} || {
        mtd unlock rootfs
        mount -o remount,rw /dev/root /
}

... tylko nie jestem pewien czy mogę użyć warunku "case" w takim pliku startowym.
Jednocześnie nie jestem do końca pewny czy nie popełniłem jakiegoś błędu (szkoda uwalić router smile ) dlatego proszę osoby znające się na rzeczy o poprawienie mnie jeśli gdzieś walnąłem błąd.

Z góry dzięki

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

4

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

kabal napisał/a:

podziękowania dla Jajka i Obsego

Jejka, nie Jajka, chyba że miałeś na myśli kogoś innego wink

Moja (oczywiście niesprawdzona) propozycja:

  mount /dev/scsi/host0/bus0/target0/lun0/part1 /jffs -t ext2  ||   mount "$(find_mtd_part rootfs_data)" /jffs -t jffs2  
  fopivot /jffs /rom

co oznacza, że jeśli nie powiedzie się montowanie na dysku to powinno na flaszu, bo jest wcześniej sprawdzone, że powinno się dać.

Zdrówko!

5

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Ja mam taką propozycję, żeby partycję "systemową" na nośniku zewnętrznym oznaczyć za pomocą UUID lub label (w miarę przybliżony opis tu). O ile dobrze pamietam, wymaga to zmiany domyślnych opcji dla BusyBoksa, ale ułatwia życie...

6

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

@kabal: gdzie howto...

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

7

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

vatazhka napisał/a:

Ja mam taką propozycję, żeby partycję "systemową" na nośniku zewnętrznym oznaczyć za pomocą UUID lub label (w miarę przybliżony opis tu). O ile dobrze pamietam, wymaga to zmiany domyślnych opcji dla BusyBoksa, ale ułatwia życie...

Hmm.. dobry pomysł.. ale nie wiem czy na jajku 2.4 to wyjdzie.. a ja właśnie jak na razie modyfikuję pod Broadcom'a 2.4.
Z tego co widzę to OpenWRT 2.4 nie rozpoznaje urządzeń poprzez UUID - jak się mylę to poprawcie mnie.

Cezary napisał/a:

@kabal: gdzie howto...

Pisze się wink
A odnośnie mount_root.. jak myślisz Cezary... wygląda to w porządku ?

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

8

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

A działa? smile Jak tak - wszystko jest ok.

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

9

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Cezary napisał/a:

A działa? smile Jak tak - wszystko jest ok.

No jeszcze nie sprawdzałem smile .. czekałem na opinie czy nie popełniłem jakiegoś błędu.

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

10

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Up smile

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+

11

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Co up?

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

12

Odp: Plik mount_root (przeniesienie /jffs na zew nośnik USB)

Cezary napisał/a:

Co up?

Podniesienie tematu na forum z 3 str na 1 wink

Netgear R7800 # Netgear WNDR3800 # TP-Link TL-WR1043ND v4 # TP-Link TL-WR1043ND v1 # Synology DS920+