Serwer na OrangePi cz.2 – wybór systemu, pierwsze kroki, zegar RTC

orangepi_hwCzęść druga – wybór systemu operacyjnego, a raczej jego dystrybucji, bo chyba już wiadomo że użyjemy systemu unixowego. Bo i zbyt dużego wyboru nie mamy, jeśli chodzi o inne systemy. Jest Android (który w sumie też jest oparty na Linuxie) i chyba to wszystko – z tym że na tym systemie nic poważnego nie da się zrobić. Uruchomimy system i poznamy podstawy nim zarządzania. Będzie też o zegarze czasu rzeczywistego czyli RTC i o synchronizacji czasu, bo płytki fabrycznie… ehhh…

Jakiego systemu użyć?

Na płytkach z wewnętrzną pamięcią fabrycznie ponoć jest zainstalowany jakiś Android, ale tego nie sprawdzałem. Czas znaleźć nowy system operacyjny. W tym celu dobrze jest udać się na oficjalną stronę OrangePi.org i sprawdzić jakie systemy dostępne są pod naszą wersję płytki. Niestety strona jest prowadzona bardzo niechlujnie i tylko z wierzchu wygląda na zadbaną, ale wystarczy odwiedzić chociażby stronę pobierania, żeby zobaczyć że… nie wiadomo o co tam chodzi. Tak naprawdę nie wiadomo który obraz jest do czego, od kogo, ani do czego jest przeznaczony, bo nic nie jest opisane. W chwili gdy pierwszy raz tam zajrzałem, na moją płytkę dostępne były tylko trzy systemy, w tej chwili jest ich znacznie więcej, ale ilość nie znaczy od razu jakość:
Android – zabawka, mam już taką w telefonie, nie sprawdzałem, ponoć chodzi jak ślimak.
Raspbian – port systemu z Raspberry Pi.
Lubuntu – port systemu Lubuntu – gotowa do użycia wersja desktop.
Ubuntu/Debian/Server – reszta systemów przeportowana na OPi.
Armbian – dystrybucja dedykowana pod procesory ARM.

armbian-desktopZ tego co się orientuję to wszystkie powyższe porty za wyjątkiem Armbiana i Raspbiana wydawane są przez społeczność orangepi.org, i tylko Raspbian chodzi tak naprawdę dobrze i wspiera dużo peryferiów – chyba wiadomo dla czego. Drugą ciekawą opcją jest Armbian, tutaj widać że Autorzy podeszli do sprawy poważnie i system rozwija się względnie szybko i w dobrym kierunku – i tego systemu będę się trzymał. Oczywiście równie dobrze możesz skorzystać z Raspbiana, bo czemu nie. Aby pobrać obraz systemu przechodzimy na stronę pobierania Armbian i szukamy naszej płytki. Dla mojej płytki PC+ dostępne są dwie wersje Armbiana – jessie desktop oraz jessie server (na chwilę pisania tego tekstu, czyli początek grudnia 2016). Jak nietrudno się domyśleć wersja desktop to ta wersja z pulpitem i okienkami i preinstalowanymi programami, a wersja server to wersja typowo serwerowa, gdzie jedyny interfejs z użytkownikiem to terminal konsoli. Oczywiście gdybym wybrał wersję desktop to wpis zaraz by się zakończył, bo wystarczy ją zainstalować i… używać. Wersja server wymaga trochę pracy, i sporo nauki dla takiego n00ba jak ja. Na etapie podejmowania tej decyzji nawet nie miałem pojęcia o co chodzi z tą konsolą, i jak do cholery da się w tym wszystkim połapać?

Mamy już płytkę, mamy już zasilanie, potrzebna jeszcze będzie karta SD przynajmniej 8GB. Choć ja pierwsze testowe uruchomienie wykonałem na jakiejś powolnej karcie 2GB, więc to nie jest jakiś specjalny wymóg, ale jak już robić to porządnie. Jeśli nie mamy innej pamięci, to nasz cały system będziemy trzymać właśnie na karcie SD. Powinna ona być pojemna i szybka. Jeśli system będziemy później przenosili na dysk twardy, pendrive, czy pamięć wewnętrzną, to karta może być byle jaka – choć autorzy ostrzegają że taka karta może przysporzyć problemów przy instalacji i pierwszej aktualizacji.

