22 Listopada 2024 03:59:27
Nawigacja
· Strona Główna
· Forum

· Tomato by Shibby
· FreshTomato


Wątki na forum
Najnowsze dyskusje
· [S] Asus RT-AC56U
· DIR868l OFW asus vs ...
· Szukam zaproszenia n...
· [MOD] FreshTomato-AR...
· Asus RT-AC5300 ,prob...
· archer c6 v3.20
· [S] Nighthawk R7000P...
· [S]Asus RT-AC5300 - ...
· Tanie N100 na promce...
· net z telefonu wifi+...
· Tomato - bugi/proble...
· HUAWEI z światłowodem
· Asus TUF-AX3000_V2 p...
· rt-ax88upro częste ...
· [Howto] Xpenology na...
· Jaki router pod Open...
· Ruter z tomato
· Czy to jeszcze NAS?
· RT AC66U B1
· Wireguard na FreshTo...
Najpopularniejsze obecnie wątki
· Szukam zaproszeni... [19]
· DIR868l OFW asus ... [8]
· [S] Asus RT-AC56U [0]
Ankieta
Jaki procesor posiada twój router?

Broadcom MIPSEL
Broadcom MIPSEL
36% [151 głosów]

Broadcom ARM
Broadcom ARM
52% [219 głosów]

Atheros
Atheros
5% [22 głosów]

Marvell
Marvell
1% [4 głosów]

Ralink
Ralink
1% [3 głosów]

Intel/AMD/VIA
Intel/AMD/VIA
1% [5 głosów]

Żaden z powyższych
Żaden z powyższych
4% [15 głosów]

Ogółem głosów: 419
Musisz zalogować się, aby móc zagłosować.
Rozpoczęto: 02/02/2015 09:38
Twoje IP
18.190.176.176
Zobacz wątek
OpenLinksys » :: PORTAL :: » Tutoriale
 Drukuj wątek
[HOW-TO] XBMCLive na Ramdysku - krok po kroku
neotix
POST ZOSTAŁ EDYTOWANY PONIEWAŻ WYPRÓBOWAŁEM METODĘ I DZIAŁA.

UWAGA: Tutorial został przeze mnie sprawdzony i nie wystąpiły komplikacje. Niemniej każdy kto postanowi wykorzystać go, robi to na swoją odpowiedzialność. Nie odpowiadam za żadne problemy ze sprzętem ani utratę danych wynikających z użycia poniższego tutoriala. Także proszę o krytyczne podejście do poniższego tekstu, a szczególnie pod względem ewentualnych błędów.

Niedawno trafiłem na temat traktujący o przeniesieniu XBMC do Ramdysku

Na jego podstawie postanowiłem zrobić tutorial lepiej opisany i zrozumiały dla laika.

Instalacja XBMCLive

Tutaj nie ma co pisać bo jest to proces intuicyjny i szeroko opisany. Całość polega praktycznie na zatwierdzeniu instalacji i czekaniu każ się wszystko sfinalizuje. Jedynie partycjonowanie wymaga naszej uwagi. Ja instalując na pendrive użyłem całego dostępnego miejsca na partycję podstawową ext4 z dodatkową flagą noatime dla wydłużenia żywotności. Swapa nie robiłem.

Utworzenie Ramdysku

XBMCLive bazuje na Ubuntu, a więc już na starcie mamy do dyspozycji dynamiczny Ramdysk, który zamontowany jest w /dev/shm/

Jednak wiele osób (w tym ja) woli utworzyć odrębny Ramdysk dla XBMC z góry określoną maksymalną wielkością.

Tworzymy katalog dla naszego RAMDysku:

Cytat

sudo mkdir /dev/xbmcramdisk


Może to być dowolny katalog w dowolnym miejscu, ale dla porządku chyba lepiej jest stworzyć go w tym miejscu.

Edytujemy fstab [odpowiedzialny za montowanie partycji przy starcie systemu]

Cytat

sudo nano /etc/fstab


Dodajemy na końcu i zapisujemy

Cytat

# XBMC Ramdisk
none /dev/xbmcramdisk tmpfs defaults,size=2048m 0 0


size=2048m oznacza utworzenie Ramdysku o pojemności 2GB. Wartość tę można dowolnie modyfikować w zależności jaką pojemność chce się uzyskać.

Można również użyć ramfs zamiast tmpfs. Główna różnica jest taka, że ramfs rozrasta się dynamicznie w zależności od ilości danych (w ostateczności może zapchać cały ram) zaś tmpfs nie pozwoli na zapis powyżej ustawionej wielkości ramdysku.

