Temat: hd-idle, nfsd, gargoyle 1.5.8.1
Witam
Na początek chciałbym się z wszystkimi przywitać i podziękować osobom, dzięki którym mam w routerze (1043ND) fajny sofcik - na tym forum to pewnie głównie Cezaremu
.
Router z wgranym Gargoyle użytkuję od około 1,5 roku, ale że nie miałem do tej pory większych problemów to i nie rejestrowałem się. Teraz właściwie też nic poważnego, no ale do rzeczy...
Wrzuciłem ostatnio do routera AA z Gargoyle 1.5.8.1 no i zacząłem wszystko od początku konfigurować. Na początku chciałem jak zawsze wywalić plugin-gargoyle-usb-storage, ale po wstępnym obejrzeniu tego postanowiłem sobie potestować jednak. I właściwie pasuje mi to i zostanie chyba na stałe, ale mam 2 problemy:
1. Ani jak nie mogę podmontować na innym urządzeniu udostępnionego zasobu NFS. Wcześniej w exports miałem taki wpis:
/mnt/hdd/public/media *(rw,all_squash,insecure,sync,no_subtree_check) no i bez problemu zasób montowałem.
Teraz po konfiguracji w Gargoyle w pliku nsfd mam:
config nfsshare 'media'
option name 'media'
option sync '1'
option insecure '1'
option subtree_check '0'
option read_only '0'
option path '/tmp/usb_mount/141c6bc8-c896-48e7-92db-36e46331d58d/public/media'
list allowed_hosts '*'teoretycznie powinienem to podmontować poleceniem
mount -t nfs 192.168.1.1:/nfs/media /mnt/nfsale otrzymuję taki komunikat:
mount: 192.168.1.1:/nfs/media failed, reason given by server: Permission denied
mount: mounting 192.168.1.1:/nfs/media on /mnt/nfs failed: Bad file descriptorPróbowałem zamiast skróconej ścieżki (w routerze powstaje skrót '/nfs/media') wstawiać pełną ścieżkę do udostępnionego folderu, restartować usługi, router, itp. bezskutecznie. Na razie problem rozwiązałem w ten sposób, że zasób udostępniam przez sambę...
Jakieś sugestie? Błąd z mojej strony, czy błąd w systemie?
2.Skrypt w pliku konfiguracyjnym samby ustawia zawsze opcję
option browseable 'yes'Najlepiej jakby było to wyprowadzone do GUI, teraz w niektórych zasobach ręcznie i tak to przestawiać muszę. W sumie szczegół, ale wymaga ręcznego grzebania w plikach. Może jak trochę podszkolę się to jakoś to sam dodam (jeśli nie zrobi tego wcześniej ktoś bardziej obeznany)
.
Kolejny problem napotkałem chcąc wykorzystać plugin-gargoyle-hdidle. Wcześniej instalowałem i konfigurowałem hd-idle z konsoli, no ale skoro jest w GUI...
Zainstalował się normalnie, jednak cały czas pokazywał w zakładce 'Hd-Idle', że jest wyłączony. no i tu ewidentnie znalazłem błędy w skryptach.
1. Plik /www/js/hdidle.js ustawia opcję disk w pliku konfiguracyjnym w następujący sposób:
preCommands.push("uci set hd-idle.@hd-idle[0].disk='blkid | grep " + disk + " | cut -b 6-8'");W wyniku czego w pliku konfiguracyjnym powstaje wpis:
option disk 'blkid | grep 141c6bc8-c896-48e7-92db-36e46331d58d | cut -b 6-8'Uruchomienie hd-idle z poziomu GUI czy też /etc/init.d/ jest wtedy niemożliwe
/usr/bin/hd-idle: invalid option -- b
error: unknown option -bSystem nie przetwarza poprawnie polecenia
blkid | grep 141c6bc8-c896-48e7-92db-36e46331d58d | cut -b 6-8i zamiast jako argument hd-idle wstawić jego wynik (sda) wstawia całe wyrażenie jako argumenty polecenia.
Nie wiem czy wynik tej operacji powinien być już od razu wstawiony do pliku konfiguracyjnego (przez hdidle.js) czy dopiero podstawiony do hd-idle przez /etc/init.d/hd-idle, ale po nieudanych próbach naprawienia tego w pliku hdidle.js zamieniłem powyżej wspomnianą linijkę na:
preCommands.push("uci set hd-idle.@hd-idle[0].disk='sda'");Jako, że i tak używam tylko jednego dysku na stałe połączonego do routera to taka prowizorka może na razie zostać. No, ale to nie koniec problemów...
2. Po prowizorycznym naprawieniu problemu z punktu 1 hd-idle uruchamiał się i chyba nawet działał, ale dale w GUI miałem cały czas status hd-idle: Wyłączony.
Winny okazał się /www/hdidle.sh , a dokładnie linia
ps | grep hd-idle | cut -b 1-6,44- 2>/dev/null | awk '{if ( $2 == "-i") {print "hdidle_disks_on.push([\""$1"\",\""$3"\",\""$5"\",\""$8"\"]);"} }'Po wstępnym odfiltrowaniu polecenia ps sprawdzana była druga kolumna i jeśli nie było w niej "-i" skrypt zakładał, że hd-idle nie został poprawnie uruchomiony. A na wskutek działania /etc/init.d/hdidle w drugiej kolumnie nie miało prawa nigdy być "-i"...
Jako, że wolałem za bardzo nie grzebać w www/hdidle.sh poprawiłem w /etc/init.d/hdidle
service_start /usr/bin/hd-idle $args -i "$(compute_seconds $interval $unit)" na
service_start /usr/bin/hd-idle -i "$(compute_seconds $interval $unit)" $argsno i Gargoyle zaczęło poprawnie wyświetlać status hd-idle ![]()
Jest szansa w przyszłości poprawienia tych mankamentów ?