Как поставить на ubuntu server x

Обновлено: 07.07.2024

Немного обо всем и все о немногом, или практический опыт системного администратора.

Февраль 2010
Пн Вт Ср Чт Пт Сб Вс
« Янв Март »
1234567
891011121314
15161718192021
22232425262728

Лекция №28 - X-сервер в Linux

Calendar

22 февраля 2010, 13:57

Сегодня мы поговорим о графике в Linux. В отличии от Windows графическая подсистема в Linux не является неотъемлемой частью - она существует отдельно от ядра системы. Именно поэтому есть возможность работать в Linux без графической подсистемы - только в алфавитно-цифровом режиме.

Графическая подсистема в Linux называется X Window System. Разрабатывалась она изначально как модель клиент/сервер, поэтому и состоит из двух частей: сервера и клиента. В роли сервера выступает процесс X-server, а в роли клиентов графические приложения. Клиент и сервер общаются между собой по правилам описанным в X-протоколе. Собственно сам X-сервер и состоит из двух больших частей: это набор драйверов для работы с устройствами ввода-вывода и X-протокол для работы с приложениями.

Сейчас важно понять, что с устройствами ввода (клавиатурой, мышью и другими) и устройствами вывода (видеоадаптеры, мониторы и прочие) взаимодействует именно X-сервер, а не приложения. Мы не будет углубляться в подробности X-протокола и тонкости взаимодействия всех компонентов. Отметим себе, что X-сервер взаимодействует с приложениями при помощи механизма unix-сокетов и internet-сокетов. Возможность взаимодействия через internet-сокеты позволяет X-серверу и клиенту работать в связке находясь на разных компьютерах объединенных в сеть.

Попробуем выполнить несколько практических упражнений, которые помогут разобраться с основами взаимодействия X-сервера и приложений. Как правило на рабочей станции уже запущен один экземпляр X-сервера. Запустим еще один экземпляр командой (команда должна запускаться от имени суперпользователя):

В результате на одной из виртуальных консолей будет запущен экземпляр X-сервера. На этой консоли вы увидите черный (либо серый) экран с крестиком вместо указателя мыши. Теперь перейдите на свободную консоль и наберите команду:

Перейдите на консоль в которой запущен X-сервер. Вы должны увидеть в левом верхнем углу аналоговые часы. Программа xclock в данном примере является клиентом для X-сервера. С помощью ключа -display мы указали программе с каким X-сервером ей нужно взаимодействовать, то есть какой X-сервер выведет на устройство вывода (монитор) изображение программы xclock.

X-сервер, который запускается по умолчанию при загрузке системы имеет порядковый номер 0. То есть команда xclock -display :0 выведет часы на седьмую виртуальную консоль.

Вернемся к нашим часам на втором экземпляре X-сервера. Вы видите что у программы нет привычной окантовки окна с кнопками свернуть, развернуть, закрыть. Дело в том, что их рисует не X-сервер, а другой процесс, который называется менеджер окон. Менеджер окон также занимается масштабированием и перемещением изображения программ. Такое разделение функций также повышает гибкость всей графической подсистемы X Window. Так как вы можете выбирать какой менеджер окон использовать для прорисовки рамок приложений.

Как уже было сказано, X-сервер работает с устройствами ввода/вывода информации. Основной конфигурационный файл в котором хранятся настройки X-сервера называется /etc/X11/xorg.conf. Хотя во многих современных настольных дистрибутивах этот файл пустой, так как за настройку оборудования отвечает другая подсистема, тем не менее X-сервер продолжает читать конфигурацию из этого файла. Рассмотрим этот файл, так как возможны ситуации когда параметры ваших устройств ввода/вывода будут автоматически определяться некорректно и тогда ручная правка файла /etc/X11/xorg.conf может помочь решить проблему.

Файл /etc/X11/xorg.conf разбит на секции при помощи ключевых слов section и end section. Рассмотрим наиболее важные секции.

section "Files"
.
FontPath "/usr/share/fonts/X11/misc"
FontPath "tcp/192.168.1.1:7100"
.
end section

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection

Section "Device"
Identifier "Intel Corporation 82815 CGC [Chipset Graphics Controller]"
Driver "i810"
BusID "PCI:0:2:0"
EndSection

