LINUX.ORG.RU

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

Weston on Nvidia

Форум — Linux-install

Привет. Мне нужно запустить некое приложение, написанное на 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

>>> Просмотр (1600x900, 453 Kb)

 , , , ,

Sunderland93 ()

Network device driver - mtu

Форум — Development

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

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

 , ,

cavia_porcellus ()

Sr Software Engineer ARRIS - St Petersburg, Russia

Форум — Job

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 ()