[Перевод] Вызов принят: OpenBSD на ноутбуке
Хотелось бы поделиться, может быть и не самым новым, но отчасти познавательным и местами увлекательным, опытом установки на ноутбук операционной системы не из мейнстрима (т.е. не Windows или Linux) для хоть сколько-нибудь полноценной работы в наше (развращённое) время. Началось всё с того, что дело было вечером и делать было нечего, а тут опять что-то начало нагревать мой MacBook. Вот я и решил поставить на него (ну не совсем на него, конечно — ведь мне на нём ещё работать —, а на более старую модель, которая уже какое-то время просто лежит в ящике стола) что-то тёплое ламповое из мира BSD. Не FreeBSD, это было бы просто, а, например, NetBSD (уж очень она мне нравится своим минимализмом).
Опыт с FreeBSD на ноутбуке у меня был лет 10 назад. Ставил его тогда на BenQ Joybook X31. KDE работало, кстати, без всяких патчей. А вот драйвер для RTL8168 пришлось подправить.
Сначала я решил почитать, в этих ваших интернетах, ведь наверняка кто-то уже подобное пытался делать. Так и оказалось, пытался и даже сделал. Только не с NetBSD и не на MacBook, но тоже интересно. Вот об этом не своём опыте я вам сейчас и расскажу. Далее пойдёт перевод и я буду уже не я, а Jan-Piet Mens.
Итак вопрос: можно ли сделать ноутбук настолько привлекательным, чтобы захотелось перейти на него с Mac? TL; DR: можно [перев.:, а я бы поспорил].
В 1989 я провёл целые недели своей жизни пытаясь скомпилировать и запустить X11 на Compaq 486 под SCO Unix. Сама компиляция занимала многие часы. Но больше всего запомнилась необходимость скрещивать пальцы в надежде, что параметры настройки экрана не приведут к повреждению монитора. Времена, конечно, меняются, и я думаю, что сейчас немногие продолжают страдать подобной фигнёй. К счастью, я позабыл большую часть проблем того времени. Но даже сейчас, когда я думаю о (некоммерческом) Unix на ноутбуке, я вижу призрак RAMDAC в своих кошмарах.
Я знаю много пользователей различных дистрибутивов GNU/Linux (или systemd/Linux? ;-), работающих на ноутбуках. Я тоже пробовал его устанавливать, даже без X11. Но Linux не смог отвадить меня от Mac. Не знаю точно почему. Linux достаточно быстр (вероятно быстрее BSD систем) и достаточно надёжен, но это ведь не всё. Я думаю, что дело в возрастающем неприятии самой системы и документации, администрирования и утилит, внедрения systemd, различий между дистрибутивами. Возникает чувство, что столько проблем здесь только из-за того, что разные команды разработчиков работают над одним и тем же, исправляя и привнося обратно одни и те же ошибки. Не моё это. Linux это, конечно, хорошо, но я не чувствую себя частью его сообщества.
И вот в начале февраля у меня появилась идея, которая получила некоторый отклик:
Я бросил курить 922 дня назад (на момент написания [перев.: оригинала] этой заметки, и да, я всё ещё продолжаю считать дни). Подсчитав деньги, которые удалось на этом сэкономить, я раскошелился на покупку Lenovo Thinkpad X1 Carbon 6-го поколения. И я был по-настоящему удивлён, когда открыл картонную коробку — вполне себе «яблоподобный» внешний вид.
Внутри оказалось прекрасное устройство, думаю, что даже тоньше моего MacBook Air, и ощущается X1 более лёгким. Первым делом я решил уменьшить место занимаемое Windows 10 (кто знает, может быть однажды она пригодится), но передумал, после того как прождал несколько минут загрузки экрана приветствия Windows.
Сначала я решил установить FreeBSD, т.к. она поддерживает ZFS и позволяет запускать VirtualBox. Начал устанавливать последнюю версию TrueOS [перев.: ранее PC-BSD], т.к. процесс установки должен быть очевиден даже для нубов. Установка шла прекрасно до тех пор, пока я не стал добавлять пользователя (с именем jpm). Установщик сообщил мне, что «Jan-Piet Mens» содержит недопустимые символы. В поле GECOS. Я не шучу. В результате получилась загружаемая система (со второй попытки), которая довела меня чуть ли не до слёз своей медлительностью. Тогда я установил Trident (ответвление TrueOS). При этом потребовалось подключить USB-мышь для графической программы установки. Результат — не загружаемая система; не грузится как в этом меме:
Конечно я должен был попробовать установить просто FreeBSD, что я и сделал. Несколько раз. А потом я прекратил пробовать. Пришлось отложить это всё, в основном, потому, что не удалось отдать X1 кому-то, кому нужен ноутбук с Windows.
Хенрик (Henrik) (он неутомим в этом смысле) предложил OpenBSD, так что я попробовал её. Честно говоря, мои ожидания в плане «ноутбук, и графика, и Wi-Fi и всё такое с OpenBSD» — дальше некуда. OpenBSD на сервере? Всегда пожалуйста. Но на ноутбуке?…
С недавних пор мне нравится OpenBSD — установка простая и быстрая, штатное ПО довольно стабильное, а документация практически прекрасна. Представьте, как здорово иметь возможность набрать команду man и получить справку с актуальным описанием программы или служебного файла на вашем компьютере? У меня был прекрасный опыт с OpenBSD год назад, когда я поставил эту ОС на старый Thinkpad.
Установка прошла, и я получил больше, чем ожидал (что до смерти меня удивило). Но результат был ужасен — Firefox с трудом мог проматывать страницы, никакого видео на Youtube, унылый оконный менеджер… Я отправился в кровать читать книжку на ночь.
Снова Хенрик (да, тот же парень) указал мне на пост Каллума Смита (Cullum Smith) «OpenBSD на ноутбуке». Потратив час или два на настройку по этой заметке, я получил вполне работоспособное рабочее окружение с i3-подобным оконным менеджером cwm [перев.: рус.].
В целом результатом стал ноутбук, который может (для меня) конкурировать с Mac по крайней мере в большинстве случаев. На нём настроено полное шифрование диска, работоспособные Ethernet и Wi-Fi (представьте себе возможность запуска man iwm для отображения актуальной документации с примерами). S3 работает, также как и кнопки управления громкостью. Есть среда разработки (компилятор C со всеми Unix-утилитами, о которых я только мог мечтать). Установлены syncthing, restic и matterhorn. Настроены и работают штатные для OpenBSD сервисы httpd и smtpd. Первый потому, что я иногда занимаюсь тестированием и мне нужен HTTP-сервер, а второй — так как я люблю отправлять письма себе и другим.
В конце этого первого дня осталось ещё кое-что, что требует решения. VLC проигрывает звук, но не показывает видео, используя X11 драйвер (видео работает в Firefox и Chrome). И кое-чего не хватает для удобства, например, копирования/вставки между xterm и браузером. Также правая сторона ноутбука сильно греется; я не знаю, где именно находится процессор, но полагаю, что именно там (хотя top не показывает ничего особенного). Дело оказалось в настройке Thunderbolt в BIOS.
Действительно приятно работать в системе, в которой, когда я захочу поставить mosquitto, мне достаточно выполнить:
pkg_add mosquitto
и я получу все библиотеки, исполняемые и заголовочные файлы без необходимости выяснять, как называются пакеты с исполняемыми файлами и библиотеками. (Поглядываю на Debian.) Всё как следует документировано, для всех программ и служебных файлов есть man-страницы, и качество руководств очень хорошее.
Я ещё не закончил настройку и не уверен, что смогу отказаться от Mac и macOS, но пока всё выглядит многообещающе. Кое-что важное для меня будет сложно или невозможно заменить или настроить, например:
‐ iTerm2;
‐ Enpass;
‐ Calendar.app;
‐ запрос подключения к сетям Wi-Fi;
‐ мгновенное пробуждение при открытии крышки ноутбука.
Может быть найдутся аналогичные решения для части или всех требований, но только лишь действительно аналогичные. В целом я пока доволен результатом. Вероятно, правильно настроенный ноутбук с Linux был бы не менее хорош, а то и лучше. Но как я уже говорил, не моё это.
Осмелюсь ли я взять эту машину на BSDCan [перев.: конференцию BSD в Канаде] и сделать презентацию с ней? Посмотрим. (Конечно же нет, если я не могу предварительно попрактиковаться с проектором.)
Три недели спустя
Три недели спустя я почти не пользовался ноутбуком. Я взял его в проработку со следующими замечаниями:
‐ Wi-Fi перестаёт работать примерно через час с выдачей кучи сообщений об ошибках драйвера каждую минуту в syslog. Кто-то предложил мне заменить контроллер Wi-Fi.
‐ Я подключаю HDMI кабель к проектору и ожидаю появления изображения, но напрасно. Неужели следует искать решение в миллиардах параметров xrandr?
‐ Обновление с 6.4 на 6.5 прошло замечательно за исключением нескольких отключений от сети. Не разбирался с этим, но думаю, что проблема в драйвере iwm0.
‐ Постоянно думаю о xrandr, так что пришлось с ним поработать. Долго ничего не получалось. Я не мог вывести картинку на подключенный по HDMI монитор HP. А дело оказалось в кабеле. Стоило его заменить, и изображение появилось.
‐ Отто (Otto) предложил мне перейти на -current или snapshot, что я и сделал. Сетевой драйвер продолжил сбоить. Занимательно, что проблемы наблюдается только при вызове pkg_add и даже на этапе распаковки, например, большого пакета libreoffice. Но кое-что теперь работает хорошо — xrandr. Вывод на подключенный HDMI монитор при отключении и подключении обратно (проверил три раза подряд).
‐ Выяснилось, что сбоит не iwm0, а em0. После отключения em0 сеть Wi-Fi стала работать стабильно.
Дополнительные материалы
‐ OpenBSD с точки зрения ветерана Linux
‐ OpenBSD: почему и как
‐ OpenBSD на рабочей станции