Poniżej opisana jest instalacja linux’a na Cubietruck. CubieTruck z Linuxem, będzie podstawą sprzętowo-systemową dla mojego serwera DomotiGa
Instalacje odbywa się bezpośrednio do pamięci Nand (pamięć zainstalowana na płytce CubieTruck). Z pamięci Nand zainstalowany systemu przenoszony jest do dysku twardego.
Instalacja będzie odbywała się z wykorzystaniem Windows’a. Podobną instalację można wykonać z wykorzystaniem Linux’a
Co będzie wymagane:
- Płytka CubieTruck z podłączonym dyskiem twardym: HDD/SDD. Tutaj jest moja konfiguracja.
- Kabel USB <-> miniUSB – załączony z CubieTruck
- PhoenixSuite dla Windows do flash’owania CubieTruck lub LiveSutie pod Linux’a
- Klient SSH dla Windows np. Putty
Co będzie instalowane:
Oczywiście jest wiele dystrybucji, natomiast na serwer DomotiGa wybrałem dystrybucje lubuntu server.
- System: lubuntu server, kernel: 3.4.79
- Obraz systemu pobrany z: http://dl.cubieboard.org (CubieTruck Community)
- Obraz: lubuntu-server-nand-hdmi.img.gz (wersja ct-lubuntu-server-nand-v2.0)
Uwaga: link do dystrybucji powyżej jest z aktywnym wyjściem HDMI, VGA jest wyłączone. Jeśli potrzebujesz VGA pobierz tą dystrybucję.
Instalacja lubuntu do pamięcie Nand
1. Uruchamiamy PhoneixSuite
Uwaga: przy pierwszym uruchomieniu PhoneixSuite może sprawdzić wersję i zaktualizować się do nowszej. Poniższa instalacja odbywa się na wersji 1.08
2. Przechodzimy do sekcji wyboru Firmware, a następnie wybieramy pobrany wcześniej obraz linux’a
3. Do CubieTruck podłączamy tylko kabel do złącza miniUSB znajdującego się między gniazdami USB a gniazdkiem do słuchawek. W szczególności nie podłączamy kabla zasilającego. Drugi koniec kabla USB nie może być podłączony do PC.
4. Wciskamy przycisk FEL, który znajduje się po prawej stronie przycisku Reset na płytce CubieTruck.
5. Z wciśniętym przyciskiem FEL podłączamy kabel USB do PC
6. Przycisk FEL puszczamy, gdy pojawi się poniższy komunikat w PhoenixSuite
7. Wciskamy przycisk No, a następnie czekamy ok 5 min na załadowanie systemu do CubieTruck ( inne dystrybucje, szczególnie z cięzkim GUI mogą ładować się ponad 10min)
8. Po zakończeniu instalacja pojawi się poniższy komunikat i wtedy można odłączyć już kabel USB
9. Instalacja systemu w pamięci Nand została zakończona.
Pierwsze uruchomienie
Po zainstalowaniu Linux’a CubieTruck jest gotowy do pierwszego włączenia. Podłączamy kabel zasilający, hdmi, klawiaturę USB lub korzystamy z klienta SSH i kabla sieciowego (musimy znać IP adres CubieTruck). W ten sposób można kopiować komendy metodą Kopiuj/Wklej i nie musieć wpisywać wszystkiego ręcznie.
Pierwsze uruchomienie, może trwać kilka minut, ponieważ partycja z systemem operacyjnym (rootfs – root file system, /dev/nandb) jest automatycznie rozszerzana.
Również brak podłączonego kabla sieciowego może spowolnić uruchomienie systemu. Powod oczekiwania na odpowiedź z serwera DHCP – ok 60sek.
Zalecam podłączenie kabla sieciowego, ponieważ kolejne kroki będą wymagały pobrania dodatkowego oprogramowania z Internetu.
Zainstalowana dystrybucja posiada automatyczne logowanie się jako root (Będzie to wyłączane ze względów bezpieczeństwa w kolejnej instrukcji, która napiszę)
Aby zalogować się przez SSH należy użyć użytkownika: linaro, hasło: linaro
Ustawiamy hasło dla użytkownika root:
# sudo -s # passwd
Przenoszenie systemu na dysk twardy
1. Jeśli CubieTruck jest wyłączony uruchamiamy go. Logujemy się jako root lub jako użytkownik: linaro a następnie uruchamiamy sesję super-user’a (root’a)
# su
2. Identyfikujemy dysk twardy w /dev, można to zrobić poprzez uruchomienie komendy
# fdisk -l
Wyszukujemy dysk twardy. Powinien mieć on identyfikator /dev/sda o ile nie ma włożonej, żadnej karty pamięci do CubieTruck.
Uwaga: jeśli dysk będzie miał inny identyfikator niż /dev/sda, poniższe skrypty powinny zostać odpowiednio zmodyfikowane
Przy okazji wyświetlenia informacji o partycjach sprawdzamy, czy w przypadku partycji /dev/nandb nie jest wyświetlony poniższy komunikat:
Disk /dev/nandb doesn’t contain a valid partition table
Jeśli występuje należy wykonać poniższe kroki:
# fdisk /dev/nandb
Wykonać komendę Write (zapisz) poprzez wpisanie komendy – w
Następnie, aby kernel systemu rozpoznał zmiany w partycji należy wykonać reboot systemu lub skorzystać z poniższej komendy:
# partprobe
3. Zakładanie partycji
Dysk będzie miał jedną partycję na, którą zostanie przeniesiony system (rootfs). Uruchamiamy narzędzie do partycjonowania:
# fdisk /dev/sda
Komendy
- p – pokaż wszystkie partycje
- d – usuń partycję
- n – utwórz partycję
- w – zapisz
Kroki:
- wyświetlamy informacje o wszystkich partycjach wpisujemy: p a następnie wciskamy [enter]
- jeśli są jakieś partycje to usuwamy je jedna po drugiej używając komendy – d
- po usunięciu wszystkich partycji zakładamy nową wpisując komendę – n
- wybieramy typ primary – p
- number partycji: 1
- w kolejnych dwóch pytaniach wciskamy enter (oznacza, że używamy całego rozmiaru dysku do utworzenia tej partycji)
- zapisujemy zmiany wpisując komendę – w
4. Formatowanie dysku
# mkfs.ext4 /dev/sda1
5. Przenoszenie Rootfs z pamięci Nand na dysk twardy. Operacja ta potrwa parę minut. W moim przypadku (dysk SSD) 3min.
# dd if=/dev/nandb of=/dev/sda1 bs=1M
6. Rozszerzanie partycji dysku twardego po przeniesieniu Rootfs
- Sprawdzamy, czy nie ma błędów na dysku (u mnie zawsze są)
# e2fsck -f /dev/sda1
- Rozszerzamy partycję
# resize2fs /dev/sda1
7. W tym momencie mamy już Rootfs przeniesiony na dysk twardy. Ostatnie czynności to zmiana parametrów uruchamiana systemu. Czynność polega na edycji pliku uEnv.txt na partycji /dev/nanda i zastąpienie wpisu
nand_root=/dev/nanda
nową wartością
nand_root=/dev/sda1
Kroki:
- Nie jestem dobry w używaniu edytora vi 😉 dlatego korzystam z edytora w Midnight Commander.
# sudo apt-get install mc
- Montowanie partycji /dev/nanda oraz edycja pliky uEnv.txt
# mount /dev/nanda /mnt # mcedit /mnt/uEnv.txt
Modyfikujemy parametr: nand_root
Zalecam również dodanie parametru: rootdelay=3 na koniec extraargs
Parametr ten wstrzymuje montowanie partycji /dev/sda1 na 3 sek. W przypadku dysków HDD dysk może potrzebować chwilę, aby całkowicie się zainicjować. Poniżej jak powinien wyglądać plik uEnv.txt (kliknij, aby powiększyć)
Uwaga: w przypadku pomyłki w tym kroku system może już się nie uruchomić. Wtedy będzie to wymagać ponownego wykonania wszystkich kroków z tej instrukcji.
8. Kończenie przenoszenia systemu
# umount /mnt # sync # reboot
W tym momencie system zostanie ponownie uruchomiony. System powinien zostać odczytywany z dysku. Aby zweryfikować, czy tak jest wystarczy spróbować uruchomić Midnight Commander, którego zainstalowaliśmy w punkcie 7. Oczekiwany rezultat to:
mc: command not found
Midnight Commander zainstalowaliśmy w pamięci Nand, a nie na dysku.
Jeśli Midnight Commander uruchomi się, może to oznacza, że system nie jest odczytywany z dysku.
Zapraszam na forum do dyskusji.