Журнал LinuxFormat - перейти на главную

LXF141:Wayland

Материал из Linuxformat
Перейти к: навигация, поиск
Wayland Пер­вое зна­ком­ст­во

Содержание

Про­рыв в гра­фи­ке

Алек­сандр Тол­стой по­зна­ко­мит вас с но­вей­шим гра­фи­че­ским сер­ве­ром, ко­то­рый, по­хо­же, мо­жет вско­ре прий­ти на сме­ну на­бив­шим ос­ко­ми­ну «ик­сам».

Вре­мя от вре­мени че­ло­ве­че­­ст­во со­вер­ша­ет от­кры­тия, ко­то­рые рез­ко под­стё­ги­ва­ют про­гресс и по­па­да­ют за­тем в школь­ные учебники. Это мо­жет быть изо­бре­тением лам­пы на­ка­ли­вания, пер­вым по­лё­том в космос или свое­вре­мен­ной достав­кой ва­ше­го лю­би­мо­го жур­на­ла че­рез Поч­ту России... Пря­мо сей­час мир Linux за­та­ив ды­хание смот­рит на но­вей­шую тех­но­ло­гию, из­вест­ную как Wayland. Что это та­кое, и по­че­му во­круг этой тех­но­ло­гии так мно­го шу­ма? Да­вай­те по­смот­рим по­бли­же.

Wayland – но­вый гра­фи­че­­ский сер­вер, по­зи­циониру­емый как за­ме­на тра­ди­ци­он­но­му X11. Не сле­ду­ет недо­оценивать эту за­яв­ку: в ми­ре сво­бод­ных UNIX-по­доб­ных ОС это пер­вый слу­чай за по­следние 24 го­да, когда пред­ло­же­на аль­тер­на­ти­ва X Window System. Как из­вест­но, сис­те­ма X11 поя­ви­лась в 1987 го­ду как 11‑я вер­сия про­ек­та «Х», раз­ви­вае­мо­го в сте­нах MIT. Сам про­ект дис­плей­но­го сер­ве­ра стар­то­вал ещё в 1984. За­вер­шая на­ше­ ис­то­ри­че­­ское всту­п­ление, от­ме­тим, что X-сер­вер был пор­ти­ро­ван на Linux ле­том 1992 го­да бла­го­да­ря уси­ли­ям ха­ке­ров из про­ек­та Xfree86. С это­го мо­мен­та Linux пе­ре­стал вы­гля­деть как чёр­ная кон­соль, и возник­ло по­ня­тие «ра­бо­че­го про­стран­ст­ва». Все на­ши гра­фи­че­­ские при­ло­жения, от брау­зе­ра до эф­фек­тов Compiz, воз­мож­ны толь­ко бла­го­да­ря X-сер­ве­ру, на ко­то­ром зи­ж­дет­ся вся гра­фи­ка в Linux.

Но вот на­конец по­дул ве­тер пе­ре­мен, и на ме­сто X11 стал пре­тен­до­вать Wayland. Это но­вый дис­плей­ный сер­вер, на­пи­сан­ный с ну­ля и об­ла­даю­щий бо­лее ра­цио­наль­ной и со­вре­мен­ной ар­хи­тек­ту­рой. Из этой ста­тьи вы уз­нае­те о пре­иму­ще­ст­вах Wayland, вы­ясните, как он уст­ро­ен, и нау­чи­тесь его за­пускать. Ес­те­ст­вен­но, мы обя­за­тель­но рас­ска­жем о том, как уста­но­вить на свой бое­вой сер­вер по­след­нюю неста­биль­ную вер­сию Wayland и пол­но­стью до­ве­рить ему управ­ление гра­фи­кой... По­че­му бы и нет – ведь к кон­цу это­го го­да Ubuntu и Fedora ин­тег­ри­ру­ют Wayland в свои све­жие ре­ли­зы, так что сле­ди­те за но­во­стя­ми!

Чем Wayland луч­ше?

Клас­си­че­­ская ар­хи­тек­ту­ра X Window под­ра­зу­ме­ва­ет, что ва­ши мо­нитор, кла­виа­ту­ра и мышь управ­ля­ют­ся Сер­ве­ром, а все при­ло­жения яв­ля­ют­ся Кли­ен­том. При­ло­жения об­ща­ют­ся с Сер­ве­ром, за­пра­ши­вая у него от­ри­сов­ку ок­на, об­ра­бот­ку вво­да с кла­виа­ту­ры и дви­жений мы­ши, 3D-рен­де­ринг и т. д. Со­вре­мен­ный ра­бо­чи стол Linux со­дер­жит «под ка­по­том» це­лую стоп­ку сло­ёв от­ри­сов­ки и об­ра­бот­ки про­зрач­но­сти, и всё это во­дру­же­но на за­пу­щен­ный X-сер­вер. Об­ра­ти­те внимание, что яд­ро Linux тут вы­пол­ня­ет вто­ро­сте­пен­ную роль.


