Menu Zamknij

Jeszcze raz o Linuksie na typowym tablecie z Win8.1

2.5 roku temu podjąłem pierwszą próbę zrobienia czegoś ciekawego z tabletem Colorovo CityTab pracującego na Windows 8.1 – na próbie wgrania tam sensownego Linuksa poległem, udało mi się jakimś cudem wgrać Windows 10 który jednak ciut zamula. Ostatnimi czasy tablet służy mi jako dodatkowy wyświetlacz na którym trzymam drobną webaplikację pokazującą zegar kartkowy (zawsze ładnie wyglądały), stan maszyn (projekt sauron3) i dane pogodowe wyciągane z otwartych API. Ot taki dodatek do centrum sterowania wszechświatem. Problem zaczyna się kiedy Windows 10 upiera się że chce zrobić update i wymaga 8GB wolnego dysku podczas gdy sam zużywa jakieś 11 z 16 dostępnych. No i poza chromem nie za wiele da się odpalić żeby system nie umarł z braku ramu.

Wróciłem więc do poddania w wątpliwość czy naprawdę nie da się czegoś sensownego postawić. Znalazłem kilka artykułów żeby ściągnąć gotowy bootloader bootia32.efi ładujący gruba na 32-bitowych dystrybucjach. Okazało się że mam trochę więcej szczęścia bo Debian w wersji x86 zawierał już ten plik i całą resztę niezbędną żeby podnieść system. Nie wiem czy za pierwszym razem to było moje przeoczenie czy Debian nie miał wówczas supportu EFI w wersji dla starych komputerów. Swoją drogą chyba tylko Debian został jedyną dużą dystrybucją z kompilacjami desktopowymi na coś więcej niż x64. Bo oczywiście można stawiać Gentoo (Arch już zerwał support x86 – a więc i sporo pochodnych dystrybucji cierpi) i bawić się w cross-kompilację – tylko że tablet odpalający przeglądarkę internetową i być może coś jeszcze przy okazji nie jest wystarczająco porywającym projektem żeby się w takie cuda bawić.

Debiana wystarczy pobrać (live i386), wgrać na nośnik USB przez Rufusa i można zaczynać zabawę. Oczywiście 2 rzeczy trzeba zrobić: backup (to już z samego debiana raczej) i… pobrać sterowniki WiFi, bo Debian to Debian i na 99% nasz tablet posiada coś niewolnego. Albo pobrać niekoszerną wersję non-free (live i386 non-free). W kwestii identyfikowania sprzętu najprościej posiłkować się devmgmt.msc z Windowsa – lsusb/lspci nie zawsze pomagają na SoC gdzie część urządzeń dostępna jest za dziwnymi magistralami. Dla mojego Colorovo kontroler WiFi (i bluetootha przy okazji) to Realtek 8723BS – wiki debiana ma instrukcje. Chociaż jak się okazuje – nieaktualne bo driver rtl8723bs jest już w kernel-next, na debianie wystarczy zainstalować paczkę linux-image-4.15 . Oczywiście do całego procesu przydaje się karta sieciowa na USB.

W kwestii środowiska graficznego – na sprzęcie z tak małą ilością pamięci do wyboru są okrojone managery okien (jak Xmonad czy i3), LXDE albo XFCE. Przetestowałem wszystkie inne „główne” (te z kompilacją live cd debiana) i wszystkie cięły niemiłosiernie. Osobiście jestem fanem XFCE więc wybrałem XFCE.

Jeśli chodzi o ekran dotykowy to działa to out-of-the-box, trzeba tylko zaktualizować system żeby wszystko co podczas instalacji nie zostało wykryte zostało wykryte. Zabawa zaczyna się w momencie obrotu tabletu – ja pominąłem automatykę czyli obsługę czujnika (w moim wypadku Kionix) bo urządzenie cały czas stoi w jednej pozycji. Ale problem polega na tym że obrócenie ekranu przez xrandra nie wystarcza – obraz się obróci, ale mapowanie ekranu dotykowego – nie. Do tego trzeba pomanipulować przy użyciu xinput. Całkiem zgrabny skrypt, który zapewne można podpiąć pod coś co będzie łapało eventy obrotu urządzenia jest na githubie.

Jeszcze w kwestii zarządzania takim setupem – bardzo przydaje się x11vnc bo pozwala na dopięcie się do bieżącej sesji Xów (coś jak TeamViewer). Komenda odpalająca serwer to:

