- PVSM.RU - https://www.pvsm.ru -

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 1
Редактирование снимка экрана для этой статьи — в Haiku

TL;DR: Производительность намного лучше, чем изначально. Виноват был ACPI. Запуск в виртуальной машине работает прекрасно для показа экрана. Git и менеджер пакетов встроены в файловый менеджер. Публичные беспроводные сети не работают. Разочарование с python.

На прошлой неделе [1] я открыл для себя Haiku, неожиданно хорошую систему. И даже сейчас, на второй неделе я продолжаю находить множество скрытых алмазов и приятных сюрпризов, ну и, само собой, еженедельную порцию различных нюансов.

Производительность

Как оказалось, плачевная производительность первой недели, особенно в браузере (задержки при наборе текста, к примеру), возможно, связаны с кривой реализацией ACPI в BIOS моего компьютера.

Для того, чтобы отключить ACPI я делаю:

sed -i -e 's|#acpi false|acpi false|g' /boot/home/config/settings/kernel/drivers/kernel

и перезагружаюсь. Теперь моя система наконец-то отзывается быстро, как и было отмечено в прошлом другими рецензентами. Но в результате я больше не могу перезагружаться без kernel panic (выключить можно с сообщением "Теперь питание компьютера можно отключить").

ACPI, DSDT, iasl

Да ладно, скорее всего, надо выполнить отладку ACPI, я что-то смутно помню об этом с тех времен, когда работал над PureDarvin, потому что ядру xnu частенько были нужны поправленные файлы DSDT.aml

Погнали...

Качаю и собираю iasl, программу отладки ACPI от Intel [2]. Вообще-то нет, он уже был портирован:

~>  pkgman install iasl

Сохраняю таблицы ACPI:

~> acpidump  -o DSDT.dat
Cannot open directory - /sys/firmware/acpi/tables
Could not get ACPI tables, AE_NOT_FOUND

Оказывается, оно еще не работает в Haiku, решаю перезагрузиться на Linux, там и сниму содержимое ACPI. Затем я поправил ошибки с помощью iasl, текстового редактора и некоторых знаний (можно поискать в Google "patch dsdt fix") и бездны терпения. Тем не менее, в результате у меня все равно не получилось загрузить исправленный DSDT с помощью загрузчика Haiku. Правильным решением, возможно, будет перенос ACPI on-the-fly patching [3], в загрузчик Haiku (примерно так же, как это делает загрузчик Clover [4], исправляя DSDT на лету по меткам и шаблонам). Я открыл заявку [5].

Виртуальные машины

Вообще, я не фанат виртуальных машин, поскольку они чаще всего потребляют больше оперативной памяти и других ресурсов, которые мне доступны. Кроме того, мне не нравятся накладные расходы. Но мне пришлось рискнуть и воспользоваться ВМ, поскольку Haiku пока не умеет записывать видеотрансляции со звуком (поскольку на моем оборудовании не работают драйвера звука и есть карта, подключаемая по usb1 (первой версии), а ее драйвер должен быть собран вручную). Что хочу сказать: для такого решения [6] удалось получить очень хороший результат при создании моей видеотрансляции. Оказалось, что Virtual Machine Manager — настоящее чудо. Возможно, в это ПО (которое я лет 15 игнорировал) компания RedHat вложила все свои инженерные деньги. Во всяком случае, к моему большому удивлению, виртуализированная Haiku работает чуть быстрее, чем на таком же оборудовании (в это трудно поверить. но мне так кажется). [Не кажется, был аналогичный опыт в 2007 году с только что вышедшей Centos5, которую можно было установить виртуализированной в Xen. — прим. переводчика]

Видеотрансляция

Телодвижений, на мой вкус, понадобилось многовато, поэтому я записал пошаговое руководство (по большей части для себя же, чтобы воспроизвести потом), но вы также можете воспользоваться этой информацией для записи своих видеотрансляций Haiku (что совершенно точно стоит попробовать).