Как раз это и де­ла­ет Wayland непо­хо­жим на сво­его пред­ше­ст­венника. В Wayland боль­шин­ст­во «гряз­ной» ра­бо­ты доста­ёт­ся яд­ру: раз­ре­шение эк­ра­на ре­гу­ли­ру­ет­ся ре­жи­мом KMS (Kernel Modesetting), а со­бы­тия от кла­виа­ту­ры и мы­ши управ­ля­ют­ся че­рез evdev. Сам Wayland за­пуска­ет­ся по­верх эк­ран­но­го ре­жи­ма KMS и об­слу­жи­вает ис­клю­чи­тель­но окна, от­ве­ча­я за их от­ри­сов­ку и пе­ре­ри­сов­ку, пе­ре­тас­ки­вание объ­ек­тов мы­шью, функ­ции окон­но­го де­ко­ра­то­ра-менед­же­ра, взаи­мо­дей­ст­вие окон. При­ме­ча­тель­но, что со­дер­жи­мое ка­ж­до­го ок­на вы­во­дит­ся на эк­ран без уча­стия дис­плей­но­го сер­ве­ра, то есть на­пря­мую че­рез OpenGL или ин­тер­фейс­ную биб­лио­те­ку Cairo. Та­ким об­ра­зом, ме­ж­ду при­ло­жением и ви­део­вы­во­дом ис­че­за­ет сра­зу несколь­ко сло­ёв аб­ст­рак­ций. То, что рань­ше бы­ло реа­ли­зо­ва­но че­рез рас­ши­рения X, те­перь ра­бо­та­ет на­пря­мую с ядром и управ­ляе­мым им уст­рой­ст­вом вы­во­да.

Конеч­но­му поль­зо­ва­те­лю это да­ёт ви­ди­мые пре­иму­ще­ст­ва: плав­ное воспро­из­ве­дение филь­мов (без рыв­ков, «сту­пенек» и мор­гания), мень­ше про­блем с 3D, а так­же по­вы­шение про­из­во­ди­тель­но­сти и от­зыв­чи­во­сти ра­бо­че­го сто­ла. Са­мое вре­мя те­перь за­су­чить ру­ка­ва и уста­но­вить Wayland.

Пе­ред уста­нов­кой

Вам сле­ду­ет знать, что Wayland на­хо­дит­ся на раннем эта­пе раз­ви­тия, по­это­му ста­биль­но­го ре­ли­за, как та­ко­во­го, нет. Во гла­ве раз­ра­бот­ке сто­ит Кри­сти­ан Хёгс­берг [Kristian Høgsberg], ха­кер из Intel, а сам код раз­ме­щён в ви­де де­ре­ва Git на сер­ве­рах Freedesktop.

На те­ку­щий мо­мент Wayland мо­жет быть за­пу­щен ли­бо как са­мо­стоя­тель­ный дис­плей­ный сер­вер (ника­ко­го X11 не тре­бу­ет­ся), ли­бо как кли­ент внут­ри ва­ше­го ра­бо­че­го сто­ла. Во втором слу­чае вы смо­же­те бы­ст­ро и удоб­но «по­вер­теть в ру­ках» но­вую тех­но­ло­гию, но уско­рения не уви­ди­те, поскольку всё бу­дет про­ис­хо­дить внут­ри X11.

Ба­зо­вый про­то­кол и основ­ные биб­лио­те­ки Wayland уже до­де­ла­ны, и сто­ронние при­ло­жения мо­гут ис­поль­зо­вать их для рен­де­рин­га ин­тер­фей­са. Труд­но­сти на дан­ном эта­пе ка­са­ют­ся как раз кли­ент­ских при­ло­жений: для ра­бо­ты с но­вым сер­ве­ром тре­бу­ет­ся, что­бы Qt и GTK бы­ли пор­ти­ро­ва­ны на Wayland. Эта ра­бо­та сей­час ак­тив­но ве­дёт­ся (осо­бен­но над GTK), но пол­но­стью ни од­на «боль­шая» про­грам­ма не пе­ренесе­на, и нам при­хо­дит­ся до­воль­ст­во­вать­ся несколь­ки­ми де­мон­ст­ра­ци­он­ны­ми шту­ка­ми, вро­де ле­таю­щих цвет­ков, кру­тя­щих­ся шес­те­рё­нок и т. п.