Section "Monitor"
Identifier "Универсальный монитор"
Option "DPMS"
HorizSync 28 - 64
VertRefresh 43 - 60
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Intel Corporation 82815 CGC [Chipset Graphics Controller]"
Monitor "Универсальный монитор"
DefaultDepth 24
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600"
EndSubSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection

Об этих и других параметрах можно подробно прочесть в справке Linux - man Xserver, man xorg.conf, man X и других разделах.

modeline “ 1024 × 768 @ 60 ″ 65.0 1024 1048 1184 1344 768 771 777 806 -vsync -hsync

В кавычках указывается название параметра modeline - “1024×768@60″ - оно может быть любым и никак не влияет ни на какие характеристики. Далее идет число указывающее частоту тактового генератора видеоадаптера (dot clock) - 65.0. Четыре следующих числа - 1024 1048 1184 1344 - указывают на разрешение по горизонтали. 1024 - это и есть само разрешение по горизонтали - количество видимых точек в строке. 1048 - это общее количество точек в строке, в том числе и невидимых (черная кромка экрана). 1184 - это число тактов развертки от начала строки до импульса синхронизации, а 1344 - это общее число тактов необходимое на формирование одной строки.

Числа 768 771 777 806 означают ту же информацию только для вертикального разрешения. Если вы не совсем поняли, что значат эти параметры не расстраивайтесь. В любом случае вам не нужно вычислять их вручную, так как они должны быть указаны в документации к вашему монитору. И ваша задача просто найти эти параметры и правильно прописать их в строке modeline.

-vsync, -hsync или могут быть +vsync, +hsync, обозначают тип синхроимпульса. Эти параметры также берутся из документации к монитору.

Строк modeline может быть несколько, а может быть только одна - для нужного вам разрешения.

Хотя такое ручное добавление параметров уже редкость, тем не менее еще может иметь место, и поэтому будьте осторожны в установке этих параметров, так как неправильная их установка может привести даже к выходу монитора из строя.

Давайте теперь более подробно поговорим о дисплей менеджерах (Display managers) или менеджерах экрана.

Вы должны помнить, что для того, чтобы начать работу в алфавитно-цифровом режиме, вы должны ввести логин и пароль, которые запрашивает консольная программа getty. getty проверяет введенные данные, и если они корректны, то пускает пользователя в систему, предоставляя доступ к командному интерпретатору. Дисплей менеджер - графический аналог программы getty. Основная задача менеджера экрана - это предоставить пользователю графический интерфейс для ввода логина и пароля, проверить введенные логин и пароль и в случае успеха пустить пользователя в систему запустив для него графическую оболочку или менеджер окон.

Термином графическая оболочка очень часто называют как оконные менеджеры (WindowMaker, IceWM, Blackbox, JWM и другие), так и полнофункциональные графические оболочки (GNOME, KDE, XFCE и другие).

Базовым дисплей менеджером Linux является xdm. Для двух наиболее популярных графических оболочек Gnome и KDE существуют свои дисплей менеджеры - gdm и kdm соответственно. Кроме основной функции, дисплей менеджеры имеют и ряд дополнительных: возможность выбрать язык ввода, предоставить возможность выбора оконного менеджера или графической оболочки, возможность, не заходя в систему, выключить компьютер.

Конфигурационные файлы дисплей менеджера xdm, расположены в каталоге /etc/X11/xdm/. Поле успешной регистрации пользователя в системе с помощью xdm, будет выполнятся скрипт Xsession, расположенный в /etc/X11/xdm/. Из этого скрипта будет выполнен запуск скрипта /etc/X11/Xsession, который продолжит загрузку графической подсистемы.

Конфигурационные файлы для дисплей менеджера gdm расположены в каталоге /etc/gdm/, а для kdm в каталоге /etc/kde4/kdm (для четвертой версии KDE).

Если вы работаете в алфавитно-цифровом режиме, то для перехода в графический режим достаточно выполнить команду startx. В результате будет запущен графическая среда по умолчанию. Дисплей менеджер в процессе выполнения скрипта startx, не запускается, так как пользователь уже аутентифицировался в системе при помощи программы getty

Я думал что /usr/bin/startx Скрипт используется для запуска X-сервера, но похоже, что это не так. Какой процесс или скрипт запускает X-сервер? X-сервер должен быть запущен до того, как появится приветствие lightdm, но когда именно?

4 ответа

