Archiwa tagu: postmarketOS

Smartfony #2: Działający telefon? A komu to potrzebne?

samsung-s6500d:

Ten telefon ma „działający” port systemu pmos, o ile za działający uznać telefon, który restartuje się zawsze po 2 minutach. Chciałem jednak spróbować wgrać na niego najnowszy kernel Linuxa, gdzie pojawia się problem.

Przed powstaniem kernela, który używa dosyć prostych w edycji i utrzymaniu plików dtb wszystkie informacje o telefonie, SoC i innych komponentach były bezpośrednio wkomponowane w pliki źródłowe kernela, co utrudnia edycję oraz aktualizację do nowego kernela. Musiałbym więc napisać od zera plik dtb opierając się na plikach źródłowych starej wersji kernela dostępnej dla tego urządzenia. Jako że miło jest widzieć co się robi, potrzebuję jakiegoś rodzaju wyjścia, żeby wiedzieć co się dzieje w środku telefonu. Niestety, pisząc plik dtb od zera muszę się pogodzić z tym, że nie będzie działać dźwięk, wyświetlacz, USB i w zasadzie nic co mogłoby mi pomóc :/. Jest jednak jedna rzecz, która powinna działać zawsze: UART(patrz słowniczek), czyli stary dobry tryb tekstowy.

Tutaj pojawia się problem, a w zasadzie kilka problemów. Pierwszy problem to gdzie znajduje się fizycznie w urządzeniu port UART, co na szczęście w Samsungach nie powinno stanowić dużego problemu. Wtyczka micro-USB posiada 5 pinów, w przeciwieństwie do czterech w standardowej wtyczce USB w komputerze. Podłączając różne oporniki pomiędzy uziemienie i pin ID (to ten dodatkowy) telefon zmienia działanie portu USB.

Gdy piny te są niepodłączone port USB działa w swoim normalnym trybie, umożliwiając podłączenia do komputera; 300kΩ — telefon wchodzi do trybu download/fastboot, a na niektórych urządzeniach znika żółty trójkąt ostrzegający o nieoficjalnym oprogramowaniu (niestety nie tutaj).

Jednak tryb UART sprawił mi pewien kłopot, ponieważ istnieje kilka trybów o podobnych nazwach, ale tylko kilka z nich będzie spełniać mój cel. Zbudowałem więc małe pudełko żeby móc przetestować wszystkie popularne wartości oporników, co powinno mocno ułatwić tę część zadania.

Drugi problem jest taki, co jest potrzebne w samym pliku dtb żeby uruchomić port UART lub wypisać jakikolwiek tekst na wyjście szeregowe, co pozostaje na razie zagadką którą będę chyba musiał rozwiązać eksperymentalnie. Na razie myślę nad kilkoma rozwiązaniami: pierwsze to użyć „earlycon”, który, w teorii, wymaga tylko podania adresu gdzie jest UART i nadziei, że wszystko stanie się automatycznie; druga opcja natomiast wymaga zdefiniowania gdzie jest port UART, jakie ma parametry, z czego korzysta itp, a to wiąże się z przeczesywaniem plików starego kernela w poszukiwaniu odpowiedzi.

 

posłowie:

Nieco się rozpisałem w tym wpisie, jeżeli chodzi o telefony to pewnie skupię się na Samsungu, natomiast kolejna część cyklu będzie musiała nieco zaczekać gdyż mam kilka ważniejszych spraw na oku, w niedalekiej przyszłości jest możliwość pojawienia się krótkiego wpisu o VR z wykorzystaniem Google Cardboard 🙂

słowniczek:

SoC – serce twojego smatfona, jeden chip zawierający w sobie procesor, kartę graficzną, modem(to co odpowiada za połączenie z siecią komórkową) i kilka innych rzeczy

DTS to skompilowany plik DTB, czyli Device tree, pliku zawierającego informację o wszystkich podzespołach urządzenia, takich jak procesor, pamięć, wyświetlacz itd., co pozwala zamiast kompilować osobny kernel dostosowany do jednego urządzenia zrobić jeden ogólniejszy, który to podczas startu odczyta jakie sprzęty są dostępne i je uruchomi.

