Multitouch natywnie w Linuksie
15 czerwca 2009, michuk
Henrik Rydberg w ramach projektu badawczego ShareIT zaimplementował obsługę multitouch dla systemu wejścia w jądrze Linuksa.
Multitouch, czyli jednoczesna obsługa wielu punktów sterowania (np. dwóch palców czy rysików) na ekranie dotykowym, został spopularyzowany przez Apple dzięki implementacji w telefonie iPhone. Swoją wersję ma również Android (lecz ze względu na patent nie jest ona oficjalnie wspierana). Teraz doczekał się jej sam Linux.
Demo możecie obejrzeć na YouTube:
Jeśli chcecie przetestować multitouch u siebie, będziecie potrzebować jądro 2.6.30, komputer z urządzeniem Broadcom 5974, Stantum, NTrig lub DiamondTouch (np. HP TouchSmart z podmienionym firmware NTrig), odpowiedni sterownik oraz kod demonstracyjny.
Kod demo działa bezpośrednio z urządzeniem /dev/input/eventX. Rozpoznawane są proste gesty, a następnie informacja przez DBus wysyłana jest do Compiza, który wyświetla ładne efekty.
Oczywiście to dopiero początek natywnej obsługi multitouch w Linuksie. Kod musi dojrzeć, zanim trafi do oficjalnej gałęzi jądra. Otwartą sprawą jest również to w jaki sposób realizowana będzie współpraca z systemem X.org, gdyż aktualna implementacja zupełnie go pomija.