/etc/init.d/lightdm запускает сервер Xserver. Сначала запускается Lightdm, затем запускается Xserver. Родительским процессом Xserver (Xorg) является lightdm (PID 25600, как показано в примере ниже). Вы можете увидеть это, выполнив:

Выполнение следующих команд остановит и запустит lightdm и Xserver соответственно:

Загрузитесь в текстовый экран и используйте startx

Если ваша система Ubuntu загружается в текстовый экран, например, в минимальную систему или серверную систему, вы можете использовать startx для запуска xserver (и простой оконный менеджер, такой как openbox или fluxbox, или среду рабочего стола, такую ​​как gnome, kde, lxde. XFCE).

Например, достаточно запустить и использовать простой графический рабочий стол (в минимальной или серверной системе) после установки трех программных пакетов,

Загрузка прямо на графический рабочий стол

Если у вас есть настольная система Ubuntu (стандартная Ubuntu или одна из разновидностей сообщества Kubuntu, Lubuntu. Xubuntu), вам не нужно использовать startx, среда графического рабочего стола запускается автоматически (и вам не нужно запускать startx ). Если я правильно понимаю, он запускается через systemd , Смотрите, например, следующие ссылки,

Переключение между текстовым режимом и графическим режимом

Переключение между текстовым режимом и графическим режимом описано в принятом ответе по следующей ссылке

Чтобы загрузить Ubuntu 16.04 Desktop без X один раз, добавьте systemd.unit=multi-user.target в командную строку linux в GRUB.

Чтобы сделать это по умолчанию, используйте

Чтобы вернуться к загрузке по умолчанию в X, используйте

Чтобы увидеть текущую цель по умолчанию,

Что такое Ubuntu WSL

Для начала кратко поясню, что такое WSL на практике. Это некий слой абстракции, который позволяет запускать linux приложения в среде windows. И это не виртуальная машина. И Linux, и Windows приложения работают в рамках одной операционной системы с совместным доступом к данным на дисках. Вы прозрачно можете запустить приложение на ubuntu и открыть им файл в директории windows.

Файлы ubuntu wsl

Тут и корень системы, и директории пользователей. Посмотреть содержимое можно из-под windows. Только не рекомендуется их редактировать. Работа linux системы может быть нарушена. На примере доступа к файлам видно, что это не виртуальная машина. Важно понимать это отличие.

А вот то же самое можно сделать из-под ubuntu, открыв файлы из директории windows.

Доступ к windows каталогам из-под linux

С помощью данной технологии, вы условно сможете запустить полноценный Ubuntu Server на своем компьютере. Читайте мой обзор на Ubuntu, чтобы иметь представление о том, чем он отличается от остальных linux дистрибутивов.

Зачем нужна Ubuntu WSL на Windows

Поговорим немного о том, зачем может понадобиться установка Ubuntu WSL в Windows 10. Можно в небольшой список это вынести и перечислить по пунктам:

Это то, что первое приходит в голову. Думаю, есть и другие причины, для чего может быть полезно установить ubuntu wsl. Делитесь своим мнением в комментариях. Может я что-то важное упускаю.

Установка Ubuntu WSL под Win 10

Установка подсистемы Windows для Linux в Windows 10 неплохо описана в официальном руководстве от Microsoft. Чтобы установить Ubuntu WSL на Windows, надо для начала включить компонент системы Windows под названием Windows-Subsystem-Linux. Для этого запускаем cmd с правами администратора (это важно!) и переходим в powershell. Там выполняем:

Установка Ubuntu WSL в Windows 10

После этого активируем компонент Платформа виртуальных машин.

Активация компонента VirtualMachinePlatform

Далее обязательно перезагрузить систему, иначе дальше будут ошибки. После перезагрузки продолжаем ставить ubuntu под wsl.

Установка обновления ядра Linux в win10

Дальше устанавливаем версию WSL 2 по умолчанию. Она более продвинутая и быстрая, по сравнению с первой.

Выбор версии wsl 2 по умолчанию

Теперь идем в Windows Store и ищем там необходимую вам версию Ubuntu WSL. Я просто в строку поиска ввел название дистрибутива и получил все доступные версии.

Установка ubuntu wsl через магазин windows

После установки в меню Пуск можно запустить Ubuntu WSL. При первом запуске вам предложат задать имя пользователя для Linux системы.

Первый запуск ubuntu wsl

Вот и все. Заходим в свежеустановленную Ubuntu 20 LTS на Win 10.

ubuntu в win 10

