Jak uruchomić touchpad na Dell Vostro 3360 pod Linuksem

Dell Vostro 3360 to zacny sprzęt, z którego korzystam w pracy, chyba od roku. Trochę żałuję, że nie kupiłem go do domu, ale kupowałem wcześniej, nie byłem jakoś przekonany do 13″, no i cena też trochę wyższa. Okazuje się, że jak najbardziej taki ekran daje radę. W pracy korzystam z wersji z dyskiem SSD i procesorem i5. Na początku było więcej, teraz jest 4,5-5h na baterii, więc wynik bardzo przyzwoity – długie wypady pociągiem, serie spotkań w firmie czy przedłużający sie wypad do kolokacji mu nie straszne i nie ma potrzeby korzystania z zasilacza.

Vostro 3360 daje się zmusić do działania z Linuksem (opis co jak działa może kiedyś popełnię, ale wcześniejsze opisy na potrzeby Linux on laptops nie cieszą się zainteresowaniem, więc motywacja jest nikła), ale nie jest to sprzęt, w którym wszystko działa OOTB. Nawet więcej: dawno nie widziałem sprzętu wymagającej takiej rzeźby w celu uruchomienia Linuksa. Grymasił na wersję kernela, co objawiało się… zwisami systemu (nic ciekawego w logach nie znalazłem). Co ciekawe tylko pod Debianem, kumple pod Ubuntu z IIRC taką samą wersją kernela problemu nie mieli. Na debianowym 3.6 (wówczas z experimental) działało stabilnie, więc tak zostało.

Inne problemy to: touchpad (naciśnięcie obu klawiszy naraz domyślnie nie emuluje naciśnięcia środkowego klawisza, co jest standardowym pod Linuksem – i ukochanym przeze mnie – skrótem do wklej), dźwięk czy karta sieciowa Atheros (o dziwo miedź). Dźwięk z alsą z Wheezy’ego działa IIRC od kopa, więc można uznać problem za załatwiony. Zresztą uruchomienie wszystkich komponentów Vostro 3360 na Linuksie (Debian Wheezy) ładnie opisał Łukasz. Co ciekawe, kernel 3.7 powodował jakieś problemy, ale nie pamiętam, czy chodziło o stabilność, czy może o coś innego.

W każdym razie czasy się trochę zmieniły, 3.6 jakiś taki starawy już. Doszły mnie słuchy, że karta sieciowa powinna działać bez magicznych zabiegów pod kernelem 3.11. Postanowiłem sprawdzić. Faktycznie, wydaje się działać. A system pozostaje stabilny. Pozostał jednak problem z touchpadem, więc postanowiłem zrobić instrukcję dla nowszej wersji kernela i nowszych plików ze strony, bo takie się pojawiły.

Na początek smutna sprawa: kernel 3.11, a dokładniej jego pliki nagłówkowe wymagają gcc w wersji 4.8, a to oznacza wymianę połowy systemu ze względu na zależności. Albo konieczność skompilowania kernela samodzielnie (czego na potrzeby desktopa wieki nie robiłem). Wybrałem bramkę numer dwa.

Wchodzimy na http://www.dahetral.com/public-download/alps-psmouse-dlkm-for-3-2-and-3-5/view i pobieramy plik psmouse-alps-1.3-alt.tbz.

Rozpakowujemy go (w /usr/src)

tar xvjf psmouse-alps-1.3-alt.tbz

Pobieramy debianowe źródło kernela

wajig install linux-source-3.11

I kopiujemy bieżący konfig (zakładam, że mamy uruchomiony kernel 3.11 z Debiana)

cp /boot/config-3.11-2-amd64 /usr/src/linux-source-3.11/.config

Kompilujemy i paczkujemy kernel oraz pliki nagłówkowe

cd /usr/src/linux-source-3.11
make-kpkg --append-to-version=-bpo-rozie --initrd kernel_image
make-kpkg --append-to-version=-bpo-rozie kernel_headers

Instalujemy utworzone pakiety

cd .. && wajig install linux-image-3.11.8-bpo-rozie_3.11.8-bpo-rozie-10.00.Custom_amd64.deb && 
wajig install linux-headers-3.11.8-bpo-rozie_3.11.8-bpo-rozie-10.00.Custom_amd64.deb