Zostaje jeszcze tylko zamontować Ramdysk i przydzielić uprawnienia

Cytat

sudo mount -a
sudo chown -R xbmc:xbmc /dev/xbmcramdisk
sudo chmod -R 755 /dev/xbmcramdisk


Teraz mamy Ramdysk o wielkości 2GB automatycznie tworzony i montowany do katalogu /dev/xbmcramdisk przy każdym starcie systemu.

Utrwalenie RAMDysku

Jak wiadomo RAM ma to do siebie, że traci dane przy każdym restarcie. Tak więc by tego uniknąć trzeba synchronizować je pomiędzy Ramdyskiem, a HDD. Wtedy przy każdym wyłączeniu kompa dane z Ramdysku będą zgrywane na dysk twardy i po włączeniu przywracane z powrotem.

Ja do synchronizacji danych użyłem innego pendrive ze względu na to, że dyski chciałem mieć niezależne z bezproblemową możliwością ich odpięcia.

Jeśli ktoś chce użyć partycji z systemem to może pominąć ten etap:

Po włożeniu pendrive do USB należy zostanie on automatycznie wykryty i zamontowany w katalogu /media. Nas to jednak nie urządza ponieważ montowanie to odbywa się z poziomu XBMC a więc za późno. Musimy ręcznie ustawić montowanie w fstab.

Zidentyfikowanie pena

Cytat

sudo blkid


Pojawi się lista wszystkich podpiętych dysków, a wśród nich będzie również nasz podpięty pendrive. Najprawdopodobniej będzie on sformatowany na FAT32 lub NTFS i po tym najłatwiej go rozpoznać. Ewentualnie wyjmujemy go, sprawdzamy listę i porównujemy, którego brakuje.

Jeśli już wiemy, który to nasz pendrive to zapisujemy sobie jego UUID (bez cudzysłowu). Jeśli na penie nie ma partycji linuksowej to numeru UUID może nie być. W takim przypadku należy ją utworzyć. Zapisujemy sobie jak nazwany jest nasz pen (przykładowo /dev/sdd). Jest to ważne ponieważ przez pomyłkę można utracić dane na innym dysku.

Partycjonowanie

Cytat

sudo fdisk /dev/sdd


Usuwamy zbędne partycje

Cytat

d

i podajemy numer partycji. Robimy to tyle razy aż usuniemy wszystkie partycje na pendrive (u mnie w przypadku NTFS było ich 4).

Tworzymy nową partycję

Cytat

n


Wybieramy partycję podstawową

Cytat

p


Numer partycji

Cytat

1


First Cylinder oraz Last Cylinder bez wpisywania zatwierdzamy enterem

Robimy podgląd czy dobrze nam wszystko utworzyło

Cytat

p


Jeśli coś jest nie tak to wracamy do początku. Usuwamy partycje i tworzymy od nowa.

Zatwierdzamy zmiany

Cytat

w


Wychodzimy z programu

Cytat

q


Formatujemy nową partycję

Cytat

mkfs.ext4 -L "xbmcsync" /dev/sdd1


Teraz sprawdzamy UUID nowej partycji (będzie nazwana xbmcsync) i zapisujemy ją sobie.

Edytujemy fstab

Cytat

sudo nano /etc/fstab


Dodajemy

Cytat

# Synchronizacja Ramdysku
UUID=tutaj wklejamy zapisany numer /home/xbmc/xbmcsync ext4 defaults 0 2

Zapisujemy zmiany

W tej chwili mamy automatycznie montowany pendrive do katalogu /home/xbmc/xbmcsync
Dla pewności czy wszystko działa radze zrestartować system i sprawdzić czy partycja montuje się tam gdzie powinna. oraz czy Ramdysk został utworzony tak jak chcieliśmy.

Tworzymy katalog do synchronizacji naszego Ramdysku

Cytat

mkdir /home/xbmc/xbmcsync/.xbmcramdisk.disk


Teraz tworzymy skrypt do synchnonizacji

Cytat

sudo nano /etc/init.d/xbmcramdisk.sh


W skrypcie wklejamy

Cytat

#! /bin/sh
# /etc/init.d/xbmcramdisk.sh
#