Obraz systemu

Do zapisania obrazu systemu na karcie SD będziemy potrzebowali jeszcze kilka rzeczy. Czytnik kart SD, program do rozpakowywania archiwów skompresowanych (np. darmowy 7-zip), oraz program do „wypalenia” obrazu na karcie – czyli najlepiej Etcher (weryfikuje obraz po nagraniu) lub Win32DiskImager (prosty i lekki, umożliwa też odczyt do pliku). Po pobraniu pliku 7z wypakowujemy go sobie w dowolne miejsce, obraz będzie zajmował około 1.5GB więc jeśli tak jak ja bezmyślnie walisz wszystko na ten biedny pulpit, to się chwilę zastanów :) Obsługa programu Etcher sprowadza się do wskazania głównego pliku *.IMG, wybrania dysku (tylko dyski przenośnie powinny być dostępne do wyboru, ale upewnij się że wybierasz właściwy dysk aby nie stracić wszystkich zdjęć z bierzmowania), i kliknięcia na Flash!. Program poprosi o podniesienie uprawnień, bo będzie chciał uzyskać bezpośredni dostęp do karty pamięci. W przypadku Win32DiskImager wszystko wygląda praktycznie tak samo. Po wszystkim windows będzie proponował formatowanie karty pamięci, bo jest ona teraz sformatowana w systemie ext4 którego windows nie umie (nie rób tego).
etcher

No to teraz najprostszy etap. Włóż kartę w gniazdo na płytce, włącz zasilanie, i pozwól jej działać. Pierwsze uruchomienie potrwa trochę dłużej, może dwie lub trzy minuty, potem normalny start systemu będzie trwał 20-30 sekund. Ale ale. A skąd wiedzieć co tam się dzieje? No to mamy dwie opcje. Dla wersji desktop podłączamy dowolny TV lub monitor pod gniazdo HDMI, a do portów USB klawiaturę i mysz. No, dobrze będzie to zrobić przed włączeniem zasilania. Dla wersji server także możemy podłączyć monitor i klawiaturę, ale do dyspozycji i tak będziemy mieli jedynie powłokę tekstową. Bądźmy od razu PRO i podłączmy się do niej przez zdalny terminal protokołem SSH, to w ten sposób będziemy zarządzać serwerem przez 99% czasu.

Router

Co będzie potrzebne? Przewód ethernet którym połączymy naszą płytkę z wolnym portem LAN w naszym routerze, na pewno masz ich kilka w pudełku po routerze/modemie. Jeśli na płytce mamy WiFi, i chcemy się nim połączyć, to i tak nie zrobimy tego na tym etapie. Najpierw kabelek. Aby wszystko miało ręce i nogi, przypiszemy teraz do naszej płytki stały adres w sieci lokalnej. W tym celu przechodzimy do karty DHCP Client List routera, i kopiujemy adres MAC płytki:
router1

Dodajemy nowy wpis w karcie Address Reservation, przeklejamy adres MAC, i podajemy adres IP który chcemy nadać naszej płytce:
router2

Zapisujemy nowy wpis, i w karcie DHCP Client List można sprawdzić czy adres został ustawiony poprawnie. Jeśli nowy adres jest inny niż ten nadany automatycznie, to prawdopodobnie będzie trzeba zrestartować płytkę Orange Pi aby pojawiła się pod nowym adresem (taką operację dobrze będzie wykonać jeszcze przed instalacją systemu aby przypadkowo jej nie przerwać):
router3

Zdalne zarządzanie

Można próbować połączyć się do płytki po SSH – nie wiem jak inne obrazy, ale Armbian ma tą usługę włączoną od samego początku. Co akurat jest świetne, bo jeśli nie masz klawiatury na USB (tak jak ja) to nie musisz jej pożyczać. Tak więc pora pobrać ostatni program – Putty – który posłuży jako zdalny terminal. Ale możesz skorzystać z dowolnego innego programu który obsługuje takie połączenie. Po włączeniu pojawi się okno w którym należy podać dane do zalogowania. Podaj adres sieciowy który ustawiłeś w routerze, port 22 bez zmian, SSH bez zmian, kliknij Open, zatwierdź ostrzeżenie które wyskoczy, i voila.
terminal1