Обя­за­тель­но нуж­но упо­мя­нуть о сис­тем­ных тре­бо­ваниях Wayland. Что­бы всё по­лу­чи­лось, вам по­на­до­бит­ся ра­бо­таю­щее OpenGL-уско­рение и вклю­чён­ный ре­жим KMS. Как уже го­во­ри­лось вы­ше, KMS управ­ля­ет ви­део­ре­жи­мом (в ши­ро­ком смыс­ле) и ра­бо­та­ет с от­кры­ты­ми драй­ве­ра­ми intel, radeon и nouveau для, со­от­вет­ст­вен­но, ви­део­чи­пов Intel, Ati/AMD и Nvidia. Есть и ещё од­но тре­бо­вание: нуж­но, что­бы рен­де­ринг че­рез DRI под­дер­жи­вал «пе­ре­бро­ску» страниц [page-flipping] – без это­го Wayland не смо­жет ра­бо­тать в «род­ном» ре­жи­ме. Пока что под­держ­ка pageflipping ioctl реа­ли­зо­ва­на толь­ко для драй­ве­ров intel и nouveau, по­это­му вла­дель­цы карт Radeon смо­гут за­пустить но­вый дис­плей­ный сер­вер по­ка толь­ко внут­ри «ик­сов». Вла­дель­цам карт Nvidia сле­ду­ет уда­лить про­прие­тар­ный фир­мен­ный драй­вер и уста­но­вить от­кры­тый драй­вер nouveau с тем, что­бы за­дей­ст­во­вать KMS.

Мыс­ли об уста­нов­ке

По­смот­рев на спи­сок за­ви­си­мо­стей Wayland, уже мож­но при­мер­но пред­ста­вить, из че­го он со­сто­ит и с чем его едят. По­сколь­ку Wayland ак­тив­но за­дей­ст­ву­ет OpenGL, бу­дет ра­зум­ным по­ста­вить се­бе но­вей­шую вер­сию Mesa. Что­бы сиг­на­лы evdev от яд­ра бы­ли по­нят­ны Wayland, по­на­до­бит­ся про­ме­жу­точ­ная биб­лио­те­ка libxkbcommon. На­конец, ото­бра­жение ин­тер­фей­са в Wayland невоз­мож­но без Cairo-GL – экс­пе­ри­мен­таль­но­го движ­ка Cairo, ко­то­рый пре­достав­ля­ет API для при­ло­жений. Обеспечив работу всего пе­ре­чис­лен­ного, вы смо­же­те за­пустить сам Wayland.

Спо­соб уста­нов­ки бу­дет от­ли­чать­ся в за­ви­си­мо­сти от ва­ше­го ди­ст­ри­бу­ти­ва Linux. По­пу­ляр­ные Ubuntu и Fedora пред­ла­га­ют го­то­вые дво­ич­ные па­ке­ты, из­бав­ляя вас от необ­хо­ди­мо­сти что-ли­бо ком­пи­ли­ро­вать. Ес­ли же у вас бо­лее ред­кий ди­ст­ри­бу­тив, ли­бо вам хо­чет­ся прин­ци­пи­аль­но всё сде­лать «ру­ка­ми», то припаси­те нуж­ный ин­ст­ру­мен­та­рий: стан­дарт­ный на­бор средств раз­ра­бот­ки плюс за­го­ло­воч­ные фай­лы всех па­ке­тов, от ко­то­рых за­ви­сит Wayland. Ес­ли вы не уве­ре­ны в се­бе, по­чи­тай­те врез­ки к этой ста­тье и убе­ди­тесь, что вы понимае­те всё, что со­би­рае­тесь де­лать.

Не­смот­ря на то, что Wayland вряд ли смо­жет что-то на­пор­тить в ва­шей сис­те­ме, луч­ше всё-та­ки сде­лать ре­зерв­ные ко­пии важ­ных дан­ных на внешний но­си­тель.

Для Ubuntu и Fedora

В но­яб­ре про­шло­го го­да Марк Шатт­л­ворт на­пи­сал, что Wayland бу­дет ин­тег­ри­ро­ван в Ubuntu уже в 2011 го­ду. На дан­ный мо­мент, для то­го, что­бы про­тес­ти­ро­вать но­вую тех­но­ло­гию, вам нуж­но взять па­ке­ты из спе­ци­аль­но­го PPA-ре­по­зи­то­рия для Ubuntu 10.10.

