76

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Zamontować dysk odpowiednio, żeby był dostępny dla wszystkich. Opisane w poradniku o montowaniu dysków.

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

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Cezary napisał/a:

Zamontować dysk odpowiednio, żeby był dostępny dla wszystkich. Opisane w poradniku o montowaniu dysków.

Dzięki ponownie. Wszytko teraz hula.

78 (edytowany przez SweetDreams 2011-12-23 18:46:58)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Witam, jest to mój pierwszy post na tym forum.
Dzisiaj dostałem router TP-Link TL-MR3220.
Wrzuciłem na niego OpenWRT z interfejsem Gargoyle PL.
Następie zrobiłem exroota na karcie pamięci 2 GB MicroSD włożonej do czytnika.

 

Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.5M      2.5M         0 100% /rom
tmpfs                    14.4M     84.0K     14.4M   1% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda1                 1.8G     36.6M      1.7G   2% /overlay
mini_fo:/overlay          2.5M      2.5M         0 100% /

logread

Dec 23 18:26:15 Gargoyle user.info kernel: USB Serial support registered for Sierra USB modem
Dec 23 18:26:15 Gargoyle user.info kernel: usbcore: registered new interface driver sierra
Dec 23 18:26:15 Gargoyle user.info kernel: sierra: v.1.3.8:USB Driver for Sierra Wireless USB modems
Dec 23 18:26:15 Gargoyle user.notice usb-modeswitch: 1-0:1.0: Manufacturer=Linux_2.6.32.27_ehci_hcd Product=Atheros_AR91xx_built-in_EHCI_controller Serial=ar71xx-ehci
Dec 23 18:26:15 Gargoyle user.info sysinit: WARNING: /lib/functions/fsck not found
Dec 23 18:26:15 Gargoyle user.notice usb-modeswitch: 1-1:1.0: Manufacturer=SanDisk Product=MobileMate_Micro Serial=000000016654
Dec 23 18:26:20 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:20 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:20 Gargoyle user.info sysinit: touch: /etc/crontabs/root: Input/output error
Dec 23 18:26:20 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:20 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:20 Gargoyle user.info sysinit: cat: can't open '/etc/crontabs/root': Input/output error
Dec 23 18:26:20 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:20 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:20 Gargoyle user.info sysinit: mv: cannot stat '/etc/crontabs/root': Input/output error
Dec 23 18:26:20 Gargoyle user.info sysinit: rm: cannot remove '/etc/rc.d/S50cron': Read-only file system
Dec 23 18:26:20 Gargoyle user.info sysinit: ln: /etc/rc.d/S50cron: File exists
Dec 23 18:26:22 Gargoyle user.info kernel: device wlan0 entered promiscuous mode
Dec 23 18:26:22 Gargoyle user.info kernel: br-lan: port 2(wlan0) entering forwarding state
Dec 23 18:26:25 Gargoyle user.info kernel: device wlan0 left promiscuous mode
Dec 23 18:26:25 Gargoyle user.info kernel: br-lan: port 2(wlan0) entering disabled state
Dec 23 18:26:25 Gargoyle user.info kernel: device wlan0 entered promiscuous mode
Dec 23 18:26:25 Gargoyle user.info kernel: br-lan: port 2(wlan0) entering forwarding state
Jan  1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan  1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan  1 01:00:45 Gargoyle user.info sysinit: touch: /etc/crontabs/root: Input/output error
Jan  1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan  1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan  1 01:00:45 Gargoyle user.info sysinit: cat: can't open '/etc/crontabs/root': Input/output error
Jan  1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan  1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan  1 01:00:45 Gargoyle user.info sysinit: md5sum: can't open '/etc/crontabs/root': Input/output error
Jan  1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan  1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan  1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan  1 01:00:45 Gargoyle user.info sysinit: mv: cannot stat '/etc/crontabs/root': Input/output error
Jan  1 01:00:45 Gargoyle user.notice root: starting ntpclient
Dec 23 18:26:26 Gargoyle user.info sysinit: Loading defaults
Dec 23 18:26:27 Gargoyle user.info sysinit: Loading synflood protection
Dec 23 18:26:27 Gargoyle user.info sysinit: Adding custom chains
Dec 23 18:26:27 Gargoyle user.info sysinit: Loading zones
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading forwardings
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading redirects
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading rules
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading includes
Dec 23 18:26:29 Gargoyle user.info sysinit: md5sum: can't open '/tmp/l7marker.marks.tmp': No such file or directory
Dec 23 18:26:29 Gargoyle user.info sysinit: rm: cannot remove '/tmp/l7marker.marks.tmp': No such file or directory
Dec 23 18:26:29 Gargoyle user.info sysinit: Optimizing conntrack
Dec 23 18:26:29 Gargoyle user.info sysinit: Loading interfaces
Dec 23 18:26:29 Gargoyle user.info firewall: adding lan (br-lan) to zone lan
Dec 23 18:26:30 Gargoyle user.info firewall: adding wan (eth1) to zone wan
Dec 23 18:26:31 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:31 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:31 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:31 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:31 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:31 Gargoyle user.info sysinit: ls: /etc/crontabs/root: Input/output error
Dec 23 18:26:32 Gargoyle authpriv.info dropbear[1757]: Running in background
Dec 23 18:26:33 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:33 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:33 Gargoyle daemon.warn httpd_gargoyle[1815]: started as root without requesting chroot(), warning only
Dec 23 18:26:33 Gargoyle daemon.notice httpd_gargoyle[1815]: httpd_gargoyle/1.0 14mar2008 starting on Gargoyle, port 80
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_unlink: ERROR, invalid state detected.
Dec 23 18:26:33 Gargoyle user.notice dnsmasq: DNS rebinding protection is active, will discard upstream RFC1918 responses!
Dec 23 18:26:33 Gargoyle user.notice dnsmasq: Allowing 127.0.0.0/8 responses
Dec 23 18:26:34 Gargoyle user.warn kernel: ipt_bandwidth: timezone shift of 60 minutes detected, adjusting
Dec 23 18:26:34 Gargoyle user.warn kernel:                old minutes west=0, new minutes west=-60
Dec 23 18:26:34 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:34 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:34 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:34 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:34 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:35 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:35 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:35 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:35 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:35 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:35 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: started, version 2.55 cachesize 150
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: compile time options: IPv6 GNU-getopt no-DBus no-I18N DHCP TFTP
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCP, IP range 172.16.0.100 -- 172.16.0.200, lease time 12h
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using local addresses only for domain lan
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: reading /tmp/resolv.conf.auto
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using nameserver 91.218.60.19#53
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using nameserver 91.218.60.18#53
Dec 23 18:26:37 Gargoyle daemon.warn dnsmasq[2203]: ignoring nameserver 172.16.0.1 - local interface
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using local addresses only for domain lan
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: read /etc/hosts - 2 addresses
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq-dhcp[2203]: read /etc/ethers - 0 addresses
Dec 23 18:26:37 Gargoyle user.info sysinit: ERROR: No valid dynamic DNS service configurations defined
Dec 23 18:26:37 Gargoyle user.info sysinit: (Did you specify correct configuration file path?)
Dec 23 18:26:38 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae IEEE 802.11: authenticated
Dec 23 18:26:38 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae IEEE 802.11: associated (aid 1)
Dec 23 18:26:38 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae WPA: pairwise key handshake completed (RSN)
Dec 23 18:26:38 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPREQUEST(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae
Dec 23 18:26:38 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPACK(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae Kris-Komputer
Dec 23 18:26:39 Gargoyle user.debug kernel: ar71xx-wdt: enabling watchdog timer
Dec 23 18:26:42 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPREQUEST(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae
Dec 23 18:26:42 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPACK(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae Kris-Komputer
Dec 23 18:29:35 Gargoyle authpriv.info dropbear[2257]: Child connection from 172.16.0.155:60671
Dec 23 18:29:43 Gargoyle authpriv.notice dropbear[2257]: Password auth succeeded for 'root' from 172.16.0.155:60671
Dec 23 18:36:23 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae WPA: group key handshake completed (RSN)

Mam jednak problem z zainstalowaniem jakiegokolwiek pakietu - dla przykładu Transmission:

root@Gargoyle:~$ opkg update
Downloading http://ecco.selfip.net/backfire/ar71xx/packages/Packages.gz.
Inflating http://ecco.selfip.net/backfire/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/eko1.
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/packages.
root@Gargoyle:~$ opkg install transmission-daemon transmission-web
Installing transmission-daemon (2.42-2cj) to root...
Downloading http://ecco.selfip.net/backfire/ar71xx/packages/transmission-daemon_2.42-2cj_ar71xx.ipk.
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Installing libcurl (7.21.7-1) to root...
Downloading http://ecco.selfip.net/backfire/ar71xx/packages/libcurl_7.21.7-1_ar71xx.ipk.

I od tej chwili mogę czekać w nieskończoność a i tak nic się nie stanie.
Tak z każdym pakietem.
Żeby spróbować ponownej instalacji muszę zrestartować router bo w innym przypadku dostaję komunikat:

opkg update
Collected errors:
 * opkg_conf_load: Could not lock /var/lock/opkg.lock: Resource temporarily unavailable.

Ktoś wie co jest grane i jak to "naprawić"?
Chyba są to jakieś problemy z kartą pamięci?
Za odpowiedź z góry dziękuję

79

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Tak. Extroota zrobiłeś, ale masz błędy w systemie plików (zobacz błędy mini_fo w logu). Zacznij od fsck systemu plików po odłączeniu.

Rzadko ale się zdarza że dany pendrive ma problemy z usb i nie chce działać extroot - bo cały czas robi błędy w systemie plików.

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

80 (edytowany przez SweetDreams 2011-12-23 22:09:13)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Dziękuję za szybką odpowiedź.
Zrobione - teraz instalacja działa.
Mam jeszcze pytanie co do uruchomienia Transmission (chociaż nie wiem czy to odpowiedni dział)
deamon - moduł web są zainstalowane, polecenie ps wyświetla:

root@Gargoyle:~$ ps
  PID USER       VSZ STAT COMMAND
    1 root      1348 S    init
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    4 root         0 SW   [events/0]
    5 root         0 SW   [khelper]
    8 root         0 SW   [async/mgr]
   39 root         0 SW   [sync_supers]
   41 root         0 SW   [bdi-default]
   43 root         0 SW   [kblockd/0]
   71 root         0 SW   [kswapd0]
   72 root         0 SW   [aio/0]
   73 root         0 SW   [crypto/0]
   85 root         0 SW   [mtdblockd]
   88 root         0 SW   [ar71xx-spi]
  231 root         0 SW   [ipolldevd]
  306 root         0 SW   [khubd]
  313 root         0 SW   [scsi_eh_0]
  314 root         0 SW   [usb-storage]
  363 root      1348 S    init
  377 root      1352 S    syslogd -C16
  379 root      1336 S    klogd
  392 root       784 S    /sbin/hotplug2 --override --persistent --set-worker /
  467 root         0 SW   [flush-8:0]
  607 root         0 SW   [events_nrt]
  645 root         0 SW   [cfg80211]
  746 root         0 SW   [phy0]
 1262 root      1472 S    hostapd -P /var/run/wifi-phy0.pid -B /var/run/hostapd
 1359 root       764 S    /usr/sbin/ntpclient -i 43200 -s -l -D -p 123 -h 0.pl.
 1739 root      1132 S    /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
 1770 root      1344 S    httpd_gargoyle -c cgi-bin/**|**.sh|**.cgi|**.csv -d /
 2170 root      1344 S    crond -c /etc/crontabs -l 5
 2180 root      1352 S    udhcpc -t 0 -i eth1 -b -p /var/run/dhcp-eth1.pid -O r
 2190 nobody     912 S    /usr/sbin/dnsmasq -K -D -y -Z -b -E -s lan -S /lan/ -
 2213 root      1344 S    watchdog -t 5 /dev/watchdog
 2443 root      3928 S    /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
 2444 root      3928 S    /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
 2445 root      3928 S    /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
 2446 root      3928 S    /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
 2451 root      3928 S    /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
 2480 root      1204 S    /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
 2481 root      1352 S    -ash
 2487 root      1340 R    ps

Po wprowadzaniu w pasku adresu IP oraz numeru portu 9091 (od strony LAN'u) dostaję komunikat:

403: Forbidden

Unauthorized IP Address.

Either disable the IP address whitelist or add your address to it.

If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.

If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.


Może mnie ktoś nakierować jak mam odpalić interfejs web?

@edit
Eh, głupie pytanie... smile
Ponownie dziękuję

81

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Dokładnie to napisał: albo przestaw na false opcję rpc-whitelist-enabled albo dodaj swoją klasę adresową do rpc-whitelist
(w /etc/config/transmission)

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

82

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Witajcie! Wesołych Świąt!

A teraz pytania. Właśnie wgrałem ten firmware, stowrzyłem rootfs i ładnie działa, lecz brak e2fsck trochę mnie smuci. W razie kłopotów trzeba samemu skłądać wszystko do kupy i sobie pomyślałem tak:

Wgrałem firmware od nowa, lecz zamiast od razu robić rootfs, ja sobie założyłem na pendrivie dwie partycje, w zasadzie trzy bo trzecia to swap. I teraz pierwsza jest niewielka, ma 5 MB (1 by wystarczyło) i ona podłącza mi się tylko do odczytu w trybie, gdy nie ma jeszcze rootfs. Umieściłem na niej cały pakiet e2fsprogs, wgrany do /tmp (ram) i skopiowany do właściwego katalogu. Katalog nazywa się rbin (red bin) i odpowiednie linki symboliczne wskazują właśnie do tego katalogu, a nie do tmp. Partycja podmontowuje się z fstab mount(0) pod /rbin właśnie. Po odpaleniu wszystkiego od razu wszystkie te programy widoczne są z palca, więc e2fsck jest widoczny już od zamontowania tej partycji!

Następnie zrobiłem resztę, czyli moje /dev/sda2 które jest już właściwą partycją rootfs, dodałem do fstab odpowiednie mount(1) i ustawiłem w nim sprawdzanie e2fsck w razie błędów. Aha, odpowiednie linki symboliczne wskazują mi także na programy z /rbin! Więc nie potrzeba podawać całych ścieżek, wystarczą nazwy programów.

Pierwsza partycja wogle mi się nie montuje po uruchomieniu rootfs, lecz przed montuje się jako /rbin w trybie tylko do odczytu. Plan jest taki, że w razie czego jak coś nawali z /dev/sda2 to system automatycznie mi zreperuje system plików z /dev/sda1 podlinkowanym wcześniej pod /rbin, naprawi co ma naprawić i następnie system zamontuje mi rootfs i uruchomi wszystko jak trzeba.

Moje pytanie brzmi, czy rzeczywiście to zadziała? W jakiej kolejności są montowane i sprawdzane systemy plików? Czy najpierw jest wszystko sprawdzane, a dopiero później montowane, czy robione jest to oddzielnie do każdej partycji, to znaczy, że montowana jest moja /dev/sda1, potem próba /dev/sda2 i w razie niepowodzenia naprawa i ponowna próba zamontowania.

Dzięki za odpowiedzi. Może przy okazji komuś się to przyda, pozdrawiam, Tao.

83

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Tak się nie da. Pierwsze co jest montowane to właśnie extroot, fstab jest przerabiany odpowiednio później. Wiec w momencie montowania extroota nie masz jeszcze zamontowanej tamtej dodatkowej partycji (chyba że sam sobie skrypt zmodyfikujesz).

Na własne potrzeby zrobiłem sobie e2fsck statyczny, ale i tak ma 500k, więc do flash się nie zmieści. ale przynajmniej jeden plik do ściągania jest.

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

84 (edytowany przez Tao 2011-12-26 01:56:39)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Właśnie przeglądam te pliki i nie ogarniam jeszcze wszystkiego, może łatwiej byłoby dodać kawałek skryptu który by montował wcześniej...

No dobra, może inaczej, a jak już zrobiłem to wszystko i teraz zrestartuję router, wyjmę pendrive'a, odpali mi się standardowa konfiguracja i usunę coś niepotrzebnego i zainstaluję pakiet z e2fsck.... Będzie okrojone, ale co tam, przecież jak odpali mi się to z rootfs, to wszystko będzie jak należy, prawda?

85

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Nie usuniesz bo tam nie "nic niepotrzebnego". Ponad to usunięcie nie zwolni miejsca.

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

86 (edytowany przez Tao 2011-12-28 23:05:38)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

No właśnie doszedłem do tego, no i zrobiłem, dodałem dodatkowy plik do /etc/init.d z wysokim numerkiem by uruchamiało się możliwie na końcu, skrypt próbuje zreperować problematyczną partycję, jak się nie uda nie robi dalej nic, a jak się uda to rebotuje urządzenie, po rebocie urządzenie startuje juz z naprawionej partycji rootfs i dalej działa jak zwykle. To w teorii, bo w praktyce przy pierwszym błędzie się zobaczy. :-)

Takie rozwiązanie nie wymaga edycji tego co już jest, wystarczy wrzucić króciutki dodatkowy plik. I wszystko robi się automatycznie! Pozdrawiam. :-)

87

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Siemka @ll
Przykleje sie do tego wątku żeby nie tworzyć nowego odnośnie 3220 , CeZary jest mozliwośc zebyś skroił tak firmware żeby była paczka z ftp i vfat bez modemów3g exroot-a i co można jeszcze okroić, ten moj tplink ma robić jako routerek adsl z pppoe ,wifi, ssh , ddns, gui i lekkim serwerekiem  ftp na który kamerki IP mają zrzucać zdjęcia . ewentualnei dla tego ftp mogę zrezygnowac z ssh ?? mam 2 takie tplinki i szkoda żeby leżały wink z góry thx za info .
ps
nie chcę robić extroota gdyż jak wyżej miałem problemy z rozruchem po zaniku prądy

TPlINk wrr1043;)
Printserver , sane , transmission , audioserver , hdd40Gb i co jeszcze upcham wink zobaczymy jak pomyślimy //lol

88

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Owszem mogę. Ale nie buduję wszystkich możliwych kombinacji, więc takie życzenia - patrz: http://eko.one.pl/forum/viewtopic.php?id=263

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

89

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

juz pisze na @

TPlINk wrr1043;)
Printserver , sane , transmission , audioserver , hdd40Gb i co jeszcze upcham wink zobaczymy jak pomyślimy //lol

90

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Tompij@o2.pl, pomyśl o akumulatorze i niewielkim układzie elektrycznym do tego i będziesz miał podtrzymywanie podczas takich awarii jak brak prądu.

Swoją drogą uważam swoje rozwiązanie za dużo lepsze od ręcznego ściągania narzędzia tylko po to, by postawić padnięty system plików na nogi. Można by nawet dodać to jako standardardowe rozwiązanie w takich sytuacjach, wtedy nie trzeba by tworzyć oddzielnej konfiguracji na tę niewielką partycję montowaną tylko do odczytu i widziałbym to jako dodatkową opcję w fstab, coś w stylu recoveryfsck = 1...

Cezary, jak to widzisz?
Gdybym to napisał, podłączyłbyś to jako opcję?

91

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Napisz zobaczymy jak to wyszło.

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

92 (edytowany przez Tao 2011-12-29 20:13:35)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Proszę bardzo, oto zawartość łatki:

diff -u --recursive lib_stary/functions/block.sh lib/functions/block.sh
--- lib_stary/functions/block.sh        2011-12-29 16:50:00.000000000 +0100
+++ lib/functions/block.sh      2011-12-29 14:20:00.000000000 +0100
@@ -72,6 +72,7 @@
        local gm_uuid
        local gm_label
        local gm_is_rootfs
+       local gm_device_fsck
        config_get gm_target "$1" target
        config_get gm_device "$1" device
        config_get gm_fstype "$1" fstype 'auto'
@@ -81,7 +82,8 @@
        config_get gm_uuid "$1" uuid
        config_get gm_label "$1" label
        config_get_bool gm_is_rootfs "$1" is_rootfs 0
-       mount_cb "$gm_cfg" "$gm_param" "$gm_target" "$gm_device" "$gm_fstype" "$gm_options" "$gm_enabled" "$gm_enabled_fsck" "$gm_uuid" "$gm_label" "$gm_is_rootfs"
+       config_get gm_device_fsck "$1" device_fsck
+       mount_cb "$gm_cfg" "$gm_param" "$gm_target" "$gm_device" "$gm_fstype" "$gm_options" "$gm_enabled" "$gm_enabled_fsck" "$gm_uuid" "$gm_label" "$gm_is_rootfs" "$gm_device_fsck"
 }
 
 config_get_swap() {
diff -u --recursive lib_stary/functions/mount.sh lib/functions/mount.sh
--- lib_stary/functions/mount.sh        2011-12-29 16:51:00.000000000 +0100
+++ lib/functions/mount.sh      2011-12-29 16:22:00.000000000 +0100
@@ -27,6 +27,7 @@
                shift
                local is_rootfs="$9"
                local device_fsck="$10"
+               local device_fsck_mount=""
                shift
                local found_device=""
 
@@ -35,7 +36,19 @@
                        if [ -z "$find_rootfs" ] || [ "$find_rootfs" -eq 0 ] || [ "$is_rootfs" -eq 1 ]; then
                                [ "$enabled_fsck" -eq 1 ] && {
                                        grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
+
+                                               [ -n "$device_fsck" ] && [ "$is_rootfs" -eq 1 ] && {
+                                                       grep -q "$device_fsck" /proc/swaps || grep -q "$device_fsck" /proc/mounts || {
+                                                               mount -r "$device_fsck" /red_bin
+                                                               device_fsck_mount="1"
+                                                       }
+                                               }
                                                libmount_fsck "$found_device" "$fstype" "$enabled_fsck"
+                                               [ -n "$device_fsck_mount" ] && grep -q "$device_fsck" /proc/mounts && {
+                                                               umount "$device_fsck"
+                                                               device_fsck_mount=""
+                                               }
+
                                        }
                                }

Do tego dodatkowy skrypt /sbin/init_device_fsck:

#!/bin/sh

[ -z "$1" ] && {
        echo "Skrypt automatycznie zainicjuje dodatkowa niewielka partycje"
        echo "z programem e2fsck. Dodatkowo skonfiguruje fstab w taki sposb:"
        echo "a) wylaczy anonimowe montowanie partycji,"
        echo "b) ustawi pierwsza partycje jako rootfs"
        echo "c) ustawi informacje o dodatkowej partycji z e2fsck"
        echo
        echo "Przygotuj swojego pendrive tak, by mial przynajmniej dwie partycje"
        echo "sformatowane jako ext2, jedna z nich niewielkiej wielkosci ~2MB bedzie"
        echo "wykorzystywana do przeprowadzania ewentualnych napraw tej drugiej,"
        echo "na ktorej bedzie caly rootfs. Partycja bedzie montowana w trybie"
        echo "tylko do odczytu. Reszte konfiguracji rootfs musisz ustawic sam."
        echo
        echo "W celu wykonania zadania wykonaj: $0 <partycja_e2fsck> <partycja_rootfs>"
        echo "Przyklad: $0 /dev/sda1 /dev/sda2"
        echo
        echo "Pamietaj, skrypt uruchomiony moze zostac tylko jeden raz!"
        return 0
}

echo "1. Tworze katalog pod ktory bedzie montowana nasza partycja"
mkdir -p /red_bin

echo "2. Montuje nasza partycje w trybie do zapisu"
# czyszcze zawartosc jesli cos tu jest
mount -o rw "$1" /red_bin
[ -d "/red_bin/lib" ] && {
        rm -rf /red_bin/lib
}
[ -d "/red_bin/usr" ] && {
        rm -rf /red/bin/usr
}

echo "3. Sciagam i instaluje w ramie potrzebny pakiet"
opkg update
opkg install -d ram e2fsprogs

echo "4. Kopiuje wszystko na nasza przygotowana partycje"
cp -r /tmp/usr /red_bin/
cp -r /tmp/lib /red_bin/
ln -s /red_bin/usr/lib/lib* /usr/lib/
ln -s /red_bin/lib/lib* /lib/
ln -s /red_bin/usr/sbin/e2fsck /usr/sbin/
ln -s /red_bin/usr/sbin/mke2fs /usr/sbin/
ln -s /red_bin/usr/sbin/mkfs.ext2 /usr/sbin/

echo "5. Odmontowuje nasza partycje"
umount "$1"

echo "6. Ustawiam wazniejsze opcje w fstab"
###### nie ma potrzeby montowania innych niz wskazana rootfs!
uci set fstab.automount.anon_mount=0
###### opcja target i device nie sa potrzebne, wiec je usuwam
uci delete fstab.@mount[0].target
uci delete fstab.@mount[0].device
uci set fstab.@mount[0].enabled_fsck=1
uci set fstab.@mount[0].is_rootfs=1
uci set fstab.@mount[0].device_fsck="$1"
uci set fstab.@mount[0].enabled=1
uci set fstab.@mount[0].uuid=`blkid|grep "$2"|cut -d\" -f2`
uci commit

echo "7. Usuwam plik blokujacy extroot.md5sum i reboot..."
mount "$2" /red_bin
rm /red_bin/etc/extroot.md5sum
umount "$2"
reboot

który wprowadza odpowiednie zmiany, bez zabezpieczeń, więc trzeba przed tem się postarać o to, by odpowiednia partycja nie była już zamontowana itd. Skrypt chcę rozbudować jeszcze o podanie drugiego device rootfs, skrypt wtedy odczyta uuid tego urządzenia i automatycznie wypełni wszystko w naszym fstabie! Tak wiec wystarczy tylko wydac komende init... device2M deviceROOTFS i gotowe smile

Tylko że poprawki na oba pliki muszą być naniesione, a plik init... tez musi być już wgrany.

Jeśli Cię to interesuje to obejrzyj to i podziel się swoimi wnioskami. Jestem dostępny na jabberze, jak by co, wysłałem już prośbę o autoryzację. Wg mnie wielu ludzi by skorzystało.

Łatka została poprawiona, był błąd, zaś skrypt został zmodyfikowany, teraz wszystko konfigurowane jest z automatu.

93

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Nie dostałem na jabbera jeszcze żadnej autoryzacji.

To modyfikowanie fstaba średnio mi się podoba.

Znalazłem też inny sposób: busybox zawiera starą (bo z 2005) implementację e2fsck która domyślnie nie jest kompilowana. Stara jest i nie kompiluje się z busyboxem, zmieniłem więc kody i zrobiłem e2fsck busyboxowe. Niestety, zwiększyło to rozmiar busyboxa o ok 150KB, ale mimo to po kompresji obrazu nadal się mieści wszystko choć zostaje bardzo mało miejsca na jffs.

Sam fsck działa (przejechałem sobie dysk z 60GB danymi dla sprawdzenia ;/), choć nie wiem czy taka stara implementacja nie ma czegoś złego w sobie. Jak ktoś chce testować: http://ecco.selfip.net/test/

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

94

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

PS. Zamiast określać device w konfiguracji - nie lepiej by było, gdyby szukał sam np. partycji o LABEL=e2fsck?

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

95

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

ext2 się raczej nie zmienia i nie zmieni, więc myślę, że to będzie działać dobrze. Potrzebne tylko dla tych co i tak wszystko odpalaja na extroocie, więc co za różnica, że mniej zostaje na jffs, skoro i tak wszystko docelowo jest zapisywane na extroocie. Dzięki!

96

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Nie chodzi o zmianę w ext2 a w samym narzędziu. Bo raczej przez 6 lat w nim coś błędnego na pewno się znalazło smile, inaczej by e2fsprogs wersji nie zmieniało.

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

97

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Kwestia udogodnień takich jak ext3 i ext4. Świat przecież nie stoi w miejscu, a samo ext2 raczej się już nie zmienia i wydaje mi się, że kod także. A skoro te nowości i tak są wycięte z tej wersji, więc chyba nie ma problemu.

98

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Przerobiłem właśnie swój inicjujący skrypt, podaję w nim dwa parametry: urządzenie_fsck i urządzenie_rootfs. Plik sam konfiguruje resztę, uruchamia blkid, odczytuje uuid, montuje rootfs, usuwa z niego plik /etc/rootfs.md5sum i rebotuje urządzenie. Po restarcie działa już na extroocie. Init wykonuje się w ciągu jednej chwili.

Pozostaje mi go tylko jeszcze dopieścić teraz pod względem różnych zabezpieczeń, obsługi błędów itd.

Cezary, jeśli Cię to nadal interesuje to przerobię go tak, by nie zmieniać fstaba, można zrobić tak, by montował partycję LABEL=e2fsck, ale potrzeba by do tego dodać jeszcze jakieś zabezpieczenie, by fstab nigdy nie ładował tej partycji do /mnt w trybie guest. Ona nie może być normalnie ładowana w trybie rw! To chyba zrozumiałe.

99

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Sztucznie możesz zrobić, ze jeżeli będzie miała taki label to ma się nie montować.

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

100 (edytowany przez Tao 2011-12-29 20:56:31)

Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040

Chmm, no wszystko jest fajnie, tylko... Jak odczytać LABEL dysku/partycji pod OpenWRT?

A może zapisywać informację o DEVICE gdzieś poza fstab? Np. w jakimś pliku tekstowych w /etc? Np: /etc/partition_e2fsck?