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