OpenBSD? Нет! NetBSD!

Опубликовано 01.04.2024 в NetBSD

Волею судеб (ну просто красивое же выражение) попалась мне на глаза новость про выход мажористого релиза операционной системы NetBSD 10.0. Обещано там было много радостей, в том числе повышение производительности (файловой системы, планировщика задач, загрузки, виртуальной памяти...), значительное расширение поддержки оборудования, обновление графических драйверов (подсистема DRM/KMS, как заявлено, синхронизирована с таковой в Linux 5.6) и прочие радостные вкусности.

Ну а раз так, отчего бы не попробовать? Тем более, у меня тут как раз пылится без дела субноутбук Dell Inspirion 3162 с еще вполне живым железом (виртуалки для слабаков, только на реальное железо! только хардкор!).

Собственно, поехали.

Установка и первоначальная настройка

Оба два пункта объединены ибо у NetBSD на удивление толковый инсталлятор. Как скачать образ и залить его на флешку, вестимо, не расписываю, всё и без меня расписано в гайдах на https://netbsd.org. Перейду сразу к приятному для красных глаз.

"Of course it runs NetBSD!" - но не совсем. Сразу же после загрузки с флешки (после меню загрузчика) я лицезрел абсолютно черный экран и ни малейших признаков жизни установщика - проблема (на моем конкретном железе, я надеюсь) именно с тем самым DRM/KMS видеочипа intel, апгрейд которого рекламировался в анонсе. Проблема, как я понял, настолько известная и родная для нетбсдшников, что у них аж в мане по встроенной в ядро утилитке userconf описано ее решение: пережагружаемся, в меню загрузчика топчем 2 для входа в boot prompt и там пишем чудесные строчки

>userconf disable i915drmkms*
>boot

После чего инсталлятор таки предстанет перед нами. Вдогонку отмечу два момента: 1) ту же самую строчку в формате userconf=disable i915drmkms* нужно будет в прописать в конец файлика /boot.cfg, ибо то же черный экран поджидает нас и в свежеустановленной системе, и 2) закономеным следствием такой директивы будет то, что X-сервер у нас запустится безо всякого там вкусного аппаратного ускорения, с драйвером фреймбуффера wsfb. А, ну да, еще 3) отключение UEFI и загрузка в legacy mode проблемы не решает, равно как и разбивка диска в MBR вместо GPT (последнее, понятно, и не должно - но такой загадочный совет я встречал где-то).

Далее, собственно, установка - являющая собой весьма простое, нагрядное и даже где-то приятное взаимодейтсвие с текстовым инсталлятором: выбор языка в процессе установки, раскладки клавиатуры, разметка диска (если не нужен дуалбут - то тривиально простая, по дефолту система выделяет все дисковое пространство под один корневой раздел + вторым разделом swap равный, в моем случае, размеру оперативной памяти). Разумеется, доступна и ручная разметка.

Приятной особенностью инсталлятора (он, кстати, называется sysinst) является возможность пост-установочоной настройки, позволяющая:

  • настроить подключение к сети (моя интеловская беспроводная карточка подхватилась прямо из инсталлятора, не требуя каких-либо фирьмварей, оттуда же можно настройки wpa_supplicant сохранить прямо в свежеустановленную систему и иметь выход в сеть при первой же загрузке - только почему-то эти настройки в /etc/rc.conf прописываютя дважды);
  • настроить часовой пояс,
  • установить менеджер бинарных пакетов pgkin и обновить его пакетную базу (прямо из инсталлятора, да)
  • аналогичным образом установить систему портов pkgsrc (скачивается и распаковывается в свежеустановленную систему, после перезагрузки можно сразу пользоваться),
  • завести учетку непривилегированного пользователя (выбрав шелл для нее - предлагается sh, ksh и csh, я, естественно, выбрал ksh - а вот для рута дефолтный шелл менять не стал, мало ли... хотя The Guide пишет о такой возможности, мол, тоже без проблем).
  • настроить запуск некоторых служб при загрузке системы - тут важно не забыть про xdm, если есть желание грузиться сразу в иксы - по умолчанию оно не включено,
  • и что-то там еще по мелочи (ntpd, синхронизация времени при загрузке и т.п.).

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

Собственно, из коробки, на первый взгляд, всё работает пристойно (тот же тачпад на этом конкретно Dell Inspirion, например, отчаянно глючит в OpenBSD - а тут завелся без нареканий). Звук работает (в том числе микрофон - нужно лишь размьютить его, сделав mixerctl -w inputs.reclvl2.mute=off. Веб-камера тоже подхватилась без проблем (вот натурально - веб-версией скайпа можно пользоваться, проверено лично). Видеоускорение отсутствует по вышеозначенной причине. Ну и еще один жирный-жирный минус: система, увы, не просыпается из суспенда (черный экран), в который вроде бы успешно погружается командой # sysctl -w hw.acpi.sleep.state=3. Поддержки гибернейта (в отличие от OpenBSD и аналогично FreeBSD) не завезли в принципе. Зато, в отличие от той же OpenBSD, и поддержку блютуза не выпилили (работоспособность пока не проверял).

Немножко пост-установочных настроек

Совсем немножко, обживать систему времени особо не было (да и есть ли необходимость?), чисто на память прикопаю:

Прежде всего, нужен какой-то приемлемый (читай: привычный) оконный менеджер, так что делаем в терминале su (ни doas, ни sudo из коробки нет), и инсталлируем сообразно своим потребностям:

# pkgin install i3 i3lock i3status dmenu

и не забываем сконфигурять оное для своего не-рутового пользователя (благо дефолтный конфиг в системе наличествует, есть что взять за основу, редактируем потом сообразно привычкам и перезаходим в иксы):

$ cp /usr/pkg/share/examples/i3/config ~/.config/i3/config
$ echo 'exec i3' >> ~/.xsession

Да, по поводу "чем редактируем" - ожидаемо, стандартно и традиционно в свежеустановленной системе присутствует vi, но pkgin позволяет установить и vim, и neovim, и какой-нибудь там micro - всё присутствует в репозиториях. Поиск доступен по pkgin search. По мелочи еще старый добрый mc поставил.

Отдельно напишу об установке браузера Firefox (который тут вполне еще не древней версии 120 и firefox-esr доступен тоже): ставится он абсолютно аналогичным заклинанием pkgin install firefox, но в процессе установки вы будете извещены, что для работы оному браузеру потребуется dbus - он поставится автоматом как зависимость, но для запуска dbus при настройке системы потребуется минимальная настройка: # cp /usr/pkg/share/examples/rc.d/dbus /etc/rc.d/dbus после чего еще в /etc/rc.conf вписать dbus=YES.

Ну и под занавес: к моему удивлению, в базовой поставке не оказалось утилиты для обновления системы, но лечится это просто: pkgin install sysupgrade, после чего запуском # sysupgrade auto можно систему обновлять без использования sysinst.