case "$1" in
start)
echo "Copying files from HDD to xbmcramdisk"
echo [`date +"%Y-%m-%d %H:%M:%S"`] Poweron - Ramdisk synched from HDD: start >> /var/log/xbmcramdisk_sync.log
rsync -av /home/xbmc/xbmcsync/.xbmcramdisk.disk/ /dev/xbmcramdisk/
echo [`date +"%Y-%m-%d %H:%M:%S"`] Poweron - Ramdisk synched from HDD: ready >> /var/log/xbmcramdisk_sync.log
;;
sync)
echo "Synching files from xbmcramdisk to HDD"
echo [`date +"%Y-%m-%d %H:%M:%S"`] Running - Ramdisk synched to HDD: start >> /var/log/xbmcramdisk_sync.log
rsync -av --delete --recursive --force /dev/xbmcramdisk/ /home/xbmc/xbmcsync/.xbmcramdisk.disk/
echo [`date +"%Y-%m-%d %H:%M:%S"`] Running - Ramdisk synched to HDD: ready >> /var/log/xbmcramdisk_sync.log
;;
stop)
echo "Synching files from xbmcramdisk to HDD"
#echo [`date +"%Y-%m-%d %H:%M:%S"`] Poweroff - Ramdisk synched to HDD: start >> /var/log/xbmcramdisk_sync.log
rsync -av --delete --recursive --force /dev/xbmcramdisk/ /home/xbmc/xbmcsync/.xbmcramdisk.disk/
#echo [`date +"%Y-%m-%d %H:%M:%S"`] Poweroff - Ramdisk synched to HDD: ready >> /var/log/xbmcramdisk_sync.log
;;
*)
echo "Usage: /etc/init.d/xbmcramdisk.sh {start|stop|sync}"
exit 1
;;
esac

exit 0


Nadajemy uprawnienia

Cytat

sudo chmod +x /etc/init.d/xbmcramdisk.sh


Wrzucamy coś do Ramdysku (jakieś dowolne pliki)

Testujemy

Cytat

sudo /etc/init.d/xbmcramdisk.sh sync


Jeśli nie wywaliło błędów to dane z Ramdysku powinny znaleźć się na pendrive.

Dodajemy do rc by skrypt synchronizacji uruchamiał się przy starcie systemu

Cytat

sudo update-rc.d xbmcramdisk.sh defaults 00 99


W rezultacie powinniśmy otrzymać Ramdsyk, który będzie przywracany przy każdym restarcie kompa.

Dla bezpieczeństwa powinno się dodać zadanie dla Crona by synchronizacja danych z Ramdysku na HDD odbywała się cyklicznie co jakiś czas.

Edytujemy tablicę crontab

Cytat

sudo crontab -e


Dodajemy

Cytat

* */6 * * * /etc/init.d/xbmcramdisk.sh sync


Synchronizacja będzie odbywać się automatycznie co 6 godzin. Dla mnie jest wystarczający czas, ale jak ktoś chce to może sobie ustawić dowolny harmonogram.

Przeniesienie XBMC do Ramdysku

Zatrzymujemy XBMC

Cytat

sudo service xbmc-live stop


Kopiujemy XBMC do Ramdysku

Cytat

cp -a /home/xbmc/.xbmc /dev/xbmcramdisk


Zachowyjemy XBMC znajdujący się na dysku w xbmc_backup (zawsze dobrze mieć kopię bezpieczeństwa)

Cytat

mv /home/xbmc/.xbmc /home/xbmc/.xbmc_backup


Tworzymy link przekierowujący do XBMC w Ramdysku

Cytat

ln -s /dev/xbmcramdisk/.xbmc /home/xbmc/.xbmc


Synchronizujemy pliki

Cytat

sudo /etc/init.d/xbmcramdisk.sh sync


Uruchamiamy XBMC

Cytat

sudo service xbmc-live start


Powinien wystartować z Ramdysku.
U mnie zaowocowało to zwiększoną responsywnością XBMC.

UWAGA: Największym mankamentem owej metody jest to, że start XBMC i skryptu synchronizującego są niezależne. Może się zdarzać, że system będzie chciał uruchomić XBMC zanim się on w pełni zsynchronizuje w Ramdysku.

U mnie jednak przy katalogu XBMC o wadze około 700MB póki co nie ma problemów. Jeśli wystąpią to przeniosę katalog synchronizacji na dysk, który ma dużo szybszy odczyt niż pendrive.
Edytowany przez neotix dnia 18-07-2011 15:02
 
b3rok
@neotix - fajny tutorial, ale szkoda, że usunąłeś wcześniejszy wstęp. Z tego co pamiętam to pisałeś czemu/po co ramdysk, że szybciej itp. No i brakuje podsumowania jak to rozwiązanie się sprawuje.
I. Huawei HG8240 + 1x Netgear r7000 @FreshTomato + Synology DS1512+
II. TP-Link TL-WDR4300 @Obsy OpenWRT Gargoyle
III. TP-Link TL-WDR3600 @Obsy OpenWRT Gargyle
 