Ciekawe kiedy pierwszy proces w tej sprawie.
@gothmori: Proces moze byc wtedy, gdyby 1. naruszalo to patent Apple’a (przypomne, ze to _nie_ jest patent na multitouch jako taki) i 2. ktos postanowilby to sprzedawac. Jesli jedno z tych dwoch nie zostanie spelnione, procesu nie bedzie, bo nie ma o co.
Jest opensource, więc w najgorszym wypadku będzie jak z efektem minimalizacji “magiczna lampa” w compizie, który na minimum ma ustawione 3 zgięcia, ale chwila kodzenia i już jest bez przegięć.
Swoja drogą ciekawe jak wyglądałyby dzisiejsze systemy operacyjne, gdyby microsoft przegrał pozew apple wytoczony w 1988.
> chwila kodzenia i już jest bez przegięć.
Dobrze wiedzieć, że zmiana jednej cyferki w edytorze szesnastkowym i w pliku XML to kodzenie. Hah.
a dlaczego nie? Sam jedyne co kodziłem to na maszynkę 8051 w notatniku w asemblerze i było dobrze. Nie trzeba korzystać niewiadomo z czego by coś zrobić.
Czemu proces? Apple może i ma patent na multitouch ale w USA…
A będzie możliwe zamiast wielu zdarzeń z jednego urządzenia, żeby obsługiwać po jednym z wielu? Np. podłączam trzy myszki i mam trzy kursory?
kilka klawiatur usb mozna juz podlaczyc
klika myszek też, ale one sterują tym samym kursorem
http://wearables.unisa.edu.au/mpx/?q=node/21 ← niezupełnie
Ah, niezupełnie-niezupełnie, nie przeczytałem do końca zasadę działania TEJ implementacji multitoucha.
MPX to nie jest implementacja MT. To obsługa wielu urządzeń wejściowych w Xorg. Teraz te wiele urządzeń (/dev/input/eventX) może pochodzić np. ze sterownika ekranu dotykowego (lub nakładki) z jądra. Dodatkowo aby obsługiwać coś więcej niż punktowe wejście (obszary dotyku) potrzebne jest rozszerzenie MPX (blob events).
> klika myszek też, ale one sterują tym samym kursorem
Kiedyś miałem dwie myszki i grałem z kimś w pewną grę na tury. Przy zmianie tury nie trzeba było przenosić myszki. Proste i wygodne
To już będzie obsługiwać Serwer X.
Polecam ManyMouse – http://icculus.org/manymouse/
manymouse znam, ale to biblioteka do wykorzystania w aplikacjach które maja mieć obsługę tego. nawet na jej podstawie miała być napisana impelementacja tego w nowym SDLu. Tylko, że to nie jest odpowiedź na moje pytanie – dwa kursory dzieki temu moge miec w swoim programie, a nie w systemie…
Kod obsługujący multitouch znajduje się już w jądrze. Na dodanie czekają tylko odpowiednie sterowniki z niego korzystające (z tego co piszą autorzy to pierwsze powinny już się znaleźć w 2.6.31 – dla touchsceenów N-Trig już nawet został wrzucony)
zawsze pozostaje użycie MPX, i tak największym problemem są gesty W programach
http://labs.trolltech.com/blogs/2009/04/20/multi-touch-support-in-qt/
Beda beda
Nie mogę się doczekać jak w Compizie będzie można robić fale wodne paluchami… Pewnie pójdzie mi jeden monitor na tydzień
Przyjemniejsze wydaje się rysowanie ogniem,a le co kto lubi bajer znudzi się.
Ale od czasu do czasu…
Ale prawdziwy multitouch to nie jest bajer, tylko bardzo przydatna funkcjonalność. To co widać na ekranie to trochę ściemka.. albo jeszcze nie dopisany odpowiedni kod. Powiększanie obrazka, poprzez skalowanie okna w compizie… prawie jak powiększanie obrazka w aplikacji… ale robi wielką różnicę.
Ale do demonstracji(w tym wypadku prezentacji jakiejś) niezastąpiony. Tak na poważniie, to wystarczy samo rysowanie.
Osobiście nie rozumiem, co jest takiego fajnego w palcowaniu monitora.
łój na ekranie ;]
Ja cieszę się, że mutitouch będzie dodane do jądra, a nie realizowane za pomocą dziwnych hacków w X serwerze. Dzięki temu nie będzie bałaganu w systemie, tak jak to (jeszcze) jest z kartami graficznymi – jeden sterownik w kernelu, a drugi w X.
wydaje mi się, że będzie w jądrze (już wkrótce) ORAZ w X serwerze (MPX, trochę później). Szczerze to nie ogarniam jakie między nimi (implementacjami) będą relacje…
Tak… Dzisiaj sobie trochę poczytałem o wyglądzie grafiki pod Linuxem… Takiego syfu, to dawno nie widziałem:
http://pl.wikisource.org/wiki/Stan_grafiki_w_Linuksie
W szczególności ciekawe jest to, że kilka sterowników próbuje się jednocześnie dorwać do tego samego sprzętu… Niby jakoś się to udaje omijać, skoro to działa, ale mogłoby działać lepiej, gdyby rzeczywiście TYLKO kernel odpowiadał, za obsługę sprzętu, a cała reszta odwoływała się tylko do kernela
To bardzo stary artykuł. Dzisiaj jest o wiele lepiej i wszystko idzie w dobrą stronę.
@hael: Dzisiaj jest _nieco_ lepiej. Owszem, idzie w dobra strone, ale bardzo powoli.
@trasz: tak samo jak nie ma nowych sprzętów z Androidem, który de fakto według ciebie się nie rozwija. Czy nie zauważasz, że zaklinanie rzeczywistości często ci nie wychodzi?
@Tomasz Woźniak: Rozejrzyj sie. Widzisz jakies sprzety z Androidem inne niz G-1? Tak myslalem. Mam juz taka dziwna ceche, ze oceniajac cos patrze na stan obecny, a nie na reklamy i zapowiedzi.
Wracajac do grafiki – znow, rozejrzyj sie. Gdzie jest modesetting, dzialajacy gdziekolwiek poza maszynami developerow modesettingu na kilku na krzyz kartach Intela?
@trasz
http://osnews.pl/pierwszy-huawei-z-androidem-u8230/
Co prawda chyba nie mogłeś tego przeczytać, przed napisaniem tego komentarza, ale skoro to urządzenie zostało pokazane to znaczy, że na stan obecny istnieje.
@marcinsud: “Powracając do naszego dzisiejszego bohatera – U8230 data premiery nie jest jeszcze znana, ale jak informuje VNunet urządzenie pojawi się najprawdopodobniej w drugiej połowie 2009 roku.”
Producent nie podal nawet dokladnych parameterow technicznych.
Przecież ten artykuł ma 4 lata… to cała epoka w tej branży ( mieliśmy dwie generacje procesorów w tym czasie
)
> Takiego syfu, to dawno nie widziałem:
No to polecam pogooglanie o stanie dzwieku w linuchu, to dopiero bagno,
ale za to jest juz obsluga USB 3.0, ha!
Mi tam
“windows sound issue” daje więcej wyników niż “linux sound issue”
ale co tam pewnie google są przekupione i wygooglanie g.. daje
@marcinsud: A może dlatego, ze linux ma mniejszy udział w rynku?
@vries: I dlatego, ze uzytkownicy Linuksa maja tendencje do przyzwyczajania sie do tego, ze cos im nie dziala, i cierpliwie czekaja na kolejna wersje systemu.
@trasz: dokładnie jak OpenSolarisa – no i?
→jarek
edytowałeś kiedyś coś na linuxie?
W tym temacie mogę Ci powiedzieć że linux powala Twoją windę na kolana.
Mi na byle edytorze przy ustawionej karcie na standardzie zcina na windzie (jest gorzej niż na 16 bitowej zintegrowanej pod tym względem, tylko że na zintegrowanej rejestrowało strasznie szumy).
Linux o wiele bardziej wykorzystuje sprzęt i nie wysysa nie wiadomo po co procesora i ramu. Jakość dźwięku też jest przy tym satysfakcjonująca – jeżeli wie się co i jak. No chyba że chcesz mieć fajerwerki z AIWY albo thomsona za 600zł z media markt. Albo zestawu 5.1 do kompa. Muszę Cię zmartwić, cokolwiek byś zrobił nie usłyszysz potencjału karty bez amplifiera/amplitunera i porządnych kolumien 3- lub 4- drożnych.
a właśnie… edytowałem w windowsie xp ponieważ vista nie łapała mi wejścia na źródło mimo firmowych driv’ów.
(ciąg dalszy poprzedniego komentarza)
@trash to tak jak fribizdziarze
Człowiek sobie żartuje, a nawet emotka nic nie daje, więcej dystansu.
→marcinsud
on i BSD! xDDD nie rozśmieszaj mnie! On gloryfikuje BSD bo elementy FreeBSD są w jego pokichanym mac’u a brutalna prawda jest taka że niestety FreeBSD wymaga więcej zabawy i wiedzy od przeciętnej desktopowej wersji linuxa (np. OpenSUSE, Ubuntu) która nie jest tak skopana jak PC-BSD. Trasz tak gloryfikuje łatwość obsługi ale nie bądźmy śmieszni, taki freebsd wymaga więcej zabawy od np. Debiana i chodzi tak samo (szybkość i zużycie zasobów). Poza tym druga brutalna prawda też jest taka że samo FreeBSD ma mniejszy zasób sterowników i programów od linuxa. Ja nie skreślam systemów z rodziny BSD, wręcz przeciwnie. Ale dostrzegam coś co nazywam “paradoksem idioty”. W tym przypadku polega to na tym że trash wytyka braki w linuxie i to że jest trudny w obsłudze mimo iż FreeBSD w temacie desktopu jest daleko za linuxem.
wiesz może nie używa freebsd, ja mu pod obudowę nie zaglądam, ale ponoć commituje to chyba trudno by mu było to robić bez feebsd
http://www.youtube.com/watch?v=gvCo6-KhZT4
Czegoś tu nie rozumiem. Mam EEE PC 901 i mój touchpad obsługuje multitouch zarówno pod Windows jak i pod Ubuntu (dokładniej eeebuntu oraz EasyPeasy) od momentu zakupu, czyli już prawie 10 miesięcy. Oczywiście pod Linuxem działa po załadowaniu odpowiednich modułów sprzętowych, które dystrybucje zorientowane na EEE PC w sobie zawierają.
Czy cały ten news sprowadza się do tego, ze te moduły będą teraz w standardowym jądrze? Czy o co chodzi…?
Nie, chodzi o multitouch w wyświetlaczu a nie touchpadzie. Z resztą przecież masz filmik
Miło przeczytać czesem takiego pozytywnego newsa
A ktoś wie jak będzie to wyglądało na smartphonach? Bo w sumie nie widzę sensu (u mnie) na zwykłych ekranach, ale na małym ekranie takie możliwości są niezastąpione.
Patent apple jest na obsługę dwoma palcami (dwa punkty jednocześnie), ale np. Atmel ma już technologię obsługi bez limitu liczby punktów i też ma już chyba patent na to. http://www.atmel.com/products/maxtouch/landing.asp?source=home