Про­де­лай­те сле­дую­щее:

  1. Ус­та­но­ви­те све­жую вер­сию Mesa с экс­пе­ри­мен­таль­ной биб­лио­те­кой DRI: sudo apt-get install libgl1-mesa-dri-experimental
  2. До­бавь­те те­ку­ще­го поль­зо­ва­те­ля в груп­пу video, что­бы Wayland мог ра­бо­тать с ва­шим обо­ру­до­ва­ни­ем без прав ад­ми­ни­ст­ра­то­ра: usermod -a -G video ва­ше_имя
  3. До­бавь­те в спи­сок ре­по­зи­то­ри­ев све­де­ния о PPA-стра­ни­це Xorg-Edgers: sudo add-apt-repository ppa:xorg-edgers/wayland
  4. Об­но­ви­те спи­сок ре­по­зи­то­ри­ев и ус­та­но­ви­те Wayland: sudo apt-get update && sudo apt-get install wayland

Вот и всё, и ни­ка­ких гряз­ных рук!

Адам Джек­сон из Red Hat недав­но на­пи­сал в спи­ске рас­сыл­ки Fedora: «Ско­рее все­го, Wayland бу­дет досту­пен в F15 как тех­но­ло­гия, с ко­то­рой мож­но бу­дет по­иг­рать». Хотя Fedora 15 ещё не вы­шла (на мо­мент на­пи­сания ста­тьи), уже до­ступ­ны го­то­вые па­ке­ты из раз­ра­ба­ты­вае­мой вер­сии, пригодные и для Fedora 14. Несмот­ря на их неста­биль­ность, ­поль­зо­ваться ими вполне безо­пас­но. Сде­лай­те сле­дую­щее:

  1. На минутку ак­ти­ви­руй­те ре­по­зи­то­рий Rawhide (не­ста­биль­ные па­ке­ты) и ус­та­но­ви­те но­вей­шую вер­сию Mesa, не­об­хо­ди­мую для Wayland (заодно ус­та­новятся и не­ко­то­рые за­ви­си­мо­сти для Mesa): su - && yum --enablerepo=rawhide install mesa-libGLES
  2. За­гру­зи­те па­ке­ты, лю­без­но под­го­тов­лен­ные Koji из со­об­ще­ст­ва Fedora: http://kojipkgs.fedoraproject.org/packages/wayland/0.1/0.1.20101111.fc15/ Вам по­на­до­бят­ся libwayland-client, libwayland-server, wayland и wayland-common. Сверьтесь с ар­хи­тек­ту­рой па­ке­тов: по это­му ад­ре­су дос­туп­ны вер­сии и для 32-бит­ных сис­тем (i686), и для 64-бит­ных (x86_64).
  3. Ус­та­но­ви­те за­гру­жен­ные RPM-па­ке­ты. От­крой­те тер­ми­нал для пап­ки, в ко­то­рой ле­жат па­ке­ты, и ско­ман­дуй­те: su - && rpm -Uvh *wayland*rpm

Го­то­во! Ре­цепт для Fedora ока­зал­ся не та­ким уж и слож­ным.



Сбор­ка из ис­ход­ни­ков

Ес­ли вы во­ро­ти­те нос от дво­ич­ных па­ке­тов и считае­те, что джигит дол­жен со­би­рать всё сам, по­че­му бы не ском­пи­ли­ро­вать Wayland.