У вас под рукой практически полноценная linux система, работающая нативно под windows.

Настройка Ubuntu WSL

Выполним первоначальную настройку Ubuntu WSL, чтобы с ней удобнее было далее работать. Начнем с подключения по SSH.

Настройка ssh

Терминал Windows не очень удобен и привычен. Так что если вы привыкли подключаться по ssh через какой-нибудь другой менеджер подключений, вам нужно будет на wsl системе настроить ssh. Это не совсем очевидная процедура. Чтобы заставить нормально работать openssh server, его надо переустановить. Делаем это:

Настройка ssh в ubuntu wsl

Теперь сразу разрешим подключаться с использованием паролей. Для этого открываем конфиг /etc/ssh/sshd_config и разкомментируем настройку:

Авторизация по паролю через ssh

После этого перезапустите службу sshd

Мы закончили настройку ssh в ubuntu. Теперь к ней можно подключиться, например, через putty. Используем адрес 127.0.0.1 и порт 22.

Подключение по ssh к wsl

Вот и все. Можете использовать любой другой ssh клиент.

Обновление

Обновление Ubuntu WSL на windows

В общем случае этого достаточно для обновления системы. Если же вы хотите выполнить обновление до следующего релиза, то лучше это сделать через Windows Store, установив нужную версию ubuntu.

Установка MC

Для того, чтобы установить популярный в linux среде файловый менеджер Midhight Commander или коротко MC, необходимо опять же воспользоваться пакетным менеджером apt.

Установка MC в WSL

При этом вы сможете без проблем перемещаться не только внутри ubuntu, но и открывать файлы windows. Традиционные диски C:, D: и т.д. смонтированы в /mnt.

Войти под root

Для того, чтобы в Ubuntu WSL зайти под ученой записью root, необходимо под пользователем выполнить в консоли:

root в ubuntu wsl

Теперь вы полноценный root пользователь и можете запускать команды с повышенными привилегиями без sudo.

Автозапуск служб

В Ubuntu WSL не работает systemd и возникает закономерный вопрос, а как же тогда настроить автозапуск нужных служб. Тут есть два принципиально разных подхода по автозапуску служб:

  1. Служба в wsl запускается автоматически после запуска компьютера.
  2. Служба wsl запускается автоматически после первого входа в bash установленного linux.

Если вы хотите выполнить какую-то команду при первом входе в wsl, то просто добавьте ее в файл .bashrc домашнего каталога пользователя. Например, добавим туда вывод фразы Hello World! Для этого добавляем в самый конец:

Автозапуск службы в ubuntu wsl

Пример выполнения команды при входе

Вместо команды echo можете написать любую другую. Например, запуск MC:

Теперь при запуске терминала ubuntu wsl у вас автоматически будет запускаться файловый менеджер MC.

Обновление WSL до WSL2

Во время установки любой WSL системы у вас есть возможность выбора ее версии. Вторая версия более современная и быстрая, так что в общем случае рекомендуется использовать ее. Но возможно вам по какой-то причине понадобится первая. Например, в WSL 1 файловая система linux в открытом виде в виде файлов в директории C:\Users\user1\AppData\Local\lxss, а во второй версии в виде единого виртуального диска. Разница принципиальна.

Для того, чтобы обновить WSL1 до WSL2 необходимо через powershell активировать компонент VirtualMachinePlatform:

Указать версию WLS2 как дефолтную:

В завершении проапгрейдить установленный дистрибутив до WSL2 или поставить новый.

Версии WSL можно переключать в любое время. Узнать distribution name можно с помощью команды:

Обновление WSL до WSL2

Reboot Ubuntu WSL

Работа в Windows 10 с Ubuntu несколько необычна, поэтому сходу не понятные даже такие простые вещи, как перезагрузка linux системы. Как сделать reboot в Ubuntu WSL? Для того, чтобы перезагрузить систему, достаточно выполнить в консоли powershell команду:

Все экземпляры wsl будут завершены. После запуска терминала ubuntu wsl она запустится заново, что будет равнозначно обычной перезагрузки системы.

Если вы используете первую версию WSL, то перезапуск linux систем выполняется перезапуском службы, которая их обслуживает. Выполняется так же в консоли windows^

Как удалить Ubuntu WSL

Если вам нужно удалить Ubuntu WSL из Windows 10, то сделать это можно точно так же, как любое другое приложение, установленное из Магазина. Выбираете Ubuntu WSL через пуск и нажимаете Удалить.