Kompilujemy i instalujemy odpowiedni moduł:

cd /usr/src/psmouse-alps-1.3 && ./alps.sh dkms_build_alps

Polecenie to automatycznie powoduje przeładowanie modułu psmouse, więc jeśli nie wystąpiły błędy, to od tej chwili wszystko powinno działać poprawnie, w szczególności naciśnięcie obu przycisków touchpada powinno wklejać zawartość schowka.

UPDATE: Prawdopodobnie da się prościej, o ile się nie jest ślepym. Wystarczy do sources.list dodać obsługę backportów dla Wheezy’ego:

deb http://http.debian.net/debian wheezy-backports main contrib non-free

i dostępne staną się kernele linux-image-3.11*… Cóż, kto nie ma w głowie, ma w… kompilatorze. Inna sprawa (i moje usprawiedliwienie!) to fakt, że nie tylko nikt nie zwrócił na to uwagi w komentarzach, ale nawet dwie osoby korzystają z mojego kernela.

UPDATE2: Wygląda na to, że od wersji 3.13 kernela nie potrzeba takich zabiegów. Przed chwilą zainstalowałem z debianowych backportów 3.13.5-1~bpo70+1 i… touchpad działa od kopa, bez kompilacji czegokolwiek.

Raspberry Pi uruchomione (testowo)

Pisałem, że nie kupię Raspberry Pi, więc jak uruchomione? Ano nie kupiłem, ale mam. Dostawali je wszyscy uczestnicy konferencji Atmosphere. Skoro leży i się kurzy, to warto przynajmniej spróbować uruchomić. Tym bardziej, że lubię maszynki z ARM i lubię Linuksa.

W związku z rozgardiaszem okołoprzeprowadzkowym, leżało i czekało znacznie dłużej, niż wypada. A to nie chciało mi się bawić na starym lokum, a to zaginęło gdzieś w kartonach, a to ważniejsze rzeczy do zrobienia. W końcu zdecydowałem się i kupiłem zasilanie (hub USB Unitek Y-206P – goły zasilacz kosztuje podobnie, a więcej portów USB i tak się przyda) i przymierzyłem obudowę z papieru (nie zdecyduję się, może ew. z grubszego kartonu spróbuję jeszcze; ciekawa lista obudów różnej maści dla Raspberry Pi jest tutaj). Okazało się, że wszystko fajnie, ale brakuje mi kabla USB oraz… karty SD. Chociaż jakieś microSD przecież kupiłem, specjalnie do Raspberry Pi, na wakacjach!

W końcu zebrałem się do szybkiego uruchomienia, pożyczyłem kabel od telefonu (ave standaryzacja!), a karta mikroSD i przejściówka się znalazły. Oczywiście karta inna, niż kupiona, ale mniejsza z tym.

Raspberry Pi

Źródło: http://blogs.it.ox.ac.uk/nexus/2012/03/09/raspberry-pi/

Jako dystrybucję wybrałem Raspbiana. W końcu dedykowany dla RPi i oparty na Debianie. Wiele złego mógłbym o nim napisać[1], ale pokrótce: dają obrazy na kartę min. 4GB, co uważam za grube nieporozumienie, bo podstawowy system spokojnie powinien wejść na 1 GB, a na ciut większą kartę to z luzami. Kolejna sprawa: domyślne IP i logowanie do systemu. Może jestem ślepy, ale nie znalazłem danych do logowania podczas lektury instrukcji[2]. W FAQ też nie. Dla pamięci: użytkownik pi, hasło raspberry, a Raspberry Pi z zainstalowanym Raspbianem pobiera domyślnie adres IP z DHCP. Kolejne drobiazgi: w /etc/fstab # a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that, po czym okazało się, że /sbin/dphys-swapfile: POSIX shell script, ASCII text executable. Nie przepadam za taką automatyzacją.