На­вер­ное, нет ну­ж­ды на­по­ми­нать, что вам по­на­до­бит­ся на­бор ин­ст­ру­мен­тов для сбор­ки про­грамм­но­го обес­пе­чения из ис­ход­но­го ко­да. В за­ви­си­мо­сти от вашего ди­ст­ри­бу­ти­ва Linux со­став ин­ст­ру­мен­та­рия раз­ра­бот­чи­ка бу­дет от­ли­чать­ся. В до­ку­мен­та­ции от ва­ше­го по­став­щи­ка Linux всегда мо­жно уточнить детали. Но, так или ина­че, вот неко­то­рые кон­крет­ные со­ве­ты:

  • Ес­ли вы ис­поль­зуе­те Debian или род­ст­вен­ные ему ди­ст­ри­бу­ти­вы (вклю­чая все ва­ри­ан­ты *Ubuntu), бу­дет удоб­но восполь­зо­вать­ся ме­та­па­ке­том build-essential. Ско­ман­до­вав sudo apt-get install build-essential, вы сра­зу уста­но­ви­те на­бор па­ке­тов, необ­хо­ди­мых для сбор­ки из ис­ход­ных тек­стов. Так­же удоб­но ис­поль­зо­вать sudo apt-get build-dep имя_па­ке­та для ав­то­ма­ти­че­­ской уста­нов­ки за­ви­си­мо­стей для сбор­ки ука­зан­но­го па­ке­та из ис­ход­ных тек­стов.
  • Поль­зо­ва­те­ли ди­ст­ри­бу­ти­вов, осно­ван­ных на Red Hat/Fedora (на­при­мер, CentOS), мо­гут так­же уста­нав­ли­вать груп­пы па­ке­тов по­сред­ст­вом yum. На­при­мер, ко­ман­да yum groupinstall “Development Tools” уста­но­вит ба­зо­вый на­бор для раз­ра­бот­ки и сбор­ки ПО. Ко­ман­да yum-builddep уме­ет уста­нав­ли­вать за­ви­си­мо­сти, необ­хо­ди­мые для сбор­ки ука­зан­но­го па­ке­та из ис­ход­ных тек­стов, так что не за­бы­вай­те и про неё.
  • Ес­ли у вас ка­кой-ли­бо дру­гой ди­ст­ри­бу­тив, по­ста­рай­тесь ис­сле­до­вать его па­кет­ный менед­жер. В боль­шин­ст­ве слу­ча­ев вы най­дё­те оп­цию уста­нов­ки групп па­ке­тов, и сре­ди этих групп бу­дет раз­дел, свя­зан­ный с раз­ра­бот­кой.
  • Сре­ди за­ви­си­мо­стей Wayland сто­ит упо­мя­нуть gdk-pixbuf-2.0, libudev, libdrm, xcb-dri2, xcb-fixes (для ком­по­зи­тин­га в X), cairo-gl, glib-2.0, gdk-2.0 (для poppler) и poppler-glib. Убе­ди­тесь, что у вас уста­нов­ле­ны фай­лы для раз­ра­бот­ки с ис­поль­зо­ванием этих па­ке­тов ('*-devel или *-dev).

Мы пом­ним, что Wayland тре­бу­ет вер­сию Mesa со сте­ком EGL, по­это­му для на­ча­ла имен­но его и со­бе­рём:

$ git clone git://anongit.freedesktop.org/mesa/mesa
$ cd mesa
$ ./configure --prefix=$HOME/install --enable-egl --enable-gles2
$ make && make install

Об­ра­ти­те вни­ма­ние, что на­чи­ная с вер­сии 7.9 EGL бу­дет вклю­чён в ос­нов­ную вет­ку Mesa, и в бу­ду­щем вы смо­же­те про­пус­тить этот шаг и про­сто об­но­вить Mesa и её за­ви­си­мо­сти.

Те­перь ском­пи­ли­ру­ем xkbcommon, ко­то­рый ну­жен для транс­ля­ции со­бы­тий evdev в сиг­на­лы Wayland. Про­ще го­во­ря, без это­го не бу­дет под­держ­ки кла­виа­ту­ры:

$ git clone git://people.freedesktop.org/~krh/libxkbcommon.git
$ cd libxkbcommon/
$ ./autogen.sh --prefix=$HOME/install
$ make && make install

Что­бы лю­бое при­ло­же­ние в Wayland ото­бра­жа­ло ин­тер­фейс­ные эле­мен­ты управ­ле­ния, не­об­хо­ди­ма век­тор­ная гра­фи­че­ская биб­лио­те­ка с под­держ­кой GL-вы­во­да. По­ка что этим мо­жет по­хва­стать­ся толь­ко Cairo. Со­бе­рём cairo-gl:

$ git clone git://anongit.freedesktop.org/cairo
$ cd cairo
$ ./autogen.sh --prefix=$HOME/install --enable-gl
$ make && make install

Опять же, на­чи­ная с вер­сии 1.10, в Cairo по умол­ча­нию бу­дет под­дер­жи­вать­ся вы­вод че­рез GL, так что сле­ди­те за вер­сия­ми ва­ше­го ПО.

Те­перь са­мое вре­мя ско­пи­ро­вать из GIT-ре­по­зи­то­рия на­ше­го глав­но­го ге­роя:

$ git clone git://people.freedesktop.org/~krh/wayland
$ aclocal; autoconf; ./configure --prefix=$HOME/install
$ make && make install

Ес­ли всё прой­дёт глад­ко, то че­рез не­ко­то­рое вре­мя в ва­шей сис­те­ме бу­дет ус­та­нов­лен Wayland. Но рас­слаб­ля­ться прежде­временно: что­бы дать Wayland возможность оп­ре­де­лить ва­ше ви­део­ус­т­рой­ст­во, ско­пи­руй­те файл 70-wayland.rules из де­ре­ва ис­ход­но­го ко­да в пап­ку /etc/udev/rules.d, по­сле чего введи­те ко­ман­ду

udevadm trigger --subsystem-match=drm –subsystem-match=input.

За­пус­ка­ем Wayland

Ес­ли вы ви­ди­те свой ра­бо­чий стол, то оче­вид­но, что X-сер­вер уже ра­бо­та­ет. В та­ком со­стоянии Wayland мо­жет быть за­пу­щен толь­ко как кли­ент внут­ри X11, а зна­чит, управ­ление кла­виа­ту­рой и мы­шью так­же бу­дет во вла­сти X-сер­ве­ра. В этом слу­чае вам не тре­бу­ет­ся ре­жим KMS, и в це­лом та­кой спо­соб по­зво­ля­ет наи­бо­лее про­сто, безо­пас­но и без­бо­лезнен­но тес­ти­ро­вать Wayland. Для пол­но­цен­но­го за­пуска Wayland в «род­ном» ре­жи­ме вы долж­ны вый­ти из X-сер­ве­ра и перебрать­ся в чёр­ную кон­со­ль Linux. Для это­го мож­но, к при­ме­ру, пе­ре­клю­чить­ся на дру­гой вир­ту­аль­ный тер­ми­нал (на­жми­те Ctrl-Alt-F1, что­бы ока­зать­ся в tty1), ли­бо за­гру­зить всю сис­те­му в ре­жим команд­ной стро­ки.

По­следнее дости­жи­мо мно­ги­ми пу­тя­ми, но боль­шин­ст­во пред­по­чи­та­ет ис­поль­зо­вать runlevel 3 (уро­вень за­пуска 3). Как из­вест­но, в Linux сна­ча­ла за­пуска­ют­ся все сис­тем­ные служ­бы (уро­вень 3), а за­тем гра­фи­че­­ское при­гла­шение и ра­бо­чий стол (уро­вень 5). На­при­мер, в Fedora ко­ман­да sudo /sbin/init 3 вы­клю­чит ра­бо­чий стол вме­сте с X-сер­ве­ром и вер­нёт вас в тё­п­лую лам­по­вую команд­ную стро­ку.

Не за­будь­те про­ве­рить, ра­бо­та­ет ли у вас KMS. Ко­гда все про­вер­ки бу­дут сде­ла­ны, за­пус­ти­те Wayland:

wayland-compositor &

Те­перь за­пус­тим де­мон­ст­ра­ци­он­ные при­ло­же­ния:

wayland-dnd & wayland-flower & wayland-gears & wayland-terminal

Вы долж­ны уви­деть не­что по­хо­жее на кар­тин­ку. По умол­ча­нию с Wayland по­став­ля­ет­ся не­сколь­ко на­гляд­ных тес­то­вых при­ло­же­ний, та­ких как ок­но для пе­ре­тас­ки­ва­ния объ­ек­тов мы­шью, кру­тя­щие­ся шес­тер­ни (смот­ри­те, OpenGL ра­бо­та­ет!), тер­ми­нал и ещё не­сколь­ко. Пол­но­стью их спи­сок мож­но по­смот­реть, на­брав ко­ман­ду /usr/bin/wayland*. Вы долж­ны уви­деть при­мер­но сле­дую­щее:

/usr/bin/wayland-compositor 	 /usr/bin/wayland-screenshot
/usr/bin/wayland-dnd 	 /usr/bin/wayland-smoke
/usr/bin/wayland-flower 	 /usr/bin/wayland-terminal
/usr/bin/wayland-gears 	 /usr/bin/wayland-view
/usr/bin/wayland-image

В прин­ци­пе, это все кли­ент­ские при­ло­жения, ко­то­рые на дан­ный мо­мент су­ще­ст­ву­ют для Wayland. С по­мо­щью wayland-terminal вы мо­же­те за­пустить внут­ри Wayland пол­но­цен­ный X-сер­вер и да­же ва­ши лю­би­мые Gnome, KDE и про­чие DE с про­грам­ма­ми для них. Этот ре­жим обе­ща­ет быть ак­ту­аль­ным ещё дол­го, так как для пол­но­цен­но­го пор­ти­ро­вания всех по­пу­ляр­ных Linux-при­ло­жений на Wayland тре­бу­ет­ся мно­го вре­мени. Си­туа­ция во мно­гом по­хо­жа на при­ло­жения X11 для Mac OS X, ко­то­рые дол­гое вре­мя «вкла­ды­ва­лись» внутрь ра­бо­че­го сто­ла по­доб­ным же об­ра­зом.


На­после­док

Са­мое зна­чи­тель­ная под­держ­ка в де­ле про­дви­жения Wayland на ра­бо­чий стол ис­хо­дит от про­ек­та Unity – но­во­го ра­бо­че­го ок­ру­жения, из­на­чаль­но раз­ра­ба­ты­вае­мо­го в Canonical для нетбу­ков и ма­лень­ких эк­ра­нов. Те­перь стало из­вест­но, что Unity бу­дет внедрять­ся в Ubuntu как сре­да по умол­чанию уже в этом го­ду. Так как Unity осно­ван на GTK, это да­ёт тол­чок мно­же­ст­ву раз­ра­бот­чи­ков, ко­то­рые те­перь бу­дут пе­ре­во­дить свои при­ло­жения на Wayland. Так или ина­че, но в этом го­ду нас ждёт мно­го ин­те­рес­но­го!

Слож­но ска­зать, го­то­вы ли уже поль­зо­ва­те­ли к пе­ре­ходу на Wayland, но до­под­лин­но из­вест­но, что сей­час в Ин­тернете об­су­ж­да­ет­ся два важ­ных мо­мен­та. Пер­вый свя­зан с пре­кра­щением под­держ­ки ста­ро­го обо­ру­до­вания, вто­рой – с ут­ра­той т. н. «се­те­вой про­зрач­но­сти», ко­то­рой всегда гор­ди­лись апо­ло­ге­ты X. Дей­ст­ви­тель­но, ни один ви­део­чип, ко­то­рый не под­дер­жи­ва­ет ра­бо­ту в ре­жи­ме KMS, не смо­жет ра­бо­тать с Wayland и бу­дет счи­тать­ся несо­вмес­ти­мым. С дру­гой сто­ро­ны, к мо­мен­ту обо­ст­рения дан­ной про­бле­мы та­кие ви­део­чи­пы уже объ­ек­тив­но уста­ре­ют, и их бу­дет не осо­бен­но жал­ко. Так­же, несмот­ря на от­сут­ст­вие се­те­вой ар­хи­тек­ту­ры в Wayland, никто не ме­ша­ет реа­ли­зо­вать уда­лён­ную ра­бо­ту че­рез VNC или ана­ло­гич­ный про­то­кол.

При этом пре­иму­ще­ст­ва Wayland го­раз­до бо­лее яр­кие, чем ка­жет­ся. Но­вый лёг­кий и очень бы­ст­рый дис­плей­ный сер­вер иде­аль­но под­хо­дит для не­тбу­ков, ком­му­ни­ка­то­ров и про­чих уст­ройств с не­боль­шой вы­чис­ли­тель­ной мо­щью. Вме­сте c Wayland и со­об­ще­ст­вом, Linux на­ко­нец за­вою­ет Зем­лю, со­сед­ние га­лак­ти­ки и Все­лен­ную. Раз­ве не это­го мы все ждём?

На­страи­ва­ем KMS

Пер­во-на­пер­во уда­ли­те про­прие­тар­ные ви­део-­драй­ве­ры, ес­ли они у вас есть. Ес­ли они ус­та­нав­ли­ва­лись вруч­ную, вы­пол­ни­те от ли­ца ад­ми­ни­ст­ра­то­ра ко­ман­ды /usr/bin/nvidia-uninstall или /usr/share/ati/fglrx-uninstall.sh для ви­део­карт Nvidia или Ati/AMD, со­от­вет­ст­вен­но.

У поль­зова­телей по­след­них вер­сий Ubuntu или Fedora сис­те­ма по­сле это­го ав­то­ма­ти­че­ски вернётся в ис­ход­ный гра­фи­че­ский ре­жим, для ко­то­ро­го по умол­ча­нию ис­поль­зу­ет­ся KMS. Ес­ли это­го не про­ис­хо­дит, от­крой­те ме­нед­жер па­ке­тов и убе­ди­тесь, что от­кры­тые драй­ве­ры nouveau или radeon у вас ус­та­нов­ле­ны. Про­верь­те ра­бо­то­спо­соб­ность со­от­вет­ст­вую­щих мо­ду­лей яд­ра:

su - && modprobe nouveau

или, соответственно,

su - && modprobe radeon

Что­бы оп­ре­де­лить, ис­поль­зу­ет­ся ли в те­ку­щий мо­мент KMS, дай­те ко­ман­ду

dmesg | grep frame

и убе­ди­тесь, что для фрейм-бу­фе­ра ис­поль­зу­ет­ся мо­дуль intel, nouveau или radeon. Обыч­но мень­ше все­го про­блем с KMS воз­ни­ка­ет у вла­дель­цев чи­пов Intel – эта кор­по­ра­ция ак­тив­нее всех уча­ст­ву­ет в раз­ви­тии Wayland.

Ес­ли ни­че­го не по­лу­ча­ет­ся, по­про­буй­те вруч­ную до­ба­вить па­ра­метр modeset=1 в за­груз­чик Grub. Со­вре­мен­ная вер­сия Grub v.2 же­ла­ет, что­бы вы до­ба­ви­ли этот па­ра­метр в файл /etc/default/grub и за­тем ско­ман­до­ва­ли update-grub.

Глос­са­рий Тер­ми­ны для со­мне­ваю­щих­ся

  • Cairo – биб­лио­те­ка, обес­пе­чи­ваю­щая от­ри­сов­ку эле­мен­тов ин­тер­фей­са при по­мо­щи век­тор­ных (а не пик­сель­ных) форм, с привлече­нием ап­па­рат­ного ус­ко­ре­ния гра­фи­ки.
  • DRI – Direct Rendering Infrastructure, ин­фра­струк­ту­ра не­по­сред­ст­вен­но­го рен­де­рин­га, по­зво­ляю­щая при­клад­ным про­грам­мам на­пря­мую об­щать­ся с ви­део­ус­т­рой­ст­вом, ми­нуя деб­ри X-сер­ве­ра и его рас­ши­ре­ний.
  • Evdev – обо­зна­ча­ет Event Device. Это под­сис­те­ма яд­ра Linux, ко­то­рая об­ра­ба­ты­ва­ет со­бы­тия от кла­виа­ту­ры, мы­ши и про­чих уст­ройств вво­да. Evdev за­ме­ня­ет ус­та­рев­шие рас­ши­ре­ния X-сер­ве­ра для дан­ного функ­цио­нала.
  • KMS – Kernel Modesetting, спо­соб управ­ле­ния ви­део­ре­жи­мом (и раз­ре­ше­ни­ем эк­ра­на, в ча­ст­но­сти) на уров­не яд­ра, а не X-сер­ве­ра.
  • Mesa – от­кры­тая реа­ли­за­ция OpenGL-ус­ко­ре­ния для всех по­пу­ляр­ных ви­део­драй­ве­ров.
  • Pageflipping – ме­тод ви­део­вы­во­да, ис­поль­зую­щий «пе­ре­бро­ску» стра­ниц в па­мя­ти ви­део­адап­те­ра. Ко­гда на эк­ран вы­во­дит­ся изо­бра­же­ние из ви­део­бу­фе­ра, в это вре­мя от­ри­со­вы­ва­ет­ся уже сле­дую­щее изо­бра­же­ние, по­сле че­го они ме­ня­ют­ся мес­та­ми. Этот ме­тод по­зво­ля­ет из­ба­вить­ся от ви­ди­мых де­фек­тов от­ри­сов­ки и по­вы­сить вос­при­ни­мае­мую про­из­во­ди­тель­ность.
  • X11 – обыч­но это си­но­ним X Window System, или про­сто X, «ик­сы». Это стан­дарт­ная ос­­но­ва для всей гра­фи­ки в Linux и мно­гих UNIX-по­доб­ных ОС.
  • X.org – про­ект, раз­ра­ба­ты­ваю­щий те­ку­щую реа­ли­за­цию X для Linux.

Ис­то­рия про­ек­та

Wayland су­ще­ст­ву­ет с 2008 го­да бла­го­да­ря Кри­стиа­ну Хёгс­бер­гу, тогда ра­бо­тавшему в Red Hat. Из до­машнего про­ек­та, ко­то­рым Кри­сти­ан неспеш­но занимал­ся на досуге, Wayland вы­рос в зре­лую сис­те­му – сей­час она ак­тив­но под­дер­жи­ва­ет­ся Intel, ку­да Кри­сти­ан пе­ре­шёл. У не­го есть от­лич­ный опыт ра­бо­ты с гра­фи­че­­ским сте­ком Linux, в ча­ст­­но­сти, с тех­но­ло­ги­ей AIGL, вы­шедшей из стен Red Hat. Про Wayland он пи­сал, что хотел соз­дать сис­те­му, «где ка­ж­дый кадр от­ри­со­вы­ва­ет­ся иде­аль­но, что в мо­ём понимании оз­на­ча­ет: все при­ло­жения так хо­ро­шо кон­тро­ли­ру­юет рен­де­ринг, что мы никогда не уви­дим рва­ное ви­део, под­тор­ма­жи­вание, мед­лен­ную от­ри­сов­ку или ми­гание».

Из­на­чаль­но Wayland был вы­пу­щен под ли­цен­зи­ей MIT/GPLv2, но в 2010 го­ду про­ект ре­шил сменить её в поль­зу LGPLv2, ко­то­рая луч­ше под­хо­дит для вклю­чения в Ubuntu и дру­гие ди­ст­ри­бу­ти­вы с ме­ж­ду­на­род­ным ох­ва­том. По­ка вы чи­тае­те эти стро­ки, лю­ди в Canonical и Intel плот­но ра­бо­та­ют над пе­ре­но­сом ин­тер­фейс­ных биб­лио­тек Qt и GTK в Wayland, и бли­зок час, когда мы уви­дим ре­зуль­тат их тру­да.

Персональные инструменты
купить
подписаться
Яндекс.Метрика