LINUX.ORG.RU

Избранные сообщения cavia_porcellus

Weston on Nvidia

 , ,

Привет. Мне нужно запустить некое приложение, написанное на QT, в wayland. Насколько я понимаю, для полноценной работы wayland c nvidia мне нужны драйвер версии >=378.13 и weston c патчами от Nvidia? Есть ли какой-то легкий способ получить готовый пропатченный weston для убунты 14.04?

Заранее спасибо.

cavia_porcellus
()

GNOME on Wayland на Nvidia-блобе. История успеха

 , , , ,

Итак, свершилось! Мне наконец-то удалось запустить Wayland-сессию Гнома на проприетарном драйвере Nvidia. Для тех, кто не в теме: начиная с версии драйвера 364.12, Nvidia реализовала в нём начальную поддержку Wayland, однако несовместимую с тем, что используется в Mesa. В Mesa применяется библиотека GBM - Generic Buffer Manager, аллокатор буферов изображений. Реализация Nvidia основана на расширениях EGLStreams и EGLDevice, являющихся кроссплатформенным открытым стандартом Khronos. В списке рассылки разработчиков Wayland, Nvidia представила патчи для композитного менеджера Weston, однако разработчики их не приняли и, можно сказать, послали Nvidia подальше. Зато эти патчи адаптировали для Mutter и Sway, но о качестве работы будет ниже. Nvidia же в прошлом году анонсировала новый аллокатор, разрабатываемый совместно с разработчиками Mesa, но с момента последней новости - тишина. Nvidia не хочет создавать что-то платформоспецифичное, так как ей проще поддерживать единую кодовую базу для всех ОС.

Поддержка EGLStreams обеспечена в GNOME 3.24, однако для этого, оконный менеджер Mutter должен быть собран с --enable-egl-device Как оказалось, в Fedora 26 он собран без этой опции, также из-за применения библиотеки GLvnd, получаются лютые тормоза и лаги мышки. Аналогично в Arch Linux.

Поэтому для тестов я выбрал альфа-версию Ubuntu 17.10. Итак, что для этого нужно проделать:

1) установить драйвер Nvidia (sudo apt install nvidia-375)
2) включить DRM/KMS (по умолчанию в блобе он выключен из-за недоделанности и проблем со SLI-конфигурациями). Для этого в /etc/default/grub, в секцию параметров ядра, добавляем строку nvidia-375-drm.modeset=1 Номер драйвера указывать только для Ubuntu! Признаком успешного запуска DRM/KMS является Xorg, запущенный от юзера (в этом можно убедиться в менеджере процессов)

По идее, если всё сделано правильно, но сразу после перезагрузки Гном должен запуститься на Wayland, однако меня встречало окно входа в систему, и сеанс с Wayland никак не грузился. Поэтому я переключился на пятую tty-консоль, и стартанул сессию командой dbus-run-session -- gnome-shell --display-server --wayland

И о чудо! Оно запустилось! Начну с приятных моментов. Отрисовка значительно быстрее, чем с блобом на иксах. Курсор не отстаёт от окна ни на пиксель, анимации плавненькие, ресайз окон не тормозит. Может немного лагануть меню приложений, но я грешу на старый тормозной HDD, на котором я всё тестировал. Flatpak-приложения работают, но не все. Видео работает без проблем. Собственно, на этом приятное заканчивается. Далее оглашаю список ограничений:

1) Первое и самое главное - не работает Xwayland. В большинстве приложений. Из иксовых приложений успешно запустились лишь Firefox, Clementine и Chromium, остальные падают в корку с ошибкой Could not initialize GLX Потому запуск возможен только нативных Wayland-приложений. Чтобы запустить что-то на Qt5, нужно добавить переменную окружения export QT_QPA_PLATFORM=wayland, но тут тоже есть неприятные моменты.