Tutaj ścieżki wersji desktop i server po raz ostatni się zbiegają, niezależnie od tego czy łączymy się przez SSH czy patrzymy na telewizor, musimy się po raz pierwszy zalogować – jako root. Root, to taki admin wszystkich adminów, ma uprawnienia do wszystkiego i może robić wszystko – ale tylko we własnym domku. Dla dystrybucji Armbian domyślny login to root, a domyślne hasło to 1234.
terminal2

Następnie system poprosi o zmianę tego domyślnego hasła, a potem poprosi o stworzenie nowego konta z którego będziemy już normalnie korzystać. Po prostu podaj nazwę i hasło, reszta danych jest zbędna, przeklikaj enterem, na końcu zatwierdź klawiszem Y. Po prostu będziemy mieli dwa konta. Pierwsze root z najwyższymi prawami, i drugie też administracyjne ale trochę bardziej bezpieczne – i to właśnie z tego konta wskazane jest zarządzanie systemem.
terminal3

W wersji desktop załaduje się pulpit, a w wersji server dopiero teraz zacznie się zabawa litania. Trzeba będzie zainstalować i skonfigurować wszystko co potrzebne do działania serwera – no niestety, nazwa może wprowadzać w błąd, wersja serwer to nie jest coś do czego wystarczy wrzucić swój index.html i już będzie w internecie. No, i trzeba będzie przenieść ten upierdliwy wordpress, co zajęło mi dużo więcej czasu niż uruchomienie samego serwera. A o tym będzie później :)

PRO TIP: Aby nie musieć logować się za każdym razem przy łączeniu do konsoli, zrób sobie na pulpicie skrót do Putty, i wyedytuj go dopisując dodatkowe parametry:
„C:\Program Files (x86)\PuTTY\putty.exe” -ssh n00b@192.168.2.110 -pw dupa.8
Rzecz jasna trzeba podstawić nazwę użytkownika, adres, oraz hasło (polecam hasło „dupa.8” – nie do złamania). Uruchomienie programu z takiego skrótu spowoduje automatyczne zalogowanie, choć system i tak poprosi o podanie hasła jeśli spróbujemy dokonać w nim jakichś zmian. To tak na wypadek gdybyśmy sobie poszli nie wylogowując się z sesji, i ktoś inny zasiadłby do komputera (nie dotyczy konta root).

Do zarządzania potrzebny będzie (może nie tyle potrzebny co na pewno się przyda) jeszcze jeden program na wingrozę – WinSCP. Będzie łączył on się z naszym minikomputerem poprzez protokół SCP i umożliwi przesyłanie plików tak jak klient FTP, tyle że będzie odbywało się to dużo szybciej i sprawniej (btw, serwer FTP jest na naszym urządzeniu nieobecny, jeśli jest nam potrzebny, trzeba go zainstalować i skonfigurować). Utworzenie połączenia będzie wyglądało bardzo podobnie jak w przypadku terminala Putty. Wybieramy protokół SCP, podajemy adres, wpisujemy nazwę użytkownika oraz hasło, i to wszystko. Jak widzisz użyłem użytkownika root – tylko w ten sposób będzie można bezproblemowo przesyłać pliki. Program umożliwi też proste otwieranie i edycję plików konfiguracyjnych, bo taka edycja w terminalu zapewne przerasta każdego n00ba ze mną na czele.
winscp1

PRO TIP 2: Aby nie musieć logować się za każdym razem przy łączeniu przez SCP, podczas tworzenia nowego połączenia kliknij w Zapisz, i w nowym oknie zaptaszkuj obydwie opcje. Kliknij OK, a potem Logowanie. Na pulpicie pojawi się skrót który nas automatycznie zaloguje do sesji. Oczywiście zapisywanie hasła jest opcjonalne, bez tego będzie trzeba podawać je za każdym uruchomieniem programu.

PRO TIP 3: Jeśli do naszej maszyny chcemy mieć dostęp zdalny, tzn spoza naszej sieci lokalnej, na routerze wystarczy przekierować połączenia przychodzące z portu 22 i wskazać port 22 naszego Orange Pi.