shibby
Uruchamiamy XBMC
sudo service xbmc-live stop

cos mi tu nie pasuje Wink
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
 
neotix
@b3rok - cały wstęp jest w wątku źródłowym, do którego link podał house. Tutaj tekst przerobiłem z formy pytania na formę tutoriala.

Podsumowanie też jest

Cytat

U mnie zaowocowało to zwiększoną responsywnością XBMC.


Fakt, że trochę mało rozwinięte, ale nie ma bardzo co dodać. Wcześniej XBMC mulił strasznie. Wczytanie biblioteki, przechodzenie z karty na kartę, otwieranie menu podczas odtwarzania filmu, ściąganie informacji z netu itp. To wszystko było masakrą w moim mniemaniu (przyzwyczaiłem się do responsywności systemy postawionego na ssd). Teraz wszystko działa natychmiast, nie czekam aż mi się pojawi jakieś okienko.

Jedynie co nadal jest problemem to niektóre okładki filmów (większość jest wyświetlana bez widocznego jakiegokolwiek wczytywania). Jeszcze nie rozgryzłem problemu. Może są za duże, może w złym formacie. Niemniej i one wyraźnie przyspieszyły. Wcześniej czekałem z 5 sek. aż się pojawią, a teraz nie trwa to dłużej niż 1sek. Będę musiał jeszcze w nich pogrzebać i zobaczyć czym się różnią od pozostałych wczytywanych natychmiast.

Zauważyłem jeszcze jedną rzecz. Jako, że XBMCLive mam w wersji 32bit to widzi mi tylko 3GB ramu. Jednak Ramdysk nie pochłania tej przestrzeni, a rezerwuje tą nie widzianą. Tak więc mam 700MB w Ramdysku i 3GB dla systemu. Zastanawiam się czy nie przerzucić do Ramdysków innych elementów systemu by go trochę ożywić.

@shibby - już poprawione. Małe przeoczenie przy kopiowaniu podobnych komend.
Netgear WNR3500L + tomato-K26USB-1.28.9052RAF-EN-MIPSR2-031H-Ext by shibby
 
Przejdź do forum
Zaloguj
Wprowadź adres e-mail lub nazwę użytkownika

Hasło



Nie masz jeszcze konta? Zarejestruj się.

Zapomniałeś/aś hasła?
Aktualnie online
· Gości online: 82

· Użytkowników online: 0

· Łącznie użytkowników: 24,115
· Najnowszy użytkownik: Ja
Czat
Musisz się zalogować, aby opublikować wiadomość.

Maniek91PL
06-11-2024 22:37
dzięki !Grin

maxikaaz
29-10-2024 14:27
@Maniek91PL - Administration=> Admin Access, i tam masz "Allow Wireless Access" do zaznaczenia

Maniek91PL
26-10-2024 22:07
siemka! ktoś przypomni co się ustawiało jeśli nie mogę wejść od strony wifi do tomato? od lan działa

overflow2
04-10-2024 17:34
Kupowałem Asusy n10u albo n12d1 ale nie widzę ich, chyba już nie produkują, Chodzi o coś nowego i taniego. Transfery niewielkie.

maxikaaz
04-10-2024 09:38
@overflow2 patrząc po dostępności funkcji w nowych kompilacjach, to chyba nawet WRT54G/GL jeszcze ma OpenVPN, albo jakiś odpowiednik... zależy, na jakie transfery liczysz.

overflow2
30-09-2024 20:53
Jaki aktualnie najtańszy router do tomato do openvpn?

maxikaaz
27-07-2024 15:07
@servee - na początek router do rozebrania i obejrzenia, ciężko wróżyć tak tylko po objawach

maxikaaz
27-07-2024 14:55
@servee - cały kontroler nie pada tak sobie z powodu "zbiegu okoliczności",
więc prawdopodobnie gdzieś przepięcie.

servee
25-07-2024 13:33
@maxikaaz: działało, aż pewnego pięknego dnia przestało działać. W tym dniu była też burza, ale to raczej zbieg okoliczności.

maxikaaz
25-07-2024 11:38
@servee - o ile problem jest w obrębie samych wyjść (dławiki, warystory), to naprawialne, ale jeśli w samym SoC - to nienaprawialne ze względu na koszta. A co było przyczyną?

95,193,420 unikalnych wizyt