UART (znane również jako połączenie szeregowe, rs232, port COM)— bardzo prosty sposób komunikacji, bardzo niskie wymagania odnośnie wymaganej pracy zanim zacznie działać

Smartfony #1: dwie cegły w jeden dzień

Początek serii o smartfonach na których eksperymentuję i próbuję uruchomić system postmarketOS.

auchan-s6s5in3g:

Okazuje się, że byłem w stanie wgrać recovery na ten sam SoC(patrz słowniczek), ale pochodzące z innego telefonu, co pozwoliło mi je odpalić, jednocześnie uceglając Androida :/. Nie ma obrazu, ale adb działa, co wystarczyło aby wykonać kopię i wyciągnąć kilka interesujących rzeczy, jak na przykład plik dts(patrz słowniczek), który to może bardzo uprościć sprawę z portowaniem pmos. Dlaczego? Jest pewna szansa, że posiadając ogólny kernel dla urządzeń z SoC firmy Spreadtrum oraz dołączając do niego wyciągnięty plik dts uda mi się odpalić najnowszego Linuxa na telefonie.

sony-taoshan:

Kolejny telefon trafił do mojej kolekcji, jest dla niego dostępny kernel LineageOS, co w teorii powinno mocno uprościć proces portowania pmos. O naiwny ja. Po wgraniu pmos kernel się nie uruchamiał, a w rezultacie i telefon. Pomyślałem więc o zrobieniu kopii zapasowej całego telefonu na wszelki wypadek zanim go doszczętnie zepsuję, ale potrzebowałem do tego niestandardowego recovery. Niestety, o ile większość telefonów ma osobno partycje boot i recovery ten nie >:(. Nie mogę więc tak po prostu wgrać recovery, bo nadpiszę aktualnie używany kernel, przez co Android nie wystartuje. Musiałbym więc dla każdego nowego systemu/kernela dopakować do wgrywanego obrazu pliki trybu recovery co będzie denerwujące. Na razie więc mam telefon z niedziałającym Androidem, bez kopii zapasowej, czekający na przypływ cierpliwości z mojej strony.

słowniczek:

SoC – serce twojego smatfona, jeden chip zawierający w sobie procesor, kartę graficzną, modem(to co odpowiada za połączenie z siecią komórkową) i kilka innych rzeczy

DTS to skompilowany plik DTB, czyli Device tree, pliku zawierającego informację o wszystkich podzespołach urządzenia, takich jak procesor, pamięć, wyświetlacz itd., co pozwala zamiast kompilować osobny kernel dostosowany do jednego urządzenia zrobić jeden ogólniejszy, który to podczas startu odczyta jakie sprzęty są dostępne i je uruchomi.

fastboot – specjalny tryb telefonu, który pozwala na instalację nowego oprogramowania, ale robi to  poprzez całkowitą podmianę partycji,ne pozwalając na podmianę pojedynczych plików

recovery – specjalny tryb telefonu, który pozwala na instalację nowego oprogramowania wraz z aktualizacją pojedynczych plików; przywrócenie telefonu do ustawień fabrycznych oraz wykonanie kopii zapasowej

postmarketOS i kreski na papierze

Zainteresowałem się systemem postmarketOS, ciekawy projekt dla starszych i słabych telefonów aby tchnąć w nie nowe życie, ale jak na razie jest w bardzo wczesnej fazie i mało co działa, wliczając w to dzwonienie 😛 Przeportowałem go na Samsunga galaxy Mini 2 i będę próbował na niesamowicie mało znany Auchan Selecline Smartphone 5″ (auchan-s6s5in3g). Pewnie jeszcze rozwinę ten temat na blogu, ale to prawdopodobnie po sesji.

Zacząłem także z powrotem rysować (nauka od podstaw to bardziej odpowiednia nazwa), część swoich wypocin i porażek na pewno pojawi się na tumblrze, ten blog zostawię na bardziej chaotyczne wpisy, które służą głównie mojemu poukładaniu myśli,a są stanowczo za długie na Twittera. Swoją drogą cieszę się, ze w końcu wymyśliłem co gdzie publikować 😀

A konsolkę muszę przebadać, bo się kolorki popsuły (albo masa albo oporniki poszły)

To Samsung Galaxy Mini 2 z postmarketOS i interfejsem Wayland. Ten wygląd się jeszcze zmieni