Jeśli do konsoli będziesz się logować jako root, nie będziesz mieć żadnych ograniczeń w zarządzaniu i polecam ten sposób. Jeśli logujesz się jako n00b (utworzone konto z prawami administratora), to praktycznie przed każdym „ważniejszym” poleceniem lub przed takim które próbuje coś zapisać lub zmienić w systemie, będzie trzeba dodać sudo, np. sudo hwclock -r – bez tego system będzie wywalał że albo nie masz odpowiednich uprawnień, albo że nie znaleziono tego co wpisujesz (bo na takim koncie powinno się wpisywać pełne ścieżki). Przedrostek sudo rozwiązuje ten „problem”. Konsola również co jakiś czas będzie prosiła o ponowne wpisanie swojego hasła, to na wypadek gdybyś odszedł od komputera bez wylogowania, np przy dostępie zdalnym. Logując się jako root nie ma żadnych ograniczeń, ale ze względów bezpieczeństwa loguj się w ten sposób tylko we własnej sieci lokalnej.

Jeśli chodzi o edycję plików, to możesz robić to poprzez wbudowany edytor w WinSCP, lub bezpośrednio w oknie konsoli. W WinSCP wystarczy dwukrotnie kliknąć na plik aby przejść do jego edycji, a potem ctrl+s aby zapisać zmiany, jest to bardzo proste. W systemie możesz korzystać z różnych edytorów tekstu, np z edytora nano. Bardzo prosty do okiełznania przez początkującego n00ba. Aby edytować w ten sposób plik, użyj nano /lib/udev/hwclock-set. Przesuwaj kursor strzałkami na klawiaturze i edytuj tak jak każdym innym edytorem. Aby zapisać, użyj ctrl+x, a następnie potwierdź y i zatwierdź plik przyciskiem enter (tutaj możesz też zapisać go pod nową nazwą). WinSCP jednak okazuje się bardzo przydatny podczas przenoszenia czy kopiowania plików, bo mamy w jego oknie bezpośredni podgląd na wszystkie katalogi. Robienie tego z konsoli może być bardzo trudne i nieintuicyjne.
nano

Synchronizacja czasu NTP

Problemu z utrzymaniem czasu (zabrzmiało jak problem z utrzymaniem moczu, ehh te reklamy) nie ma jeśli płytka jest na stałe podłączona do internetu, bowiem cały czas działa usługa NTP czyli usługa synchronizacji czasu – więc po restarcie czas ustawi się sam. Problem pojawi się jeśli płytka nie jest na stałe podłączona do internetu, lub jeśli Twój dostawca internetu jest tak samo bystry jak mój i najzwyczajniej w świecie zablokował port 123, bo jak twierdzi, służy on do rozsyłania spamu (sic!). Tak naprawdę przy pomocy NTP można robić całkiem skuteczny atak DDoS, ale czy nie lepiej odfiltrować adresy podatnych serwerów NTP niż blokować całą usługę? Może, nie znam się. Ale do dostawcy można zadzwonić, powisieć 10 minut na infolinii, i odblokować NTP. Lub pokombinować, można zainstalować alternatywnego klienta NTP – OpenNTPD który omija restrykcje na port 123.

Primo ultimo – ustaw swoją strefę czasową. Wykonanie dpkg-reconfigure tzdata spowoduje uruchomienie konfiguratora, gdzie wybierz kontynent i miasto – dzięki temu będziesz mieć normalny ludzki format czasu, np. 13:20 zamiast imperialnego wynalazku 1:20PM. Aby odczytać czas, użyj polecenia date które zwróci datę oraz godzinę. Aby ustawić czas, użyj polecenia date -s „mm/dd/yyyy HH:MM:SS”, przykładowo date -s „02/12/2017 17:47”, co ustawi nam 12 lutego 2017, godz 17:47. Jak widzisz format daty jest nadal „od dupy strony”, a to dla tego że w systemie mamy wybrany język angielski – ale szczerze mówiąc w niczym mi to nie przeszkadza.


Aby zmienić klienta NTP, najpierw odinstaluj domyślnego poprzez apt-get remove ntp, a następnie apt-get install openntpd aby zainstalować nowego – to naprawdę jest tak proste. System sam wyszuka i pobierze z repozytorium odpowiednie pliki, wypakuje je, i zainstaluje. Aby sprawdzić działanie usługi, użyj service openntpd status – powinny być widoczne statusy typu adjusting local clock by xxxx s.

