OpenBSD -current

februari 18, 2007

Раньше накатывал -current только для FreeBSD, и давно это было очень и несколько криво, так как смысла в этом не было – скорости жутко модемные :)

Теперь после странного глюка с иксами я накатился до -current и в OpenBSD, чему несказанно рад – все сразу заработало. Что же нужно делать.

Первым делом мы должны убедится, что слайс /usr имеет достаточно свободного места, нужно порядка 4-7 гигабайт, для удачной компиляции всего, что душе захочется – от нового ядра, до монструозного ооо (хотя не пробовал, может он и не настолько монструозный). Получить исходники можно с фирменного компакт диска, любого ftp, а можно и не получать – сразу качать из сети с того же ftp. Я все скопировал с cd (cd0a я примонтировал в /mnt/cdrom/, кд куплен у линуксцентра):

# cd /usr/src && tar -xzf /mnt/cdrom/4.0/src.tar.gz
# cd /usr && tar -xzf /mnt/cdrom/4.0/XF4.tar.gz
# tar -xzf /mnt/cdrom/4.0/ports.tar.gz

Мы скопировали и распаковали исходники в каталог /usr.

Теперь мы должны обновить существующие исходники до текущего состояния. Делается это с помощью anoncvs сервера, список серверов можно получить на официальном сайте OpenBSD.

Для дальнейшего использования удобно записать адреса нужных нам серверов в env-переменные в .profile-файл, находящийся в домашнем катологе:

export CVSROOT=anoncvs@anoncvsserver:/cvs
export PKG_PATH=ftp://ftp.ftp/pub/OpenBSD/snapshots/packages/`machine -a`/

Обновляемся до -current

# cd /usr/src
# cvs -d$CVSROOT up -Pd

Этой командой иы обновляем репозитарий src. Для обновления всего и сразу нужно перейти на один уровень выше в /usr/ и оттуда запустить cvs -d$CVSROOT up -Pd, а можно по отдельности перемещаться из src в ports и XF4. Обновление происходит рекурсивно, так что если увидим что-нибудь вроде sys/dev/zzz, то можем считать, что все скоро закончится. Нужно понимать, что если используем -current ветку, то использовать нужно систему портов, обновленную и синхронизированную со всей остальной системой, нельзя синхронизировать и собрать только ядро системы, нужно синхронизировать и собирать сразу все. В некоторых случаях можно использовать и пакеты, но лучше их не использовать, если работаем с -current.

Теперь собираем ядро. Не рекомендуется менять конфиг для ядра, так без серьезных знаний улучшить вряд ли получится, скорее всего станет еще хуже :) поэтому собираем GENERIC ядро. Например имеет смысл изменять конфиг, а точнее добавить туда поддержку ACPI, только для нормальной работы ноутбука, или добавить поддержку аппаратных RAID, так как без обновления ядра система увидит только два и более отдельных жд.

# cd /usr/src/sys/arch/i386/conf
# config GENERIC
# cd ../compile/GENERIC
# make clean && make depend && make && make install

На этом сборка ядра закончится, нужно перезагрузиться – reboot.

Собираем userland

# rm -rf /usr/obj/*
# cd /usr/src
# make obj
# cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
# cd /usr/src
# make build

Ребут.

Для сборки иксов на платформе i386 нужны tcl и tk

# pkg_add -i tcl tk

Установить tck и tk можно и из портов

# rm -rf /usr/Xbld
# mkdir -p /usr/Xbld
# cd /usr/Xbld
# lndir ../XF4
# make build
# export DESTDIR=/usr/Xbld/dest
# export RELEASEDIR=/usr/Xbld/rel
# rm -rf dest
# mkdir dest rel
# make release

На этом сборка рыбки закончилась, теперь нужно последний раз перезагрузится и можно заканчивать настройку замечательной OpenBSD, читайте man afterboot. Всем удачи.

Reageer