W każdym razie uruchomiłem, wygląda, że działa. Hub USB Unitek Y-206P daje radę z RPi (tylko jedno połączenie z portu USB w hubie do gniazda z zasilaniem Raspberry Pi). W sumie śmieszna konstrukcja, ale ktoś polecał do RPi. Maleństwo w metalowej obudowie, z badziewnym srebrzeniem. Zasilacz 2A, ale na całego huba. Nie sprawdzałem multimetrem, ale czuję, że olewa standardy i daje ile może na poszczególne porty. W sumie o to chodziło. 😉

Potem wszedłem na kanał IRC dedykowany Raspbianowi, by zgłosić bugi i… zaczął się hardcore. Ale o tym to już innym razem napiszę.

[1] I napiszę niebawem, bo poziom porażki zasługuje na oddzielny wpis.

[2] Jestem ślepy, przy pobieraniu obrazu dane do logowania są podane. Spodziewałbym się jednak tego typu informacji raczej w FAQ i/lub release notes. A najbardziej w README.

UPDATE: Okazuje się, że nie tylko dają obraz dla SD o wielkości 4 GB, z włączonym domyślnie swapem, ale ext4 przychodzi z włączonym journalingiem. Na obrazie dedykowanym dla nośnika flash. Z rozmowy na IRC – won’t fix, it’s not a bug, it’s a feature. I ma chronić przed uszkodzeniami systemu plików przy zanikach zasilania. Trochę mi słabo.

Klawiatura do tableta

Nie pamiętam na którym blogu znalazłem informację, że tablet z etui z klawiaturą to jest to, ale zwróciłem uwagę, że tak naprawdę najbardziej drażni mnie brak klawiatury. O ile przy przeglądaniu sieci nie ma to znaczenia, o tyle nie wyobrażam sobie pisania komentarza dłuższego niż jedno czy dwa zdania bez niej. Podobnie cokolwiek na SSH – nie podejmuję się klikać bez fizycznych klawiszy.

Popatrzyłem i wyszło, że etui z klawiaturą kosztuje z 30 zł, a dodatkowo, poza klawiaturą jest etui, które trochę chroni tablet (mniej istotne) i pozwala na jego lepsze ułożenie na kolanach (bardziej istotne) czy postawienie tabletu na biurku – całkiem ciekawe i wygodne – patrzenie się w leżący na płask tablet to nie jest to, co tygrysy lubią najbardziej.

Nie mam złudzeń co do jakości wytworu za 30 zł, ale stwierdziłem, że na początek się nada. Tym bardziej, że klawiatura 7″ budzi moje wspomnienia z korzystania ze służbowego netbooka i prawie wymiarowej klawiatury. Nie są to dobre wspomnienia. Nadal jednak lepsze to, niż klikanie na klawiaturze ekranowej czy mówienie do tabletu, które podobno działa całkiem nieźle, ale rodzina gotowa pomyśleć, że całkiem mi odbiło z wiekiem. Więc kupiłem, model AK207,  jak na zdjęciu poniżej (źródło aukcja Allegro na której kupiłem, nie linkuję, bo zaraz zniknie i tak, a w to, że wystawiający jest autorem zdjęć jakoś nie wierzę).

Etui z klawiaturą do tableta

Po otworzeniu przesyłki pierwszy WTF – pełnowymiarowe gniazdo USB. Takiego to w tablecie nie mam. Ale przypomniałem sobie o jakichś dodatkowych kabelkach, które leżą w pudełku. Bingo. Kabelek ma potrzebną dziurkę, a klawiatura działa.

I tu drugi WTF. Nie ma – obecnego w cywilizowanych wytworach klawiaturopodobnych z którymi miałem do czynienia do tej pory – klawisza Alt po prawej stronie spacji. Co więcej, nie znalazłem informacji, jak wprowadzać polskie znaki. Mój Android (4.x od myTab) dla urządzenia fizycznego oferuje wiele egzotycznych układów klawiatury, ale nie ma wśród nich języka polskiego.

Zapowiada się albo pisanie po polskawemu, albo zabawa z dokumentacją, albo poszukiwanie aplikacji (będzie się trzeba w Play zarejestrować…), czyli fun na kółkach (liczę, że coś podpowiecie). I pomyśleć, że w Linuksie w najgorszym razie musiałbym wyedytować plik tekstowy. No ale Android jest łatwy i przyjazny. 😉