Niestety w przeciwieństwie do zwykłego NTPD, OpenNTPD nie ustawia czasu od razu, ale kalibruje go w bardzo małych kroczkach. A może to i dobrze? Nagła zmiana czasu nawet o kilka sekund mogłaby nieźle namieszać na jakiejś maszynie której działanie ściśle opiera się o jakiś harmonogram. W przypadku nagłego przeskoku czasu niektóre zadania mogłyby zostać wykonane dwukrotnie, a niektóre wcale. Jeśli płytka została zresetowana i nie ma żadnego innego źródła czasu, to pamiętaj aby po jej starcie uruchomić ntpd -s co wymusi aktualizację czasu. Dodanie takiego polecenia przy starcie niewiele da, bo na samym początku usługa nie jest jeszcze połączona z serwerami czasu. A jeśli korzystasz z zegara RTC, to nie rób nic, płytka pobierze z niego czas, a OpenNTPD będzie go ewentualnie powoli kalibrował.

Zegar czasu rzeczywistego RTC

orangepi_ds3231Jeśli chodzi o zegar sprzętowy, to jest to jakiś słaby żart ze strony producentów. I nie tylko o OPi tutaj chodzi, w innych płytkach jest to samo. Nie ma prawdziwego zegara czasu rzeczywistego – czyli RTC. A jak jest, to nie spełnia on swojej funkcji, bo nie przewidziano mu zasilania bateryjnego. Stąd w praktycznie każdej instalacji znajdziemy program „fake-hwclock” który udaje RTC i występuje w systemie jako rtc0. Program po prostu zapisuje czas do pliku podczas wyłączania płytki, a po ponownym uruchomieniu go odczytuje. Jeśli płytka była wyłączona przez godzinę, to nasz zegar będzie się późnił o godzinę. I niestety, NTP może odmówić synchronizacji czasu bo jest to zbyt duża różnica. Gdyby nie fake-hwclock, czas cofnąłby się do roku 1970, jeszcze przed wynalezieniem pierwszego mikroprocesora. No i niestety czasem tak się dzieje.

Na zdjęciu widzisz moduł z układem DS3231 i baterią, który kupiłem na ali (aliexpress – szukaj DS3231 module) w cenie dwóch piw. Temu zegarowi niestraszne resety i zaniki zasilania nawet na długie lata. Takie coś będzie niezbędne jeśli płytka ma pracować bez dostępu do internetu, np jako jakiś logger na jakimś zadupiu. Lub oczywiście RTC można używać równolegle z NTP, co zapewni jeszcze większą stabilność czasu – w przypadku serwerów to całkiem ważne. Moduł wpiąłem w piny interfejsu I2C0/TWI0, bo bardzo ładnie pasują one do zakupionego modułu i nic nie trzeba przerabiać (rozpiska pinów jest w pierwszej części). A jeśli myślisz że taki moduł wystarczy tylko wpiąć w płytkę to się grubo mylisz… Ile ja się namęczyłem żeby zmusić go do działania.

Opcjonalne kroki to wykrycie zegara:
1. Instalujemy narzędzie do odczytu magistrali i2c apt-get install i2c-tools
2. Sprawdzamy czy nasz RTC jest widoczny i2cdetect -y 0
Jeśli RTC podłączyliśmy pod i2c0, jeśli pod i2c1 to dajemy 1. W wynikach powinniśmy zobaczyć UU lub 68 pod adresem 0x68
rtc-i2cdetect

Chamski sposób:
1. Edytujemy plik nano /etc/rc.local
2. Przed exit 0 dodajemy linie:
echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-0/new_device
sleep 0.5
hwclock -s -f /dev/rtc1

Pierwsza linia powoduje dodanie naszego RTC jako nowego urządzenia. i2c-0 lub i2c-1 oznaczają sprzętowy interfejs i2c pod kóry podłączyliśmy zegar, a 0x68 to adres zegara na tym interfejsie. W drugiej linii mamy 500ms przerwę, jest to czas potrzebny na inicjalizację zegara. Trzecia linia to chamskie ustawienie zegara systemowego wg czasu zegara sprzętowego. Tutaj podajemy rtc0 lub rtc1, ale jeśli w systemie obecny jest fake-hwclock, to na pewno występuje on pod rtc0, więc nasz RTC dostanie kolejną nazwę czyli rtc1.
rtc-ker3