2) Не запускается панель управления Nvidia (потому на скринах её нет), не работают приложения, юзающие веб-камеру (правда я только Cheese запускал), и как следствие предыдущего пункта - не работает ни одна игра (кроме встроенных гномовских) или эмулятор игровых консолей.

3) Иногда грузит CPU на 100%. Баг широко известен в сети, но я не знаю что думает на этот счёт Nvidia. От апстрима Гнома ответа не дождался.

4) KMS работает частично, в частности переключение между виртуальным консолями происходит секунды 2, а возврат в графическую может проходить и все 5. На свободном драйвере всё происходит мгновенно. Да, если вдруг кто спросит - нет, KMS в блобе не даёт высокое разрешение в консоли. Нету драйвера для fbdev, хотя с efifb вроде как разрешение высокое.

5) Родная панель управления Гнома не работает в такой конфигурации, потому запускается её сильно кастрированный вариант (скрин ниже)

Итог: я не знаю почему в Mesa выбрали GBM вместо открытого стандарта. Ведь Нвидию, по сути, обвинить не в чем. В кое-то веки смогла в стандарты. Я не думаю что будут какие-либо серьёзные улучшения как работы блоба с EGLStreams, так и оконных менеджеров куда эти патчи добавили, ибо апрстрим не принял, и тестировать некому. Хотя посмотрим как оно будет. На данный момент вердикт - неюзабельно.

Ещё скриншоты:

Firefox и LibreOffice
Activities
SMplayer (Qt5) нативно в Wayland
Панель управления
Nautilus и Clementine

Sunderland93
()

Network device driver - mtu

 , ,

Доброго дня всем. Есть драйвер некого сетевого интерефейса (oob) с выставленным MTU, положим, 1536.

Есть два вида сети, в которых оно работает. И вот выясняется, что в сети2 до получателя не доходят пакеты больше 1438 байт. Окей, выставляем mtu 1400- все работает. Как я понимаю, пакеты большего размера при отправке разбиваются верхним уровнем в зависимости от MTU - с отправкой проблем нет. Но для входящих пакетов размер тоже сравнивается с mtu - то есть пакеты больше mtu дропаются. И таким образом, для сети 1, где нет таких ограничений, входящие пакеты могут быть больше 1400.. Есть ли стандартный способ именно приема пакетов больше MTU? Или это бред сивой кобылы? Спасибо.

cavia_porcellus
()

Sr Software Engineer ARRIS - St Petersburg, Russia

 , ,

The project objective is to develop and integrate software for different cable set-top boxes. The work addresses bugfix, development of new features, porting existent code on new hardware version. The C/C++ developer position requires ability to analyze requirements develop new code based on this requirements, fix issues, be able to integrate new version of 3-rd party code (drivers, prepare and apply patches, etc).

Scope of responsibilities / Expectation:

  • Develop software using C/C++ program languages and follow Agile/Scrum process methods;
  • Address issues in 3-rd party code;
  • Perform design of Network and Common native Platform software components;
  • Implement algorithms for native layer of SW stack for specific purpose as well as independent design solution, its justification; and offer to technical leaders for consideration;
  • Participate in daily/weekly project meetings;
  • Work with other team members within a Platform group or its part on site and across different company sites;
  • Participate in project documentation design if required.

Required Skills

Specific knowledge and skills:

  • 2-3 years C/C++ development experience;
  • Knowledge of Linux operating system;
  • Ability to operate with hardware (configure, install, connect devices);
  • Analytical and problem solving skills;
  • English knowledge – be able to read technical documentation, write emails, participate in phone calls;
  • Embedded programming experience.

Beneficial Knowledge / Skills:

  • IP network devices knowledge;
  • Version control system – ClearCase, GIT;
  • Bug tracking system - Jira.

You can send CVs directly to me: marina.ektova@gmail.com

От себя добавлю резюме: будем рады кандидатам, способным писать на с/с++, читать и править чужой код. Ну и начальное знание английского необходимо.

cavia_porcellus
()