Optware na CIFS
|
shibby |
Dodano 16-04-2012 11:05
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
Pomoc przy pisaniu tutoriala zaczerpnąłem z Wiki DD-WRT
http://www.dd-wrt.com/wiki/index.php/..._in_a_file
Do tej pory uważałem, że nie da się zainstalować optware na CIFS, ponieważ CIFS nie wykorzystuje symlinków. Jak się jednak okazuje jest na to dość prosty sposób.
Zapraszam do lektury.
Optware na CIFS to idealne rozwiązanie dla tych, którzy:
a) mają NASa chodzące 24h na dobę
b) mają router bez portu USB/SD-mod`u lub z jakiś przyczyn nie mogą z niego skorzystać
Potrzebujemy przede wszystkim podmontowany udział pod CIFS. Na moim przykładzie będzie to udostępniony udział z NAS`a.
Mając podmontowany udział ściągamy archiwum extras odpowiedni dla swojej wersji tomato i procesora. W moim przypadku (Asus RT-N16 z tomato 092) będzie to extras-mips2.tar.gz
Cytat cd /tmp
mkdir extras
cd extras
wget http://tomato.groov.pl/K26/build5x-092-EN/extras-mips2.tar.gz
Rozpakowujemy archiwum
Cytat tar -zxvf extras-mips2.tar.gz
Potrzebujemy z niego trzy moduły, które kopiujemy sobie na udział cifs1. Pozostałe pliki usuwamy:
Cytat cp loop.ko /cifs1/
cp mbcache.ko /cifs1/
cp ext2.ko /cifs1/
cd ..
rm -rf extras
Ładujemy moduły:
Cytat insmod /cifs1/loop.ko
insmod /cifs1/mbcache.ko
insmod /cifs1/ext2.ko
Jeżeli nie wyskoczy nam żaden błąd to idziemy dalej. Jeżeli na tym etapie mamy błąd ładowania modułu to znaczy, że wybraliśmy złą wersję pliku extras.
Tworzymy teraz plikopartycję o nazwie opt.ext2 o wielkości ok 200M
Cytat dd if=/dev/null of=/cifs1/opt.ext2 bs=1 seek=200M
U mnie proces sam się nie zakończył, więc po ok 10sek wcisnąłem zwyczajnie ctrl+c
Jeżeli posiamy tomato z obsługa USB wystarczy wydać poniższe polecenie aby sformatować plikopartycje na ext2.
Cytat echo y | mke2fs -L optware /cifs1/opt.ext2
Jeżeli jednak tomato nie rozpoznaje nam tej komendy, musimy posłużyć się zewnętrznym busyboxem
Ściągamy na cifs binarkę:
Cytat cd /cifs1
wget http://busybox.net/downloads/binaries/latest/busybox-mipsel
i formatujemy plikopartycję za pomocą komendy:
Cytat echo y | /cifs1/busybox-mipsel mke2fs -L optware /cifs1/opt.ext2
Próbujemy zamontować plikopartycję pod /opt (w przypadku wersji USB)
Cytat mount -o loop /cifs1/opt.ext2 /opt
Jeżeli zaś uzywamy zewnętrznego busyboxa wydajemy komendę:
Cytat /cifs1/busybox-mipsel mount -o loop /cifs1/opt.ext2 /opt
Jeżeli wszystko przebiegło pomyślnie po wydaniu komendy "df -h" uzyskamy efekt podobny do poniższego:
Teraz możemy przystąpić do instalacji optware (tu juz standardowo):
Cytat cd /tmp
wget http://update.groov.pl/optware-install.sh
chmod +x optware-install.sh
./optware-install.sh
ipkg update
I oto mamy działające optware na CIFS.
Pozostała jeszcze kwestia ładowania modułów i montowania partycji przy starcie routera. W tym celu do skryptu init dopisujemy:
Cytat insmod /cifs1/loop.ko
insmod /cifs1/mbcache.ko
insmod /cifs1/ext2.ko
mount -o loop /cifs1/opt.ext2 /opt
Jeżeli wam to nie zadziała to znaczy, że udział CIFS montuje się zbyt późno. Można to rozwiązać tworząc na /cifs1 plik np mount.sh i wpisując w niego:
Cytat #!/bin/sh
insmod /cifs1/loop.ko
insmod /cifs1/mbcache.ko
insmod /cifs1/ext2.ko
mount -o loop /cifs1/opt.ext2 /opt
Jeżeli uzywamy zewnętrznego buxyboxa to oczywiście komendę "mount" musimy zamienić na "/cifs1/busybox-mipsel mount".
Następnie nadajemy atrybut "execute":
Cytat chmod +x /cifs1/mount.sh
a wywołanie skryptu wpisujemy w Administration -> CIFS -> Execute When Mounted -> /cifs1/mount.sh
To by było na tyle.
Pozdrawiam
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
kille72 |
Dodano 16-04-2012 11:21
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Brawo Shibby! To oznacza ze Ci ktorzy nie maja portu USB tez beda mieli mozliwosc zamontowania optware |
|
|
|
shibby |
Dodano 16-04-2012 11:34
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
true. Ja to co prawda robiłem na Asusie RT-N16, nie mniej jednak nie miałem możliwości wykorzystania portu USB (do routera mam tylko dostęp zdalny) a "na gwałt" potrzebowałem optware
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 16-04-2012 13:44
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
Zauważyłem dwa błędy w tutorialu.
1. niepoprawny link do pliku extras-mips2.tar.gz
(wget http://tomato.groov.pl/K26/build5x-092-EN/http://tomato.groov.pl/K26/build5x-092-EN/extras-mips2.tar.gz)
2. niepoprawne polecenie do ładowania modułu look.ko
(ismod /cifs1/look.ko).
Teraz proszę o pomoc w rozwiązaniu problemu:
Dochodzę do momentu ładowania modułów (po skopiowaniu do cifs), przy próbie ładowania otrzymuję błędy. Załączam screen
Plik extras-mips2.tar.gz pobierałem z folderu 092 oraz 088, na jednym i drugim te same błędy.
Tomato MIPSR2-088-PL K26 IPv6-VPN
valdikrk załączono następujące plik:
Nie masz uprawnień, by zobaczyć załączniki w tym wątku.
|
|
|
|
shibby |
Dodano 16-04-2012 14:00
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
zobacz jeszcze dmesg.
nie zaladowal ci loop`a wiec moze dlatego nie chce zaladowac ext2.
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 16-04-2012 14:22
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
Z ładowaniem loop.ko sobie poradziłem, powodem błędu był źle udostępniony katalog.
Ale przy ext2.ko dalej otrzymuję błąd:
insmod: can't insert '/cifs1/ext2.ko': unknown symbol in module, or unknown parameter
Link do dmesg
http://wklej.org/hash/da214deaac4/ |
|
|
|
shibby |
Dodano 16-04-2012 14:43
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
jaki dokładnie router masz? Sprobuj zaladowac jeszcze mbcache.ko
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 16-04-2012 14:51
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
Router WRT320N
Po załadowaniu mbcache.ko poszło dalej bez błędu.
Czy mbcache.ko także trzeba ładować przy starcie routera?
Następny problem:
Przy poleceniu:
echo y | mke2fs -L optware /cifs1/opt.ext2
otrzymuję:
-sh: mke2fs: not found |
|
|
|
shibby |
Dodano 16-04-2012 15:28
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
ehm wszystko rozchodzi sie o to ze ja to robiłem na routerze z USB i już miałem komendy do partycjonowania. Musisz wiec uzyc jakiegos gparteda i "sformatowac" sobie ten plik na ext2.
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 16-04-2012 15:30
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
ok
Dzięki za pomoc |
|
|
|
shibby |
Dodano 16-04-2012 15:34
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
uaktualilem tutka o modul mbcache i info o gpartedzie. Daj znac jak się uda zamontowac partycję
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 16-04-2012 17:13
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
Niestety kolejny problem.
Po komendzie:
mount -o loop /cifs1/opt.ext2 /opt
otrzymuję:
mount: mounting /cifs1/opt.ext2 on /opt failed: Block device required
Plik sformatowałem w live cd ubuntu
_______________
Zalazłem rozwiązanie,
http://tomatousb.org/forum/t-269510
Cytat Download a static build of busybox here:
http://busybox.net/downloads/binaries/latest/busybox-mipsel
And this command will work (if you have the 3 modules loaded first)
/cifs1/busybox-mipsel mount /cifs1/opt.ext2 /opt
Edytowany przez valdikrk dnia 16-04-2012 17:20
|
|
|
|
shibby |
Dodano 17-04-2012 11:55
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
świetna robota. Rozumiem, że optware już ci działa
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 17-04-2012 12:48
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
optware działa, ale mam jeszcze kłopot. Nie działa automatyczne ładowanie modułów oraz montowanie przy uruchamianiu routera (próbowałem przez init oraz plik na cifs). Działa natomiast przy podłączaniu nas'a (dla testu kilka razy odłączałem i podłączałem)
dodanie opóźnienia (sleep 10 czy sleep 20) nie rozwiązuje problemu
--------------------------
Formatowanie plikopartycji przez zewnętrzny busybox nie działa. Zwraca komunikat: -shcifs1/busybox-mipsel: Permission denied
Edytowany przez valdikrk dnia 17-04-2012 13:52
|
|
|
|
shibby |
Dodano 17-04-2012 14:02
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
oo dzieki za info, zaraz poprawie tutka.
Nie działa przez "Execute When Mounted"?
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 17-04-2012 14:10
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
Niestety nie działa "Execute When Mounted"
Na cifs mam plik mount.sh o treści:
Cytat #!/bin/sh
insmod /cifs1/loop.ko
insmod /cifs1/mbcache.ko
insmod /cifs1/ext2.ko
/cifs1/busybox-mipsel mount -o loop /cifs1/opt.ext2 /opt
W Execute When Mounted mam wpisaną ścieżkę:
-----------------------------------------------------------------
Zauważyłem jeszcze, że po komendzie:
Cytat cd /cifs1
wget http://busybox.net/downloads/binaries/latest/busybox-mipsel
potrzebna jest jeszcze komenda
Cytat chmod +x /cifs1/busybox-mipsel
Bez tego przy montowaniu będzie błąd.
Formatowanie dalej nie działa
Edytowany przez valdikrk dnia 17-04-2012 15:17
|
|
|
|
shibby |
Dodano 17-04-2012 15:18
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
a jak wywolasz plik /cifs1/mount.sh to ci zadziala?
moze skryptow sh nie mozna wywolywac z cifsa. Trzebaby go wtedy wrzucic np na jffs.
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 17-04-2012 15:49
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
Po wywołaniu pliku /cifs1/mount.sh zwraca(po ok. 20 sekundach):
Cytat .ko': module not foundo
.ko': module not founde.ko
.ko': module not foundo
mount: can't setup loop device: No space left on device
Na cifs zrobiłem plik reboot.sh:
Później:
Cytat chmod +x /cifs1/reboot.sh
Router się zrestartował
-------------------------------------------------------
Mogę do WRT320N wrzucić tomato-K26USB-1.28.RT-MIPSR2-088-PL-VPN.trx?
Edytowany przez valdikrk dnia 17-04-2012 15:59
|
|
|
|
shibby |
Dodano 17-04-2012 15:56
|
SysOp
Posty: 17113
Dołączył: 15/01/2009 20:30
|
a kopiuj najpierw ten plik do /tmp
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
valdikrk |
Dodano 17-04-2012 15:59
|
User
Posty: 23
Dołączył: 15/12/2009 03:32
|
Skopiowałem mount.sh do /tmp/. Po wywołaniu efekt taki sam jak z cifs
Mogę do WRT320N wrzucić tomato-K26USB-1.28.RT-MIPSR2-088-PL-VPN.trx?
Pytam ponieważ w kompilacjach bez obsługi USB nie ma razem CIFS i JFFS
Edytowany przez valdikrk dnia 17-04-2012 16:23
|
|
|