Kulturalny sposób:
1: Edytujemy plik nano /boot/config.txt
Dopisując dtoverlay=i2c-rtc,ds3231 na jego końcu
2: Usuwamy program fake-hwclock:
apt-get remove fake-hwclock
update-rc.d -f fake-hwclock remove
3: Edytujemy plik nano /lib/udev/hwclock-set
I zakomentowujemy fragment kodu dopisując # na początku każdej linii
#if [ -e /run/systemd/system ] ; then
# exit 0
#fi

4: Restart reboot
W teorii powinno to całkowicie usunąć fake-hwclock i zastąpić go naszym RTC pod nazwą rtc0. Dzięki temu zegar powinien być obsługiwany przez system natywnie (skrypt hwclock.sh), czyli bez żadnych wymuszonych synchronizacji czasu. Niestety w Armbian kompletnie to nie działa, ale w Raspbianie powinno być ok.
rtc-ker4

Teraz można sprawdzić działanie:
1. Sprawdzamy poprawność daty date, jeśli jest niepoprawna to wymuszamy synchronizację ntpd -s lub ustawiamy ją ręcznie date -s „mm/dd/yyyy HH:MM:SS”
2. Ustawiamy zegar RTC do czasu systemowego hwclock -w -f /dev/rtc1
3. Wyłączamy system shutdown now, wyłączamy płytkę z prądu na kilka chwil
4. Włączamy i od razu (zanim zadziała NTP) sprawdzamy poprawność daty date – od samego początku powinna być dobrze ustawiona, tak że NTPD będzie miał mało roboty z ustawianiem. Użyj hwclock -r jeśli zegar jest obsługiwany natywnie pod rtc0, lub użyj hwclock -r -f /dev/rtc1 jeśli zegar został dodany pod rtc1.
rtc-check

Aktualizacja systemu

Nic prostszego. Najpierw wklep sudo apt-get update aby zaktualizować całą listę paczek oraz ich wersji, dzięki czemu system będzie wiedział co można zaktualizować. Następnie sudo apt-get upgrade, co wywoła już faktyczną aktualizację. Sam proces aktualizacji może trochę potrwać, w zależności od ilości nieaktualnych paczek, i od prędkości naszej pamięci na której trzymamy system. Tutaj wychodzi czas dostępu o którym pisałem w pierwszej części, przy wyborze karty pamięci. Aktualizacja wypakowuje bardzo dużo małych plików i przewala je z miejsca na miejsce, więc może ona potrwać dłużej niż zwykle przy kiepskiej karcie, a czasami może się wydawać że się zawiesiła. Lub… się zawiesi. Przed wykonaniem aktualizacji upewnij się że masz ustawioną prawidłową datę – jeśli masz rok 1970, aktualizacja prawdopodobnie się zawiesi i będzie trzeba zaczynać od nowa. Jeśli aktualizowany był kernel (jądro systemu) to do wprowadzenia zmian konieczne będzie ponowne uruchomienie systemu. Aby to zrobić, użyj polecenia reboot. Aby wyłączyć urządzenie bez ponownego startu, użyj shutdown -r now. Nigdy nie wyłączaj urządzenia z prądu bez uprzedniego zamknięcia systemu – przy odrobinie pecha uszkodzimy sobie system plików i stracimy dane, lub całkiem ubijemy system.

Przeniesienie systemu na pamięć wewnętrzną

Jeśli nie masz wbudowanej pamięci eMMC to ten krok pomijasz. No chyba, że chcesz go przenieść na inną pamięć, np pendrive lub dysk SSD, o ile ma to sens. Zajrzyj do pierwszej części i sprawdź jaką przepustowość mają poszczególne interfejsy. Nie ma za bardzo sensu umieszczać systemu na pendrive, bo będzie on niewiele szybszy od karty SD. W przypadku płytek ze złączem SATA, również jest bida, chyba że zależy Ci na przestrzeni to możesz użyć jakiegoś dysku. SSD raczej będzie się marnował w takim przypadku, i zwykły mechaniczny HDD wystarczy, ale z drugiej strony dyski SSD pobierają o wiele mniej energii i są mniej problematyczne w tej kwestii od HDD. Pamiętaj, że płytka na poziomie sprzętowym najpierw szuka systemu (a raczej jego bootloadera na specjalnej partycji) na karcie SD, a dopiero potem na pamięci eMMC. To znaczy że nie może wystartować z innego nośnika, SATA lub USB. W przypadku przeniesienia systemu wraz z bootloaderem na eMMC, karta musi być wyjęta, lub musi mieć dodatkową partycję rozruchową która przekieruje „sprzęt” na inny nośnik. Na szczęście ten mechanizm cały czas ewoluuje i być może ten problem uda się niedługo ominąć, bo karta SD jest bardzo wygodnym dodatkowym dyskiem. Aby przenieść system na inną pamięć, wykonaj nand-sata-install.
nand-sata-install