Кратко:

  • Используйте приличные наушники и звуковую карту C-Media USB
  • Загрузите компьютер с помощью живого образа Pop!OS NVIDIA (для аппаратного ускорения кодирования nvenc)
  • Скачайте ночной образ Haiku Anyboot 64bit
  • Настройте KVM, как было описано в статье выше
  • Скачайте OBS Studio AppImage (не забудьте сказать разработчикам, что хотите официальный)
  • Добавьте фильтр для шумоподавления в Desktop Audio (щелкаем правой кнопкой мыши по Desktop Audio, потом "Filters", потом "+", потом "Noise Suppression", уровень оставьте по-умолчанию)
  • Пройдитесь по настройкам звука в XFCE
  • Щелкните правой кнопкой мыши по Desktop Audio, потом "Properties", выберите устройство "Audio Adapter Analog Stereo"
  • Зайдите в меню XFCE, в "Workspaces"
  • Выставьте там число рабочих столов: 2
  • Ctr-Alt-ПраваяСтрелка переключит на второй рабочий стол
  • Исправьте ярлык для запуска Virtual Machine Manager так, чтобы он запускался от root (добавляя в начале sudo), иначе он у меня не работал
  • Запустите Haiku на втором рабочем столе
  • Загрузитесь до ее рабочего стола, выставьте разрешение FullHD (мне не удалось заставить Haiku сделать это автоматически, возможно есть способ заставить QEMUKVM передавать EDID от монитора, но я не нашел такую настройку в Virtual Machine Manager) [надо было поставить еще одну видеокарту и пробросить ее в Haiku… — прим. переводчика]
  • Нажмите Ctrl+Alt для того, чтобы клавиатура и мышь "вернулись" к Linux
  • Ctr-Alt-ЛеваяСтрелка переключит на первый рабочий стол
  • В OBS добавьте "Window Capture (XComposite)", и выберите окно "Haiku on QEMUKVM", включите галку "Swap red and blue".
  • Запишите видео, отредактируйте его с помощью Shotcut (запустите его от пользователя root, чтобы работало аппаратное ускорение nvenc)
  • Звуковая дорожка из музыкальной библиотеки YouTube "Timelapsed Tides". Фильтры: "Audio fade in", "Audio fade out", громкость -35db (ладно, хватит, это же не инструкция для Shotcut)
  • Экспорт, "YouTube", загрузка. Видео станет FullHD на YouTube без особой постобработки

Вуаля!

https://youtu.be/CGs-lZEk1h8 [7]
Видеотрансляция Haiku с помощью QEMUKVM, звуковой карты USB, OBS Studio и Shotcut

Я счастлив, хотя был бы намного счастливее, если бы звуковая карта, OBS Studio и Shotcut изначально работали в Haiku, и мне не пришлось бы выполнять эту длинную настройку. [Взял бы VirtualBox, там все есть сразу для записи видеотрансляции прямо в настройках виртуальной машины. — прим. переводчика]

Tracker и его дополнения

Tracker для Haiku такая же вещь, как Finder в Mac, или Explorer в Windows. Попробую поискать tracker add-on в HaikuDepot.

Интеграция Git в файловой менеджере

Просто цитирую картинки с его домашней страницы

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 2
TrackGit включен в файловый менеджер Haiku

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 3
Можно даже склонировать репозиторий

Это что, шутка?! Пароль открытым текстом? Удивительно, что они не используют "keychain", для этого в Haiku есть BKeyStore. Оставил заявку [8].

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 4
Пароль открытым текстом?

Интеграция менеджера пакетов в файловый менеджер

Согласно домашней страницы проекта:

Находит пакет(-ы) любого выбранного файла(-ов), открывая его в предпочтительном приложении. По-умолчанию это HaikuDepot, где можно посмотреть описание пакета, а на вкладке "Содержимое" можно увидеть другие файлы, которые являются частью этого пакета, а также их местоположение.

Вероятно, остался только один шаг для удаления пакета...

Autostart/rc.local.d

Как же запускать что-либо автоматически при загрузке?

  • rc.local.d = /boot/home/config/settings/boot/userbootscript
  • Autostart = /boot/home/config/settings/boot/user/launch

Мне надо найти команду синхронизации локального времени по NTP… Я слышал, что оно вообще должно работать автоматически, но у меня почему-то не работает. Что очень плохо, поскольку у меня сдохшая батарея для RTC, что означает сброс времени при отключении питания.

Больше подсказок

Приложение Tipster [9] показывает полезные советы и рекомендации (ознакомьтесь с ними!).

Публичные беспроводные сети

У меня не получилось подключиться к беспроводным сетям во время прогулки несмотря на то, что домашняя беспроводная сеть у меня работает. Публичные места (аэропорты, отели, вокзалы) обычно покрыты множеством беспроводных сетей, каждая из которых обычно состоит из нескольких точек доступа.

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 5
Центральный ж/д вокзал Франкфурта

А что же мы найдем на ж/д вокзале Франкфурта [10]? Кучу разных сетей:

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 6
Обычная ситуация для публичных мест. Здесь: Центральный ж/д вокзал Франкфурта

Возможностей для подключения — хоть отбавляй. А что делает Haiky с этими сетями? На самом деле не много: сильно путается в них. Ведь я был отключен от сети все это время.

Не работает передача точек доступа?

Все начинается с того, что каждая точка доступа показывается отдельно, — даже если они принадлежат одной сети с общим SSID, — не то что на любой другой, знакомой мне, ОС.

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 7
Показывается несколько точек с одинаковым SSID. Ну, и как будет работать передача обслуживания в таких условиях?

А должен отображаться только один SSID, для которого будет подбираться точка доступа с самым сильным сигналом. Клиент должен выбрать другую точку с более сильным сигналом, но с тем же SSID (при доступности), если связь с текущей точкой доступа станет слишком слабой — все работает даже при перемещении (передача обслуживания клиента между точками доступа). Создал заявку [11].

Никаких открытых сетей?

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 8
Haiku настаивает на том, что должен быть пароль, даже если сеть открытая.

Haiku продолжает требовать пароль сети, хотя самой сети никаких паролей не нужно. Также создал заявку [12].

Путаница из-за captive portals?

Многие беспроводные сети используют captive portals, когда пользователь перенаправляется на страницу авторизации, где может принять условия и соглашения, прежде чем использовать сеть. Возможно, это запутало мою ОС еще больше. В конце концов, по всей видимости, беспроводная подсистема у меня заблокировалась полностью.

Моя вторая неделя с Haiku: множество скрытых алмазов и приятных сюрпризов, а также некоторые проблемы - 9
Спустя некоторое время вся беспроводная подсистема полностью заблокировалась

Нет доступа к сети во время путешествия, печаль-тоска.

Разочарование с Python

Как легко и непринужденно запустить "случайно" выбранную программу на Python? Оказалось, не все так просто. По крайней мере я сам не до конца все понял...

git clone https://github.com/micahflee/onionshare.git
cd onionsharepython3 -m venv venv
pkgman i setuptools_python36 # pkgman i setuptools_python installs for 3.7
pip3 install -r install/requirements.txt

Could not find a version that satisfies the requirement PyQt5==5.12.1 (from -r install/requirements.txt (line 15)) (from versions: )
No matching distribution found for PyQt5==5.12.1 (from -r install/requirements.txt (line 15))

# stalled here - does not continue or exit

pkgman i pyqt

# No change, same error; how do I get it into the venv?
# Trying outside of venv

Could not find a version that satisfies the requirement PyQt5==5.12.1 (from -r install/requirements.txt (line 15)) (from versions: )
No matching distribution found for PyQt5==5.12.1 (from -r install/requirements.txt (line 15))

Подвисший pip — известная проблема (ему нужна поддержка hardlinks, которые не поддерживаются в Haiku). Мне подсказали, что надо использовать python3.6 (я бы сказал, что это бардак). Открыл заявку с pip [13]

Куда идем дальше?

