Linux na HTC Universalu

Pominę wersję z repartycjonowaniem karty – nawet jej nie próbowałem. To co opiszę to jak utworzyć wirtualną partycję (która w rzeczywistości jest plikiem na naszej karcie pamięci) i z niej odpalić linuxa.

Angstorm Linux

Angstorm to dystrybucja wywodząca się z Familiara. Podobno działa wszystko, ale mnie nie udało się uzyskać pod nią dźwięku ani wifi.

Tutaj nie będzie specjalnej filozofii. Wchodzimy na stronę http://linuxtogo.org/~htcpxa/htcuniversal/index.html . Nie przejmujcie się tamtymi opisami, są one dla nas nie ważne.

Teraz klikamy na link Qtopia-image i pobieramy plik Qtopia-htcuniversal.exe. To jest HaRET zmodyfikowany tak żeby odpalał z wirtualnej partycji, lub gdy takiej nie miał, utworzył ją i rozpakował na nią obraz (tzw. rootfs) linuxa.

Teraz wybieramy wersję. Mamy do wyboru obrazy ze środowiskami OpenMoko, Qtopia, GPE, OPIE i GPEPhone. Przy każdym macie odnośnik „screenshots”, tam możecie je sobie obejżeć. Ja osobiście polecam OPIE, IMHO najlepiej działający. Jak już wybraliście sobie wersję to klikacie na link pod nią (a więc Angstrom-x11/GPE-image and wince cab file, Qtopia-image, etc. Z listy plików pobieramy ten z rozszerzeniem tar.bz2. Po pobraniu zmieniamy jego nazwę na qtopia.linux.rootfs.tar.bz2.

Uwaga! OpenMoko występuje tylko w formie CABa, także wystarczy go pobrać i zainstalować na urządzeniu!

Oba pobrane pliki wrzucamy do folderu głównego karty pamięci universala i odpalamy (na UNI) plik Qtopia-htcuniversal.exe. Po 5-6 minutach system odpali (za pierwszym razem robi to się tak długo bo haret tworzy obraz partycji – qtopia.linux.img – i rozpakowuje na niego rootfs). That’s all  :wink:

Titchy Linux

Titchy to dystrybucja oparta o Debiana Sid przeznaczona dla Sharpa Zaurusa SL-CXXXX i Universala oczywiście. Obsługuje ona teoretycznie wszystko oprócz kamer (no i wliczając niestabilny driver WiFi oraz wciąż dorabianą graficzną nakładkę na moduł telefonu), no i jako odmiana Debiana korzysta z jego repozytoriów (Debian/ARM) dzięki czemu mamy bogatą bazę oprogramowania.

Do instalacji tej dystrybucji będziemy potrzebowali dostępu do działającego linuxa na pececie z dostępem do konsoli i konta administratora (uwaga dla userów ubuntu – nie bawimy się tu za pomocą sudo to; sudo tamto. Wystarczy napidać sudo bash lub sudo -i, podać swoje hasło i już jesteśmy w konsoli roota.

Najpierw teoria

Oficjalnym systemem rozprowadzania obrazów debiana jest program jigdo (Jigsaw Download). Tu mamy nieco info o nim: http://www.debian.org/CD/jigdo-cd/. Jak już wspominałem przed chwilą potrzebujemy dostępu do konta roota. Przyda się też podstawowa wiedza o używaniu konsoli linuxowej  :wink:

Na potrzeby tekstu przyjmujemy że katalog domowy roota to /root, katalog usera na którym pracujemy to /home/user, a czytnik SD to /media/card. Pracować będziemy na koncie zwykłego użytownika, na roota wchodzić będziemy przez dowolny emulator konsoli w xwindow (polecam te z opcją kopiuj/wklej)

Którą zamienimy zaraz w praktykę
Na początek potrzebujemy programu jigdo-lite. Pobierzemy go stąd: http://atterer.net/jigdo/jigdo-bin-0.7.3.tar.bz2. Archiwum rozpakowujemy z konsoli czy graficznym narzędziem – jak kto woli. Nazwę rozpakowanego podkatalogu z plikami (jest katalog w katalogu…) dla ułatwienia zmieniamy sobie na jigdo, a sam katalog przenosimy do /home/user. Teraz otwieramy terminal, logujemy się na konto roota i uruchamiamy jidgo:

Cytuj
su (lub sudo -i)
Password:
root@linux:~# cd /home/user/jigdo
root@linux:/home/user/jigdo# ./jigdo-lite

Program odpali i zapyta nas o adres do pliku .jigdo (plik informacyjny). Podajemy mu:

Cytuj

Program pobierze sobie plik i zapyta nas czy mamy już CD z systemem (żeby nie ściągać niepotrzebnych pakietów). My oczywiście ich nie mamy, więc na pytanie

Cytuj
Files to scan:

naciskamy enter. Rozpoczyna się ściąganie rootfs-a. Ma on około 45mb.

Program zakończy pracę komunikatem:

Cytuj
Finished!
The fact that you got this far is a strong indication that `titchy-rootfs.tar’
was generated correctly. I will perform an additional, final check,
which you can interrupt safely with Ctrl-C if you do not want to wait.

OK: Checksums match, image is good!

Jak odrazu widzimy, plik z rootfs to titchy-rootfs.tar

Teraz tworzymy sobie folder w którym będziemy „pracować” i rozpakowujemy do niego roorfs

Cytuj
root@linux:/home/user/jigdo# mkdir /root/rootfs
root@linux:/home/user/jigdo# cd /root/rootfs
root@linux:~/rootfs# tar -xvf /home/user/jigdo/titchy-rootfs.tar.bz2

Po rozpakowaniu archiwum przechodzimy do utworzenia obrazu partycji. Poleceniem

Cytuj
root@linux:~/rootfs# cd ../
root@linux:~# dd if=/dev/zero of=rootfs.img bs=1k count=800000

tworzymy obraz partycji o wielkości 800mb (oczywiście jak kto woli, można liczbę count zmienić, zmieniając tym samym rozmiar, ale IMHO 800mb jest „akurat”. Teraz formatujemy obraz jako EXT2

Cytuj
root@linux:~# mkfs.ext2 -c rootfs.img
mke2fs 1.30.8 (13-Mar-2008)
rootfs.img is not a block special device.
Proceed anyway? (y,n) y

System sformatuje obraz, teraz czas go zamontować. W tym celu tworzymy katalog /media/image i montujemy tam obraz.

Cytuj
root@linux:~# mkdir /media/image
root@linux:~# mount -o loop rootfs.img /media/image

A następnie kopiujemy rozpakowany rootfs do zamontowanego obrazu

Cytuj
root@linux:~# cp -av /root/rootfs/* /media/image/

Odmontowujemy obraz

Cytuj
root@linux:~# umount /media/image

I kopiujemy go na kartę pamięci

Cytuj
root@linux:~# cp /root/rootfs.img /media/card

I zmieniamy nazwę pliku na znaną z opisu dla angsrtoma qtopia-linux.img

Cytuj
root@linux:~# cd /media/card
root@linux:/media/card#mv rootfs.img qtopia-linux.img

To już prawie koniec. Teraz pobieramy tylko plik http://www.linuxtogo.org/~htcpxa/htcuniversal/images/Qtopia/Qtopia-htcuniversal.exe, wrzucamy go na kartę pamięci, tą wkładamy do universala i odpalamy qtopia-htcuniversal.exe

Inne obrazy
Jest jeszcze obraz http://shiroikuma.com/uni/shiroikuma-universal-rootfs-20080507.tar.bz2 zawierający w sobie środowisko IceWM (tamten jest „goły i wesoły, zabawę zacznijcie więc od ustawienia wifi w /etc/network/interfaces i apt-get update) i trochę programów. Instalujemy go analogicznie do opisu wyżej, z tym że zamiast komendy tar -xvf będzie tar -xjf

Uwagi ogólne

Przed startem linuxa wyłączcie moduł WiFi – inaczej nie będzie pod linuxem działał dotyk.
Po restarcie z linuxa do windy za pomocą shutdown -r now czy tam reboot czy tam czego jeszcze, nie będzie działać klawiatura i dotyk pod windą. Dlatego podczas startowania windowsa (żeby niepotrzebnie nie czekać) robimy softreset.
Karta WiFi jest różnie widziana – u mnie (SPV m5000 czyli uni G3) był to WLAN1, u Serka (XDA Exec czyli uni G4) był to WLAN0.
Sterownik WiFI jest dość niestabilny – zrywa połączenie po różnym czasie pracy, wtedy trzeba go wyłączyć (ifdown wlanX) i jeszcze raz podnieść (ifup wlanX). Co ciekawe uni łączył się z moją siecią bez kłopotu, teraz sypie mi jakieś błędy na łączeniu.
Ze względu na niestabilność WiFi polecam użycie połączenia USB na czas ściągania pakietów. Tu jest opis:
http://wiki.neilandtheresa.co.uk/Titchy_Linux/Tips/Networking/USB

Linki
Support Debiana dla Uni – http://www.oesf.org/forum/index.php?showtopic=25666
Topic o linuksie dla uni na xda-dev – http://forum.xda-developers.com/showthread.php?t=251584
Tithy Linux – http://wiki.neilandtheresa.co.uk/Titchy_Linux
Angstorm dla Uni – http://linuxtogo.org/~htcpxa/htcuniversal/index.html
Strona domowa Angstroma – http://www.angstrom-distribution.org/
Strona domowa Debiana – http://www.debian.org/
Instrukcja uruchomienia połączenia internetowego przez USB (Linux Titchy) – http://forum.pdasite.pl/index.php?topic=370.msg1644#new

 

Cytuj
su (lub sudo -i)
Password:
root@linux:~# cd /home/user/jigdo
root@linux:/home/user/jigdo# ./jigdo-lite

Program odpali i zapyta nas o adres do pliku .jigdo (plik informacyjny). Podajemy mu:

Cytuj

Program pobierze sobie plik i zapyta nas czy mamy już CD z systemem (żeby nie ściągać niepotrzebnych pakietów). My oczywiście ich nie mamy, więc na pytanie

Cytuj
Files to scan:

naciskamy enter. Rozpoczyna się ściąganie rootfs-a. Ma on około 45mb.

Program zakończy pracę komunikatem:

Cytuj
Finished!
The fact that you got this far is a strong indication that `titchy-rootfs.tar’
was generated correctly. I will perform an additional, final check,
which you can interrupt safely with Ctrl-C if you do not want to wait.

OK: Checksums match, image is good!

Jak odrazu widzimy, plik z rootfs to titchy-rootfs.tar

Teraz tworzymy sobie folder w którym będziemy „pracować” i rozpakowujemy do niego roorfs

Cytuj
root@linux:/home/user/jigdo# mkdir /root/rootfs
root@linux:/home/user/jigdo# cd /root/rootfs
root@linux:~/rootfs# tar -xvf /home/user/jigdo/titchy-rootfs.tar.bz2

Po rozpakowaniu archiwum przechodzimy do utworzenia obrazu partycji. Poleceniem

Cytuj
root@linux:~/rootfs# cd ../
root@linux:~# dd if=/dev/zero of=rootfs.img bs=1k count=800000

tworzymy obraz partycji o wielkości 800mb (oczywiście jak kto woli, można liczbę count zmienić, zmieniając tym samym rozmiar, ale IMHO 800mb jest „akurat”. Teraz formatujemy obraz jako EXT2

Cytuj
root@linux:~# mkfs.ext2 -c rootfs.img
mke2fs 1.30.8 (13-Mar-2008)
rootfs.img is not a block special device.
Proceed anyway? (y,n) y

System sformatuje obraz, teraz czas go zamontować. W tym celu tworzymy katalog /media/image i montujemy tam obraz.

Cytuj
root@linux:~# mkdir /media/image
root@linux:~# mount -o loop rootfs.img /media/image

A następnie kopiujemy rozpakowany rootfs do zamontowanego obrazu

Cytuj
root@linux:~# cp -av /root/rootfs/* /media/image/

Odmontowujemy obraz

Cytuj
root@linux:~# umount /media/image

I kopiujemy go na kartę pamięci

Cytuj
root@linux:~# cp /root/rootfs.img /media/card

I zmieniamy nazwę pliku na znaną z opisu dla angsrtoma qtopia-linux.img

Cytuj
root@linux:~# cd /media/card
root@linux:/media/card#mv rootfs.img qtopia-linux.img

To już prawie koniec. Teraz pobieramy tylko plik http://www.linuxtogo.org/~htcpxa/htcuniversal/images/Qtopia/Qtopia-htcuniversal.exe, wrzucamy go na kartę pamięci, tą wkładamy do universala i odpalamy qtopia-htcuniversal.exe

Inne obrazy
Jest jeszcze obraz http://shiroikuma.com/uni/shiroikuma-universal-rootfs-20080507.tar.bz2 zawierający w sobie środowisko IceWM (tamten jest „goły i wesoły, zabawę zacznijcie więc od ustawienia wifi w /etc/network/interfaces i apt-get update) i trochę programów. Instalujemy go analogicznie do opisu wyżej, z tym że zamiast komendy tar -xvf będzie tar -xjf

Uwagi ogólne

Przed startem linuxa wyłączcie moduł WiFi – inaczej nie będzie pod linuxem działał dotyk.
Po restarcie z linuxa do windy za pomocą shutdown -r now czy tam reboot czy tam czego jeszcze, nie będzie działać klawiatura i dotyk pod windą. Dlatego podczas startowania windowsa (żeby niepotrzebnie nie czekać) robimy softreset.
Karta WiFi jest różnie widziana – u mnie (SPV m5000 czyli uni G3) był to WLAN1, u Serka (XDA Exec czyli uni G4) był to WLAN0.
Sterownik WiFI jest dość niestabilny – zrywa połączenie po różnym czasie pracy, wtedy trzeba go wyłączyć (ifdown wlanX) i jeszcze raz podnieść (ifup wlanX). Co ciekawe uni łączył się z moją siecią bez kłopotu, teraz sypie mi jakieś błędy na łączeniu.
Ze względu na niestabilność WiFi polecam użycie połączenia USB na czas ściągania pakietów. Tu jest opis:
http://wiki.neilandtheresa.co.uk/Titchy_Linux/Tips/Networking/USB

Linki
Support Debiana dla Uni – http://www.oesf.org/forum/index.php?showtopic=25666
Topic o linuksie dla uni na xda-dev – http://forum.xda-developers.com/showthread.php?t=251584
Tithy Linux – http://wiki.neilandtheresa.co.uk/Titchy_Linux
Angstorm dla Uni – http://linuxtogo.org/~htcpxa/htcuniversal/index.html
Strona domowa Angstroma – http://www.angstrom-distribution.org/
Strona domowa Debiana – http://www.debian.org/

Komentarze

Autor:
Utworzono: 25 czerwca 2009
Kategorie: Artykuły - Linux
Tagi: , ,

Twitter

Facebook

Sonda

Z jakiego systemu operacyjnego korzystasz?

View Results

Podeślij newsa!
Jeśli widziałeś ciekawe urządzenie lub temat i chciałbyś abyśmy omówili to na łamach PDAsite.pl, skorzystaj z formularza poniżej.

    Imię i nazwisko / ksywka* (pojawi się w newsie, jeśli zostanie wykorzystany)

    Adres email

    Treść wiadomości*

    Przepisz kod z obrazka:*
    captcha