x11vnc -noxdamage -display :0 -safer -once -xrandr [-nopw|-auth $xauth_file]

Na sam koniec warto dodać jak pozbyć się wyłączania ekranu. Wystarczy z autostartu (ustawiania/zarządzanie sesją) wywalić deamona blokady ekranu (light-locker) i do .xinitrc  dodać na początku:

xset s off         
xset -dpms
xset s noblank

# exec session-manager 
# i reszta

 

 

 

 

2 Komentarze

  1. Pingback:Aplikacja do podglądu stanu wszechświata | Daniel "assembler" Skowroński - blog.dsinf.net

  2. Jarek

    Posiłkując się cennymi informacjami, które opublikowałeś, udało mi się w pełni zainstalować system 🙂 .

    Oto raport:

    INSTALACJA SYSTEMU
    1. Uprzedzając możliwe problemy z niewolnymi sterownikami, zgrałem niekoszerną odmianę dystrybucję „Stretch” (z ciekawości wybrałem dystrybucję z LXDE):
    https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/9.4.0-live+nonfree/i386/iso-hybrid/debian-live-9.4.0-i386-lxde+nonfree.iso
    i zgrałem ją za pomocą Rufusa ( https://rufus.akeo.ie/ ) na pamięć USB.

    2. Wgrałem nowe jądro:
    linux-image-4.16.0-rc6-686-pae_4.16~rc6-1~exp1_i386.deb
    z repozytorium „experimental”. Wcześniejsze wersje nie rozpoznają ukrytej za hdmi karty dźwiękowej.

    INSTALACJA KARTY WI-FI

    1. Z repozytorium stretch-backports pobrałem i zainstalowałem pakiet:
    firmware-realtek_20170823-1~bpo9+1_all.deb
    z repozytorium stretch-backports

    2. W plikach:
    /etc/default/crda
    /lib/crda/setregdomain
    wpisałem: REGDOMAIN=PL

    3. Skonfigurowałem wicd:
    Sterownik: nl80211
    Interfejs bezprzewodowy: wlan0

    4. Na wszelki wypadek zrestartowałem system, po czym połączyłem się z Internetem.

    5. Skonfigurowałem listę repozytoriów: /etc/apt/sources.list

    INSTALACJA DODATKOWEGO OPROGRAMOWANIA
    Zainstalowałem niezbędne programy do obsługi kont, ekranu i klawiaturę wirtualną:
    # apt-get install accountsservice xinput onboard

    KONFIGURACJA DŹWIĘKU
    1. Z repozytorium https://github.com/plbossart/UCM/ pobrałem katalog bytcr-rt5640 i skopiowałem go do /usr/share/alsa/ucm/

    2. W katalogu: /etc/modprobe.d/ utworzyłem plik: blacklist_snd_hdmi_lpe_audio.conf o treści: blacklist snd_hdmi_lpe_audio

    KONFIGURACJA LOGOWANIA
    1. Zezwoliłem na użycie wirtualnej klawiatury przy ekranie logowania:
    W pliku: /etc/lightdm/lightdm-gtk-greeter.conf zrobiłem przypisanie:
    keyboard=onboard .

    2. Zezwoliłem na automatyczne logowanie się domyślnego użytkownika po uruchomianiu systemu:
    W pliku: /etc/lightdm/lightdm.conf , w sekcji [Seat:*] zrobiłem przypisanie:
    autologin-user=mojanazwa
    Utworzyłem grupę: autologin i przypisałem do niej użytkownika:
    # groupadd -r autologin
    # gpasswd -a mojanazwa autologin

    KONFIGURACJA PULPITU
    1. Z repozytorium https://gist.github.com/mildmojo/48e9025070a2ba40795c
    ściągnąłem plik rotate_desktop.sh i adekwatnie do nazwy mojego ekranu zwróconej przez program xinput, skorygowałem w tym pliku przypisania zmiennych:
    TOUCHPAD=”FTSC1000:00 2808:5056”
    TOUCHSCREEN=”FTSC1000:00 2808:5056”

    po czym wrzuciłem go do katalogu /usr/local/bin/

    2. W pliku ~./config/lxsession/LXDE/autostart wpisałem:
    @rotate_desktop.sh right
    @onboard
    Od tej chwili mogłem już obsługiwać tablet w pozycji horyzontalnej i wpisywać teksty za pomocą klawiatury wirtualnej.

    CZYNNOŚCI KOŃCOWE
    Odinstalowałem te pakiety oprogramowania, których nie potrzebuję.

Dodaj komentarz