Do wyboru będą trzy opcje:
1. Boot from eMMC – system on eMMC
2. Boot from eMMC – system on SATA or USB
3. Boot from SD – system on SATA or USB

Pierwsza to system na pamięci eMMC wraz z bootloaderem, po przeniesieniu karta SD jest niepotrzebna. Druga to system na zewnętrznej pamięci masowej podłączonej pod SATA lub USB, z bootloaderem w pamięci eMMC – karta SD również niepotrzebna. Trzecia to również SATA/USB, ale z bootloaderem na karcie SD, czyli opcja dla płytek bez pamięci eMMC – do startu zawsze będzie potrzebna karta SD. No i czwarta opcja, system z bootloaderem na karcie SD – właśnie tak mamy zrobione. W przypadku opcji SATA/USB, w następnym kroku będzie można wybrać jedną z podłączonych pamięci, ale uwaga, nie są one w żaden sposób opisane, mają nazwy kolejne sda1, sdb1, sdc1 itd, gdzie numerek to kolejna partycja danego urządzenia – więc wiemy niewiele. Dla pewności usuńmy wszystkie pamięci oprócz tej jednej potrzebnej. Proces przenoszenia może trochę potrwać (do 20 minut na nowym „niezaśmieconym” systemie), w zależności od tego ile mamy danych i jak szybkie są nośniki. Po zakończeniu wyłącz płytkę, wyjmij kartę, i włącz – system wystartuje z nowej pamięci. Polecenie nand-sata-install nie przenosi systemu ale po prostu go kopiuje. Jeśli nie wyjmiesz karty SD z gniazda to system wystartuje z karty, bo ta ma zawsze pierwszeństwo. Oczywiście nie musisz teraz robić tych przenosin, możesz je zrobić na samym końcu jak już wszystko będzie działało.
nand-sata-install2

Z innych przydatnych rzeczy, zainstaluj apt-get install usbmount dzięki czemu każdy wpięty pendrive zostanie automatycznie zamontowany w katalogu /media/.

Pełne logi systemu dostępne są w pliku /var/log/syslgog – warto tam zajrzeć w razie kłopotów, wtedy na pewno będziemy wiedzieli jeszcze mniej niż na początku :)

W OPi przycisk na obudowie jest bezużyteczny. Można go przypisać do praktycznie dowolnej funkcji, ale najbardziej sensowna wydaje się być funkcja wyłączania. Aby to zrobić wykonaj te instrukcje. Płytka fizycznie się nie wyłączy bo ciągle jest zasilana, ale system zostanie bezpiecznie zamknięty, bez potrzeby robienia tego z konsoli.

RPi-monitor. Bardzo fajny i przejrzysty monitor podstawowych zasobów dla naszej płytki. Instalujemy za pomocą armbianmonitor -r… i to wszystko. Monitor dostępny jest na porcie 8888, czyli w moim przypadku jest to adres 192.168.2.110:8888. Jeśli wystawimy naszą płytkę na świat (czyt. do globalnego internetu), to będziemy mieli również dostęp do tego monitora.

Do tej pory wszystko działa? Świetnie. Zrób sobie kopię całej karty, na wypadek gdybyśmy za bardzo namieszali w systemie w kolejnych krokach. Zawsze to nie będzie trzeba robić wszystkiego od nowa. Użyj programu Win32 Disk Imager, i zrzuć nim zawartość całej karty do nowego pliku .img, dzięki temu będzie można łatwo go przywrócić na kartę. Ale uwaga, jeśli masz kartę 32GB, to program utworzy na dysku 32GB plik.

No to mamy jako taką podstawę do dalszych „zabaw”.

4.75 avg. rating (94% score) - 8 votes

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Proszę pozostawić te dwa pola tak jak są: