- PVSM.RU - https://www.pvsm.ru -
Редактирование снимка экрана для этой статьи — в 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, я что-то смутно помню об этом с тех времен, когда работал над 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 (что совершенно точно стоит попробовать).
Кратко:
sudo
), иначе он у меня не работалВуаля!
https://youtu.be/CGs-lZEk1h8 [7]
Видеотрансляция Haiku с помощью QEMUKVM, звуковой карты USB, OBS Studio и Shotcut
Я счастлив, хотя был бы намного счастливее, если бы звуковая карта, OBS Studio и Shotcut изначально работали в Haiku, и мне не пришлось бы выполнять эту длинную настройку. [Взял бы VirtualBox, там все есть сразу для записи видеотрансляции прямо в настройках виртуальной машины. — прим. переводчика]
Tracker для Haiku такая же вещь, как Finder в Mac, или Explorer в Windows. Попробую поискать tracker add-on
в HaikuDepot.
Просто цитирую картинки с его домашней страницы
TrackGit включен в файловый менеджер Haiku
Можно даже склонировать репозиторий
Это что, шутка?! Пароль открытым текстом? Удивительно, что они не используют "keychain", для этого в Haiku есть BKeyStore. Оставил заявку [8].
Пароль открытым текстом?
Согласно домашней страницы проекта:
Находит пакет(-ы) любого выбранного файла(-ов), открывая его в предпочтительном приложении. По-умолчанию это HaikuDepot, где можно посмотреть описание пакета, а на вкладке "Содержимое" можно увидеть другие файлы, которые являются частью этого пакета, а также их местоположение.
Вероятно, остался только один шаг для удаления пакета...
Как же запускать что-либо автоматически при загрузке?
Мне надо найти команду синхронизации локального времени по NTP… Я слышал, что оно вообще должно работать автоматически, но у меня почему-то не работает. Что очень плохо, поскольку у меня сдохшая батарея для RTC, что означает сброс времени при отключении питания.
Приложение Tipster [9] показывает полезные советы и рекомендации (ознакомьтесь с ними!).
У меня не получилось подключиться к беспроводным сетям во время прогулки несмотря на то, что домашняя беспроводная сеть у меня работает. Публичные места (аэропорты, отели, вокзалы) обычно покрыты множеством беспроводных сетей, каждая из которых обычно состоит из нескольких точек доступа.
Центральный ж/д вокзал Франкфурта
А что же мы найдем на ж/д вокзале Франкфурта [10]? Кучу разных сетей:
Обычная ситуация для публичных мест. Здесь: Центральный ж/д вокзал Франкфурта
Возможностей для подключения — хоть отбавляй. А что делает Haiky с этими сетями? На самом деле не много: сильно путается в них. Ведь я был отключен от сети все это время.
Все начинается с того, что каждая точка доступа показывается отдельно, — даже если они принадлежат одной сети с общим SSID, — не то что на любой другой, знакомой мне, ОС.
Показывается несколько точек с одинаковым SSID. Ну, и как будет работать передача обслуживания в таких условиях?
А должен отображаться только один SSID, для которого будет подбираться точка доступа с самым сильным сигналом. Клиент должен выбрать другую точку с более сильным сигналом, но с тем же SSID (при доступности), если связь с текущей точкой доступа станет слишком слабой — все работает даже при перемещении (передача обслуживания клиента между точками доступа). Создал заявку [11].
Haiku настаивает на том, что должен быть пароль, даже если сеть открытая.
Haiku продолжает требовать пароль сети, хотя самой сети никаких паролей не нужно. Также создал заявку [12].
Многие беспроводные сети используют captive portals, когда пользователь перенаправляется на страницу авторизации, где может принять условия и соглашения, прежде чем использовать сеть. Возможно, это запутало мою ОС еще больше. В конце концов, по всей видимости, беспроводная подсистема у меня заблокировалась полностью.
Спустя некоторое время вся беспроводная подсистема полностью заблокировалась
Нет доступа к сети во время путешествия, печаль-тоска.
Как легко и непринужденно запустить "случайно" выбранную программу на 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
Нажмите здесь для печати.