Haiku является примером сфокусированной операционной системы для ПК, и как таковая имеет отличные принципы, значительно упрощающие общие рабочие процессы. Её разработка была стабильной, но неспешной — последние лет 10, в результате чего поддержка оборудования осталась достаточно ограниченной, а сама система относительно неизвестной. Но ситуация меняется: поддержка оборудования обеспечивает возможность запуска Haiku на относительно широком списке машин (хотя и с ошибками), а с учетом того, что версия системы не 1.0 — системе надо привлечь большее внимание общественности. Чем я могу помочь лучше всего? Полагаю, эта серия статей будет полезна. Спустя 2 недели я начал [14] сообщать об ошибках [15], а также начал серию видеотрансляций.

Еще раз выражаю огромную благодарность команде разработчиков Haiku, вы лучшие! Обязательно дайте знать, если придумаете, как я смогу внести вклад в развитие проекта, хотя я и не планирую писать на с++ в ближайшее время.

Попробуйте сами! Ведь проект Haiku предоставляет образы для загрузки с DVD или USB, формируемые ежедневно [16].
Появились вопросы? Приглашаем вас в русскоязычный telegram-канал [17].

probono — основатель и ведущий разработчик проекта AppImage, основатель проекта PureDarvin, участник различных проектов с открытым исходным кодом. Снимки экрана были сделаны на Haiku. Благодарность выражается разработчикам на канале #haiku в сети irc.freenode.net

Обзор ошибок: Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS [18]

От автора [19] перевода: это девятая и заключительная статья из цикла про Haiku.

Список статей: Первая [1] Вторая [20] Третья [21] Четвертая [22] Пятая [23] Шестая [24] Седьмая [25] Восьмая [26]

Автор: Павел

Источник [27]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/330589

Ссылки в тексте:

[1] На прошлой неделе: https://habr.com/ru/company/southbridge/blog/461141/

[2] программу отладки ACPI от Intel: https://acpica.org/downloads

[3] ACPI on-the-fly patching: https://github.com/RehabMan/Clover/blob/master/rEFIt_UEFI/Platform/AcpiPatcher.c

[4] делает загрузчик Clover: https://github.com/RehabMan/Clover/blob/286561fa45bac94412890ac66e2e5283540779aa/CloverPackage/package/Resources/templates/Description.html#L35

[5] заявку: https://dev.haiku-os.org/ticket/15196

[6] такого решения: https://www.haiku-os.org/guides/virtualizing/kvm/?source=post_page-----7e508f0db987----------------------

[7] https://youtu.be/CGs-lZEk1h8: https://youtu.be/CGs-lZEk1h8

[8] Оставил заявку: https://github.com/Hrily/TrackGit/issues/2

[9] Tipster: https://github.com/humdingerb/Tipster/blob/master/tips/tips-en.txt

[10] ж/д вокзале Франкфурта: https://www.bahnhof.de/bahnhof-en/Frankfurt__Main__Hbf-3805542

[11] Создал заявку: https://dev.haiku-os.org/ticket/15181

[12] создал заявку: https://dev.haiku-os.org/ticket/15182

[13] заявку с pip: https://github.com/pypa/pip/issues/6761

[14] начал: https://dev.haiku-os.org/ticket

[15] сообщать об ошибках: https://github.com/haikuports/haikuports/issues

[16] ежедневно: https://download.haiku-os.org/?source=post_page---------------------------

[17] telegram-канал: https://t.me/HaikuOS_RU_chat

[18] Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS: https://habr.com/ru/company/pvs-studio/blog/461255/

[19] автора: https://habr.com/ru/users/Finnix/

[20] Вторая: https://habr.com/ru/company/southbridge/blog/461451/

[21] Третья: https://habr.com/ru/company/southbridge/blog/462815/

[22] Четвертая: https://habr.com/ru/company/southbridge/blog/463105/

[23] Пятая: https://habr.com/ru/company/southbridge/blog/463803/

[24] Шестая: https://habr.com/ru/company/southbridge/blog/464819/

[25] Седьмая: https://habr.com/ru/company/southbridge/465241/

[26] Восьмая: https://habr.com/ru/company/southbridge/466301/

[27] Источник: https://habr.com/ru/post/468059/?utm_source=habrahabr&utm_medium=rss&utm_campaign=468059