Удаление Ubuntu WSL

То же самое можно сделать и через консоль powershell

Список установленных систем смотрим командой:

Ничего сложного, система удаляется фактически в одну команду. Для повторной установки достаточно еще раз установить ubuntu через Магазин.

В первую очередь необходимо установить Linux Bash в Windows 10. Инструкция по установке Linux Bash описана в следующей статье:

Для установки Ubuntu из Microsoft Store предлагаем выбрать версию Ubuntu 18.04 LTS в операционной системе Windows 10 May 2019 Update (версия 1903).

Ubuntu 18.04 в Windows 10, версия 1903

Параметры установленного дистрибутива Linux расположены в меню Windows Параметры > Приложения > Приложения и возможности. Из списка установленных программ выберите Ubuntu 18.04 и нажмите на Дополнительные параметры.

Ubuntu 18.04 в Windows 10, версия 1903

Так же открыть параметры Ubuntu 18.04 можно нажав правой кнопкой мыши по значку Ubuntu 18.04 в меню Пуск, в открывшемся меню выбираем Дополнительно > Параметры приложения.

Ubuntu 18.04 в Windows 10, версия 1903

Параметры установленного Линукс дистрибутива в Windows 10 (версия 1903):

Параметры установленного Линукс дистрибутива в Windows 10 (1903)

Расположена файловая система Ubuntu на локальном диске С по следующему адресу:

Файловая система

Таким образом можно получить доступ к нужным файлам и папкам Linux.

После установки и первоначальной настройки системы нужно обновить систему и установить рабочее окружение.

Обновление системы и установленных пакетов:

Обновление системы и установленных пакетов

Установка рабочего окружения и пакета программ Ubuntu (Gnome):

Меняем права доступа к папке кэша:

Далее в систему Windows 10 нам нужно установить приложение для обеспечения оконной системы Linux, которая отвечает за построение и отображение графического интерфейса.

VcXsrv Windows X Server

Таких программ несколько. Предлагаем выбрать активно развивающуюся программу VcXsrv Windows X Server. Устанавливаем с настройками по умолчанию.

После запуска программы VcXsrv Windows X Server в окне Display Settings есть выбор отображения интерфейса оконной системы Linux. В нашем случае отлично работал вариант с большим оконным режимом (One large window). Там же в настройках Display number выставляем значение 0 (если возникнут проблем с запуском интерфейса, то значение нужно изменить, кроме того нужно будет изменить и значение в команде запуска).

VcXsrv Windows X Server

Далее оставляем настройки по умолчанию. По окончанию настройки у нас запустится пустое окно.

Переходим в запущенную Linux систему, у нас она открыта в виде командной строки и вводим следующие команды:

Примечание. Если выше вы изменили значение отображение дисплея, то и в данной команде для значения DISPLAY необходимо тоже изменить значение.

VcXsrv Windows X Server

Для дальнейших запусков графического окружения нужно вводить команду выше, при этом программа VcXsrv Windows X Server должна быть предварительно открыта.

Также создайте сценарий оболочки start-ubuntu (имя файла необязательно):

Сделайте скрипт оболочки исполняемым:

Запустить скрипт оболочки:

VcXsrv Windows X Server

Известные проблемы и их решения

Из недостатков, с которыми столкнулись, отметим следующие: проблема с правами доступа различных приложений и системных функций. В качестве решения можно систему запустить с правами root. В целях безопасности не рекомендуется запускать систему с полными правами администратора, но если есть в этом необходимость, то запустить можно следующим образом: после того как открыли приложение VcXsrv и Linux систему, которая открылась в виде командной строки, нужно ввести команду: sudo su , затем вводим команду для запуска графического окружения:

Теперь нам будут доступны ранее неработающие функции системы, например, русификация и работа некоторых расширений Gnome.

Так же мы столкнулись с тем, что предустановленный браузер Firefox не устанавливает дополнения. Можно воспользоваться другим браузером, например, браузером Opera. В режиме суперпользователя запускать его нужно с помощью терминала командой: opera --no-sandbox.

браузер Opera

Система установится на английском языке, установка другого языка доступна только под системой с правами администратора (sudo su). Установить русский язык в систему можно следующими командами:

После этого в настройках системы Ubuntu нужно выбрать и активировать установленный русский язык.

Читайте также: