Od jakiegoś czasu posiadam serwerek na OrangePi One. Wszystko byłoby fajnie i nie tworzyłbym kolejnego, gdyby nie to, że coraz bardziej potrzebuję usieciowić skaner w moim urządzeniu wielofunkcyjnym, a Brother nie udostępnia sterowników do skanera pod linuksy o smaku ARM. Przyszła zatem pora by postawić coś na x86. Wygrzebałem z pudła starego netbooka EEE PC 1008HA – w końcu będzie z niego użytek.
Flashowanie BIOSu
Pierwszą rzeczą, na jakiej się skupiłem, to czy można to dziadostwo zabootować z karty SD. USB byłoby zbyt wolne, a ciągłe mielenie HDD (zwłaszcza w nocy) nie jest niczym fajnym. W BIOSie zobaczyłem tylko trzy opcje bootowania: hdd, removable device i CD (mimo że ten laptop napędu optycznego nie ma). Lista wydała się być podejrzanie krótka, więc udałem się na stronę producenta i ściągnąłem nowszą wersję BIOS. Chwila guglania i znalazłem niewindowsowąinstrukcję flashowania, ale i tu nie było zbyt wesoło:
- Mojego laptopa nie było na liście sprawdzonych urządzeń z wbudowanym flasherem
- Link do sugerowanej aplikacji flashującej AFUDOS.EXE nie działał
No nic, spróbujmy w trakim razie z EZFlash. Zakładam partycję FAT na pendrajwie, wrzucam firmware nazywając go 1008HA.ROM, przy butowaniu wciskam CTRL+F2, updater się odpala i… wisi. No pięknie, zbrickowałem sobie laptopa
Na całe szczęście updater nawet nie zaczął działać i mój laptop wciąż żył. Czytam stronę z instrukcjami jeszcze raz i okazało się, że updater jest marudny przy większych/nowszych pendrajwach (np. 4GB USB 2.0, hyhy). Z czeluści gratów odkopałem jakiegoś starutkiego sticka 1GB, próbuję jeszcze raz i… poszło. Najnowszy BIOS zainstalowany. Dodatkowe opcje bootowania się nie pojawiły, ale jak później się okazało, opcja „Removable device” również działa z kartą SD.
Wybór dystrybucji linuksowej
W przypadku sprzętów ARM wybór dystrybucji jest dość prosty:
- Jeśli masz RasPi to instalujesz Raspbiana
- Jeśli masz coś innego i jest to obsługiwane przez Armbiana, to instalujesz Armbiana
- Jeśli masz coś egzotycznego, czego Armbian ani trochę nie obsługuje, to czekasz na jego obsługę albo dajesz sobie spokój
Niestety w przypadku x86 nie ma już tak łatwo. Stwierdziłem, że skoro Armbian bazuje na Ubuntu lub Debianie, to pójdziemy tą samą drogą. Tylko że:
- Ubuntu server jak i desktop w najnowszych wersjach LTS (18.04) nie posiada już wsparcia dla 32-bitowych procesorów. Wersja 16.04 jest wciąż dostępna, ale jej support kończy się w 2021, czyli za dwa lata, więc lepiej znaleźć coś innego.
- Debian (i Ubuntu) nie posiada gotowych obrazów do uruchomienia z SD/USB bez instalacji. To jest mniejsza niedogodność niż ta druga, lecz zniechęcająca dla casuali takich jak ja.
Jakiś czas temu znalazłem w necie informację o takiej abominacji jak Raspberry Pi Desktop, czyli Debianie z interfejsem użykownika z Raspbiana, tyle że pod x86. Żeby było zabawniej, udostępniany jest on jako obraz do nagrania na kartę SD. Bomba, pora dać mu szansę.
Przygody z Raspbianem
Po wrzuceniu na kartę SD podpiąłem laptopa pod zewnętrzny monitor i odpaliłem system. Trochę martwiłem się, czy poradzi sobie ze sterownikami urządzeń, ale okazało się, że niepotrzebnie. System momentalnie wykrył natywną rozdzielczość monitora, bez problemu uruchomił bluetooth i wifi, więc można powiedzieć że wszystko zadziałało od strzału. Niestety ta wersja systemu nie ma wykastrowanej wersji Minecrafta, no ale nie można mieć wszystkiego.
Przy starcie RPi Desktop zapytał się mnie, czy chcę pracować w trybie persistent, usunąć dane trybu persistent, czy zainstalować system na innym nośniku, więc wybrałem to pierwsze. Po uruchomieniu pulpitu nadeszła krótka konfiguracja hasła użytkownika, sieci, języka, a następnie aktualizacje, które trwały bardzo długo. I tu zacząłem podejrzewać, że zrobiłem błąd jakim był wybór trybu persistent. Otóż jeśli można usunąć jego dane, oznacza to że system nie nanosi na siebie zmian a zapisuje je na boku. Takie rozdzielenie trzymanych danych przynosi dodatkowy narzut wydajności, więc wypadałoby jednak zainstalować OS. Zanim to jednak zrobię bootując z USB i instalując na SD, stwierdziłem że wypadałoby sprawdzić wydajność czytnika kart.
Zapis na użytej karcie SD pod moją super-hiper-nowoczesną windowsową maszyną wynosił 15MB/s. W necie znalazłem taki oto test, którego aby odpalić musiałem trochę zmodyfikować:
- Zamieniłem wszystkie wystąpienia „/dev/mmcblk0” na „/dev/sda1”
- Zamieniłem „make –quiet linux-arm” na „make –quiet linux”
Uzyskałem dzięki temu wyniki:
- hdparm: 18.31 MB/s
- dd: 13.5 MB/s
- iozone 4k random read: 3.7 MB/s
- iozone 4k random write: 0.6 MB/s
Pokazuje to, że czytnik SD ma potencjał jeśli chodzi o typowy odczyt z karty SD. Update’y softu będą boleć, ale najwyżej będą one puszczane na noc, czy coś. Pora zatem zainstalować system na karcie używając pendrajwa. Sam zapis obrazu systemu na USB na windowsie „pędził” z prędkością 7MB/s, co pokazuje jak dużo wolniejszy byłby to nośnik. Brrr.
Odpalam instalację Raspberry Pi Desktop, wita mnie instalator Debiana. Nie przełączył rozdzielczości na natywną mojego zewnętrznego wyświetlacza, więc części tekstu nie widziałem. Jakoś przeszedłem dalej, ale wywalił mi błąd „failed to create file system”. Uruchomiłem wersję tekstową i pojawił się ten sam błąd. Dobra, dość. Ściągam net installer Debiana, ruszyło bez problemu. System się zainstalował, instalator zrebootował i… ciemność widzę. No to sobie zainstalowałem system na karcie SD. Chyba jednak OS będzie stał na HDD.